
Denis
15.02.2017
20:12:00
Код какой-то

Kanat
15.02.2017
20:12:10
хм

Игорь
15.02.2017
20:15:02
кто-то себе на мобиле пилил скрипт инициализации переменных для питона

Aragaer
15.02.2017
20:16:07
этот кто-то не умеет в циклы и списки

Google

Nikolay
15.02.2017
20:16:23
?

Aragaer
15.02.2017
20:17:35
for env_var in ['TERM', 'PATH']:
fd.write("%s=%s\n" % (env_var, os.environ.get(env_var))
приправить лямбдами по вкусу

Nikolay
15.02.2017
20:18:19
Кортежи быстрее ?

Игорь
15.02.2017
20:21:05
можно даже не вводить названия переменных. os.environ это dict

Aragaer
15.02.2017
20:21:53
ну его не весь надо, а только ключи из определенного списка

Игорь
15.02.2017
20:22:37
судя по всему он его весь и выцепил, ибо на компе он не больше

Nikolay
15.02.2017
20:23:35
Кто же виноват, что написавший это инвалид.

53r63rn4r
15.02.2017
20:24:51
Вообщета он канат ананимус

Андрей
16.02.2017
06:01:25

b0g3r
16.02.2017
07:02:49

UnkownUSR
16.02.2017
07:03:51

b0g3r
16.02.2017
07:05:51

Google

Konstantin
16.02.2017
08:01:33
народ подскажите. есть у класса __getattr__, можно как-то задать список доступных атрибутов? чтоб когда во всяких pycharm работать сразу было видно что уже доступно, а не вспоминать, что там возможно есть, чего нет

dfx
16.02.2017
08:23:47
насколько я помню, инициализация кортежа действительно быстрее
$ python3 -m timeit 'a = [1, 2]'
10000000 loops, best of 3: 0.0572 usec per loop
$ python3 -m timeit 'a = (1, 2)'
100000000 loops, best of 3: 0.0125 usec per loop
а поиск как минимум на уровне списка

b0g3r
16.02.2017
08:58:46
Конструкции
for el in (el1, el2):
И
for el in [el1, el2]:
Равнозначны

Ivan
16.02.2017
09:05:37

Konstantin
16.02.2017
09:06:10
да, но не только для IDE

Ivan
16.02.2017
09:06:27
Тогда не понял

b0g3r
16.02.2017
09:06:30

dfx
16.02.2017
09:06:46
Конструкции
for el in (el1, el2):
И
for el in [el1, el2]:
Равнозначны
>>> dis('for i in [1, 2]: print(i)')
1 0 SETUP_LOOP 30 (to 33)
3 LOAD_CONST 0 (1)
6 LOAD_CONST 1 (2)
9 BUILD_LIST 2
12 GET_ITER
>> 13 FOR_ITER 16 (to 32)
16 STORE_NAME 0 (i)
19 LOAD_NAME 1 (print)
22 LOAD_NAME 0 (i)
25 CALL_FUNCTION 1 (1 positional, 0 keyword pair)
28 POP_TOP
29 JUMP_ABSOLUTE 13
>> 32 POP_BLOCK
>> 33 LOAD_CONST 2 (None)
36 RETURN_VALUE
>>> dis('for i in (1, 2): print(i)')
1 0 SETUP_LOOP 24 (to 27)
3 LOAD_CONST 3 ((1, 2))
6 GET_ITER
>> 7 FOR_ITER 16 (to 26)
10 STORE_NAME 0 (i)
13 LOAD_NAME 1 (print)
16 LOAD_NAME 0 (i)
19 CALL_FUNCTION 1 (1 positional, 0 keyword pair)
22 POP_TOP
23 JUMP_ABSOLUTE 7
>> 26 POP_BLOCK
>> 27 LOAD_CONST 2 (None)
30 RETURN_VALUE
разницу сам найдешь

b0g3r
16.02.2017
09:07:36

dfx
16.02.2017
09:07:53
$ python3 -m timeit 'for i in (1, 2): i'
10000000 loops, best of 3: 0.0668 usec per loop
$ python3 -m timeit 'for i in [1, 2]: i'
10000000 loops, best of 3: 0.12 usec per loop

b0g3r
16.02.2017
09:09:33
Соснул, признаю

dfx
16.02.2017
09:11:08
они почти идентичны если там переменные, но при этом есть разница в лексеме build list/build tuple

b0g3r
16.02.2017
09:11:41
Мне помнилось будто они вообще полностью идентичные были

Konstantin
16.02.2017
09:11:57
Тогда не понял
ну вот есть dir(<class>) и чтоб он там список этих параметров. можно конечно через метод все эти поля выводить, но иногда проще использовать __getattr__(). и вот если б был список атрибутов доступный через dir() было бы куда удобней

Google

Сергей
16.02.2017
09:38:05
Это тебе только self.__dir__.update(instance.__dir__)
только ещё instance.__dir__ отфильтровать надо от магических методотов и свойств.

Ivan
16.02.2017
09:39:13
Интересный кейс какой-то. Почему бы не отнаследоваться?
можно ведь и динамически - type над этим instance

dfx
16.02.2017
09:41:04
можно собрать __dict__ всех интересующих тебя объектов (инстанса, родительских классов кроме обжекта)

Pavel
16.02.2017
10:01:57

Евгений
16.02.2017
10:42:04
Привет всем. Суть проблемы - есть app, а есть задачи, которые должны выполнятся по cron'у, который запускает отдельный файлик. И вот как из этого отдельного скрипта подключится к БД через sqlalchemy?
engine = create_engine(SQLALCHEMY_DATABASE_URI)
session = sessionmaker(bind=engine)()
object_alias = aliased(Object)
suquery = session.query(Sensor).filter(and_(Sensor.sstatus is False, Sensor.object_id == object_alias.id))
session.query(Object).filter(suquery.exists()).update({Object.ostatus: False})
session.query(Object).filter(~suquery.exists()).update({Object.ostatus: True})
session.commit()
блин. ничерта не понятно
http://pastebin.com/erbpAtdv

Johnnie
16.02.2017
10:42:53
@github_gist_bot

I'm_your_god
16.02.2017
10:43:25
народ, а нормально кверисеты в джанге хранить внутри классметодов, а не в менеджеры их класть?
а то я уже кучу кверей в классметоды впихнул, вроде так удобно...
SomeModel.get_some_shit()

Евгений
16.02.2017
10:49:16
что-то тут видимо никто не дружит с sqlalchemy, раз второй раз вопрос задаю и все молчат =(

Igor
16.02.2017
10:49:30

Евгений
16.02.2017
10:49:39
или я рукожоп

Igor
16.02.2017
10:49:48
что тебе мешает в скрипте (отдельном файлике) инициализировать алхимию?

Евгений
16.02.2017
11:13:58
ничего, я вроде таки и сделал...

Admin
ERROR: S client not available

Евгений
16.02.2017
11:18:50

Google

Igor
16.02.2017
11:19:50
я имею в виду, что непонятно, в чем заключается проблема
ты спрашиваешь "как подключиться к БД?" и даешь код подключения к БД о_О
не?

Евгений
16.02.2017
11:21:06
тупанул
('Error while connecting to database:\n- SQLCODE: -902\n- I/O error during "lock" operation for file "main.fdb"\n- Database already opened with engine instance, incompatible with current', -902, 335544344)
Ошибонька
всё. кажись разобрался.

O'Miay
16.02.2017
11:53:57

Rocket
16.02.2017
11:54:29
?, но причем тут питон?

Aragaer
16.02.2017
11:55:19
а что не так про попугайчика?
ну то есть мне еще не 39, но вроде все норм

O'Miay
16.02.2017
11:56:01

Artem
16.02.2017
11:56:08
должен уже о рассаде думать
о парнике

O'Miay
16.02.2017
11:56:33

Rocket
16.02.2017
11:56:45
стрижка только началась!

Roman
16.02.2017
11:57:47

Aragaer
16.02.2017
12:00:32
ну если б мне в руки попал попугай и накладные ресницы, почему б не сделать из попугая панка?

O'Miay
16.02.2017
12:02:18

Rocket
16.02.2017
12:03:50
Сегодня же куплю себе попугая и накладные ресницы
ахахаха, наивный... ресницы можешь пока не покупать - пройдет пара месяцев чем он станет тебе на палец садиться, а дать себя трогать - это не меньше полу года, а то и вовсе может никогда не даваться в руку

Google

O'Miay
16.02.2017
12:04:24
JPEG

Евгений
16.02.2017
12:04:48
не?
не, на тестовой всё равно лок и не может к БД подцепится.

O'Miay
16.02.2017
12:20:22