
Richard
29.06.2016
11:36:05
Есть ли знатоки SQLAlchemy?
Или, может, просто кто подскажет как можно сделать такое есть некоторый фильтр, заранее неизвестный:
`
select_filter = where(a==1).where(a==2)
`
И есть некоторый запрос query.
Хочется программно сделать так:
query.where(a==1).where(a==2).

Alexey
29.06.2016
11:37:15
ты ведь понимаешь, что будет ровно ничего на выходе?

Google

Richard
29.06.2016
11:37:17
Т.е. как бы вызвать аттрибуты у этого query.
Как в питоне этого сделать пока не допёр, в алхимии тоже пока не нашёл.

Alexey
29.06.2016
11:37:39
WHERE a == 1 AND a == 2 же, нет?

Richard
29.06.2016
11:37:41
На выходе будет алхимиевский selectable, который потом выполняется и делает своё дело.
Да пофиг, это для примера. Замени a на b.

Alexey
29.06.2016
11:38:13
а, я думал у тебя это проблема.

Richard
29.06.2016
11:38:30
Просто хочется передать в функцию запрос и фильтры и получить selectable который потом выполнить.
В принципе задача равносильна, например, задаче "передать в функцию словарь и методы словаря и получить функцию, выполняющую задуманное" типа
method = some_func({1:2, 3:4}, update({3:3, 5:6})) а потом сделать method() и оно обновится.

Alex
29.06.2016
11:40:37
передавай в фукнцию свой Query
и фильтры в удобном тебе формате
а, хотя не получица
не, ты конечно можешь наворотить кучу магии
и сделать это для одной конкретной модели - т.е. тебе её надо передавать явно в свою функцию
и внутри фукнции генерить запрос

Google

Alex
29.06.2016
11:48:33
не?
типа:
def make_query(obj, filters):
db.session.query(obj).filter_by(....)

Richard
29.06.2016
11:50:29
Там не только фильтры будут а ещё джоины и всякие select_from

Alex
29.06.2016
11:50:39
да, я как раз хотел написать
что если у тебя джоины будут, то тут уже сложнее

Richard
29.06.2016
11:51:43
Пока я сошёлся на списке этих условий, теперь думаю как мне вызывать метод у объекта когда я имею перед собой не имя метода (тут я бы воспользовался getattr(obj, name) а саму функцию с аргументами.

Andrey
29.06.2016
11:57:14
Слишком много магии получается. Уверен что в итоге не сядешь на какой-нибудь дилдак при дальнейшем использовании?
@richardtheblade

Richard
29.06.2016
11:59:49
Не знаю, может и сяду.
Но я вижу в этом определённое преимущество.

Andrey
29.06.2016
12:00:57
Может проще PLAIN SQL генерить и его исполнять?

Richard
29.06.2016
12:07:58
Как раз не проще.
Собственно, у нас куча классов выполняющие кучу SQL, который отличается одной-двумя строками и условиями, и может быть параметризован.
Вот эту параметризацию я и делаю.

Andrey
29.06.2016
12:11:29
В принципе задача равносильна, например, задаче "передать в функцию словарь и методы словаря и получить функцию, выполняющую задуманное" типа
method = some_func({1:2, 3:4}, update({3:3, 5:6})) а потом сделать method() и оно обновится.
только так у тебя не сработает. тебе надо передавать минимум 3 параметра, объект, метод(можно стрингом, можно методом), параметры метода.

Richard
29.06.2016
12:12:46

Andrey
29.06.2016
12:20:14
def call_method_1 (obj, method_name, params):
return getattr(obj, method_name)(**params)
d1 = {"a":1, "b":2}
call_method(d1, 'update', {"c":3})
print d1
def call_method_2 (obj_method, params):
return obj_method(**params)
d2 = {"a":10, "b":20}
call_method_2(d2.update,{"c":30})
print d2
@richardtheblade

Andrii
29.06.2016
12:22:45
Есть ли опытные люди с aiohttp ?

Cykooz
29.06.2016
12:23:54
Завадавай вопросы без прелюдий

Alexey
29.06.2016
12:24:10
А кто-нибудь пишет на питоне?

Google

[Anonymous]
29.06.2016
12:24:20

Vitali K.
29.06.2016
12:24:21
Не

Alexey
29.06.2016
12:24:22
А хоть кто-нибудь использует базы данных?

Vitali K.
29.06.2016
12:24:27
Тут все на Delphi

Alexey
29.06.2016
12:24:31
Может быть кто-нибудь умеет читать?

[Anonymous]
29.06.2016
12:24:44

Vitali K.
29.06.2016
12:24:55
?

Alexey
29.06.2016
12:25:02

[Anonymous]
29.06.2016
12:25:13

Alexey
29.06.2016
12:25:16
Что „что”?

[Anonymous]
29.06.2016
12:25:24
А?

Alexey
29.06.2016
12:25:30
Кто здесь!?

[Anonymous]
29.06.2016
12:25:36
Где?

Vitali K.
29.06.2016
12:25:38
Я не умею чтить вообще. Прочтите мне что я написал, а то я на знаю

[Anonymous]
29.06.2016
12:25:57

Vitali K.
29.06.2016
12:26:18
Мы write only

Alexey
29.06.2016
12:26:50
'w+b'

[Anonymous]
29.06.2016
12:26:50
Прям как regexpы

Vitali K.
29.06.2016
12:27:14
Write only regexpы?

Kamil
29.06.2016
12:27:28
а Django на Python 3 всё ещё моветон? или можно для продакшн?

Google

Vadim
29.06.2016
12:28:11

Dmitry
29.06.2016
12:28:35
ой всё
нормально на питон 3
переходите
пацаны я разрешаю

Vitali K.
29.06.2016
12:29:11
Говорят там нету распаковки туплов

Vadim
29.06.2016
12:29:16
сейчас вроде только совсем спецфичные вещи + заброшенное гавно не переписаны

Alexey
29.06.2016
12:29:32
говорят там можно писать по-русски.

Admin
ERROR: S client not available

Vadim
29.06.2016
12:30:05
говорят там хаскель инлайнить можно

Dmitry
29.06.2016
12:30:51

Vadim
29.06.2016
12:32:11

Roman
29.06.2016
12:33:06

Vadim
29.06.2016
12:36:02
да уж http://take.ms/Ktcih

Anonymous*
29.06.2016
12:49:36
Друзья, как правильно регексп AZaz и пробел еще
Типа английский алфавит с пробелом и больше ничего

bakatrouble
29.06.2016
12:50:59
[A-Za-z\s]

Anonymous*
29.06.2016
12:51:08
Спасибо

H
29.06.2016
12:53:41
[a-z ], re.I

Anonymous*
29.06.2016
12:55:09
Не помогло если честно

Google

Марк
29.06.2016
12:55:09
Для выполнения задания нужно открыть любую в меру длинную статью из Википедии. Например, эту: Михайловский замок. Текст статьи нужно скопировать в отдельный файл и сохранить на компьютере.
1 (5 баллов). Найти и распечатать на экране все упоминания имен вида "инициал + фамилия" (например: Я. Меттенлейтер).
2 (8 баллов). Найти в статье вообще все имена (инициалы + фамилия, например, В. И. Наливайко; имя + фамилия, например, Винченцо Бренна). При этом в найденное может попасть лишнее (например, Круглому Тронному), но не должно ничего теряться.
3 (10 баллов). Для каждого найденного в предыдущем пункте случая отделить имя (или инициалы) от фамилии, для каждой фамилии создать отдельную папку, а внутри неё для каждого сочетания "инициалы + фамилия" или "имя + фамилия" создать текстовый файл с предложением, в котором упоминается это вхождение.
Опа опа, чатиг превращается в филиал по сдаче местячкового ЕГЕ?


Dim
29.06.2016
12:55:22
\s - это и табуляция и \n
одиночный пробел это \<пробел>

Anonymous*
29.06.2016
12:55:44
Эге... я помню математику на 41 написал в 2008

Denis
29.06.2016
12:56:11
Ууу

Kolyann
29.06.2016
12:57:07
оно ж в 2008 вроде ещё необязательным было

Anonymous*
29.06.2016
12:57:33
Не, с 2007 по крайней мере им у меня на области
Ну я и в 2007 писал))

Johnnie
29.06.2016
12:59:10
\s ?
или табы не нужны?

Denis
29.06.2016
12:59:57
ТНН

Pavel
29.06.2016
13:00:31
мб пробел все-таки не надо экранировать слэшем?

H
29.06.2016
13:00:49

Johnnie
29.06.2016
13:01:00
https://regex101.com/r/fI8oI9/1

Марк
29.06.2016
13:01:26

bakatrouble
29.06.2016
13:01:40
\t - это табуляция

Марк
29.06.2016
13:02:03
\s тогда

Johnnie
29.06.2016
13:02:25
Matches any space, tab or newline character.
/\s/
any whitespace character

Dim
29.06.2016
13:02:42