@python_beginnersЭта группа больше не существует

Страница 1589 из 1885
Igor
12.04.2017
06:45:46
точно не по одному

Genius
12.04.2017
06:45:56
а если ещё проще?)

Igor
12.04.2017
06:46:06
в плане - проще?

Genius
12.04.2017
06:46:08
первый раз сталктваюсь с этим

Google
Genius
12.04.2017
06:46:18
обьяснить

Igor
12.04.2017
06:46:19
проще объяснить или проще сделать?

инфу о каждом запросе, который отправляется на этот метод API, сохраняешь где-нибудь в памяти. или в простом как палка хранилище типа redis'а.

когда там накопится Nное количество запросов - побольше, тыщ десять, скажем - всех их скопом, одним INSERT-запросом, сохраняешь в БД

это будет в разы быстрее и эффективнее, чем каждый запрос херачить INSERT в таблицу

если, конечно, бд поддерживает такие запросы

Genius
12.04.2017
06:48:41
какую бд лучше использовать? SQ Lite подойдёт?

Igor
12.04.2017
06:49:11
если 1000 в секунду, я б че-нить помощнее взял типа postgresql

может, sqlite тоже справится

но 1000 в секунду - это серьезно, а sqlite - несерьезно :) имхо

ну, можно еще просто в лог-файлик писать

если много потоков/процессов, то наверн в файлики

Genius
12.04.2017
06:50:53
для postgresql ж сервер нужен?

Google
Igor
12.04.2017
06:51:09
ага

ну, ниче не мешает его локально поднять

Pavel
12.04.2017
06:51:15
а тебе бессерверное решение надо?

и эти запросы, они из одного процесса идут, или из разных?

Genius
12.04.2017
06:51:52
ну не то чтоб обязательно. мне вообще решение нужно.)

Igor
12.04.2017
06:51:53
хотя если бессерверное, то sqlite/файлы зависит от того, че ты потом будешь с этими логами делать

Pavel
12.04.2017
06:52:27
и 1000 RPS - это круглые сутки, или бывают спады нагрузки?

Genius
12.04.2017
06:52:30
я если честно не знаю что с ними будет. это вся информация((

Павел мне всего лишь нужно сделать как в задании написано и всё. а как и что у них работает я не знаю)

Igor
12.04.2017
06:53:32
ну так может это.. уточнить?

Genius
12.04.2017
06:53:36
это ребята со стартапа какого то

Pavel
12.04.2017
06:53:45
И какое из них правильное - зависит от ряда условий.

А если "просто сделать" - ну так найди места в коде, где вызывается апи, да и добавь`open('log.txt', 'w').write('Calling the API\n')`

Genius
12.04.2017
06:55:20
думаю просто сделать нужно и всё

Pavel
12.04.2017
06:55:25
всё, таск закрыт, кому надо более точное решение - пусть задачу точнее ставит.

Genius
12.04.2017
06:55:54
ХМ. спасибо))

Agent
12.04.2017
06:59:45
Привет, пару вопросиков есть - чем вы посоветуете дебажить питон - инструментов ведь не один, какой все же лучше , и второй вопрос - если нужно вести maintain конкретной функции которая никак не объявляется в моём скрипте и у меня нет на руках полного кода где используется вывод этой функции и я не знаю что происходит с этими данными дальше - как отслеживать корректные ли данные в том что функция возвращает. Без написания костылей которые выводят оттуда инфу, есть ли специализированные инструменты которые по ходу выполнения скрипта показывают наполнение конкретных переменных и величин которые возвращает функция даже если она не объявлена?

Igor
12.04.2017
07:00:28
не один. дебаггеры в pycharm, vs code. стандартный pdb. надстройки над ним - ipdb и pudb. wdb с веб-интерфейсом.

> есть ли специализированные инструменты которые по ходу выполнения скрипта показывают наполнение конкретных переменных и величин которые возвращает функция даже если она не объявлена если я правильно тебя понял, да, такие инструменты есть и они как раз называются IDE и дебаггеры %)

Google
Agent
12.04.2017
07:01:16
Понятно спасибо а то я всегда только в саблайме кодил)

IDE не юзал, а только пару раз простенький дебагер уже не помню какой но там точно не было того что мне сейчас нужно. Он показывал только где происходят ошибки

Solyar
12.04.2017
07:04:29
принтами например?)
Мне за принты ментор обещал яйца отстрелить

Igor
12.04.2017
07:04:36
%)

stonepig
12.04.2017
07:05:06
тяжело тебе будет без яиц-то

Solyar
12.04.2017
07:05:21
тяжело тебе будет без яиц-то
Так я и принты не юзаю

Artem
12.04.2017
07:05:25
зато с принтами, лел

stonepig
12.04.2017
07:05:28
а мог бы

Solyar
12.04.2017
07:05:32
Logging

Igor
12.04.2017
07:05:51
принты, логгинг, однохуйственно

logging - если есть желание поебаться и настроить (или если уже настроено), принты - если нету

Igor
12.04.2017
07:07:57
так-то да

stonepig
12.04.2017
07:08:03
мудрое решение

Solyar
12.04.2017
07:09:36
Братцы можете оценить ущербности кода?

b0g3r
12.04.2017
07:09:59
Показывай

Pavel
12.04.2017
07:11:00
Показывай
Приходит ветеринар к терапевту. Терапевт: — На что жалуетесь? Ветеринар: — Нет, ну так каждый может!

Ruslan
12.04.2017
07:11:24
Мне за принты ментор обещал яйца отстрелить
Всегда доставляет подобный излишний и ничем не подкрепленный пафос в программистской/околопрограмистской среде. Интересно, сколько яиц уже ваш ментор отстрелил..

Google
Игорь
12.04.2017
07:12:03
https://gist.github.com/anonymous/7c958f76516d5453c16ecd7d5f3d99ca Замечания поправил

Igor
12.04.2017
07:13:02
cursor.execute('grant all privileges on %s.* to \ "%s"@"localhost" identified by "%s"' % (name, user, secret)) 1) привет, SQL-инъекции 2) можно форматировать симпатичнее, ща найду

Pavel
12.04.2017
07:13:14
Igor
12.04.2017
07:13:18
^ вон пример вчера писал

return False if len(secret) < 8 else True return len(secret)<8
return len(secret) >= 8 или return not len(secret) < 8

Solyar
12.04.2017
07:15:21
https://github.com/Diz100rM/pymsgbot/tree/development

Johnnie
12.04.2017
07:15:59
https://gist.github.com/anonymous/7c958f76516d5453c16ecd7d5f3d99ca#file-gistfile1-txt-L104 а зачем здесь while 1?

ну и обычно while True, когда бесконечный цикл

Agent
12.04.2017
07:16:43
Подскажите пожалуйста сайт где можно ментора найти?) помню ресурс был такой оставляешь заявку - типа биржа учеников и менторов

Igor
12.04.2017
07:17:05
mkdev.me

melancholiac
12.04.2017
07:17:13
ну и обычно while True, когда бесконечный цикл
ксти можно замутить бесконечный цикл через for

Johnnie
12.04.2017
07:17:17
return False if os.path.exists(directory(servername)) else True return not os.path.exists(directory(servername))

Agent
12.04.2017
07:17:19
Спасибо!

melancholiac
12.04.2017
07:17:39
написать итератор, который будет илдить бесконечно?

Johnnie
12.04.2017
07:18:15
return False if user in users else True return user not in users

и т.д.

Solyar
12.04.2017
07:19:30
return user in user if user == user

Igor
12.04.2017
07:19:40
Johnnie
12.04.2017
07:20:01
if mysqldb == 'yes': тут я б добавил .strip().lower()

Google
Solyar
12.04.2017
07:20:02
а?
Не обращайте внимание

а?
Лучше ссылочку полистай и скажи как вообще выглядит )))

Johnnie
12.04.2017
07:20:58
или if mysqldb.strip().lower() in ('yes', 'y', 'да', 'д')

Pavel
12.04.2017
07:21:56
практически к каждой функции можно написать замечание. 1-5 все функции get_ - рекурсия не нужна 6. create_db_user - sqli уже написали 7. check_user_exists - генератор и any() 8. check_db_exists - генератор и any() 9. check_quota_ftp - цикл не нужен 10 - check_len_pass - тернарный оператор не нужен 11 check_servername тернарный оператор не нужен 12 check_dbuser_exists - перепистаь на запрос select user where username=? ну и т.д.

Johnnie
12.04.2017
07:22:40
и еще - mysqldb такое себе название для переменной с ответом yes

Pavel
12.04.2017
07:23:56
кстати, про нейминг функций тоже можно пару слов написать

Johnnie
12.04.2017
07:24:25
кстати, какой там лимит глубины рекурсии по дефолту? 1000?

Pavel
12.04.2017
07:26:16
кстати, какой там лимит глубины рекурсии по дефолту? 1000?
угу, но можно и поправить, если по-другому никак

Johnnie
12.04.2017
07:26:47
а потом вроде эксепшн и приехали

если уж прям нужно выпытать данные, то лучше там впилить этот while True:

Dmitriy
12.04.2017
07:27:33
Ибо нехуй. Можно словить переполнение стека

Johnnie
12.04.2017
07:28:03
ну маловероятно, что юзер сделает ошибку 1000 раз :) но все же

она тут нахуй не нужна эта рекурсия

Dmitriy
12.04.2017
07:28:20
В cpython вроде как защита от дурака

Pavel
12.04.2017
07:28:49
придумал. Надо сделать, чтобы если предыдущая операция окончилась успешно, то в конце PS1 был :), а если нет- :(

Igor
12.04.2017
07:28:58
ага, тож об этом думал

Dmitriy
12.04.2017
07:32:28
Кстати $ pypy Python 2.7.10 (bbd45126bc691f669c4ebdfbd74456cd274c6b92, Jul 26 2016, 12:19:53) [PyPy 5.0.1 with GCC 6.1.1 20160621 (Red Hat 6.1.1-3)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>> import sys >>>> sys.getrecursionlimit() 100 >>>>

Страница 1589 из 1885

Эта группа больше не существует Эта группа больше не существует