Tishka17
А ещё в винде нельзя через GUI создать папку, имя которой кончается на точку
Oleg
как же я не люблю людей, который вместо триггеров БД делают события на уровне ORM
Для этого может быть много причин, например: 1. Сложная логика 2. Снижение нагрузки на бд, приложение можно легко масштабировать, а rdbms на запись масштабировать гораздо сложнее 3. В отличии от приложения, в бд у тебя не может быть сразу две версии триггера. Это про blue/green деплоймент и т.д.
Oleg
хотя для последнего кейса, я сходу не могу придумать хороший пример, когда это было бы проблемой
Tishka17
а я и не хожу, я переписываю
Oleg
а я и не хожу, я переписываю
тогда да, может быть больно.
Tishka17
нелюблю неявные действия
Tishka17
а тут блин в событии лазят снова в базу и что-то доделывают
Oleg
нелюблю неявные действия
Ну а если бы это были очереди с консьюмерами?
Tishka17
ну тогда в том месте где инсерт и вызывалась бы доп логика
Tishka17
а тут я должен найти все места, где мог произойти инсерт / update
Tishka17
триггеры БД vs события алхимии
Oleg
ну тогда в том месте где инсерт и вызывалась бы доп логика
Не, просто выстреливались бы в очередь события, а консьюмеры бы уже что-нибудь дополнительное дописывали в базу
Oleg
Не, просто выстреливались бы в очередь события, а консьюмеры бы уже что-нибудь дополнительное дописывали в базу
В этом случае у тебя будет точно такая же ситуация должен найти все места, где мог произойти инсерт / update
Tishka17
В этом случае у тебя будет точно такая же ситуация должен найти все места, где мог произойти инсерт / update
в этом случае я буду искать запись сущности в очередь. А тут блин ORM, потенциально любое обращение к объекту может оказаться апдейтом
Oleg
в этом случае я буду искать запись сущности в очередь. А тут блин ORM, потенциально любое обращение к объекту может оказаться апдейтом
Да, тут ты прав. Если консьюмеры останутся старые, то тебе достаточно будет только сообщение в очередь отправить
Tishka17
и потом поменять и консьюмеров если надо
Tishka17
кстати, а алхимия же любые изменения в объекте пишет в БД, да?
Tishka17
я могу как-то выключить это, чтобы явно надо было говорить типа “вот этот объект сохрани”?
Oleg
Меня тоже смущают orm-сигналы. С одной стороны это реализация pub/sub, но с другой все это части одной атомарной операции
Tishka17
а с третьей - неявная бизнелогика
Ilya
Есть фласковская ручка для POST-запроса. Ей в body может быть передан один из двух параметров — username или email. Я использую werkzeug-овский парсер. Мне нужно найти пользователя в БД по полученным в body данным: или по мылу, или по email. Если ничего не найдено, надо получить None. post_args = { 'email': fields.String(missing=None), 'username': fields.String(missing=None), } Любой аргумент из парсера может быть None. И у пользователей может не быть email или username (но не обоих сразу). Поэтому я не могу сразу передать аргументы в Алхимию, а собираю словарь аргументов для запроса. Если этого не сделать, мы получим первого юзера, где email или username отсутствет, а не то, что запрошено на самом деле: # prevent equal-None filter query user, query_kwars, = None, {} email, username = args.get('email'), args.get('username') # prepare request query if email: query_kwars['email'] = email elif username: query_kwars['username'] = username if query_kwars: # if at least one condition exists user = db.session.query(User) \ .filter_by(**query_kwars) \ .one_or_none() if user is None: # user was not populated with parsed conditions .... Как сделать лаконичнее? #sqlalchemy #werkzeug
Влад 🇺🇦
всем привет, нужно помощь с скриптом на баше while read flname dob ssn tel status do echo "Name : $flname" echo "DOB : $dob" echo "SSN : $ssn" echo "Telephone : $tel" echo "Status : $status" done < $INPUT есть такой скрипт, в нем первая переменная имеет вид: name@domain, нужно как то разделить его что бы было отдельно name и domain переменны и дальше их использовать в цикле, как это сделать?
Влад 🇺🇦
как это реализовано на perl while (<>) { chomp; my ($email,$first,$last,$maildistr) = split(/\,/, $_, 4); my ($uid, $domain) = split(/@/, $email, 2); }
Tishka17
Есть фласковская ручка для POST-запроса. Ей в body может быть передан один из двух параметров — username или email. Я использую werkzeug-овский парсер. Мне нужно найти пользователя в БД по полученным в body данным: или по мылу, или по email. Если ничего не найдено, надо получить None. post_args = { 'email': fields.String(missing=None), 'username': fields.String(missing=None), } Любой аргумент из парсера может быть None. И у пользователей может не быть email или username (но не обоих сразу). Поэтому я не могу сразу передать аргументы в Алхимию, а собираю словарь аргументов для запроса. Если этого не сделать, мы получим первого юзера, где email или username отсутствет, а не то, что запрошено на самом деле: # prevent equal-None filter query user, query_kwars, = None, {} email, username = args.get('email'), args.get('username') # prepare request query if email: query_kwars['email'] = email elif username: query_kwars['username'] = username if query_kwars: # if at least one condition exists user = db.session.query(User) \ .filter_by(**query_kwars) \ .one_or_none() if user is None: # user was not populated with parsed conditions .... Как сделать лаконичнее? #sqlalchemy #werkzeug
1) query_kwars = {k:args[v] for k in (“email”, “username”) if k in args } 2) как твой, но вместо args.get + if xxx сделать if xxx in args
Алексей
Всем привет! Может кто-нибудь сталкивался с такой проблемой. Делаю запросы с помощью sqlalchemy к базе PostgreSQL и datetime возвращается без таймзоны (UTC). Если делаю тот же запрос с помощью psycopg2, то возвращается всё норм. Не могу нигде найти понятного способа для коннекта sqlalchemy указать таймзону
Алексей
Алексей
Нашёл вот такой способ на stackoverflow engine = sqlalchemy.create_engine("...", connect_args={"options": "-c timezone=utc"}) Но sqlalchemy ругается, что аргумент options не поддерживается
Artur Rakhmatulin
а в модели алхими что прописано на это поле?
Tishka17
Спасибо, заюзал генератор и стало куда приятнее!
когда появяится числа не забудь его выкинуть =))
Anonymous
Есть список ((( list = [o,p,h] ))) как доставать попорядку слова?
Tishka17
а скобки зачем?
Anonymous
То что код
Anonymous
я указал
Tishka17
кавычка обратная ;-)
Anonymous
Понял
Anonymous
Так ка доставать от туда по порядку слова?
Tishka17
эм, в смысле достать?
Tishka17
и по какому порядку? как лежать в списке?
Tishka17
for i in list?
Anonymous
вот я хочу спросить солово одно! потом через пару минут второе
Anonymous
и так дальше
Anonymous
Интересно что у него за файл, настройки какие-нить?
Файл с небольшим справочником. Размер 3-15 мегабайт. Разворачивать СУБД для этого нецелесообразно, тем более есть вероятность что этим файлом придется делиться. Задача, штатными средствами языка сотворить возможность поиска по файлу и изменение информации в нем в произвольной части.
Anonymous
Ладно спрошу так (Есть файл Gb.txt там слова вряд.. Как по порядку доставать по одному?)
Anonymous
Ладно спрошу так (Есть файл Gb.txt там слова вряд.. Как по порядку доставать по одному?)
Наверное доставать их по разделителю "пробел"+ иные знаки.
Anonymous
Как??
Anonymous
Как так сделать?
Anonymous
Посимвольно, в цикле с условием на нахождение разделителя.
Anonymous
Можна пример кода?
Anonymous
Если не сложно
Anonymous
Пока нет, со Смарта сижу. Кодить экранной клавой изврат ещё тот...
Anonymous
Вот пол гугла перерыл а найти как не могу.. Не пойму! как не пробую не работает
Stepan
Ладно спрошу так (Есть файл Gb.txt там слова вряд.. Как по порядку доставать по одному?)
Все слова в одной строке через пробел или как-то по-другому?
Anonymous
по порядку чего?
Anonymous
Интересная задачка, завтра с дежурства приду, накидаю алгоритм.
Anonymous
Баз нал бум
Anonymous
вот так
Anonymous
readline()
Anonymous
Подробней можна?
Anonymous
погугли
Stepan
python file iterate lines по-моему запрос вполне очевидный
Stepan
Первая же ссылка
Anonymous
Я понял.. Но оно либо все сразу показывает или только первую строку
Eldar
Подробней можна?
а можно такие вопросы в питон бегинерс задавать?
Anonymous
Угу
Tishka17
Баз нал бум
for line in file:
Stepan
Ты серьезно реплаишь сообщения 2016 года в надежде на ответ? Может лучше сформулировать новый вопрос?
Anonymous
""" myfile = open("test.txt", "rU") #чтение из файла for line in myfile.xreadlines(): #построчно читаем файл и выводим на экран print line """ Как выводить не все зразу а только по строке кодга нада?
Anonymous
а когда надо?
Anonymous
Так то условия этому служат
Anonymous
?
Anonymous
if
Anonymous
Блииин только понял что не так делал... извините только учусь
Nikita
бойзы, я уже спрашивал, и мне дали хороший совет... но увы, действительность жестка короч суть есть скрипт, который обращается к серваку и обрабатывает запросы делает это он всё в цикле но собсно проблема какая, при получении какой либо ошибки (к примеру кодировка не та), скрипт крашится впринципе это вылавливаю и фиксю обработками ошибок и вот это добро както надо запускать на удалённом хостинге мне посоветовали сделать из скрипта демон/сервис, но увы, на хостинге такого низя
Nikita
как запустить скрипт, что б ещё можно было б ошибки вылавливать?