
Vladislav
16.07.2017
17:32:20
У нас в части реп 80, в части - 120

Aleksandr
16.07.2017
17:33:37
Больше 120 - да
это нужно для java, js и прочих длиннострочных, для питона лучше 79, оно дисциплинирует и вынуждает оптимизировать код сразу на месте

Vladislav
16.07.2017
17:34:06

Google

Vladislav
16.07.2017
17:34:37
А так да, 120 в репах мобильных приложений, в основном

Mr Earnest
16.07.2017
17:53:57
Господа, такой вопрос:
Есть что то типо админки (как у джанги) на aiohttp?

Aragaer
16.07.2017
18:11:33
Так. Опять идиотский вопрос.
self.assertTrue(start_server.called, "Server is started")
self.assertEqual(start_server.call_count, 1, "Exactly one server is started")выдает
AssertionError: <property object at 0x7f3ed0456d68> != 1 : Exactly one server is started
то есть первый ассерт проходит, а второй внезапно нет
почему-то вместо значения проперти приходит сам проперти обжект

Denis
16.07.2017
18:13:56
А если int(start_server.call_count)?

Aragaer
16.07.2017
18:14:30
TypeError: int() argument must be a string, a bytes-like object or a number, not 'property'

Denis
16.07.2017
18:14:45
Хм

Aragaer
16.07.2017
18:14:51
ну то есть вот почему-то при обращении к проперти выдается сама проперти

Denis
16.07.2017
18:14:57
start_server сам писал?

Aragaer
16.07.2017
18:15:20
не совсем
это обертка вокруг MagicMock

Denis
16.07.2017
18:15:36
Ууу

Google

Denis
16.07.2017
18:15:47
А как call_count объявлен?

Aragaer
16.07.2017
18:15:57
patcher = patch('asyncio.start_unix_server', new=AsyncMock)
start_server = patcher.start()
а AsyncMock только переопределяет call в стандартном MagicMock
ща поищу как он там объявлен
called = _delegating_property('called')
call_count = _delegating_property('call_count')
то есть оба проперти одинаково вроде устроены

Denis
16.07.2017
18:18:13
Чо такое _delegating_property?

Aragaer
16.07.2017
18:19:31
какой-то хитрый способ создания проперти как обертка для доступа к __dict__['_mock_имя_проперти']
ну это стандартная библиотека unittest.mock

Denis
16.07.2017
18:20:01
Если проперти присвоить экземпляру, ничего не заработает

Aragaer
16.07.2017
18:20:20
это не экземлпяр, это поле

Denis
16.07.2017
18:20:38
Мб called там переписывается при запуске, а called_count нет

Aragaer
16.07.2017
18:20:53
https://github.com/python/cpython/blob/3.6/Lib/unittest/mock.py

Denis
16.07.2017
18:20:54

Aragaer
16.07.2017
18:21:17
https://github.com/python/cpython/blob/3.6/Lib/unittest/mock.py#L497
так. Заборол. Разницу между параметрами new и new_callable при вызове patch буду осознавать позже

zerc
16.07.2017
18:32:53
Хелло, для Джуниора есть работа ?

Denis
16.07.2017
18:33:59
Хелло, могу дать таску, только бесплатно

Kisialeu
16.07.2017
18:34:56

Denis
16.07.2017
18:35:24
Есть тут любители геометрии? Даны несколько многоугольников на плоскости. Без самопересечений, но между собой они могут пересекаться. Нужно найти площадь их симметрической разности (ксора).

Google

Denis
16.07.2017
18:36:44
Вот надо взять путь в формате svg path и посчитать его площадь

Alex
16.07.2017
18:36:56

Denis
16.07.2017
18:37:28
Стандартная евклидова плоскость, координаты вещественные

Valerii
16.07.2017
20:08:55
Привет товарищи!
Зубры, посоветуйте книгу по алгоритмам, или курс.

Firestalk
16.07.2017
20:10:19
Для совсем нулевых знаний https://ru.hexlet.io/courses/introduction_to_algorithms
но там примеры и упражнения на js, пусть и без сложностей

Valerii
16.07.2017
20:13:26
Спасибо, как раз для меня =)

Firestalk
16.07.2017
20:14:08
Если нужно с примерами на питоне, могу только посоветовать
"Адитья Бхаргава - Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих. " - книга вроде 2017 года,

Kisialeu
16.07.2017
20:17:33
Или кодакадемию попробуйте пройти - для начального почти нулевого уровня самое то. Там на англ правда все го это только плюс

Valerii
16.07.2017
20:26:53
Спаcибо. А по поводу книги Рода Стивенса "Алгоритмы" что нибудь можете сказать?

Kisialeu
16.07.2017
20:27:57
Почитай лучше грокаем алгоритмы

Алексей
16.07.2017
20:28:02

Алексей
16.07.2017
20:28:05
Вот топчик

Kisialeu
16.07.2017
20:28:23
Она читается ща день, она юзает питон в примерах и она клевая!

Valerii
16.07.2017
20:34:09
Понял, как прочитаю вернусь =)

Alex
16.07.2017
21:02:46
Всем привет! Есть вопрос) (в гугле не забанили, но дзен его пока не познан).
Возможно ли как-нибудь к этому чуду прикрутить костыль(или кошерное решение) производить поиск непосредственно по файлу(а не куче файлов?) Спасибо!)
https://github.com/shanginn/py_telegram_notifier/blob/master/bot.py

Pavel
16.07.2017
21:08:29

Vladislav
16.07.2017
21:11:38
+

Alex
16.07.2017
21:14:24
ну, один файл - это тоже куча.
Соглашусь, но задача передо мной стоит такая - производить поиск по файлу и выдавать ответ строки если она имеет соответствие пример /cat example выдавал бы либо example bla bla bla (всю строку) либо ничего не отвечал

Google

Alex
16.07.2017
21:14:56
ЗЫ-признаюсь, в Python дуб-дубом

Pavel
16.07.2017
21:15:35

Vespertilio
16.07.2017
21:16:08
это ж бот для телеги

Alex
16.07.2017
21:17:06
а что делает код, ссылку на который ты показал?
Это вообще бот(спинным мозгом чую забодали про них спрашивать) который кроме всего прочего отдает содержимое перечисленных файлов. И дабы не плодить файло в папке хотелось бы решить вариант именно одним файлом

Admin
ERROR: S client not available

Alex
16.07.2017
21:19:12
Вот если вот это подпихнуть - взлетит?
with open("filename.txt") as f:
for line in f:
if "Smith" in line:
print line

Vespertilio
16.07.2017
21:19:15
он не плодит файло он, только читает тот файл что ты ему напишешь

Alex
16.07.2017
21:21:02
в смысле плодить файло?
Он и не плодит.Я данный проджект использую для отдачи паролей локального админа. а т.к. компов овер 400, и не всегда доменным подцепиться есть возможность, то вот такая загогулина и получается. больше 400 файлов в папке получается. жесть же.

Vespertilio
16.07.2017
21:21:29

Alex
16.07.2017
21:22:16
ну так а причем тут бот?
Не в боте дело, а в необходимости малец изменить код под свои нужды) а я походу уже в упор нифига не вижу) вот и попросил подсказки)

Vespertilio
16.07.2017
21:23:52
def cat_file(bot, chat_id, filename):
with open(filename, 'rb') as file:
data = []
while True:
data_chunk = file.read(4096)
if not data_chunk:
break
data.append(data_chunk)
bot.sendMessage(chat_id, parse_mode="Markdown", text="*%s*:" % filename)
for data_chunk in data:
bot.sendMessage(chat_id, parse_mode="Markdown", text="```\n%s\n```" % data_chunk)
bot.sendMessage(chat_id, parse_mode="Markdown", text="*End of file %s*" % filename)
вот эта функция читает собственно сам файл по 4096 байт чанками и шлет сообщениями в чат судя по всему
конечно можно тут добавить поиск например
если это требуется

Alex
16.07.2017
21:25:30
Я вот и не понимаю - куда там поиск впихнуть по файлу(например passes)
я выше постил вариант как мне показалось правильный, но боюсь не взлетит

Vespertilio
16.07.2017
21:28:52
добавить в ту функицю переменную в которую будет передаваться искомая строка и расширить команду либо свою написать
или на две команды разбить. вобщем как удобно. а там регуляркой искать или тоже как удобно

Google

Alex
16.07.2017
21:35:52
Спасибо)
буду пробовать

Vespertilio
16.07.2017
21:36:16

Alex
16.07.2017
21:36:36

Python'ер
16.07.2017
21:40:09
Дайте ссылку на чат разработчиков ботов, пожалуйста.

Denis
16.07.2017
21:40:33
@botoid

Alex
16.07.2017
21:42:01
Свалил туда) больше не мешаю) спасибо)


Vespertilio
16.07.2017
21:49:14
не до конца, но общий вектор вкурил
ну вот пример, там есть команда /cat и функция на нее, которая вызывает cat_file
def cat(bot, update, args=[]):
for file_name in config['files']:
if len(args) > 0 and file_name not in args:
continue
cat_file(bot, update.message.chat_id, file_name)
можно создать команду /filename и функцию которая будет просто сохранять переданное имя файла в переменную
filename = None
def cat(bot, update):
filename = update.message.text.split()[1]
update.message.reply_text(‘Now provide search string using /search <text> command’)
и в следующей функции принимаешь строку поиска и вызываешь функцию поиска куда передаешь название файла и со строкой поиска
def search(bot, update):
search_str = update.message.text.split()[1]
search_in_file(filename, search_str, update)
def search_in_file(filename, search_str, update):
…
update.message.reply_text(“This is your result: {}”.format(result))


Alex
16.07.2017
21:51:25
ну вот пример, там есть команда /cat и функция на нее, которая вызывает cat_file
def cat(bot, update, args=[]):
for file_name in config['files']:
if len(args) > 0 and file_name not in args:
continue
cat_file(bot, update.message.chat_id, file_name)
можно создать команду /filename и функцию которая будет просто сохранять переданное имя файла в переменную
filename = None
def cat(bot, update):
filename = update.message.text.split()[1]
update.message.reply_text(‘Now provide search string using /search <text> command’)
и в следующей функции принимаешь строку поиска и вызываешь функцию поиска куда передаешь название файла и со строкой поиска
def search(bot, update):
search_str = update.message.text.split()[1]
search_in_file(filename, search_str, update)
def search_in_file(filename, search_str, update):
…
update.message.reply_text(“This is your result: {}”.format(result))
Спасибо) буду править)


Sergey❄️
17.07.2017
00:01:22
Всем привет, переношу вопрос из бегитнерсов.
Нужно сделать post запрос с кириллицей, кириллица конвертится в %D0%BF%D1%80%D0%B8%D0%B2%D0%B5%D1%82 подобные вещи, нужно чтобы не конвертилось. Через кастомный запрос в requests конвертируется, в urlib3 ругается на non-ascii слово в запросе, что делать?

Aleksandr
17.07.2017
00:14:31

Sergey❄️
17.07.2017
00:15:27

Aleksandr
17.07.2017
00:16:31
клиент всегда энкодит non-ascii символы

Sergey❄️
17.07.2017
00:16:57