
53r63rn4r
30.01.2017
13:41:08
Такой вопрос: а есть анализ кода плагины или что то типа такого?
П.с. Для шарпа есть пвс студия

Artem
30.01.2017
13:42:42
Есть pylint, flake8
Это простые штуки

Igor
30.01.2017
13:43:31
была еще какая-то утилита для mccabe complexity check

Google

Artem
30.01.2017
13:43:39
А умный анализ для питона фиг напишешь, он динамический дофига

Дмитрий
30.01.2017
13:50:09
Кто-нибудь может помочь?
Почему это может не работать и в локальных переменных забиты другие значения, нежели, чем в самом выполняемомо коде
__variables_names = []
__code_ast = ast.parse(str(__code))
__code_len = len(__code_ast.body)
for i in range(__code_len):
line = __code_ast.body[i]
if type(line) == ast.Assign:
if type(line.value) == ast.List:
__variables_names += for_all_vars(line)
else:
__variables_names += for_all_vars(line)
if type(line) in [ast.If, ast.For, ast.While]:
for d in range(len(line.body)):
line_in_if = line.body[d]
__variables_names += for_all_vars(line_in_if)
if get_variables_names is False:
return get_vars_num(__code, __variables_names)
else:
return __variables_names

Artem
30.01.2017
13:52:07
Такие вопросы нужно задавать так:
Есть код
Тут код, оформленный как кодОн должен делать то-то
Вместо этого на таком-то входе он делает то-то

Дмитрий
30.01.2017
13:52:25
Тогда минуту

Евгений
30.01.2017
13:54:02
в телеграме, кстати, случаем нет подсветки кода?

Igor
30.01.2017
13:54:08
нет

Евгений
30.01.2017
13:54:31
а было бы круто...

Igor
30.01.2017
13:54:39
pastebin
slack


Дмитрий
30.01.2017
13:54:44
Есть код
def get_variables(__code, get_variables_names=False):
"""
:param get_variables_names: Флаг, указывающий на то, что нужно вернуть только имена перменных
:param __code: код программы, откуда нужно получить перменные
:return: возвращает все перменные из кода
"""
variables_names = []
for_return = []
code_ast = ast.parse(str(__code))
code_len = len(code_ast.body)
for i in range(code_len):
line = code_ast.body[i]
if type(line) == ast.Assign:
if type(line.value) == ast.List:
variables_names += for_all_vars(line)
else:
variables_names += for_all_vars(line)
if type(line) in [ast.If, ast.For, ast.While]:
for d in range(len(line.body)):
line_in_if = line.body[d]
variables_names += for_all_vars(line_in_if)
if get_variables_names is False:
signal.signal(signal.SIGALRM, signal_handler)
signal.alarm(1)
try:
exec(__code)
except:
return "Error"
for i in range(len(variables_names)):
try:
for_return.append(variables_names[i] + "=" + str(locals()[variables_names[i]]))
except KeyError:
pass
return list(set(for_return))
else:
return variables_names
get_variables("i = 5")
Должен выдавать ["i=5"], выдает ['i=0']


Artem
30.01.2017
13:54:54
gist можно

Igor
30.01.2017
13:55:02
и вот такая простыня это как раз уж лучше в gist/pastebin :)

Johnnie
30.01.2017
13:55:31
а чо в тг нет бота который пастил бы туда сразу?
я один нашел, но он мертвый че-то

Google

Denis
30.01.2017
13:56:49
Своего сделай

Artem
30.01.2017
13:57:12
for_all_vars это че

Subbotin
30.01.2017
13:57:30
def telegram():
show_me_code_with_colors = True
show_now()
хм. не работает

Dmitriy
30.01.2017
13:57:52

Johnnie
30.01.2017
13:58:13

Artem
30.01.2017
13:59:48


Denis
30.01.2017
14:00:17
Почему в питоне разрешен пустой except?

Artem
30.01.2017
14:00:21
чо будет, если в коде сделать не i == 5, а j == 5?

Denis
30.01.2017
14:00:45
Потому что явное лучше неявного

Johnnie
30.01.2017
14:00:56
except Exception: pass

Denis
30.01.2017
14:01:03
Многие новички пишут его, не зная, что он делает

Igor
30.01.2017
14:01:07
почему в питоне функциям можно не писать return?

Denis
30.01.2017
14:01:08

Igor
30.01.2017
14:01:14
почему в питоне можно писать return без аргументов?

Дмитрий
30.01.2017
14:01:18
Артем, да, ты прав, спасибо большое!

Inhumate
30.01.2017
14:01:36
это же знаменитый Pokémon Exception Handling

Denis
30.01.2017
14:01:43
А except: pass кушает в том числе и KeyboardInterrupt

Google

Inhumate
30.01.2017
14:01:46
http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html

Artem
30.01.2017
14:02:04
но это не значит, что это хорошая практика

Denis
30.01.2017
14:02:25
Если бы надо было явно писать except BaseException, было бы лучше

Igor
30.01.2017
14:03:25
если бы в питоне много чего было по другому, было бы лучше
%)

Subbotin
30.01.2017
14:07:12
Придумал стартап. Сервис посмертной отправки сообщений. Пишешь с какого емэйла на какой послать какой текст (ну и в принципе для соцсетей тоже можно только надо ещё пароль приложить туда). Складывается это все в шифрованный файл и засылается на сервер. после вашей смерти доверенные лица заходят на портал, вводят куски разделёных секретов из которых собирается ключ шифрования. файл расшифровывается и рассылается что куда надо.

Bo0oM
30.01.2017
14:08:07
было уже

Maxim robox
30.01.2017
14:08:10

Alexey
30.01.2017
14:08:23

Maxim robox
30.01.2017
14:09:27
Есть лямбда типа lambda x: x * 2 - 15
Хочу применить её последовательно пять раз.
Типа 20 * 2 - 15 * 2 - 15 * 2 - 15 * 2 - 15 * 2 - 15
Как это сделать? В стандартной либе есть что-нибудь?

Subbotin
30.01.2017
14:09:45

Alexey
30.01.2017
14:10:15

Artem
30.01.2017
14:10:20

Rookie
30.01.2017
14:10:29
Y combinator - не то?

Subbotin
30.01.2017
14:10:33

Maxim robox
30.01.2017
14:11:13

Subbotin
30.01.2017
14:11:17
ну сделай разделеный секрет на 10 частей из которых достаточно любых двух

Maxim robox
30.01.2017
14:11:48
совсем не то
Он отслеживает, что ты умер, и рассылает нужным людям нужную инфу. Что тут не то?

Google

Rookie
30.01.2017
14:12:57

Pavel
30.01.2017
14:13:04

Subbotin
30.01.2017
14:13:09

Maxim robox
30.01.2017
14:13:13

Pavel
30.01.2017
14:13:36

Subbotin
30.01.2017
14:13:39
лол :)

Maxim robox
30.01.2017
14:13:53

Subbotin
30.01.2017
14:14:04
я годами в гугл не захожу

Maxim robox
30.01.2017
14:14:05
И за месяц начнут бомбить на почту и телефон.

Admin
ERROR: S client not available

Johnnie
30.01.2017
14:14:09
а если воскрес потом, вернут акк?

Alexey
30.01.2017
14:14:19

Maxim robox
30.01.2017
14:14:44
У тебя есть полтора года, либо эта фича не для тебя.

Alex
30.01.2017
14:18:11

Subbotin
30.01.2017
14:19:33

Denis
30.01.2017
14:19:38

Google

Subbotin
30.01.2017
14:19:59
а на телефоне у меня цианоген

Maxim robox
30.01.2017
14:20:27

Subbotin
30.01.2017
14:20:33
а зачем?
fdroid же есть.

Maxim robox
30.01.2017
14:33:29
fdroid же есть.
Только там софт с интерфейсом по гайдлайнам Android 2.x. Мне лично на него больно смотреть.

Subbotin
30.01.2017
14:33:56
я через него пишу тебе

Maxim robox
30.01.2017
14:34:19

Subbotin
30.01.2017
14:34:22
такой же как в аппсторе только без gcm

Maxim robox
30.01.2017
14:34:26
Я вот сегодня накатил.

Subbotin
30.01.2017
14:34:46
там не одна софтина.
в плане не одна софтина с современным интерфейсом.

Maxim
30.01.2017
14:45:04
Кто может помочь с импортами?
Дебажил
Ща код с пастбина кину
Как можно реализовать чтоб программа не вылетала после двух импортов
http://pastebin.com/WrLrT1Fi
http://pastebin.com/x3H3uzzM