@ru_python

Страница 2266 из 9768
53r63rn4r
18.02.2017
10:00:51
regex101.com

Игорь
18.02.2017
10:01:40
Вроде как видела сайт где эти регулярки генерируются
я лет 5-6 назад на такие натыкался, но оказалось, что самому понять проще))

b0g3r
18.02.2017
10:01:45
для изистарта это +
Ну такое себе. Это хорошо, когда ты понимаешь как работают декораторы и лямбды, а так - сранная магия, которая новичку поперек горла встанет

Да и эти декораторы упираются в любом проекте, который больше чем "отвечать а на 1 команду, б на 2 команду"

Google
Игорь
18.02.2017
10:03:10
Ну такое себе. Это хорошо, когда ты понимаешь как работают декораторы и лямбды, а так - сранная магия, которая новичку поперек горла встанет
когда я разбирался, я не понимал что есть декораторы. Да и сейчас до конца я их не понимаю, потому юзаю только по неободимости, если того требует библиотека

b0g3r
18.02.2017
10:03:11
И все равно логику и состояния писать)

Чудесная библиотека для быстрой разработки, но новичкам противопоказана

Johnnie
18.02.2017
10:04:29
python-telegram-bot уже был?

Игорь
18.02.2017
10:05:01
python-telegram-bot уже был?
оно не сдохло?

Johnnie
18.02.2017
10:05:21
Нет, а почему должно было?

b0g3r
18.02.2017
10:06:56
Декораторы - большая любовь, чудесная красота

Маришка
18.02.2017
10:07:11
Не очень

Между @asyncio.coroutine def function И async def function Явно видна разница в читабельности

b0g3r
18.02.2017
10:08:40
Эээ

Google
Игорь
18.02.2017
10:09:00
python-telegram-bot уже был?
а не, у меня бот на telebot был, так оно сдохло

b0g3r
18.02.2017
10:09:16
Игорь
18.02.2017
10:10:54
Кто куда сдохло
у меня был бот на этой либе. Потом он заглох. Обновлял либу, пофик, не завелось. Ответом было от сервера, что апи телеграма не такое. Сейчас надобность в боте отпала

b0g3r
18.02.2017
10:11:26
Но как раз фича в том, что телепот дольше всех будет жить

Потому что жсон отдает и не пытается его в объекты

И если апи поменяется - никуда не упадет

(ну почти никуда)

Так что сомневаюсь что проблема в нем

Как раз pytelegrambot все в объекты

Игорь
18.02.2017
10:12:55
И если апи поменяется - никуда не упадет
гг. посмотри под капот, как устроен апи и как его юзают.

b0g3r
18.02.2017
10:13:43
гг. посмотри под капот, как устроен апи и как его юзают.
Можно чуть более конкретную претензию, а не дартаньянство?)

Игорь
18.02.2017
10:13:58
под "сдохло" я имею ввиду, что никто не поддерживает уже

Игорь
18.02.2017
10:15:02
Можно чуть более конкретную претензию, а не дартаньянство?)
это было два-три месяца назад. С тех пор столько времени и событий прошло...

b0g3r
18.02.2017
10:15:20
Я про "капот")

Игорь
18.02.2017
10:21:31
А еще там пришлось сделать такой хак: def start(): try: bot.polling(none_stop=True) except Exception: bot.stop_polling() pass sleep(10) start() иначе бот падал.

b0g3r
18.02.2017
11:01:23
К тому же с таким подходом бот все равно упадет когда превысит допустимую глубину рекурсии

Чем message_loop неугодил?

Google
b0g3r
18.02.2017
11:03:45
А, я понял чем

Я плохо читаю

Я думал мы про telepot говорим, а мы оказывается про pytelegrambotapi

А еще там пришлось сделать такой хак: def start(): try: bot.polling(none_stop=True) except Exception: bot.stop_polling() pass sleep(10) start() иначе бот падал.
Ну опять же без экзепшена не поймёшь чё там такое и к чему такой говнокод. none_stop = True игнорирует ошибки от телеграма

Игорь
18.02.2017
11:11:09
Ну опять же без экзепшена не поймёшь чё там такое и к чему такой говнокод. none_stop = True игнорирует ошибки от телеграма
а без нонстопа он он просто завершался на первой же ошибке в сети. Причем, когда я залез под капот то офигел, там ни одного отлова эксепшна небыло.

b0g3r
18.02.2017
11:13:20
Ну скорее всего глаза тебя подвели



короче прежде чем искать ошибки в используемом продукте, стоит поискать ошибки в себе :)

Valery
18.02.2017
11:37:44
Ребят, кому подарить аккаунт с прем battlefield 3 и прем battlefield 4 ?

Denis
18.02.2017
11:38:15
Давай мне, я продам

Valery
18.02.2017
11:38:31
гоу в личку

Oleg
18.02.2017
11:45:54
Мужики, подскажите, пожалуйста, как на питоне в рамках одной функции составить как будет называться переменная, в которую сохранится значение? Например есть функция func Есть переменные var_a, var_b, var_c В функции производится расчёт по объектам. Объекты перебираются списком (a, b, c). На выходе в функции получается значение, соответствующее объекту. Как не вручную сохнарить значения в указанные функции, а циклом, генерируя название переменной в зависимости от рассматриваемого объекта?

arisu
18.02.2017
11:46:30
щито

Ray
18.02.2017
11:46:38
однако

рано я пить перестал

Oleg
18.02.2017
11:47:00
)))) хз как сформулировать яснее )

Aragaer
18.02.2017
11:47:16
вместо переменных используй словарь и генери ключи для словаря

ну или можно поступить как отморозок и писать прямо в locals()

arisu
18.02.2017
11:48:22
exec же

Oleg
18.02.2017
11:48:24
просто таких объектов много и не хочу делать простыню из if elif

Google
Oleg
18.02.2017
11:48:39
хм, ушёл читать про exec

Aragaer
18.02.2017
11:49:02
вместо a, b, c использовать my_objects['a'], my_objects['b'] и т.д.

вместо переменных var_a и прочих = словарь vars с ключами 'a', 'b' и т.п.

Artem
18.02.2017
12:41:11
Как лучше хранить пароли юзеров?
как результат key derivation function вроде pbkdf2, bcrypt, scrypt или argon2. как хэш не надо хранить. отличие в том, что kdf медленные и затратные по памяти и их труднее перебирать, а хеши быстрые и легкие, их можно подбирать по несколько сот миллионов в секунду.

Subbotin
18.02.2017
12:44:46
во-первых то что пароль долго подбирать значит что его и долго проверять. если у тебя например basic авторизация и 10000 запросов в секунду, то ты убьёшься считать 10000 итераций pbkdf2 для каждого

Subbotin
18.02.2017
12:52:23
Там где стоит приблизительно 250 серверов

Admin
ERROR: S client not available

Subbotin
18.02.2017
12:53:02
Один вытянет около 40 таких автоитзаций в секунду

А ещё ты забыл про соль

Игорь
18.02.2017
13:27:32
как результат key derivation function вроде pbkdf2, bcrypt, scrypt или argon2. как хэш не надо хранить. отличие в том, что kdf медленные и затратные по памяти и их труднее перебирать, а хеши быстрые и легкие, их можно подбирать по несколько сот миллионов в секунду.
а толку от нескольких сотен в секунду, если количество попыток ограничено. Плюс, просто хэш пароля не отдается при авторизации, есть еще соль, как уже сказал Субботин.

Artem
18.02.2017
13:28:41
kdf защищает при случаях вроде слива базы данных

Aragaer
18.02.2017
14:02:46
а как бы так изящненько сделать аналог join, но для списков? Есть список ['a', 'b', 'c'], хочу список ['a', '+', 'b', '+', 'c']

arisu
18.02.2017
14:03:06
+

Aragaer
18.02.2017
14:04:48
не, это-то понятно

вобщем похоже самое разумное это просто сделать ['a', '+', 'b', '+', 'c', '+'], а потом удалить последний плюс

arisu
18.02.2017
14:05:26
То что ты изобразил - это не сложение списков

Это сет

А

Google
arisu
18.02.2017
14:05:39
Тьфу

Aragaer
18.02.2017
14:05:40
эээ

arisu
18.02.2017
14:05:41
Туплю

Subbotin
18.02.2017
14:05:54
kdf защищает при случаях вроде слива базы данных
Ещё кстати в идеале стоит использовать разные базы для паролей и основных данных

Aragaer
18.02.2017
14:06:09
я не говорил о сложении списков. Мне надо из одного списка сделать новый, в котором между каждыми двумя элементами первого стоит нужная мне константа

arisu
18.02.2017
14:07:26
Хм

reduce(lambda x, y: x + ['+', y], list, [])

Stanislav
18.02.2017
14:09:33
arisu
18.02.2017
14:10:11
Eldar
18.02.2017
14:10:57
дык zip заюзай

Маришка
18.02.2017
14:13:26
reduce(lambda x, y: x + ['+', y], list, [])
Всегда обходила стороной функцию reduce и до сих пор не знаю что она делает хд

Aragaer
18.02.2017
14:14:50
то же, что и fold в хаскелле 8)

Маришка
18.02.2017
14:15:02
Еще лучше

arisu
18.02.2017
14:16:59
Только применить можно гибче.

Маришка
18.02.2017
14:25:50
А получше объяснить можно?

arisu
18.02.2017
14:32:15
Принимает на вход комбинирующую функцию и список значений

Функция должна вернуть единственное значение

Как результат обработки списка

Aragaer
18.02.2017
14:33:14
комбинирующую функцию, список значений и начальное значение

короче, sum(some_list) это reduce(operator.add, some_list, 0)

есть некий "аккумулятор" и для каждого элемента списка вызывается первая функция, принимая первым аргументом текущее значение аккумулятора, вторым текущий элемент списка. Результат присваивается в аккумулятор. Результатом всего редьюса будет окончательное значение аккумулятора

Страница 2266 из 9768