@ru_python

Страница 1397 из 9768
Владимир
13.08.2016
13:13:42
Costel Salanders
13.08.2016
13:18:46
тебя пхпшники что ли обидели? ты че такой злой? ваще похер кто че написал и не читая доки заюзал - это их проблемы
Пхпшники это байкеры в вебе, залетали на байках в конторы где писали на питоне и руби, и насиловали апачем всех

Опасные ребята

Google
Владимир
13.08.2016
13:19:07
в смысле почему избегать

here1am
13.08.2016
13:20:40
в смысле почему избегать
"если у тебя проблемы с регулярками, то у тебя две проблемы". алсо как я понимаю, параметр без аргумента у тебя сжуёт как нечего делать

Владимир
13.08.2016
13:22:29
"если у тебя проблемы с регулярками, то у тебя две проблемы". алсо как я понимаю, параметр без аргумента у тебя сжуёт как нечего делать
да сжует, подходит только для конкретной строки, это пример, не претендует на покрытие 100% кейсов

here1am
13.08.2016
13:22:30
да не суть, какая там строка. хоть вида "arg1:val1;arg2:val2". меня интересует не парсер гет-параметров

arisu
13.08.2016
13:44:21
регексп в таком случае избыточен

так как формат строки определен строго

регексп для нестрогого формата подошел бы

а если так - ну делишь по разделителю параметров, потом по разделителю значений

[kv.split(':') for kv in string.split(';')]

»> [kv.split(':') for kv in 'param1:val1;param2:val2'.split(';')] [['param1', 'val1'], ['param2', 'val2']]

можно еще вот так dict([kv.split(':') for kv in 'param1:val1;param2:val2'.split(';')])

Google
Владимир
13.08.2016
13:53:03
arisu
13.08.2016
13:54:41
хотя я тут тоже недавно монстра породил

регулярка, которая парсит строку вида [tag|$placeholder1|$placeholder2|$placeholderN], генерирует другую регулярку, которая в строке вида "some text $placeholder1 some text $placeholder2 some text $placeholderN" заменяет все эти плейсхолдеры

это не бб-коды были, не

просто набор плейсходеров

и их замен

с аргументами

вот кстати

для такой фигни

какой бы вы подход заюзали.

Sergey
13.08.2016
13:59:07
Привет, парни! Я тут заморочился созданием скрипта для бекапа аудио из vk, в общем их API отдает далеко не все записи (только те, которые разрешают правообладатели) и я создал версию, которая парсит данные из интерфейса в json с помощью javascript, а затем этот json передается python скрипту и он уже качает файлы. Как думаете это может быть кому то интересно, стоит ли выкладывать на github?

here1am
13.08.2016
14:05:54
»> [kv.split(':') for kv in 'param1:val1;param2:val2'.split(';')] [['param1', 'val1'], ['param2', 'val2']]
мне это сразу в словарь надо, но тут уже упомянули dict() для такого

here1am
13.08.2016
14:10:35
ещё одна качалка из вконтача никогда не лишняя

Sergey
13.08.2016
14:19:50
а как данные брал? post'ом сходил в https://new.vk.com/al_audio.php ?
Сами данные прямо из DOM с помощью js

Andrey
13.08.2016
14:22:03
какой бы вы подход заюзали.
Я бы сделал регулярку, которая перегоняет строку с плейсхолдерами в форматную. Что-то типа '\$([a-z0-9]+)' заменять на '{\1}', и потом делать .format с нужными значениями

Владимир
13.08.2016
14:25:29
Сами данные прямо из DOM с помощью js
Я сейчас глянул: когда заходишь на страницу с записями, js post запрос посылает на al_audio.php, передает x-www-form-urlencoded вот такие данные: act:load_silent al:1 album_id:-2 band:false owner_id:тут_user_id В ответ приходит text/plain; charset=windows-1251 внутри которого помимо всего прочего есть json, в поле "list" - список записей с id'шниками:)

Владимир
13.08.2016
14:29:05
omg, он сразу грузит весть список записей?
у меня 65 записей на странице, он их все выдал, но там ещё есть поле nextOffset, у меня оно 0 и hasMore, у меня false, так что, видимо, не все сразу грузит, штук по 100 наверно :)

Google
Владимир
13.08.2016
14:34:16
Sergey
13.08.2016
14:36:26
Andrey
13.08.2016
14:51:18
Так что форматная строка еще хз в таком случае
Решается заменой { на {{ перед обработкой плейсхолдеров

Aleksey
13.08.2016
15:06:13
class Company(models.Model): name = models.CharField(max_length=200, verbose_name=u"Name") class Users(models.Model): name = models.CharField(max_length=200, verbose_name=u"Username") class Likes(models.Model): user = models.ForeignKey(Users, on_delete=models.CASCADE, verbose_name=u'Users') companies = models.ForeignKey(Company, on_delete=models.CASCADE, verbose_name=u'Some name') Нужно получить все компании, которые пользователи лайкнули. Как сделать с помощью QuerySet?

Ilya
13.08.2016
16:20:00
Здравствуйте, может кто-нибудь подскажет в чём проблема, когда подключаюсь в торнадовскому сокету, на сервере вылетает вот такая ошибка: context.load_cert_chain(ssl_options['certfile'], ssl_options.get('keyfile', None)) ssl.SSLError: [SSL] PEM lib (_ssl.c:2515)

eugeny
13.08.2016
16:39:36
Мужчины, подскажите, почему phantomJS на Ubuntu не открывает ссылки? как это исправить? пишут, что какой-то прокси надо где-то прописать/убрать

Nick
13.08.2016
16:42:50
Марк
13.08.2016
17:29:34
Посоны, кто-то под линухами прогал на сяпп?

Ч0т посложнее хеллоуворлда

В общем, когда вчера я собрал астериск с флагами для отладки, он в логах создал файл refs, в который льет, как я понимаю, все данные по ссылкам, чтобы впоследствии можно было проанализировать утечку памяти, если она есть. Жрет эта хуйня место адищенскими темпами. Прикол в том, что я не могу очистить его. Сначала грешил, что там выставлен sattr +i, но нифига. Не именованный канал тоже. Хз че за дела. А место не резиновое

#> refs не выдает никаких ошибок, но и ничего не происходит. Хз, впервые такое вижу

here1am
13.08.2016
17:32:14
чо за сяпп?

Google
Марк
13.08.2016
17:33:10
cpp

here1am
13.08.2016
17:33:52
дай ls -l на файл и скажи, как пытаешься очистить

подозреваю, что язык тут ни при чём

Марк
13.08.2016
17:34:39
Я ж выше написал. Посмотри

here1am
13.08.2016
17:38:25
а, вижу. размер не меняется?

начало файла тоже не меняется?

решётка в команде - это же типа баш под рутом?

Марк
13.08.2016
17:39:53
Конечно

Хотя тут расковыряли, что это может быть связанно с открытым файлом в режиме append.

Admin
ERROR: S client not available

here1am
13.08.2016
17:42:57
вроде перенаправление должно обнулять всё равно

Марк
13.08.2016
17:43:22
это не работает нормально если логи открыты постоянно в аппенд режиме указатель файла будет указывать на то же смещение в этом случае файл коцается в ноль, потом на первом же аппенде создается спарсом до текущей позиции

here1am
13.08.2016
17:44:34
удобно

Марк
13.08.2016
18:06:54
Не факт, что она верна

Υπερβορεία
13.08.2016
18:10:21
Не факт, что она верна
Думаешь твоя одноклассница тебе верна?

Марк
13.08.2016
18:11:13
Лучше б ты чет по делу спизданул

Лан, подскажите чатик линухоебов

here1am
13.08.2016
18:12:07
попробуй перенести файл в тмпфс и очищать его там. подозреваю, что вся эта лабуда тама работать не будет, если так, то теория похожа на правду

можно в @devops_ru попробовать спросить

Марк
13.08.2016
18:13:07
Ща попробую. Спасибо

Google
here1am
13.08.2016
18:14:07
в чисто линуксовых как будто совсем школяры собралиь

Dmitry
13.08.2016
18:14:45
Там адъ

Марк
13.08.2016
18:18:17
Поэтому в линуховых я не сижу.

here1am
13.08.2016
19:07:20
лол, внезапно узнал, что у разных объектов одного и того же класса синхронно меняются аттрибуты

зачем так сделано?

Nobue
13.08.2016
19:13:40
есть атрибуты класса и атрибуты объекта

Andrey
13.08.2016
19:13:57
лол, внезапно узнал, что у разных объектов одного и того же класса синхронно меняются аттрибуты
Атрибуты объекта так себя вести не должны. А атрибуты класса для такого и сделаны

/dev
13.08.2016
19:15:50
зачем так сделано?
Считай, что это как static в плюсах

here1am
13.08.2016
19:16:11
Атрибуты объекта так себя вести не должны. А атрибуты класса для такого и сделаны
ну когда я делаю t = Test(), где Test() - класс, в t оказывается объект, разве нет?

Andrey
13.08.2016
19:17:21
here1am
13.08.2016
19:17:23
и ещё, я не очень понимаю, чем отличаются t = Test() от t = Test

H
13.08.2016
19:17:52
во втором случае скобочек нет, очевидно же

/dev
13.08.2016
19:18:07
и ещё, я не очень понимаю, чем отличаются t = Test() от t = Test
первое – инстанцированный объект класса, второе — объект-класс

here1am
13.08.2016
19:18:27
Ну да. А что ты с атрибутами делаешь?
а бля. я делаю self.__class__.x += 1

Andrey
13.08.2016
19:18:59
а бля. я делаю self.__class__.x += 1
Это ты атрибут класса меняешь

Они общие для всех объектов класса

here1am
13.08.2016
19:19:17
да, проморгал это

Nobue
13.08.2016
19:19:27
и ещё, я не очень понимаю, чем отличаются t = Test() от t = Test
во втором случае ты по сути передаёшь ссылку на класс и можешь ей потом создавать объекты этого класса через foo = t()

это как ссылка на функцию только на класс

я кстати на практике кажется почти никогда не пользовался атрибутами классов

/dev
13.08.2016
19:21:04
Тут ещё забава в том, что классы в питоне — это callable-объекты

here1am
13.08.2016
19:21:39
да, по-моему это странно

Страница 1397 из 9768