
kernel
31.01.2019
06:23:59
sqlite можно

Ievgen
31.01.2019
06:24:23
и что там?

kernel
31.01.2019
06:24:33
селекторы

Ievgen
31.01.2019
06:24:45
тире действия

Google

Ievgen
31.01.2019
06:24:48
и по шагам
не очень для базы...

kernel
31.01.2019
06:25:01
name | selector
login | li > div

Ievgen
31.01.2019
06:25:24
у меня уже нарисовалось в голове, вопрос что будет проще
более прямых методов?
не?
может фреймворк какой?

kernel
31.01.2019
06:26:40
Как сказал один мудрый человек: "Не всегда надо использовать фреймворки"

Ievgen
31.01.2019
06:26:54
та вот не хотелось бы усложнять
с другой хочется другим людям дать возможность подправить шаблон не вникая
ладно я подумаю еще стоит ли игра свеч
все кто это будут использовать так или иначе умеют в питон

Google

Ievgen
31.01.2019
06:28:07
может проще оставить все как есть

Terminator
31.01.2019
06:53:20
Rahmatullo Kholov будет жить. Поприветствуем!

Ivan
31.01.2019
06:54:18
Написал либу для ограничения количества запросов через токен / к хосту при использовании asyncio, возможно, кому то пригодится: https://github.com/blohinn/asyncio-request-limiter

Александр
31.01.2019
06:59:49
У нас была такая задача, нашли какой-то плагин для nginx на Lua
Ограничить число запросов в сутки

Ivan
31.01.2019
07:01:17
+ херачить с разных токенов
для сервера? ограничить количество запросов с клиента?

Александр
31.01.2019
07:02:02
Что не очень
Я бы вместо деления воспользовался вычитанием

Ivan
31.01.2019
07:02:52
Да, я не эксперт в asyncio, но нужно было захерачить как-то

Александр
31.01.2019
07:02:54
Ну типичный платный апи

Ivan
31.01.2019
07:02:58
Если укажешь на ошибки - буду очень рад

Александр
31.01.2019
07:05:11
Хотя в твоём случае будет правильнее с делением

Terminator
31.01.2019
07:11:13
@sashastg будет жить. Поприветствуем!

Oleksandr
31.01.2019
07:11:27
def set_size(self, size):
"""Set figure size"""
w, h = size
self.root.set('width', w)
self.root.set('height', h)
что значит w, h = size ?
я вызываю эту функцию:
svg = fromfile(filename)
svg.set_size(80)
svg.save(filename)
получаю вот такую ошибку:
File "parse.py", line 13, in <module>
svg.set_size(80)
File "/Users/sava/Library/Python/2.7/lib/python/site-packages/svgutils/transform.py", line 290, in set_size
w, h = size
TypeError: 'int' object is not iterable


Марк
31.01.2019
07:13:54
def set_size(self, size):
"""Set figure size"""
w, h = size
self.root.set('width', w)
self.root.set('height', h)
что значит w, h = size ?
я вызываю эту функцию:
svg = fromfile(filename)
svg.set_size(80)
svg.save(filename)
получаю вот такую ошибку:
File "parse.py", line 13, in <module>
svg.set_size(80)
File "/Users/sava/Library/Python/2.7/lib/python/site-packages/svgutils/transform.py", line 290, in set_size
w, h = size
TypeError: 'int' object is not iterable
распаковка. Тебе в сайз надо передать что-то вроде [100,100]

Google

Oleksandr
31.01.2019
07:15:26
распаковка. Тебе в сайз надо передать что-то вроде [100,100]
Traceback (most recent call last):
File "parse.py", line 13, in <module>
svg.set_size([80,80])
File "/Users/sava/Library/Python/2.7/lib/python/site-packages/svgutils/transform.py", line 291, in set_size
self.root.set('width', w)
File "src/lxml/etree.pyx", line 811, in lxml.etree._Element.set
File "src/lxml/apihelpers.pxi", line 569, in lxml.etree._setAttributeValue
File "src/lxml/apihelpers.pxi", line 1472, in lxml.etree._utf8
TypeError: Argument must be bytes or unicode, got 'int'
svg = fromfile(filename)
svg.set_size([80,80])
svg.save(filename)

Terminator
31.01.2019
07:19:16
@Konstantin4K будет жить. Поприветствуем!

Tishka17
31.01.2019
07:21:18
def set_size(self, size):
"""Set figure size"""
w, h = size
self.root.set('width', w)
self.root.set('height', h)
что значит w, h = size ?
я вызываю эту функцию:
svg = fromfile(filename)
svg.set_size(80)
svg.save(filename)
получаю вот такую ошибку:
File "parse.py", line 13, in <module>
svg.set_size(80)
File "/Users/sava/Library/Python/2.7/lib/python/site-packages/svgutils/transform.py", line 290, in set_size
w, h = size
TypeError: 'int' object is not iterable
w,h=size значит что ожидается что size - это тупл из двух значений, которые ты присваиваешь в две переменные

Oleksandr
31.01.2019
07:21:45
svg.set_size([80,80])
так?

Tishka17
31.01.2019
07:21:52
Да

Oleksandr
31.01.2019
07:21:57
File "parse.py", line 13, in <module>
svg.set_size([80,80])
File "/Users/sava/Library/Python/2.7/lib/python/site-packages/svgutils/transform.py", line 291, in set_size
self.root.set('width', w)
File "src/lxml/etree.pyx", line 811, in lxml.etree._Element.set
File "src/lxml/apihelpers.pxi", line 569, in lxml.etree._setAttributeValue
File "src/lxml/apihelpers.pxi", line 1472, in lxml.etree._utf8
TypeError: Argument must be bytes or unicode, got 'int'

Tishka17
31.01.2019
07:22:22
Значит нет
Что это за код?
А. Svgutils
Документацию читал?

Oleksandr
31.01.2019
07:23:29

Tishka17
31.01.2019
07:24:29
File "parse.py", line 13, in <module>
svg.set_size([80,80])
File "/Users/sava/Library/Python/2.7/lib/python/site-packages/svgutils/transform.py", line 291, in set_size
self.root.set('width', w)
File "src/lxml/etree.pyx", line 811, in lxml.etree._Element.set
File "src/lxml/apihelpers.pxi", line 569, in lxml.etree._setAttributeValue
File "src/lxml/apihelpers.pxi", line 1472, in lxml.etree._utf8
TypeError: Argument must be bytes or unicode, got 'int'
Ну судя по всему надо строки передавать.
А раз это svg, вероятно там что-то типа ('1px', '2cm')

Сергей
31.01.2019
07:25:49
Можно просто числа в виде строки, по умолчанию это пиксели

Terminator
31.01.2019
07:27:19
@SirZoo будет жить. Поприветствуем!

Tishka17
31.01.2019
07:30:35
А svg точно работает с css как html
def set_size(self, size):
"""Set figure size"""
w, h = size
self.root.set('width', w)
self.root.set('height', h)
что значит w, h = size ?
я вызываю эту функцию:
svg = fromfile(filename)
svg.set_size(80)
svg.save(filename)
получаю вот такую ошибку:
File "parse.py", line 13, in <module>
svg.set_size(80)
File "/Users/sava/Library/Python/2.7/lib/python/site-packages/svgutils/transform.py", line 290, in set_size
w, h = size
TypeError: 'int' object is not iterable
Если не секрет, а зачем тебе понадобилось svg модифицировать из кода?

Сергей
31.01.2019
07:32:20

Google

Владимир
31.01.2019
07:32:28
Попалось на глаза
```
PostSidecarNode = namedtuple('PostSidecarNode', ['is_video', 'display_url', 'video_url'])
PostSidecarNode.__doc__ = "Item of a Sidecar Post."
PostSidecarNode.is_video.__doc__ = "Whether this node is a video."
PostSidecarNode.display_url.__doc__ = "URL of image or video thumbnail."
PostSidecarNode.video_url.__doc__ = "URL of video or None."
```
Хороший пример как можно написать кучу лишнего текста в doc

Tishka17
31.01.2019
07:32:56
Хороший пример как неудобны namedtuple

Владимир
31.01.2019
07:33:19
Да все с ними хорошо. Любая структура должна быть к месту
Чую сейчас будешь продвигать датакласс)

Сергей
31.01.2019
07:36:01

Tishka17
31.01.2019
07:36:18
Да пофиг. Просто присвоение __doc__ выглядит странно.
Но сути не меняет

Maxim robox
31.01.2019
07:36:57

Владимир
31.01.2019
07:37:10
Можно.
Веский аргумент) Да, нет, можно, надо))

Tishka17
31.01.2019
07:37:32
Единственный профит namedtuple - то, что он tuple. Когда это нужно - хз

Maxim robox
31.01.2019
07:37:49
Жалко, в питоне нельзя распаковывать словари (как tuple)

Tishka17
31.01.2019
07:38:13
Итерироваться по разнородным данным, ну такое

Владимир
31.01.2019
07:38:21
В итерациях. =)
Да и распокавать можно. В параллельном присваивании. Но это так себе
>>> a = {1:2, 3:4}
>>> x, y = a.items()
>>> x
(1, 2)
>>> y
(3, 4)

Tishka17
31.01.2019
07:41:26
вообще не представляю синтаксис распаковки словаря. Надо же ключи передавать

Владимир
31.01.2019
07:42:49

Tishka17
31.01.2019
07:42:51
>>> x={"q": "qqq", "w": "wwww"}
>>> locals().update(x)
>>> q
'qqq'
>>> w
'wwww'

Владимир
31.01.2019
07:45:21

Tishka17
31.01.2019
07:46:48
>>> locals().update({("first", "second"): "value"})
>>> locals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, ('first', 'second'): 'value'}

Google

Tishka17
31.01.2019
07:46:50
гг
что делать с ('first', 'second') в локалах?
естественно оно не опознается как идентификатор переменной

Vasia
31.01.2019
07:49:32
как можно упаковать питон скрипт вместе с venv?

Tishka17
31.01.2019
07:49:45
куда упаковать?

Vasia
31.01.2019
07:49:59
не обязательно в одно тело, главное чтобы можно было запускать из одного места

Tishka17
31.01.2019
07:50:00
tar -zcf ../file.tar.gz .

Александр
31.01.2019
07:50:20

Vasia
31.01.2019
07:50:43
не, чтобы можно было исполнять на машине опционально без питона, ну или с ним

Tishka17
31.01.2019
07:50:52
use docker

Vasia
31.01.2019
07:51:04
просто пока в голову приходит решение в лоб - батник
ну мне скрипт запускать все же, а не сервис