Этого треда уже нет.
Это копия, сохраненная 19 декабря 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
sage #2 #1094250
GIL
#3 #1094459
Суп, Питун. Есть один класс. Есть в нем переменная counter = 0. Есть функция, которая увеличивает ее при некотором условии на 1 (и в зависимости от его значения срабатывает всякая хуйня). В общем, я пишу в функции self.counter += 1, но это нихуя не работает. Срабатывает всегда условие counter == 0. Я уже и селфы эти убирал/переставлял местами, и global туда лепил, и все что хочешь. Что делать, Питун?
#4 #1094461
>>1094459
КОД БЛЖАДЬ ТЫ БУДЕШЬ ПОКАЗЫВАТЬ ИЛИ НЕТ ПИДАРАСА ТЫ КУСОКМАМКУ ТВОЮ ЕБСУКА
#5 #1094462
>>1094459
self.counter +=1
И
counter = 0
Это ж разные вещи.
Надо тогда и объявлять его как self.counter = 0
#6 #1094483
>>1094462
А откуда там self-то? Я объявляю в пустом месте внутри класса. Если объявлять внутри функции по понятным причинам будет тоже самое. И к тому же твой довод не объясняет, почему условие if self.counter == 0 вообще работает.
#7 #1094489
>>1094461
Ну охуеть. Это просто невообразимо сложный для представления код.
https://pastebin.com/7QgDrU0N
#8 #1094625
А как в Django по-умному взять, например, десять постов из базы, и к каждому еще ровно по 3 комментария? Наверно как-то через группировку и count. Только я не знаю как.
#9 #1094654
https://pastebin.com/HquvYJ0D

Как лучше всего ссылаться из OwnedBook на публикацию? Использовать genericforeignkey? Или есть третий, особый путь?
#10 #1094658
>>1094654
Какая-то хуевая структура у тбея
#11 #1094659
>>1094658
что конкретно тебе не нравится?
не писал год а когда писал то писал не лучше
#12 #1094674
>>1094248 (OP)
Я скачал портейбл WinPython-64bit-3.5.4.0Qt5, внутри которого есть jupiter notebook.

Я запустил в жупите нотебуке следующий код:
https://ideone.com/SDJRWh

На что получил ответ:
ImportError: No module named 'ml_metrics'

Мой вопрос в следующем - как сделать так, чтобы жупите нотебук нашёл модуль имя которого 'ml_metrics'?
#13 #1094680
#14 #1094681
>>1094680
Что здесь >>1094654 не так?
#15 #1094701
>>1094483
Блять, ну ты ты ебанутый что ли?
>>1094483
Филтруешь из базы 10 тредов, из каждого треда берёшь посты в обратном порядке(начиная со свежего) и всего лишь 3, из общей кучи.
#16 #1094703
>>1094701
Блять, пикчи проебал.
А вообще люди делают такую классную штуку, как __init__
#17 #1094704
>>1094701

>Филтруешь из базы 10 тредов, из каждого треда берёшь посты в обратном порядке(начиная со свежего) и всего лишь 3, из общей кучи.


Не, это классическая проблема N+1 получается.
#18 #1094706
>>1094704

>классическая проблема N+1


Я не в теме, пояснишь?
#19 #1094709
>>1094706
Ну ты для каждого треда делаешь один дополнительный запрос в базу, это неправильно. Представляешь какая нагрузка? Надо как-то через джойны это все делать, а я так давно не работал с обычным sql и джангой что забыл нафиг.
#20 #1094721
>>1094709
Ну может быть.
Можно ограничить кол-во тредов на страницу и всё.
Хотя подожду годно-ответа, пожалуй.
#21 #1094725
>>1094721
Неее, вообще не катит. Если ты дома себе делаешь, то ладно, но в продакшене это путь в никуда. Это базовая sql'ная вещь, надо знать. И мне в том числе.
#22 #1094728
>>1094701
>>1094703

> Блять, ну ты ты ебанутый что ли?


Нет, это Питун какой-то ебанутый. Ну ты же по сути скопировал мой код, если я в глаза не ебусь? У тебя работает, у меня нет.

> А вообще люди делают такую классную штуку, как __init__


Не знаю, что ты имеешь в виду в данном контексте, но я ее использую в других целях. У меня есть целое разнообразие функций pizda, и они все в нем вызываются, в общем, у меня этот класс просто как сборник функций.
image
10 Кб, 324x181
#23 #1094762
>>1094728
Скрин кода давай, может проебался где.
Питон какой?

>Не знаю, что ты имеешь в виду в данном контексте,


Вот это имею ввиду.
#24 #1094788
алло, питонобоги
скажите что возвращается у вас:

requests.get("https://hh.ru")

у меня 404, ничего не найдено
но оно есть в браузере
я пробовал куки добавлять, чтоб как в браузере, даже с авторизацией и все равно 404
что за дела, помогите
#25 #1094830
>>1094489

>Это просто невообразимо сложный для представления код.


Задача состоит в представлении конкретно твоего говнокода, чтобы найти в нём ошибки. И тут что-то самомму додумывать бесполезно, а ты, считай, просто сказал "ну у меня там тип что-то есь и вот если это делаю, то оно не работает".

counter = 0 делает переменную классовой. Ты можешь к этой переменной обратится через self у объекта класса. Однако, как только ты делаешь self.counter = ... (+= != ++, если что, переменная не инкрементируется, ей просто присваивается новое значение, равное сумме прошлого и правой части, по крайней мере для примитивных объектов), у инстанса класса появляется поле "counter"

>Срабатывает всегда условие counter == 0.


В выданном тобой коде — нет. https://repl.it/repls/ProudMessyBuzzard
Но ты, я полагаю, маленько обосрался и скопировал код не из своего "проекта", где, наверное, пытаешься эту классовую переменную использовать именно как классовую, пытаясь обращаться к ней и инкрементировать из многих инстансов.
#26 #1094854
>>1094830
Т.е. Объявление переменной в теле класса, без явного указания вхождения в его 'неймспейс' (я хз, правильно ли сформулировал) это посути заглушка, на случай обращения к этому аттрибуту? В чем профит по сравнению с объявлением в конструкторе в виде self.my_var.
#28 #1094864
>>1094854

> это посути заглушка


Нет. Это классовый атрибут.

>В чем профит по сравнению с объявлением в конструкторе в виде self.my_var.


В том, что это один общий на все инстансы атрибут получается. https://repl.it/repls/OldDarksalmonBarnowl
#29 #1094865
https://repl.it/@anon73/PlushMysteriousAzurevasesponge

Есть один скрипт, и он хорошо работает, но медленно, все изза того что там есть sleep. Пытался в многопоточность, но никак не могу понять как все работает, а сделать надо было еще вчера. Анон посмотри пожалуйста код.

Есть список данных, большой десятки тысяч значений. Каждое значение подается в функцию. В функции высчитывается кое что, sleep 5 секунд, еще раз высчитывается и если полученное значение больше разрешенного минимума - пишет в бд. Работает это все хорошо но дико медленно вот захотел прикрутить многопоточность. Простота тут в том что данные между потоками не перемещаются интересен только результат. Я вообще все правильно сделал?
#30 #1094867
>>1094865
Не нужен там sleep.
#31 #1094870
>>1094867
Он для функции нужен. Я не хотел расписывать что функция делает что бы пост не засорять. Там просто для примера sleep print . Sleep значит что исполнение функции с каждым поданным параметром занимает некоторое время. От того если просто запускать многопоточно ее то потоки должны сами закрываться через определенный промежуток времени, завала не будет, думаю даже ограничение по потокам не нужно (да и я еще не понял как его делать).

Я как то месяца 3 назад корпел над мультипроцессингом и у меня ничего не вышло, что то вот осталось в голове из того собрал. Еще помню данные надо было в буфер как то писать что ли что бы не захлебнулась БД, но в моем случае данных на выходе будет очень мало, и вероятность захлеба крайне мала. На крайняк в список соберу и потом уже запишу.
#32 #1094888
https://ideone.com/L4v3hg

Здравствуйте, подскажите, пожалуйста, что такое decimal = "," ?
#34 #1094892
>>1094489

> невообразимо сложный для представления


>статический counter пачиму не работает через селф


мхех
#35 #1094894
>>1094890
Чёрт, а я на русском искал
#36 #1094896
Я лох корочё
#37 #1094897
>>1094890
Спасибо
#38 #1094898
>>1094870

>данные надо было в буфер как то писать что ли что бы не захлебнулась БД


master-слейв + размазывание запросов по времени
шардинг
#39 #1094901
>>1094865
>>1094870
z=[[ 1, 2, 3],[4, 5, 6],[7, 8, 9]]

def test(t1):
time.sleep(5)
print(str(t1[0]),str(t1[1]))

with Pool(10) as p:
p.map(test,z)

Вот еще вариант. map как я понял сама перебирает значения из списка и подает в функцию с каждым потоком. Тут контроль потоков уже есть, вроде как работает.
#40 #1094902
>>1094865

> sleep 5 секунд


уже ведь async/await в 3.6 завезли, почему не перейдешь?
#41 #1094912
>>1094902
Да он просто имитирует время работы некой тяжёлой функции, при чём тут асинк вообще? Ему это с нехваткой производительности никак не поможет же в любом случае.
#42 #1094922
>>1094865
Если есть список данных и ты весь его юзаешь - попробуй использовать map.
#43 #1094924
>>1094922
Ну вот с ним я выше написал.
>>1094901
Вот эти две строки в мое случае все что мне нужно? Да список, список сформирован из значений взятых с бд.
#44 #1094952
Доброго времени, а есть ту хохлы, которые ликпей к своему говносайту подключали?
Что за хуйня, я нихуя не понимаю, доков нормальных нет, СДК для питона какое-то говно, там ещё импорт неправильный был и принт без скобочек.
Короче, что там на фронте надо писать? Может пример у кого-то есть?

https://github.com/liqpay/sdk-python
#45 #1094976
>>1094248 (OP)
Посоны, хули эта ебала некоректно работает?
https://ideone.com/MUpIbe
Должно рандомить слово и находить количество совпадений символов с заданным словом.
#46 #1094979
Анон, зачем нужны условные переменные threading.Condition(), если там же есть мьютексы? Где и как эти переменные применяют на практике?
#47 #1094992
>>1094979

>Где и как эти переменные применяют на практике?


Отправил сообщение в другой поток без ожидания ответа, потом перешёл к ожиданию.
#48 #1095102
https://career.ru/vacancy/23348385
Хосспаде, почему я не в дс?
14287597208140
240 Кб, 810x2709
#49 #1095125
Суп, программач. Скажи мне пожалуйста, пистрон годится для шубуршания в памяти процесса? Считывание адресов, байтов и т.д.
#50 #1095140
>>1094762

> Скрин кода давай, может проебался где.


Блядь, проебался. Дело в том, что у меня класс пересоздается всегда. Ну пиздос, теперь придется делать внешнюю переменную, а ведь изначальная идея этого класса - собрать весь мусор одного типа в одну кучу, чтоб не мешался. Или этого можно как-то избежать?
#51 #1095144
>>1094924
Попробуй multiprocessing.dummy(или типа того)
#52 #1095145
>>1094654
Бумп вопросу
Как вы поступаете если есть две сущности с общим родителем делаю абстрактной моделью например, или через ссылку на родителя и в дальнейшем нужно получать датасет из абстрактной модели обоих сущностей?
#53 #1095146
>>1095140
Полный код давай, не стесняйся.
#54 #1095202
>>1095146
Стесняюсь.
#55 #1095209
>>1095202
Ну тогда ничем не могу помочь.
#56 #1095270
Так, это снова я с оплатой через хохлятский пейпал.
Дело идёт, только есть одна проблема.

a bytes-like object is required, not 'str'
Вызывает эту проблему
signature = liqpay.cnb_signature(params)
сам cnb_signature Представляет из себя
params = self._prepare_params(params)
data_to_sign = self.data_to_sign(params)
return self._make_signature(self._private_key, data_to_sign, self._private_key)

Но как я понимаю, сама проблема именно в в методе data_to_sign, который состоит из одной линии:
return base64.b64encode(json.dumps(params))

В доках про bytes-like object пишут This includes all bytes, bytearray, and array.array objects

Сами params приходят такие

{'action': 'pay', 'amount': '100', 'currency': 'USD', 'description': 'Payment for clothes', 'order_id': 'order_id_1', 'version': '3', 'sandbox': 1, 'server_url': 'https://test.com/billing/pay-callback/'}

Вопрос, что я делаю не так, учитывая, правда, то, что весь код взят прямо из примера в документации?
#57 #1095275
>>1095270
Пример видимо для второго пифона.
#58 #1095277
>>1095275
Да, сука, я только что сам понял, охуеть.
Там и библиотека установилась для второго, я наверное, догадаться должен был, что pip install liqpay-python3.
Или это в порядке вещей и я реально даун?
#59 #1095280
>>1095277

> Или это в порядке вещей


Нет, это хуета какая-то. Так обычно в линуксовых пакетных менеджерах называют пакеты. На pypi (до этого момента) такого не встречал.
#60 #1095284
>>1095280
Честно, я просто охуеваю.
pip install liqpay-python3 устанавливает версию 1.1.1, в которой ещё и нет одного из методов, который у них в примере, на гите у них для 3 питона написана версия 1.0, при этом pip install liqpay-python3==1.0 говорит, что такой нихуя нет, а выбор только 1.1 и 1.1.1
#61 #1095288
>>1095284
Ладно, хорошо, а может мне кто-то подсказать как инстальнуть из гита именно 3 версию
https://github.com/liqpay/sdk-python
Там папка liqpay и в ней liqpay3.py и liqpay.py
pip install git+https://github.com/liqpay/sdk-python#egg=liqpay
pip install git+https://github.com/liqpay/sdk-python#egg=liqpay3
устанавливает версию для второго
#62 #1095296
>>1095140

>Или этого можно как-то избежать?


Ну ты можешь, например, захуярить всё классовыми методами: https://repl.it/repls/RedFortunateIndianrhinoceros

Это всё, что я могу посоветовать не видя твоего кода и возможности исправить саму необходимость такого изврата.
#63 #1095297
>>1095288
Во-первых, у них там при импорте всё должно чпокаться заебись. https://github.com/liqpay/sdk-python/blob/master/liqpay/__init__.py
Во-вторых, выглядит так будто liqpay-python3 на pypi поделка какого-то васяна, которая к https://github.com/liqpay/sdk-python не имеет отношения. Проверь всё ещё раз, ёпту.
259 Кб, 1680x1050
#64 #1095302
>>1095297
Со вторым согласен, но первое не работает, я проверял много раз, что там проверить можно-то?
#65 #1095303
>>1095288
Скачай репу да запусти python3 setup.py install вручную. Можешь предварительно liqpay.py удалить вообще.
#66 #1095304
>>1095302
Так он оба файла тебе в либу устанавливает, у тебя liqpay3.py тоже должен быть, и при import liqpay нужный и выберется же.
#67 #1095306
>>1095304
Нужный не выбирается, потому что не работает код, плюс я по ссылке перехожу же из пишарма и он ведет меня на этот ликпей.
Я пробовал просто менять код из репы и тогда всё работает.
Или я чего-то не понимаю?
>>1095303
Сейчас попробую.
185 Кб, 1104x752
#68 #1095310
>>1095303
Тоже не работает, очевидно поставилась вторая, потому что
from urlparse import urljoin
а не
from urllib.parse import urljoin
#69 #1095312
>>1095310

>поставилась вторая


Они "ставятся" обе сразу. Импортируется нужная динамически по версии пифона.
#70 #1095313
>>1095312
Ну там же написана версия 3.6, почему тогда для 2.7 импортируется?
#71 #1095314
>>1095310

> from liqpay.liqpay import ...


Бля, ну ты долбоёб что ли?! Тебе написали лопату, чтобы ты импортировал из liqpay и не лез дальше. Нет, хочу жрать говно руками, а не с лопаты! И это программисты?! Мудачьё!
#73 #1095318
>>1095314
>>1095315
Хотя хуй знает, с консоли всё работает, а пишарм говорит что не может импортировать и ошибку выдает
#74 #1095320
>>1095318
Ну, значит пичарм к такому не готов.
#75 #1095323
>>1095320
Только что всё переставил через setup.py и работает, спасибо, анон
И сорян за мою глупость.
#76 #1095331
Антон, а как вообще в реализации кастомных TCP/IP протоколов годно сами пакеты формировать?
у меня есть несколько классов-оберток, например, ну и в сокет надо нахуярть это все в бинаре, варианты, типа:
"{0:c}{1:c}".format(ord(somebyte), ord(someotherbyte))
и их модификации со всякими битовыми сдвигами если нужно передать WORD/DWORD -- вот это вот все, чую что строкой с форматом это какой-то дикий костыль.
курить struct? или это ваще мимо?
#78 #1095336
>>1095331
"This can be used in handling binary data stored in files or from network connections, among other sources." по-ходу оно. первый вопрос снят. теперь если у меня в пакете битовые поля, например два по четыре - чо только побитово двигать и суммировать? или и для битовых полей есть чо?
#79 #1095394
>>1094901
Провел ядерные испытания. Скрипт захлебнулся, просто повис. Подозреваю что тут либо дело в том что запущено с виртуалки либо что то в теле скрипта ему мешает, пробовал убирать почти все функции становилось лучше, но все равно зависает, чуть позже. Что самое интересное отрабатывает в 2 потока нормально, в три виснет. У меня еще сеть задействована может какие то ответы на запросы не получает и затыкается. А еще момент если например вместо 1000 элементов в списке подать 100 и вьебать 25 потоков то он пулей выполнит, а если поставить 3 потока и из 250 элементов список то он повиснет, а бывает дорабатывает. Но если после того как он отработал снова запустить то он быстро повиснет. Как будто лимит какой то на данные. Память на виртуалке не нагружена, диск тоже, проц свободен. Либо сетевуха захлебывается, но нереально в 3 потока там данных крохи. Короче результат как бы там ни было есть - в 2 раза я его ускорил. Будем учиться, читать мать часть и прочее, разберемся. Спасибо всем кто помогал.
#80 #1095431
Господа питонисты, небольшая группа анонасов решилась актуализировать старую библиотеку для упрощения работы с api двача. Половина пути пройдена, но нам нужна помощь с завершением и возможно пересмотром архитектуры библиотеки. Будем рады любой помощи. Писать в телегу @dexofan или @lorem_ipsumxxx
#81 #1095439
>>1095431
Без сорцов пройди нахуй.
#83 #1095445
>>1095441
Уже лучше, гляну потом.
#84 #1095446
>>1095445
В телегу только напиши, добавлю в конференцию.
#85 #1095448
>>1095446
Рекомендую TODO-файлик написать.
#86 #1095452
>>1095448
Это довольно сложно, по возможности todo есть в api.py. Вся разработка будет на ветке dev. Смотреть там.
#87 #1095456
>>1095448
>>1095452
А вообще нужно допилить грамотную отправку сообщений и класс-payload для них, прикрутить работу с пасскодами и написать обработчик исключений, потом логгирование. Ну и помимо этих целей как фикс багов (похоже не все работает так, как ожидается) и допил нового функционала.
#88 #1095461
>>1095456
Угу, понял, помогу.
#89 #1095463
>>1095461
Пасиб :*
#90 #1095481
>>1095456

>прикрутить работу с пасскодами


Логгер пасскодок не забудьте.
#91 #1095483
>>1095481
Не, зачем. Попенсорс же))0
#92 #1095504
>>1095483
Так вы ж так мастерство покажете своё, в опенсоре логгер спрятать!
#93 #1095568
>>1095441

> https://github.com/anonim-legivon/dvach.api/blob/dev/api2ch/utils.py


> return sum(boards_dict.values(), [])


Говно

> __version__ = '0.0.5.5'


Говно

> requests


Говно

> Хардкод методы


Говно

> js = requests.get(url).text


> return json.loads(js)


Говно

> class Post(object):


Говно

> for key, value in post.items():


> setattr(self, key, value)


Говно

Ну будьте людьми! 2017 год, делайте sans-io с sync/async бекендами, делайте динамические методы и высокоуровневые обёртки или вообще без них (достаточно addict). Всё равно ваше говно никому не нужно
#94 #1095573
>>1095568
Ну так присоединяйся и помоги, мы нафани.
#95 #1095575
>>1095394

>сетевуха захлебывается


подними лимит на дескрипторы, там по дефолту вроде всего 65к
#96 #1095576
>>1095568
Что не так с хард код методами и как их заменить? Что не так с классом Post и как фиксить?
#97 #1095578
>>1095573
Нет!
>>1095576

> Что не так с хард код методами и как их заменить?


Это же api! Нахуя делать мимик методы api? Просто повесьте на __getattr__ генерилку методов и всё.

> Что не так с классом Post и как фиксить?


Нахуя он наследуется от object?
#98 #1095585
Какая у кого зп?
#99 #1095619
>>1095441
Ребятки, посмотрите, как сделан vk_api. Вам стоит сделать нечто похожее.
#100 #1095807
Смотрите какая yoba! Свеженькая!
https://github.com/encode/apistar
Еще и с asyncio. Взлетит?
#101 #1095816
>>1095807
define "взлетит"
#102 #1095880
>>1095578
От api одно название, посмотри сам и подивись

>Нахуя он наследуется от object?


архаизм, поправили
#103 #1095905
Поясните как запилить корзину в магазине.
Есть класс бейсед вью DetailView с продуктом, в котором я создал метод post, чтобы отправлять форму с количеством продуктов, размерами и прочим.
Смотрю в сторону сессий, но нихуя не могу понять почему у меня счетчик каждый раз обнуляется. Вот говнокод
https://pastebin.com/Le7JPdbc

Может надо вью другой использовать? И ещё как мне вернуться на ту же самую страницу красиво, потому что последняя строка не работает, говорит нет object.

Хотя мне вообще кажется что я какую-то хуйню делаю, так что если кто-то подскажет, то буду крайне признателен.
#104 #1095906
>>1095905
Форма там просто по модели продукта с тремя полями, в request.post приходит вот такое
{'color': '3', 'size': '2', 'count': '2', 'csrfmiddlewaretoken': 'EumG12uNICe2q6iUx91KNJV1nti5XL5uNHznFMwNG5MGBV6y'}
#105 #1095940
>>1094248 (OP)
Анан, есть мнение, и не только мое, что с опредленным незавидным бекграундом в веб на питоне имеет смысл соваться только как уже миддл разработчику. Теперь мой вопрос: как мне узнать что я уже мидол? Есть ли гост какой, что должен знать и уметь мидл?
#106 #1095968
>>1094248 (OP)
Анон, подкинь идей для проекта, чтобы освоить ооп и наследование?
#107 #1095970
>>1095968
запили сабстанс дизайнер на нодах блендаря, я накутю если чо
#108 #1095971
>>1095970

>на нодах блендаря


Это где-то под Москвой?
image
437 Кб, 640x480
#109 #1095973
>>1095971
нахуй дрочить писун если не ради блендаря!?
#110 #1095974
>>1095973
Ради вебчика. Нахуй нужно 3д если есть 2д?
#111 #1095976
Я там где мокрый бетон
Обвивает трубы кольцами
Как французский батон
В подворотне притон
Оставь дома свой берберри виттон
У удали с ноута два-семь питон
#112 #1095977
>>1095974

>2д


для пидоров, поверь мне, ничего там хорошего нет, вообще везде где просто, осядают тупые пёзды и ванильные хуи из обеспеченных семей, похуй вообще на конкуренцию, тебе тупо пообщаться не с кем

а для вебчика ничего кроме модного молодежного жса нинужно, еще лет 5, ясрипт научится понимать человескую речь и наступит ренесанс мира высоких технологий лол
#113 #1095978
>>1095976
красиво стелишь фраерок
#114 #1095979
>>1095977

>вообще везде где просто, осядают тупые пёзды


ПАНЧ
#115 #1095980
>>1095977

>а для вебчика ничего кроме модного молодежного жса нинужно



Ну не траль плиз? Зачем так говоришь
#116 #1095982
>>1095979

>ПАНЧ


зря теряю с тобой время

>>1095980

>Зачем так говоришь


потому что жс везде, он свободный и живой, он развивается вместе с нами, под наши стремительно развивающиеся же задачи, это лучшая абстракция которую создало человество после ислама
#117 #1095984
>>1095982
Ислам это абстракция над чем?
А за апокалиптические жс-бредни тебя надо в психушку сдать.
#118 #1095985
>>1095977
Еще лет пять, и все бизнес задачи будут решать нейроночки писанные нейроночками, а люди будут ползать по шею в мазуте и радиоктивном пепле
#119 #1096041
>>1095461
Ну что, анончик? Чего на связь не выходишь?
#120 #1096082
Сап анчоусы, хелпаните хотя-бы в теории:

надо придумать скрипт, который будет слушать сеть и принимать запросы, например json-rpc или что-нибудь подобное.
Он будет принимать IP куда поставить и текст плейбука
и запускать с этими данными
главное, чтобы можно было вызвать его из руби
#121 #1096118
Анон, посоветуй книгу( желательно на рус) пo Django
#122 #1096136
>>1094703

попробуй писать Huy.counter
#123 #1096139
>>1096136
Зойчем?
#124 #1096141
Помогите ньюфагу. Хочу написать генератор пароля.
Сперва юзер вводит число(длину пароля) от 5 до 20
Затем это число определяет длину пароля, сам пароль состоит из рандомных числе от 0 до 9 соответственно
#125 #1096162
>>1096139

зотем что это переменная класса а не экземпляра класса, и обращатся к ней нужно не через имя экземпляра а через сам класс
#126 #1096164
>>1096141

>


>



создаешь строку из символов, потом выбираешь random.choice(строка) из строки случайный элемент и прибавляешь его к строке - поролю
#127 #1096168
>>1094248 (OP)
Поделитесь как вы пишете код. Вот стоит перед вами задача. Какие действия вы совершаете в первую очередь, какие потом и так далее.
#128 #1096192
>>1096168

>как вы пишете код


тебе нужно посмотреть ролики картавых хохлов с ютуба, про введение в программирование, прежде чем учить синтаксис нужно понять почему это вообще так, а не по другому

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

ну в двух словах каждую задачу тебе надо разложить на переменные, а потом подумать как с ними чото сделать что бы было норм

самое главное тут поставить чоткую задачу, а не просто подрочить, потому как дрочь бесконечен и радости там нигде нет
#129 #1096236
Я ньюфаг. Пытаюсь в Рython, и основы вроде бы освоил.
Можете вкратце рассказать о том как блять пользоваться GTK?? Я уже неделю пытаюсь с ним разобраться и так с места и не сдвинулся. Пытаюсь юзать GoGTK. Уроков катастрофически мало, а по тому что есть, вылезают какие-то ебанутейшие ошибки.
Вобщем с чего начать изучение PyGTK?
#130 #1096238
https://ideone.com/O1awo3

Где я обосрался Анонче?

-учу_питон_2_день-кун
#131 #1096240
>>1096238
self'ы проебал, и все базовые классы всегда от objecta'a наследуй
#132 #1096242
>>1096240
Куда эти self'ы писать то?
#133 #1096246
>>1096242
Ладно пойду книжки почитаю, тут явно с наскока с опытом только в паскале не осилить.
пистон
91 Кб, 260x295
#134 #1096293
>>1096240

> и все базовые классы всегда от objecta'a наследуй

#135 #1096350
>>1096240
Это только для питон 2
#136 #1096351
Уважаемые питонисты, решил из интереса подрочить отрисовку графики
В стандартной библиотеке присутствует что-нибудь для этого, кроме turtle?
Интересуюсь в целях собственного аутизма
1 (2)
24 Кб, 1291x270
#137 #1096357
https://ideone.com/frujya

Здравствуйте, я хочу запустить код из статьи с сайта habrahabr

https://habrahabr.ru/post/206306/

И когда запускаю, то получаю ошибки на приложенной картинке. Как пофиксить? Скажите, пожалуйста.
#138 #1096362
>>1096357
P.S. Если что, то csv файл по этой ссылке:
http://dropmefiles.com/xkFUD
#139 #1096375
>>1096351
тикель жи
#140 #1096435
#141 #1096457
Хочу захуячить бота в одной игре(не браузерка). С чего мне начать?
#142 #1096477
>>1096457
Просниффай трафик Wireshark'ом, например.
#143 #1096620
поясните почему не работает простенький парсер
https://ideone.com/llETMx
Как я понимаю проебался с работой файла, то ли он вообще не видит файл, то ли не видит там строки
сам код работал, если вставлять не файл, а пример одной строки
#144 #1096629
>>1095575
Анон подскажи пожалуйста про что ты. Я не знаю что это. Нашел какие то лимиты на дескрипторы обращения к файлам но это не то же? Именно с сетью что то связано? Такого не нашел.
#145 #1096666
поправил парс, вот https://ideone.com/5C2zM5
но парит только первую строчку в файле, как по остальным пойти
110101010101
21 Кб, 786x244
#146 #1096674
Django
Одна и та же ошибка при попытке вывода сайта в домашней директории, что до создания html документа, что после. Что я не так сделала?
изображение
158 Кб, 800x545
#147 #1096734
>>1096674
ребят, ну помогите пожалуйста
я сейчас психану, перерыла по этой ошибки статьи, но там все сводится к действиям которыя я не совершала
#148 #1096735
>>1096674
Блджад, тупые сельди не могут в программирование.
Тебе черным по желтому написано: ШАБЛОН НЕ НАЙДЕН
#149 #1096736
Посоны, а как из C расширения вернуть в питон массив си-типа, а конкретно ctypes.c_float?

Суть вот в чём: есть одно OpenGL приложение с использованием pyglet'а. Расчёт всякого дерьма и возврат тупла с координатами вершин делается в C, занимая почти нихуя времени. Далее есть VertexBufferObject, в который можно передать массив GLfloat'ов (что является тем же ctypes.c_float'ом) и отрисовать, этот шаг тоже занимает почти нихуя. Но вот переделка из тупла в массив c_float'ов в самом питоне занимает оче много (раза в 4 больше всего остального), и хотелось бы как-то оптимизировать этот шаг. Возможно, тогда и первый упростится, ведь создавать PyTuple и уже не надо будет.
#150 #1096769
>>1096735

>тупые сельди не могут в программирование.


Может это ты глуп?
Я чётко указала что шаблон создан и путь к нему указан, а ты и капитан очевидно гугл транслейт моего скриншота копируешь.

Я первый день осваиваю python и django, меньше агрессии, тем более в разделе ДЛЯ НОВИЧКОВ!
#151 #1096770
>>1096769
Или что ты мне сделаешь, шлюха?
Без полного кода ты, как обычно, соснешь хуй.
#152 #1096773
>>1096770
жизнь с тобой уже достаточно сделала, что бы мне не трудится.

должен ты ведь знать примерные причины из-за которых не выводится созданный html шаблон
https://tutorial.djangogirls.org/ru/html/ делаю по этому руководству точь в точь, смысла кидать код нету. Я уже отладку запускала, всё в ноль
#153 #1096775
>>1096773

>должен ты ведь знать примерные причины из-за которых не выводится созданный html шаблон


Примерные причины тебе сама джанга уже написала. Неси код, ёпту. Тут не раздел новичков, если чо.

>смысла кидать код нету.


Cмысла помогать, выходит, тоже? Может у тебя там опечатка где-то, чёрт возьми.
#154 #1096776
>>1096773
Бгг, даже русского языка не знает. Есть подозрение, что и в английский не может, а ведь ещё и сюда лезет!

Ага, должен. Таких примерно ∞, вплоть до погоды на Марсе. А это не погугли-за-анона-тред.
#155 #1096783
>>1096674
'DIRS': [os.path.join(BASE_DIR, 'templates')]

в настрйоках там где темплейты
#156 #1096784
>>1096783
Хуя ты экстрасенс.
#157 #1096787
>>1096784
Ну а хули варианта 2 либо так, либо неправильно директории создала
#158 #1096792
>>1096787
Ну, тащемта нет... >>1096776

Вообще, первым делом приходит в голову вариант с кривой спермой.
#159 #1096796
Здравствуйте, скажите, пожалуйста, полиномом какой степени можно более-менее смоделировать экспоненту? Степень желательно как можно меньше.

Я смотрел видео и там нейронка подобрала полином 3 степени для синусоиды. Подскажите, для экспоненты степень какая подойдет?
#160 #1096801
>>1096792
Давай тогда код сюда и темплейты должны быть в одной директории с manage.py templates/blog/post_list.html
#161 #1096803
>>1096801
Ты промахнулся реплаем.
изображение
544 Кб, 1200x891
#162 #1096871
>>1096801
>>1096783

спасибо, попробую разобраться.

код приложить не могу, не получается обновить файлы на гитхабе через команды гит с локального репозитория, проблемная я
#163 #1096875
>>1096871
Для Гита фронтенд типо SourceTree ставь, рановато тебе ещё.
Там Commit и Push.
#164 #1096879
>>1096875
>>1096801
>>1096783
>>1096735
Он прав, я тупая сельдь
Прописав в views путь к хтмл документу, не дописала само расширение "html" а лишь имя файла
простите
#165 #1096887
Как запилить единый бинарный файл?
#166 #1096893
>>1096887
Под какую платформу хоть?
#167 #1096904
>>1096893
Под винду 10.
#168 #1096907
>>1096375
Можно точное название? Не могу найти
S71123-23144689
181 Кб, 1080x1020
#169 #1096918
>>1096907
Tk/Tcl. Сразу говорю, гиблое дело. Лучше какой-нибудь wxPython.

>>1096904
Пикрил.
http://docs.python-guide.org/en/latest/shipping/freezing/
#170 #1096920
>>1096907
>>1096918
А, и он не факт, что под никсами в составе std поставляется, так что это не искаропки работает.
#171 #1096921
>>1096918

>Пикрил.


спасибо, няш
#172 #1097005
for a in description:
for q in description[a]:
print(q)

как написать такой код в джанго темплейтах, учитывая, что description это словарь, а description[a] это список
2017-11-24
47 Кб, 1082x711
#173 #1097007
>>1096918

>гиблое дело


ребятам з галандии ток нигавари
#174 #1097012
>>1096918

>какой-нибудь wxWidgets


и да, вот уж что сука настоящее тлен и безысходность
#175 #1097039
>>1096736
Сделал malloc для массива float'ов и возвращаю адрес прямо в питон (VBO как раз указатель на массив и просит).
Это совсем пиздец или по-другому никак? Работает всё супер-быстро, мне нравится.
#176 #1097052
>>1097007
Молодцы, осилили, хуле. Для простых задач эта поебень слишком гибкая.
#177 #1097057
>>1097052
лолшто
#179 #1097060
>>1097057
А, так ты ей не пользовался.

>>1097059
→ /test/
pyqt1
41 Кб, 797x639
#180 #1097073
Наконец-то появилось желание разобраться с PYQT5 и скажу вам - это офигено. Отлично поддерживается pyinstaller, успешно заворачивается в exe. На юниксе еще не пробовал. Заметил еще такую вещь, что сейчас библиотеки лучше протестированы на третьем питоне 64bit.
#181 #1097075
>>1097073
Не поможешь мне разобраться? Хотя бы какие-то основы. Вкинь свой мэил или напиши сюда MuuUFONuANUSyan]S@dexPUNCTUMr'`:u
#182 #1097082
>>1096920

>не факт, что под никсами в составе std поставляется


в пайтоне есть, там не биндинг а реализация
#183 #1097085
>>1096875

>рановато


Что там рановато? Запомнить 6 комманд init, pull, push, commit, rebase, checkout?
ебать сложна
#184 #1097089
>>1096629

> но это не то же?


Хз, по тому что ты описал, мне кажется словно у тебя превышение лимита дескрипторов на процесс, абстрактно пишешь.
#185 #1097091
>>1096796
Ты тролешь? На бесконечности всегда экспонента будет расти быстрее полинома. А значит, твоя задача решаема в узких рамках значений независимой переменной. И ответ зависит от диапазона этих значений и допускаемой ошибки.
#186 #1097092
>>1097005
description.a
#187 #1097096
>>1096796
https://en.wikipedia.org/wiki/Taylor_series#Exponential_function
Возьми да сам потестируй и посмотри, насоколько малая степень тебя устроит.
#188 #1097099
>>1097085
Это оче сложная система. Ты сам просто не разобрался.

>>1097075
Сначала обычный Qt осиль, там не очень сложно. Ещё и Qt Creator упрощает.
#189 #1097100
>>1097099
С чего начинать обычный qt учить?
#190 #1097115
>>1097075

>основы


у них есть канал на тытрубе, плюс туторы от разных левохуев

а вообще хуле там сложного, таскай себе формочки да бинди хуинди
#191 #1097117
>>1097100
С установки Qt Creator? Гайды в сети.
2017-11-10
252 Кб, 1920x1080
#192 #1097118
>>1097100
с постановки задачи
#193 #1097120
могу разве что сказать что не советую онлайн установщик, его вопервых хуй найдешь на блядском сайте, подсовывают платную версию, а опенсосрсную в очко запихали, так вот эта хуйня потом сутки 50 гигов выкачивать всякого мусора будет, качай офлайн паки там по гигу - три, чисто что нужно
#194 #1097209
Установил питон, открываю книгу укус питона, там написано для проверки установки введите в цмд: python3 -V
Ввожу, пишет что команда не найдена, что я уже не так сделал?
#195 #1097211
>>1097209
напиши python2
#197 #1097213
>>1097209
вот так вот
>>1097212
#198 #1097214
>>1097209
Потому что python3 --version
Capture
12 Кб, 580x309
#199 #1097216
При установке нажал на добавить в ПАТХ, что я делаю не так?
14869837950370
169 Кб, 342x329
#200 #1097217
>>1097099

>Это оче сложная система


merge-tree не осилил?
#201 #1097219
>>1097216
Не добавил. Перезагрузись, это говно ENV не сразу подхватывает
#202 #1097223
>>1097219
Я уже пусть по умолчанию поставил, не знаю. Перезагрузился, ничего не работает.
#203 #1097224
>>1094248 (OP)
Блин я тупой что делать? Туплю даже над простыми задачами, которые по идее должны решаться за 10 минут.
#204 #1097230
>>1097224
В азы вникать.
#205 #1097236
>>1097230
Да в азах уже итак по уши. Не получается эти азы друг с другом правильно комбинировать, чтобы результат выходил. Потом когда смотришь решение задачи над коорой полдня ебался без результата, то все кажется просто и без задних мыслей. Но вот самому додуматься не выходит.
#206 #1097238
Посоветуйте чего почитать по ООП в Python и всяким builtints классов
#207 #1097264
Как можно сохранить файл в памяти, чтобы потом его можно было либо заново открыть, либо имитировать такую строчку: open('photo.jpg', 'rb')
#208 #1097343
>>1097264
Все, справился сам.
#209 #1097358
>>1097039
Главное чтобы клинап был. У нас делалось так: вызывается из си коллбек питоний, он передаёт указатель в другую функцию. Потом, когда сишная функция заканчивается, заканчивается питоний коллбек, тогда уже первая сишная функция может удалять объект.
#210 #1097359
>>1096769

>в разделе ДЛЯ НОВИЧКОВ!


Это не раздел для новичков, ёпту! Я тут сижу и я не новичок!
Screenshot from 2017-11-24 23-36-58
22 Кб, 617x130
#211 #1097361
КАК открыть websocket, отправить и принять одно сообщение, как в HTTP/S?

Пикрелейтед тупо зависает на .recv
К серверу доступ не имею, но мне известно что он поддерживает websocket. Отправить надо "dict".
#212 #1097362
>>1097361
Бля... ну ты и тупой или жирный.
Capture
2 Кб, 414x187
#213 #1097371
Починил. Ну всё, питон, держись!
#214 #1097388
>>1097361
Сокеты от вебсокетов не можешь отличить? Вангую JS-макаку.
#215 #1097389
Аноны, подкиньте родной литературы по проектированию web приложения. Что в models сунуть, что во view and etc?
Если там будет расписано про проектирование приложений в принципе - тоже отлично.
Но хотелось бы подробней про веб, в частности django/flask.
#216 #1097393
>>1097388
Cинхронно websockets работать как нибудь можно заставить?
#217 #1097395
>>1097393
Я вообще мимокрокодил. Отдели сначала мух от котлет: разберись, что такое сокеты, и чем отличаются от вебсокетов.
#218 #1097404
>>1097389
Шапка, довен.
#219 #1097405
А правда, что роботы с нейронками вытеснят с работ людей? Не будет пролетариата, не будет бухгалтеров и экономистов. У богачей будут роботы, будет ещё больше, прямо море денег и ресурсов, пролетариат станет абсолютно бесправным и богачи будут насиловать толпами юных женщин и устраивать гладиаторские бои между мужчинами?
#220 #1097423
>>1097405
Нет, мяско дешевле робота всё равно будет.
#221 #1097424
>>1097405
Да. А в конце всех разнесет в жидкость LCL
#222 #1097428
>>1097393
Для начала нужно, собственно, установить библиотеку для вебсокетов. Например, есть одна с довольно очевидным названием: websockets.

>>1097358

>Главное чтобы клинап был.


Это есть. В __del__ объекта же норм запихнуть вызов сишной функции, освобождающей память? У меня в другом месте хранится адрес некоторой кучки данных, привязанных к этому объекту, которые туда-сюда таскать накладно очень было бы.
#223 #1097480
>>1096192
Что за картавые хохлы? Как канал зовется?
#224 #1097483
Вечер в хату. Где я могу подробнее узнать о классах? Книги, мануалы?
#225 #1097528
>>1097483
Двачую вопрос. Разобрался с функциями теперь хотелось бы понять что такое классы и зачем они нужны.
#226 #1097605
>>1097238
Бамп
>>1097483
Бамп
#227 #1097608
>>1097483
оф дока питона. если не можешь в англ - https://www.ibm.com/developerworks/ru/library/l-python_part_6/index.html
image
763 Кб, 500x947
#228 #1097639
Ребятки, ищу хороший способ хранить состояние программ (например, скрипт что-то парсит огромное, а сохранять в файл низя, т.к. вдруг наебнется все!) где-то, чтобы было удобно и красиво! Как прям во всяких nosql дб! Интересует больше именно python решения, а запрос в гугл сделать нормальный, чтобы выдало ответы, у меня просто не хватает мозгов, так что если что - шлите меня нахуй.
#229 #1097649
Аноны, есть такая задача: нужно из html страницы вытащить линк элемента. Я так понимаю, beautifulsoup для этого оптимален? Или есть что лучше?
#230 #1097650
привет я ньюфаг помогите я использую апи Абу

import requests, json
url = 'https://2ch.hk/makaba/mobile.fcgi?task=get_post&board=abu&post=42375' (М)
r = requests.get(url)
data = r.json()

и тут data получается не dict, а list, хотя нормальные json страницы, а не обезьяньи, нормально в dict декодируются с помощью r.json(). я предполагаю это из-за того что у абу в api выдаёт json с квадратными скобками (https://2ch.hk/makaba/mobile.fcgi?task=get_post&board=abu&post=42375). (М) как сделать чтобы выдавало dict и я мог нормально вызывать всякие хуйни?
#231 #1097750
>>1097639
Делай чекпоинты и сохраняй в файлы/db. Другого способа нет.
>>1097649
Да. Нет.
#232 #1097793
>>1096118
djbook.ru
Аноним #233 #1097812
>>1097650
Попробуй тогда костылем переопределить data = data[0] чтобы избавиться от листа. А если у тебя только в таких случаях возникает лист, то поставить условие что если у тебя после запроса приходит лист, брать нулевой элемент
Аноним #234 #1097817
>>1097649

Ты имеешь ввиду url тега 'a' ?
#235 #1097873
Доброго времени суток, есть короче класс, а в нём 2 метода. Методы по ссылке
https://pastebin.com/Zv6waw3Y

Суть такова, что словаре моём всегда есть одно лишнее значение, которые я перед итерацией хочу убрать, что, в общем-то и делаю, но в self.cart.values() всё равно остаётся это значение. ЧЯДНТ?
#236 #1097875
Посоветуйте книжку или курс где было бы много практики.
#237 #1097900
Есть view, которое я хочу вызывать иногда с аргументом, иногда без.
Я пишу def my_view(request, pk=None):
Создаю 2 юрла
url(r'^myview/(?P<pk>\d+)/$', views.myview, name='myview_pk'),
url(r'^myview/$', views.myview, name='myview'),

А темплейте есть формы, которые при отправки вызывают myview_pk с аргументом pk.

Но какого-то хуя у меня pk=None всегда, что не так?
Построчный парсинг #238 #1097927
Калякаю разбор файлов с тестовыми задачками и вариантами ответов в формате docx на Python. Вроде бы парсинг получается, фактически построчным, но я где-то проебался в логике.
В результате, я ожидаю, что когда скрипт находит строку с номером в начале, он считает его вопросом, иначе - ответом на вопрос, который был добавлен последним в список вопросов. Но, на деле, он правильно разбирает вопросы и валит ко всем экземплярам вопросов все доступные ответы.
У меня уже замылился глаз и я не могу найти свою ошибку.

Скрипт: https://pastebin.com/Pnw13MHM (требуется python-docx)
Файл, на котором можно потестить: http://ge.tt/7EgCQUn2

Заранее спасибо.
#239 #1097928
Опять врываемся со своим говном https://github.com/anonim-legivon/dvach.api
Господа гуру, обоссыте наше поделие по делу, пожалуйста ;з
#240 #1097942
>>1097480
я щас уже не найду, там 15летний хуй понтуется 32 гигами оперативки и поесняет за кресты, но помимо этого есть основы за кодинг в целом

просто вбей основы блять
#241 #1097952
Чуваки, надо из любого текста выгребать имена авторов книжечек.
Как это проще всего сделать питоном? А как правильнее? А чего загуглить помимо очевидного text processing with python? Может кто чего видел такого на гитхабе?
Аноним #242 #1097955
>>1097873
Почему просто не удалить ключ командой "del dict[key]"
#243 #1097960
>>1097927
Self.answers=[] в инициализатор перенеси.
#244 #1097961
>>1097952
Ну во-первых они имеют формат А.Я.Клешня.
То есть много точек, заглавные буквы и тд. Во вторых, они в общем распределении по частоте будут в хвосте.
Аноним #245 #1097962
>>1097952
Ну regex'ом если ток, либо ищи нейросеть
#246 #1098005
>>1097875
codewars
#247 #1098058
А можно как-то разбить определение класса на несколько файлов?
Аноним #248 #1098061
>>1098058
Поподробнее
#249 #1098062
>>1097928
Бумп, нужна конструктивная критика
Аноним #250 #1098065
>>1098062
user agent подставляете чтобы думали что пользователь зашел?
#251 #1098075
>>1098065
Ага, сделали ещё поддержку смены заголовков и прокси. Кому нужно прикрутит библиотеку fake_useragent и будет каждый раз менять headers в цикле. Эт вообще если кто-нибудь соберётся делать вайпалку, но тогда надо будет ещё капчу решать сторонними сервисами с:
#252 #1098077
>>1098065
Если желаешь присоединиться, то пиши в телегу @dexofan
Аноним #253 #1098081
>>1098077
я долбаебокодер
#254 #1098088
>>1097960
Добра, помогло
#255 #1098230
>>1098058
Вряд ли. Только если разбить сам класс на базовые классы / миксины, с которых наследоваться
#256 #1098234
>>1098230
>>1098058
С такими реквестами к руби с его консернами.
Slowpoke
19 Кб, 200x218
#257 #1098309
Питоны, нужно случайное количество случайных чисел в определённом промежутке.
Как это организовать?
Дважды через randint?
Аноним #258 #1098324
>>1098309
Чекни numpy библиотеку
#259 #1098328
>>1098309
Ну если инты нужны, то да. Можно через нампи с указанием количества сразу:

>np.random.randint(start,stop,size=np.random.randint(np.random.randint(np.random.randint(


Однако с количеством надо бы немного определиться, хотя бы примерным.
#260 #1098342
>>1098324
>>1098328
Ага, спасибо.
#261 #1098354
Так, ещё вопрос: функция возвращает минимум 2 значения.
Как их "разбить", чтобы можно было написать: "Такой-то параметр равен "Значение1"", "Такой-то параметр равен"Значение 2""?
Аноним #262 #1098359
>>1098354
Получается он кортеж возвращает, попробуй записать типа
a, b = func()
print 'a:',a,'b:',b
#263 #1098366
>>1098359

> print 'a:',a,'b:',b


Убью нахуй.
#265 #1098375
>>1098372

> print 'a:',a,'b:',b


Python 2
Аноним #266 #1098378
>>1098375
На работе заставляют быть геем и писать на 2.7
#267 #1098384
>>1098378
Нет, я пояснил почему его нахуй хотят убить.

> print 'a:',a,'b:',b


> Убью нахуй.

nelson haha
8 Кб, 233x217
#268 #1098389
#269 #1098391
Двач, устал от пичарма, лагучий as fuck. Что посоветуете? Что скажите за atom?
#270 #1098393
>>1098391
Пичарм — божественная вещь, ты просто неправильно его готовишь.
Как именно лагает? Сколько RAM?
#271 #1098395
>>1098393
Он не то, что бы лагает, загружается долго, и если нечаянно клацнешь по нему будь готов смотреть на долгую загрузку. Хочется чего-то более легкого.
#272 #1098396
Почему везде пишут, что python тесно связан с linux?
#273 #1098397
>>1098395
А, так это не такая уж и проблема.

> чего-то более легкого


Очевидно, автодополнения/рефакторинг/прочие фишки пичарма будут гораздо хуже/их не будет совсем.

Atom, случаем, не на GitHub Electron? Видишь это название — сразу бросай говно от веб-макак.
#274 #1098399
>>1098396

> везде


Где? Он связан с тем, с чем ты его свяжешь.
#275 #1098401
>>1098397
Я просто загуглил best python IDE, везде на первом месте либо PyCharm, либо Atom.

>Очевидно, автодополнения/рефакторинг/прочие фишки пичарма будут гораздо хуже/их не будет совсем.


Для этого есть IPython
#276 #1098451
>>1098391
Vs code годнота
#277 #1098455
>>1098451
Параша на электроне.
Помню, из-за него баг был: мерцание курсора в одном окне отжирало 13% CPU. Сейчас как-то обошли. Но все ещё говно.
#278 #1098462
>>1098391
если пичарм лагает - купи макбук
базарю, пользоваться на нем пичармом одно удовольствие

а вообще vim или spider
по-мелочам так и вовсе можешь обмазываться jupiter notebook - он охуенен и пиздат
#279 #1098474
>>1098455
его же переписали
#280 #1098495
>>1098474
Переписали на что-то более нативное?
#281 #1098515
>>1098451
>>1098455
vscode реально пиздат, базарю, ещё захочешь.
#283 #1098524
>>1098324
Вот это перебор для его задачи
#285 #1098562
>>1098525
>>1098523

> list of unique elements


Мне кажется, это немного противоречит условию.
#286 #1098598
>>1097075
Если на тытрубе нету на русском, то возможно я запилю. Я пока осваиваю технику разделения логики и интерфейса. Так считается правильно.
#287 #1098599
В питоне аргументы функций мутабильные? Если я их изменю в функции, то дальше в функции будет измененное значени?
#288 #1098600
>>1098599
Мутабельными или иммутабельными могут быть типы, а не аргументы функций.

Если же ты просто спрашиваешь, можно ли сделать
def x(a):
a = 1
return 1
print(x(9999)) # 1
то да, разумеется. Но это ты просто переменной a присвоил новое значение.
#289 #1098601
>>1098600
return a там, конечно же.
#290 #1098610
>>1098598
По pyqt есть на русском, но всё это уровня "делай по шаблону просто по тому что так надо"
Нигде не объясняются именно основы- что и зачем пишется

А вообще пили. Пользы много будет
Снимок
16 Кб, 637x353
#291 #1098625
Аноны, зацените мой спизженный с гугла многопоточный сервер.

Он сможет обрабатывать параллельно несколько соединений в разных потоках? Если нет, то как его можно модернизовать? Есть ли возможность выводить id активного потока, чтобы хоть контролировать правильность работу сервера?
#293 #1098643
>>1098625
Многопоточным его можно назвать лишь условно. Потоки вроде есть, но в каждый момент времени может выполняться только один. Если хочется паралелльности, то смотри в сторону asyncio, либо запускай несколько однопоточных инстансов своего сервера.
#294 #1098650
Что почитать по алгоритмам?
anjOGeo700b
132 Кб, 700x1244
#295 #1098655
Питоняши, помогите с такой задачей:
https://pastebin.com/5iPg5KNY

Я с сокетами/запросами почти никогда не сталкивался, поэтому не могли бы вы подсказать:
1) Что в этом случае означают два порта, как их использовать?
2) Как вообще сделать такой запрос? Тут requests хватит или нужно что-то через sockets придумывать?
#296 #1098676
>>1098462
У меня вместе с anaconda поставился jupiter, только я ещё не вкурил всей сути. Его в браузере каждый раз открывать?
#297 #1098682
>>1098643

> Потоки вроде есть, но в каждый момент времени может выполняться только один.


Для ввода-вывода пойдет.
#298 #1098689
>>1098655

>Я с сокетами/запросами почти никогда не сталкивался, поэтому не могли бы вы подсказать:


>1) Что в этом случае означают два порта, как их использовать?


>2) Как вообще сделать такой запрос? Тут requests хватит или нужно что-то через sockets придумывать?



Это не просто сокеты (berkeley sockets), а какое-то флешевое говно. Если я правильно понимаю, тебе надо установить Tcp-соединение и послать внутри него сформированный нуль-терминированный xml.
Зачем два порта, не имею ни малейшего представления. Возможно, один из портов должен как-то указываться в самом xml.

Гугли по XMLSocket.

Повторяюсь, задача не на питон, а разобраться в проприетарном говне.
#299 #1098703
>>1098643
В питоне нету многопоточности?
#300 #1098704
>>1098703
С чего ты взял?
ar5xy8V700bv2
106 Кб, 700x862
#301 #1098706
>>1098689
Спасибо,

>Это не просто сокеты (berkeley sockets), а какое-то флешевое говно.


да, но там оказывается есть возможность послать JSON

>Зачем два порта, не имею ни малейшего представления.


Мне еще докинули доков по платформе. Насколько я понял второй - порт на который переадресуется вызов с первого уже на самом сервере. Т.е. нам нужен только первый.

Итого у меня получилось
https://pastebin.com/jqmw4sZB

Все виснет на socket.recv - судя по докам, это значит что мне ничего не послали в ответ/закрыли соединение.
Т.е. делаю я по сути все правильно, проблема в самой платформе/адресах/запросе?
#302 #1098738
>>1098706

>Т.е. делаю я по сути все правильно, проблема в самой платформе/адресах/запросе?


Да.
Ты еще забыл терминирующий нуль в запросе. И я думаю сервер хоть что-то да должен отвечать.

И еще изучи неблокирующие сокеты, это чтобы recv не вис.
#303 #1098769
>>1098676
суть в том, что бы делиться с темным не программерским народом скриптами особо не заставляя их чет устанавливать и тд
ну и удобно, че, крутится себе в интернете где-то твоя страничка с кучкой скриптов "по темам" куда ты из браузера зайти можешь и пользоваться
#304 #1098770
>>1098391
Emacs вроде годнота. Правда входной порог выше чем у вскода или пайчарма.
#305 #1098840
>>1098643

>Если хочется паралелльности, то смотри в сторону asyncio


лолшто
Уж вот от кого, а от asyncio точно никакой параллельности ждать не стоит по определению.
FOvDpXjw4aU
80 Кб, 457x604
#306 #1098856
Как написать асинхронный for in (max threads = 10000)?
#307 #1098861
>>1098703
Да гонит он.
Есть posix-треды. Но ускорения вычислений это не дает, в один момент выполняется только один тред. Но для задач, ожидающих ввода-вывода это подходит, если только тредов разумное количество и они не каждую секунду создаются/завершаются.

Для распараллеливания вычислений, когда все ядра проца загружены, есть мультипроцессинг.
#308 #1098886
Есть один бот (для вайбера), и он не хочет работать абсолютно

Проблема в том, что там используется Flask для обработки запросов
Сначала запускаю сервер, потом устанавливаю вебхук для вайбера, и он стабильно при запуске возвращает 502 ошибку. Если обращаюсь по адресу уже после запуска приложения – отвечает нормально. Как я понимаю, Flask запускается асинхронно? Есть ли возможность выполнить команду после старта фласка?
#309 #1098888
>>1098856
А вам так много зачем? Супер-компьютер в подвале нашли?
#310 #1098892
>>1098888
Как сделать? Количество потоков неважно
#311 #1098896
>>1098738
Спсибо

>терминирующий нуль


Пока гуглю и не нашел: а что это такое и как его добавить в запрос? да, я вообще в этом не разбираюсь
#312 #1098897
>>1098886
Фласк синхронный.
Ты чего-то не того наворотил. Смотри логи-дебаги.
#313 #1098900
>>1098896
Это в сишке строки принято оканчивать нулевым байтом. На сайте адобе я нагуглил что в xml-сокетах данные тоже должны им заканчиваться. Добавь '\x00' или b'\x00' (питон3) в конец того, что шлешь.
#314 #1098927
>>1098900
Попробовал - все равно 0 ответа от сервера, буду дальше разбираться
Спасибо
#315 #1098932
>>1098897
Да смотрел, ничего дельного не нашел
Просто если после app.run() вызывать например print, то он срабатывает ПЕРЕД сообщением о том, что сервер запущен
#316 #1098949
>>1098932

>Просто если после app.run() вызывать например print, то он срабатывает ПЕРЕД сообщением о том, что сервер запущен



Это нормально.
хттп-реквесты фласк обрабатывает синхронно, я вот о чем. А служебный вывод видимо как-то по хитрому кэшируется. Короче забей на это.
#317 #1098950
>>1098927
Тебе вообще что надо, рабочего клиента эмулировать? Дамп трафика тогда проси.
Аноним #318 #1098960
>>1098949
understandable, спасибо за разъяснения
Кстати, аноны, если кто-то писал на питоне ботов для вайбера, отпишитесь мне, есть пара вопросов
#319 #1098962
>>1098892
from multiprocessing.pool import ThreadPool
pool = ThreadPool(n)
pool.map_async(func_containing_for_body, list_of_stuff)
...
pool.close()
pool.join()
#320 #1098982
>>1098962
Это вставлять в for in loop? Напр. 1000000 entries нужно обработать.

for entry in somelist:
action_with_long_response(entry)
#321 #1098984
>>1098886
А где инфу нашел по написанию ботов для вибера? А то мне пригодилось бы, а долго втыкать в апи лень
#322 #1098987
>>1098982
Нет. Это писать вместо фор лупа:

>pool.map(action_with_long_response, somelist)



map или map_async выбирай в завимости от того, надо ли тебе что-то делать пока все эти элементы обрабатываются (т.е. map() блокирует основной тред)/
#323 #1099062
>>1098960
>>1098984
Нахуй вам этот глючный вибер?! Телеграм же есть!
#324 #1099071
>>1099062
У меня там коллеги-старперчики сидят. И хвала аллаху что они хоть со скайпа съебали
Аноним #325 #1099073
>>1098984
https://developers.viber.com/
>>1099062
Нужно параллельно сделать ботов для вайбера и тг, со вторым уже давно всё готово, а вайбер всё портит
#326 #1099114
>>1098650
Если еще актуально - отпишись в телегу @malomalsky. Скину годную книгу
#327 #1099224
Короче, есть ManyToManyField, но в формах я хочу чтобы она отображалась как просто селект с возможностью выбрать один вариант, как это можно сделать?
#328 #1099229
>>1099224
django-smart-selects ?
еще можешь каштомные кверисеты писать, они тоже не кусаются
#329 #1099313
>>1098987
А как итерировать то? Как к entry обратиться в action_with_long_response?
#330 #1099315
>>1099313
Все, нашел.
#331 #1099330
>>1099229
В формах что ли? А есть про это в доках, а то я писал, но джанга ругалась.
#332 #1099342
>>1098626

>15летний хуй


ты слишком тупой и не можешь в поиск информации, бросай нахуй, это не твое
#333 #1099350
>>1099071
В скайпе тоже давно боты есть.
#334 #1099365
Можно ли писать Йоба-игры на Питоне или это мазохизм?
мимопроходил
#335 #1099366
>>1099365
Конечно можно! Сейчас на pygame почти все написано
original[1]
37 Кб, 600x312
#336 #1099375
>>1098643

>Если хочется паралелльности, то смотри в сторону asyncio


Взял в гугле пример сервера на asyncio, настроил под свои нужды - результат выполнения абсолютно такой же, как и раньше. Прям 1 в 1.

>>1098840
Блджад, а от чего можно ждать параллельности? Казалось бы, такая тривиальная задача - обрабатывать одновременно несколько подключений. Может я зря Питон выбрал для этих нужд? Какие ещё есть варианты?
#337 #1099378
>>1099375

>от чего можно ждать параллельности


Elixir, но вакансий на нём — кот наплакал.
#338 #1099381
>>1099378
Вакансии пока не главное, мне важно сейчас решить стоящую передо мной задачу.
#339 #1099382
>>1099375
нода, епт!
#340 #1099384
>>1099375

>обрабатывать одновременно несколько подключений.


Сначала давай определимся с терминами. Ты под "одновременно" имеешь в виду именно вот параллельно, на всех доступных ядрах/гипертредах, т.е. для повышения производительности, или же просто асинхронно, не мешая друг другу, чтобы несколько человек могли подключиться и работать с твоим сервером?

Если второе (а я думаю, что именно это тебе и нужно), то и asyncio, и треды вполне тебе подходят.

>Какие ещё есть варианты?


Есть node.js, но там, по сути, тот же asyncio, асинхронщина на одном ядре.

Для "параллельности" можно просто несколько процессов запустить, тогда все ресурсы и будут использованы

Так что спокуха, всё ок, это просто манька выебнуться "знаниями" решила (и мгновенно же и обосралась буквально через пару слов, лел).

>результат выполнения абсолютно такой же, как и раньше. Прям 1 в 1.


Так а что тебя в этом результате неустраивает-то?
#341 #1099397
>>1099384

> просто асинхронно, не мешая друг другу, чтобы несколько человек могли подключиться и работать с твоим сервером


Именно это.

Например, подключается первый пользователь и присылает мне подряд 100 сообщений hello_world_1.

В это время подключается второй пользователь и присылает 5 раз сообщение hello_world_2.

Мне нужно, чтобы второй пользователь не ждал в очереди, пока закончит первый. Нужно чтобы сообщения от любого пользователя сразу же выводились на консоль как только придут. И таких пользователей будет около 30 штук одновременно.
#342 #1099399
>>1099397

>чтобы второй пользователь не ждал в очереди, пока закончит первый


Ну так первый будет обращаться к СУБД, наверное.
#343 #1099403
>>1099399
Нет. Пользователи - это GPS трекеры, которые присылают мне свои координаты.

Пока получается так, что первый трекер общается с сервером, а остальные ждут в очереди и накапливают свои координаты в буфер. В итоге пока очередь доходит до последнего трекера, то буферизация достигает нескольких часов.

Сдаётся мне, что это происходит потому, что как сказал анон >>1098643

>Потоки вроде есть, но в каждый момент времени может выполняться только один

#344 #1099406
>>1099397

>чтобы второй пользователь не ждал в очереди, пока закончит первый.


Ну так а сейчас у тебя не так, что ли?

>чтобы второй пользователь не ждал в очереди, пока закончит первый.


Зависит от того, как у тебя код написал. Формально, он будет ждать, но зачастую это ожидание очень малое (пренебрежимое). А если обрабатывающая запросы функция обращается к бд или диску, то во время ожидания этих операций (открытия/закрытия файлов, например) питон пойдёт обслуживать другого пользователя.

>>1099403

>Сдаётся мне, что это происходит потому, что как сказал анон


Нет, ты просто наговнокодил. Вырежи всё лишнее, покажи свой код. Могу чуть позже тебе пример нормальный накалякать.
#345 #1099407
>>1098703
В 2.7 не было. В 3.5 поддержка появилась из коробки.
#346 #1099409
>>1099375

>Какие ещё есть варианты?


uwsgi, как плюс - он сам нагрузку по ядрам раскидывает, если сконфигурировать
#347 #1099423
>>1099406
Мой говнокод по ссылке: https://ideone.com/Y6ww0V

За работающий пример буду сильно благодарен.
Самое смешное, что сервер может быть и нормально работает, а косяки получаются из-за криво настроенных клиентов.
#348 #1099426
>>1099365
Ну, Ren`Py например. Популярная штука.
Основан на pygame, правда, бидон второй.
#349 #1099429
>>1099407
G I L
I
L
#350 #1099435
>>1099423
Попробуй использовать Jython/IronPython.
Я когда многопоточный url-фаззер на request писал, действительно быстрее было. Но там только второй бидон.
#351 #1099436
>>1099409
Вебмакака просочилась. Ты почитай что ему нужно вообще.
#352 #1099438
>>1099403
не слушай долбоебов вещающих про Гил и однопоточность
И про uwsgi , позор то какой

Твою задачу питоном решить можно.

Конкретнее распиши как трекеры общаются с сервером. Просто по тсп шлют сообщения в своём формате?
#353 #1099447
>>1099423

>За работающий пример буду сильно благодарен.


>Могу чуть позже тебе пример нормальный накалякать.


Вот-с. https://repl.it/repls/FunnyFunnyHog

>сервер может быть и нормально работает


Увы.

>Мой говнокод


>yield from asyncio.wait_for(reader.readline(), timeout=100.0)


Вот тут херня. Данные у тебя новой строкой не оканчиваются, в итоге он читает и читает, пока там вдруг случайно не появится конец строки (а с таймаутом в 100 секунд шансы довольно велики). При этом при начале поступления данных, походу, readline начинает блокировать. Замени readline на, например, read(500) И всё станет немного лучше. Дальше уже нужно знать протокол и формат сообщений, имеют ли они размер и т.д.

И не слушай всяких долбоёбов, которые тут уже на IronPython, блядь, перейти советуют.
#354 #1099450
>>1098987

> pool.map(action_with_long_response, somelist)


Как прервать итерацию?
#355 #1099453
>>1099447
Вот твой же код с моими симуляторами трекеров с выставлением read(36) (размер моего пакета): https://repl.it/repls/IdealJudiciousHornet всё ок работает.
#356 #1099458
>>1099447

>пока там вдруг случайно не появится конец строки (а с таймаутом в 100 секунд шансы довольно велики)


Хотя тут я хуйню какую-то сморозил, по-моему, но у меня оно почему-то начинало выплёвывать через несколько секунд сразу кучу данных.
#357 #1099460
>>1099436

> Ты почитай что ему нужно вообще.


держать 30-60 соединений, как я понял
#358 #1099497
>>1099403
блин да пихай их в celery и пусть оно там сколь угодно долго как-то само ебется
#359 #1099499
>>1099447

>Данные у тебя новой строкой не оканчиваются, в итоге он читает и читает, пока там вдруг случайно не появится конец строки


>Замени readline на, например, read(500)


Т.е. итерация цикла while должна заканчиваться после того, как придёт интересующая меня строка? В данном случае после получения 500 символов. Верно? Длина строки у меня не фиксирована, но, согласно протоколу, строка заканчивается символами \r\n. Получается я должен читать приходящие символы, и как только наберётся последовательность \r\n делать циклу break?
#360 #1099528
>>1099499

>Длина строки у меня не фиксирована, но, согласно протоколу, строка заканчивается символами \r\n. Получается я должен читать приходящие символы, и как только наберётся последовательность \r\n делать циклу break?



Да. Но ограничение на длину все же поставь. Протокол протоколом, а клиенту чудить никто не запрещает.
#361 #1099549
>>1099499

>итерация цикла while должна заканчиваться


>наберётся последовательность \r\n делать циклу break?


Не совсем.

Теоретически, при такой связи должно быть два цикла:
1. на всё время подключения клиента
2. на время сбора данных (они же могут не одним куском сразу прийти). Т.е. что-то типа (полупсевдокод)

>while client.connected():


> data = b'' # или socket.read(HEADER_SIZE)


> while len(data) < packet_size:


> data += await socket.read(socket.bytes_available)


> process_data(data)



В даннм случае, внутренний луп у тебя заменён на readline(), потому что ты не по размеру, а по делимитеру определяешь конец пакета (обычно же хедер есть и всё такое).

Твой хендлер вызывается при подключении клиета. Если ты сделаешь break после прочтения первого сообщения, то соединение разорвётся и придётся его устанавливать заново при следующей пачке данных. Тут уже зависит от частоты сообщений (трекеры-то, полагаю, должны бы каждые несколько секунд отсылать? Приятно же наблюдать, как курьер с пиццей к твоему дому подъезжает в почти реальном времени), выбор за тобой.

Длины стоит ограничить, чтобы мамики хацкеры не послали тебе тонну дряни и не засрали твой буфер, который так и будет копить и копить бесконечно данные.

Данные-то правильные приходят, которые получается обработать, лишнего ничего нет? Потому что вообще так-то твой код должен был бы работать, если протокол соблюдён.
#362 #1099566
Господа, здравствуйте!!
Хочу настроить пайчарм для работы с питоном. Скачана новая анаконда, скачан сам питон и пайчарм. Библиотеки все подключены (1й пик), но нужно задать еще run/debug configuration. А там у меня просят какой-то скрипт (2й пик).
Работал с питоном последний раз где-то год назад, скриптов никаких не помню, что там выбирать не знаю. Подскажите!
#363 #1099574
>>1099566
Кроме двача больше некому помочь, правда
#364 #1099575
>>1099566

>просят какой-то скрипт (2й пик).


ну так и укажи там путь к какому-то скрипту который ты дебажить собрался.
#365 #1099576
>>1099575
Ого. У меня код есть, я его дебажить буду. Про скрипты впервые слышу
#366 #1099613
>>1099576
Я ПОНЯЛ КОД И ЕСТЬ СКРИПТ УКАЗАЛ ЕГО И ВСЕ НОРМ СПАСИБО РЕБЯТА
anjDvrV700b
48 Кб, 700x1031
#367 #1099634
Анон, ты разбираешься в djnago ORM?
У меня в бд есть две модели: кастомеры и заказы. У каждой модели есть поле created_date.
Нужно:
задаешь две даты (start, end) -> тебе выдает словарь с
{date:
{customers_created: кол-во кастомеров за дату,
orders_placed: кол-во заказов за дату}
}
Я думаю это можно как-то получить с помощью ORM, но совсем не разбираюсь в этих aggregate/annotateпока гуглю варианты
#368 #1099667
Как-то бля можно засунуть в неймспейс кучу функций и вызывать их по типу Мояёба.Foo(x) ?
Если сделать класс то он требует вызов из объекта
#369 #1099669
>>1099667
А, кажись понял - надо писать перед каждой функцией @staticmethod
#370 #1099673
Тест
#371 #1099675
пацаны, тут это js макака чет не может разобраться что к чему
сделал для choices в forms.py multipleSelect
все нормально, в админке появились чекбоксы, пытаюсь сохранить модельку, пишет Выберите корректный вариант. ['red', 'blue', 'green'] нет среди допустимых значений.
я вообще понятия не имею что происходит, фигачу по докам и стековерфлов, интуиция подсказывает что в models.py в поле colors определен CharField
colors = models.CharField(choices=COLORS, max_length=50, verbose_name='Цвета')
а админка пытается запихать туда ['basket', 'child', 'tennis'] массив

вопрос что и где мне нужно сделать чтобы это исправить?
пока в голове только переопределить метод save в форме, чтобы он вместо этого массива делал 'basket|child|tennis' но я уверен что есть способ лучше, подскажите какой?
#372 #1099696
>>1099675
заюзал это
https://github.com/goinnn/django-multiselectfield
пиздец вы питонисты говноеды, ради элементарной задачи тянуть хуй пойми чей говнокод
еще на npm выебонят
ебал вас в рот Антихайп
Screenshot from 2017-11-28 22-00-36
27 Кб, 680x254
#373 #1099704
Как завершить multiprocessing ThreadPool?
#374 #1099724
Питон, допустим, у меня накачено дохуя питонов: 3.4, 3.5, 3.6. Как мне юзать пип для каждого отдельно? Как запускать каждый отдельно?
#375 #1099765
>>1094248 (OP)
А зачем в 2017-м нужна Anaconda? Python же вроде давно в venv научился
#376 #1099780
Аноны, скоро буду сдавать ЕГЭ по информатике в 200-300к мухосрани, сам учу змея, но боюсь что меня опрокинут с питоном и заставят на паскале писать, есть ли тут аноны, которые сдавали информатику в мухосранях?
#377 #1099821
Вкатится в питон, и у меня проблема.
Предположим, что у нас есть кортеж, и нам нужно доставать из него 2 числа и сравнивать их, как достать эти сразу 2 числа? Или мне надо по очереди их брать, записывать в переменные, сравнивать переменные и очищать после?
#378 #1099850
>>1099821

>и нам нужно доставать из него 2 числа и сравнивать их,


По два соседних итерируя по длине кортежа чтоли или как? пример приведи.
изображение
7 Кб, 577x168
#379 #1099874
Сап змейки. Можете мне обьяснить каким вообще образом данный вундеркод работает? Ведь, к примеру, 4/2 нихуя не ноль будет. Или я чего-то не понимаю?
#380 #1099876
>>1099874

>Или я чего-то не понимаю?


Вот ето вот.
#381 #1099879
>>1099876
Ну так чего же? Что же лежит на поверхности и чего я блядь не вижу?
#382 #1099880
>>1099874

% считывает остаток

4 % 2 = 0

5 $ 2 = 1
изображение
1,7 Мб, 1244x610
#383 #1099881
>>1099880
То чувство когда не очень внимательно читал первые уроки. Спасибо, вспомнил
#384 #1099918
>>1099724
python3.4 -m pip install krokodil
python3.5 -m pip install zalupa
python3.6 -m pip install sir

>>1099821

>как достать эти сразу 2 числа?


if kortezh[0] == kortezh[1]:

>>1099704
Оттуда — никак. Что ты можешь сделать, это добавить глобальный флаг, выставив которые все оставшиеся вызовы просто будут тут же завершены — https://repl.it/repls/KhakiFunnyCaiman
Если у тебя такая задача, по поиску нужного чего-то в списке, то может стоит самому по кускам загружать в пул данные, останавливаясь тогда, когда нашлось нужное? Можешь вот в сторону Queue Глянуть - https://pymotw.com/2/Queue/
В принципе, если использовать imap, то можно сделать pool.terminate(), по по-моему это немного нехорошо, если делать это из одного из тредов пула, а не оттуда, где пул был создан.
Но может быть ты лучше задачу свою опишешь? Потому что какое не очень элегантное решение получается.
#385 #1099924
>>1099696

>ради элементарной задачи


>еще на npm выебонят


У нас хотя бы is-boolean'ов нет.

А зачем тебе питон, нода же гораздо лучше для веба?
#386 #1099932
>>1099918
Задача такова: много операций с долгим выполнением, которые надо расспаралелить и оборвать при неком условии.
#387 #1099933
>>1099918
Как-то тупо получается мультипроцессинг сделан, если его нельзя оборвать. А если у меня миллион процессов?
150px-Pekanamekaet
5 Кб, 150x150
#388 #1099941
>>1099874

>2-ой питон

#389 #1099943
>>1099941
Что это значит?
#390 #1099958
>>1099943
Это значит, что ты пидор
#391 #1099960
>>1099958
А может быть... ТЫ?
#392 #1099964
>>1099932
>>1099933

>А если у меня миллион процессов?


Значит ты что-то не так делаешь.

>надо расспаралелить


Ограничение по производительности или io? А то сначала ты треды просил, а теперь вдруг распараллеллить надо.

Если таки cpu-bound, то вот с процессами так можно сделать:
https://stackoverflow.com/questions/26068819/how-to-kill-all-pool-workers-in-multiprocess

С тредами я писал же, что можно

>pool.imap(func, list)


>pool.terminate()


Просто делать это лучше-таки в основном треде, как и с процессами (там по-другому нельзя совсем): https://repl.it/repls/MediocreArcticEel (у тредов общая память, поэтому не нужны дополнительные сложности с менеджерами).

Честно говоря, я не знаю, почему при map() нельзя так же прервать. Возможно, список сразу целиком пулу отдаётся, в отличие от генератора, который ещё можно остановить.

Только учти, что порядок не особо гарантирован, но раз ты параллелишь, то все элементы должны бы быть независимыми.

Либо вот на документированные executor'ы (и по тредам, и по процессам) посмотри: https://docs.python.org/3.4/library/concurrent.futures.html
#394 #1099985
>>1099964
Насчёт решения с тредами: после вызова pool.terminate, уже запущенные задачи в тредах будут доделываться до конца, только новые не поступят. (Потому что внутри там, наверняка, всё через ту же стейт переменную сделано, которая перед каждым новым элементом проверяется). Так что не вздумай там запускать сотни тредов.
#395 #1100007
>>1099724
Не ставь глобально пакеты, обмажься virtualenv

А там уже устанавливай нужные версии питона
$ virtualenv -p python3.6 environment_file
#396 #1100009
>>1099943
Значит, что ты используешь 2ю версию питона (print не функция). Анон выше мягко намекал, что учить версию языка, которая будет лишена поддержки в 2019-20, не совсем продуктивно в 2к18 году.
#397 #1100019
>>1099850
Два соседних, да
#398 #1100046
>>1099964
А зачем в твоем процессе в конце close/join если они все равно терминированы?
#399 #1100049
>>1100019
Если нужно красивенько: https://repl.it/repls/WorriedRevolvingSablefish нагло спиздил из доков itertool'а

Но у тебя, по-моему, чего-то более фундаментального понимание неправильное. К элементам можно обращаться по индексам из списков/туплов и других последовательностей.

>l = ['a', 'b', 'c']


>l[1] # 'b'


>var = 'b'


l[1] можно использовать точно так же, как и var.

>>1100046
Join чтобы дождаться конца выполнения уже ещё активных тредов (добавил принтов по ссылке). А вот close и правда не нужен, join можно вызывать и после terminate'а (но хотя бы один из них обязателен).
#400 #1100053
>>1100049
Про индексы то понятно, а если мы рандомом заполняем кортеж? То приходится без индексов справляться
1
88 Кб, 1028x765
#401 #1100059
>>1099549
Спасибо тебе, доброанон, за помощь. На твоём симуляторе действительно всё хорошо работает, значит сервер написан правильно.

Но мне по прежнему приходит какая-то хуйня. Данные выплёвываются по очереди, пачками по несколько десятков штук, с диким кэшированием, а от половины трекеров и вовсе не приходит нихуя.

Вся загвоздка в том, что трекеры устанавливал и настраивал не я. Этим занималась какая-то говноконтора и настраивала отправку данных с трекеров на свой говносервер. Для меня же они просто делают ретрансляцию данных со своего говносервера. Видимо, что ретрансируются они как-то криво.
#402 #1100061
>>1100053
Каким ещё рандомом? Какая разница, чем ты его заполнил? Покажи код, ёпту.
Ты делаешь что-то вроде

>[random.random() for i in range(100)]


и хочешь сравнить подряд идущие элементы во время создания списка, что ли?
#403 #1100063
>>1100061
Да, что-то похоже, было бы неплохо, если покажешь
#404 #1100072
>>1100063
Конечно покажу:

>никак



Нет, конечно, дерьма можно всякого разного наделать (https://repl.it/repls/AchingScentedBlesbok), но не нужно. Лучше просто в несколько строк распиши свою процедуру заполнения, всё равно этого не избежать.
#405 #1100076
>>1100072
Хотя если уж вот совсем хочется, то http://code.activestate.com/recipes/204297-the-secret-name-of-list-comprehensions/
anjwNdE700bv1
69 Кб, 470x637
#406 #1100090
Анон, ты разбираешся в celery?

Допустим, у меня есть задача:
1) Есть ограничение по времени 50 сек
2) Есть список url
На каждый из url нужно отослать по запросу. Если запрос не удался - нужно попытаться еще раз. И так пока не получу ответ 200 или не кончится время на ретраи (1)

Нужно чтобы запросы начала рассылаться синхронно.

Я подумывал о celery, но
- не создавать же на каждый запрос по воркеру (чтобы они обрабатывались одновременно)
- если будет 2 воркера - каждый сможет обрабатывать только
1 url и не закончит, пока не получит 200 или не выйдет время. Допустим есть 10 url, 2 воркера взяли первые 2 и у них выдает постоянно ошибку - остальные 8 так и не обработаются, пока не выйдет время.

Как это можно вообще реализовать?
#407 #1100096
Как выкачивать фалйы по ссылке в джанге?
#408 #1100102
>>1100090
А чу, в пистоне уже реализовали многопоточность?
На божественном сярпе это делается элементарно с LINQ asParallel
#409 #1100115
>>1100090
a s y n c i o
s
y
n
c
i
o

Но будет только в celery 5
#410 #1100143
>>1099964
Почему ты пишишь, что треды и мультипоточность/парралелизм отличаются? Это же одно и то же - запуск парралельных подпроцессов.
#411 #1100158
>>1100019

>>> data = tuple(range(10))


>>> for first, second in zip(data[:-1], data[1:]):


print(first,second)

(0, 1)
(1, 2)
(2, 3)
(3, 4)
(4, 5)
(5, 6)
(6, 7)
(7, 8)
(8, 9)
#412 #1100159
>>1100158

> data[:-1]


Можно просто `data`
#413 #1100161
>>1100159
Кстати да, это же zip, а не zip_longest
#414 #1100167
>>1100115
Ну а без 5 селери как быть?
А вообще это нормальная практика: у меня 20 запросов и я их синхронно выполняю?
#415 #1100169
Поясните за парсинг, юзаю BeautifulSoup.
На странице есть скрипт, в котором есть определенный параметр hd_src его значение нужно спарсить, но я не понимаю как.
Если я пишу ищу через string, то он возвращает мне весь скрипт тэг, а мне нужна только ссылка в hd_src, как это сделать можно?
#416 #1100177
>>1100169
Использовать парсер js на пифоне.
#417 #1100183
>>1100177
Ладно, ща попробую какой-то slimit, спасибо.
#418 #1100184
>>1099964
imap вообще не работает. У меня оно зависает и всё. Ничего не происходит, не выводит в консоль list_item.

https://repl.it/repls/PointlessRawWasp
#419 #1100185
Накатил анаконду, но импортировать ничего не могу, но если ебошить через pip install matplotlib, то pycharm все это импортирует и подгружает. https://www.youtube.com/watch?v=dgjEUcccRwM И чекал по видосам, все установлено правильно, в консольке могу и питон, и jupyter notebook вбить и 0 ошибок. Что я делаю не так?
#420 #1100190
>>1100184
А все, причина проблемы идентифицирована, нужно всегда вызывать event.set в последнем треде.
15115818711860
63 Кб, 493x402
#421 #1100193
>>1100190
Сколько костылей надо добавить чтобы обычный выход из мультитрединга инициировать. Нужно считать длину итерируемого массива, или брать последний элемент массива, добавлять его в переменную перед распараллеливанием, потом сравнивать...
#422 #1100204
>>1099924
хз зачем кому то понадобился is-boolean, чекнуть тип можно вполне себе без него

>А зачем тебе питон, нода же гораздо лучше для веба?


админка искаропки
да и синтаксис кошерный
#423 #1100211
>>1100009
А что, разница прям такая огромная? Просто codeacademy удобен весьма
Снимок экрана 2017-11-29 в 22.53.55
136 Кб, 916x823
#424 #1100220
>>1100185
анаконда ж сама через свой "менеджер" окружения создает, не?
#425 #1100237
>>1100143
Потому что в питоне они сильнее отличаются, из-за GIL'а. Т.е. параллельности с тредами в питоне ты не получишь, в любой момент времени работает будет работать только один. Что на IO-bound задачи, типа скачивания кучи файлов из интернета одновременно, особо негативно не влияет.

>Нужно считать длину итерируемого массива, или брать последний элемент массива, добавлять его в переменную перед распараллеливанием, потом сравнивать...


Нахуя? Тебе же нужно было раннее прерывание вроде. Так-то да, done.wait() ждёт установки эвента.
Сделай так тогда и забей хуй: https://repl.it/repls/MonstrousCrushingHummingbird будет либо до конца ждать, либо оборвётся на нужном тебе. Может я вовсе неправ был и не так уж и плохо закрывтаь пул из дочернего.
#426 #1100238
>>1100237

>в любой момент времени работает будет работать только один. Что на IO-bound задачи, типа скачивания кучи файлов из интернета одновременно, особо негативно не влияет.


Да, но не по этой причине, а потому что io задачи отпускают GIL на время ожидания.
#427 #1100255
Может кто пояснить, при скачке видео
urllib.request.urlretrieve(url, 'my_video.mp4')
иногда (пока что только на одном видео из 10 появляется такая ошибка
urllib.error.ContentTooShortError: <urlopen error retrieval incomplete: got only 524288 out of 3451385 bytes>
Из-за чего это может происходить?
DJ1
28 Кб, 874x327
#428 #1100261
Дело такое. Django

Пытаюсь переменную QuerySet "posts" конструкцией " 'posts':posts " передать в шаблон.
При обновлении страницы локальном серверевыдаёт NameError at /
name 'posts' is not defined


Я не понимаю почему...
#429 #1100268
>>1100261
у тебя переменная post = Post.blabla
а отправляешь ты posts: posts
ебнутый штоль?
#430 #1100269
>>1100261
>>1100268
Енжой ёр автодополнение без понимания контекста.
#431 #1100270
>>1100268
есть немного. Но дело тут куда тоньше, если прописывать posts в переменной(в самом начале) и так же ставить posts:posts, выйдет уже тогда ошибка с тем же содержанием, но уже не "posts" а выдаст "post"...

Но если наименовать переменную post а конструкцию posts:posts всё заработает... Вот как так скажи мне... Я сам голову уже часа 2 ломаю
#432 #1100272
>>1100268
>>1100269

>Но если наименовать переменную post а конструкцию posts:posts


fix
post:post

Короче, вот как должна выглядеть конструкция https://ideone.com/S7P8uw но выдаёт ошибку "Post" NameError at /
name 'post' is not defined

Но вот так она начинает работать, но ведь тогда post уже обращается к совершенно другой переменной... Это костыль или что?
https://ideone.com/pdwVUg
#433 #1100278
Весь день занимаюсь парсингом и это пиздец какой-то, я блять не понимаю.
парсится блять страница, вывожу
print(soup)
пишу кнтрл ф (_5pbx userContent) находит, пишу
soup.find_all("div", "_5pbx userContent")
нихуя не находит, вот как так-то?
ещё писал
soup.find_all("div", class_="_5pbx userContent")
но результат тот же, что я блять делаю не так?
1
34 Кб, 624x351
#434 #1100295
Сап, пистонята, как заебашить поиск юзера в жанге? С меня как обычно любовьласка
#435 #1100299
>>1100295
User.objects.filter(name__icontains='имя')
14940900978460
2,6 Мб, webm,
640x360, 0:25
#436 #1100318
>>1100237
Охуенно! Все работает.
#437 #1100319
Задача. Открыть файл в котором записана одна строчка(целое число). Затем открыть его снова, получить это целое число, прибавить к нему еще одно и записать их сумму ВМЕСТО первоначальной строчки.

Код

a = 2
f = open('zalupa.txt', 'w')
f.write("1")
f.close

f = open(kiss, 'r+w')
line = f.read()
b = a + int(line)
f.write(str(payment2))
f.close()

должно ведь записаться в файл и получиться 3(2+1 же), Двач, какого хуя он выдает 13, как удалить единицу перед тем как записывать?
#438 #1100320
>>1100319
быстрофикс

код

a = 2
f = open('zalupa.txt', 'w')
f.write("1")
f.close

f = open(kiss, 'r+w')
line = f.read()
b = a + int(line)
f.write(str(b))
f.close()
#439 #1100339
>>1100319
file.seek
image
29 Кб, 275x622
#440 #1100358
Как изъять каждый message_id в цыкле ?
#441 #1100366
>>1100358
усё, разобрался
#442 #1100372
Есть модель с файлфилд, и есть одна форма с view, которые позволяют ввести юрл на видео и оно скачается туда же, где лежат видео, если их добавить через админку например.
Но, я не понимаю как мне проассоциировать этот файл с полем в модели, при создании нового экземпляра.
То есть, сейчас я пишу
media = MediaDownloader()
media.file = 'media/my_video.mp4'

Но при этом в админке его почему-то нельзя посмотреть, как те, которые я заливал через админку. Или это нормально и так и должно быть ?
#443 #1100389
>>1100272
Тебе питон должен показывать файл и строку, на который выпадает ошибка. В показанном тобой коде никакой переменной "post" нет, значит и ошибка где-то в другом месте выпадает.

>совершенно другой переменной


С чего бы это другой? Пиши хоть

>kkkkkkkkk = Post.objects....


>render(..., {'post': kkkkkkkkk })


Всё будет работать.

Вангую во вью код вроде

>if 'post' in context:


> post = context['post']


>do_something(post)

#444 #1100423
Чем отличается ipython notebook от jupyter ??
#445 #1100430
>>1100423
Первый соснолечка, второй вебчик с картиночками
#446 #1100431
>>1100430
Что то, что это у меня запускается на локалке, немного различается интерфейс, а так, те же яйца, только в профиль.

Есть ли способ запустить это без браузера?
Screenshot from 2017-11-30 12-28-46
12 Кб, 1041x150
#447 #1100442
А как правильно???
#448 #1100449
>>1100442
Похуй.
#449 #1100455
>>1100442
путон.
#450 #1100467
>>1100442
пифон.
#451 #1100473
Где захостить джангу без гимора и занидораха? Нагрузка нулевая.
#452 #1100474
Почему лого питона в цветах украинского флага? Слава Украине!
#453 #1100475
>>1100102
Multilrocess. Плохо тут с этим.
#454 #1100477
>>1100442
Фитон
#455 #1100478
Вопрос по джанге. Может встроенная админка полностью всем устроить, включая локализованные названия полей с пояснениями? Или придется пилить свою?
#456 #1100479
>>1100473
Дигитале океан.

Или хероку
#457 #1100483
>>1100479

> Дигитале океан.


Минимальное пополнение через палку - 5$. А я хочу хостинг вырубать когда не нужен.

> Или хероку


Что за зверь?
#458 #1100488
Почему во встроенной оффлайн консоли ipython можно писать только по 1 фиксированной строчки, а в юпитере можно в 1м блоке написать сколько угодно?
#459 #1100516
>>1100488
ТЕБЯ ЕБЕТ ШТОЛИ?
БЛЯДЬ ПИЗДЕЦ У НАС В КОМПУТОРНОЙ АККАДЕМИИ ШАГ ЗА ТАКИЕ ВОПРОСЫ УБИВАЮТ НАХУЙ!!!!!
#460 #1100529
>>1100483

>> Или хероку


>Что за зверь?


heroku.com
#461 #1100530
>>1100372
Ну же, выручай анон, прочитал вчера про
from django.core.files import File
Пишу теперь как-то вот так
local_file = open('media/files/my_video.mp4')
djangofile = File(local_file)
media.file = djangofile
media.save()

Теперь выдает такое, вообще хуй знает куда смотреть
UnicodeDecodeError at /upload/
'utf-8' codec can't decode byte 0x8d in position 34: invalid start byte
#462 #1100532
>>1100530

> open('media/files/my_video.mp4')


open('media/files/my_video.mp4','rb')
#463 #1100533
>>1100532
Блять, точно, вот я дебил, спасибо.
#464 #1100535
>>1100516
Нормально ответить слабо?
#465 #1100540
>>1100533

>я дебил


Нет, ты умничка и все у тебя получится!
А ошибки у всех бывают.
#466 #1100541
>>1100535
консоль это интерактивчик больше

а жупитер juniper это для написал кусок кода - отрисовал график, там мельчить не имеет смысла.
#468 #1100545
>>1100541
Написал бы хоть, что в ipython е можно тупо взять запусть готовый файл со скриптом, обратившись к интерпретатору
#469 #1100549
Здравствуйте, уважаемые удавы.
В общем, к Питону ещё не прикасался. Ни разу. Сейчас хочу заняться только с практической целью: визуализация результатов экспериметов, красивые 3D-графики, диграммы. +расчёты.
На компах работодателя заметил "NumPy", соотвесна, буду работать только в связи с SciPy (я как понял, NumPy - подмножество SciPy).
Я как понял, мне нужна Anaconda как IDE+либы и УкусПитона как гайд?
Нужно минимум теории и максимум выхлопа, ибо по сути хлам, я лучше знания в C расширю.
#470 #1100563
>>1100545
внатуре пидор, написал бы хоть ну...
#471 #1100593
Есть пайтон строка с кучей хтмлтэгов внутри, при том, не факт, что я знаю какие там тэги есть.
Как избавится от всего этого?
И по верстке один вопрос простой.
На странице есть картинки и видео, как разместить их слева и справа соответственно.
Добавлял див с class="col-md-6" на каждую, но тогда они друг на друга наезжают.
#472 #1100604
>>1100549
Для визуализации графиков, множеств точек и прочего тебе надо обратиться к библиотеке matplotlib. Наверняка она уже даже установлена по дефолту, туториолав - куча, визуализация возможна в т.ч. трёхмерных хреновин. Делается всё просто, что-то в стиле:

>from matplotlb import pyplot as plt


>xx = range(100)


>yy = [i*i for i in xx]


>plt.plot(xx, yy)


>plt.show()



>>1100593
Как я понимаю, нужно удалить все теги? Для решения такой проблемы я бы посоветовал обратиться к регулярным выражениям. В пистоне это библиотека re.

По поводу вёрстки - col-md-6 вроде бы имеет силу только при каких-то конкретных размерах экрана (из-за наличия "md", так прописаны метатеги по размеру). Может быть, размер окна такой, что этот тег не применяется?
#473 #1100605
>>1100604
бля, как же я ебал в рот эти регулярки

md -medium вроде 767 px, да и у меня 100% больше, к тому, же это значит, что при меньшем разрешении они просто начнут друг под другом стакаться (вроде бы)
#474 #1100606
>>1100604
Да, matplotlib уже искаропки, спасибо. А "Укуса" хватит, чтобы начать шарить?
#475 #1100615
>>1100605
По идее, тебе надо осуществить замену регулярного выражения <[^<>]+> на пустую строку. По идее, оно как раз соответствует тегам.

То, что именно наезжают - странно. Мне кажется, дело не в конкретно этом теге. Может, позиционирование у родителя не то стоит или что-то в таком роде.
>>1100606
Укус? Там вообще нихрена шарить не надо на самом деле. Если с питоном вообще дел не имел, то сначала надо разобраться с чтением из файла и работой с базовыми переменными/строками, но это тривиально. Если есть файл, содержащий, например, два столбца чисел, которые надо отобразить на графике, это это просто:

>xx, yy = [], []


>f = open('data.txt', 'r')


>for line in f:


> xx.append(float(line.split(' ')[0])


> yy.append(float(line.split(' ')[1])


>f.close()


Всё считали.
#476 #1100618
>>1100615
Ну вообще да, сейчас попробую, спасибо.

Да, правда, так и было, но всё равно говно получается, как же кумарит эта верстка
#477 #1100639
Есть у кого-то идеи, как в питоне с видео снять скриншот?
Нашел только кучу мертвых библиотек на второй питон.
#478 #1100659
>>1100639
Ищи биндинги для FFmpeg/любого плеера.
#479 #1100661
Здравствуй /пр/,
Есть один вопрос, который меня мучает уже пару дней:
Если я ввожу в
ftp = FTP('не_работающий_айпи')
то время ожидания 21 секунда.
Как меня сделать так, что бы время ожидания было 8 секунд?
#480 #1100662
>>1100661
Ищи таймауты по докам твоей библиотеки.
#481 #1100664
>>1100662
Я скрипт буду юзать не только на своем компе.
Как мне прописать таймлитимит для дока фтп, что бы лимит был у любого компа?
#482 #1100665
>>1100639
Громоздкое решение, но если уже установлено, то opencv в это может.
#483 #1100667
>>1100659
Тоже об этом думал, но лень, решил воспользоваться MoviePy
>>1100665
тоже скорее всего громоздкое решение, но чот лень разбираться как через пифон ффмпегом пользоваться
#484 #1100677
Алсо, кто с PyQt работал? Можете на пальцах пояснить, в чём фундаментально отличие qthreads от обычных питоновских тредов? Можно ли в интерфейсе что-нибудь дёргать обычными тредами?
#485 #1100710
Анончики, помогите:
Есть два csv файла, допустим, A и B. В файле А есть две колонки соответствующих значений, в B - большая таблица, в которой заголовком идут значения первой колонки из A. Мне нужно заменить значения хедера B на соответствующие значения второй колонки из A. Тупо заменить всеми значениями не получится, потому что в хедере некоторые пропущены и они идут не по порядку. Как это в pandas каком-нибудь сделать?
#486 #1100716
>>1100710
Если файлы не охуеть какие огромные, то так должно сработать:

>caption_b = ... # Заголовок файла B, который надо поменять


>file_a = open('A', 'r') # Открываем файл А


>data_a = {}


>for line in file_a:


> a, b = line.split(' ')


> data_a[a] = b


>caption_b = caption_b.split(' ')


>caption_b = [data_a for i in caption_b]


>caption_b = ' '.join(caption_b)


Если дохуя огромные, то data_a не надо по-тупому заполнять всеми значениями, а более аккуратно искать в цикле значения только для нужных.
#487 #1100718
>>1100716
Бля, только не

>line.split(' ')


, там же не проблемы, а csv:

>line.split(',')

#488 #1100789
А кто знает, через апи фейсбука можно у них видео выкачать?
#489 #1100831
>>1100529
Я понял, что это? С планшета сижу.
#490 #1100834
>>1100545
Как?
#491 #1100837
Как распарсить в дату такую строку?
a = 'Fri, 01 Dec 2017 01:21:36 GMT'
date = time.strptime(a, "%a, %d %b %Y %H:%M:%S")
Всё понятно, кроме GMT. что для него подставлять?
#492 #1100841
>>1100667

>как через пифон ффмпегом пользоваться


os.system('ffmpeg -ss 01:23:45 -i input -vframes 1 -q:v 2 output.jpg')

>>1100837

>time.strptime


%Z же. https://docs.python.org/3/library/time.html#time.strptime
Только велика вероятность, что с наличием таймзон проблемы будут.
#493 #1100890
>>1100837
Pendulum попробуй
#494 #1100915
Апельсинусы, куда с питуном вкатиться можно кроме веба? Прочитал первый том Лутца, а в каком направлении двигаться дальше не знаю.
#495 #1100922
Приходит вот такая строка, кто-нибудь знает как её спарсить? И что это вообще такое?
https://pastebin.com/C76EPaLn

двощ не позволяет запостить напрямую
#496 #1100934
>>1100915
Дип лернинг, мэшин лернинг, биг дата , нейронные сети
#497 #1101005
Поясните ещё за регулярочки.
Строка выглядит прибилизительно так
<img class="_46-i img" src="<тут всё что нужно спарсить> < style="left:-13px;>
Проблема в том, что дальше идёт дохуя этих style="left и оно парсит получается их все, можно как-то сделать чтобы парсило до первой встретившейся, или что-то такое? Или как такое вообще парсить?

Вот что я пишу, но это парсит не только мне нужную строку, а вообще всё что есть до последнего style="left.
pic2 = re.compile('(<img class="_46-i img" src=")(.*)(?=" style="left)')
#499 #1101015
>>1101005

>Поясните ещё за регулярочки.


Поясняю, не парси регулярочками хтмл.
#500 #1101022
>>1100664

>Как мне прописать таймлитимит для дока фтп, что бы лимит был у любого компа?


аллоу, доки = документация. Тебе посоветовали почитать документацию используемой тобой фтп-библиотеки, в которой будет сказано, как установить таймаут при вызове (если можно). На других компах, испольующих твой скрипт, очевидно, должна быть установлена эта же библиотека, чтобы оно работало.
#501 #1101023
>>1101015
Как через BeautifulSoup парсить вложенные теги, потому что у меня чот нихуя не парсится?
#502 #1101028
>>1100934

>Дип лернинг, мэшин лернинг,... нейронные сети



Что в общем-то одно и то же ежже
#503 #1101049
>>1101023

>Как через BeautifulSoup парсить вложенные теги,


Просто.

> у меня чот нихуя не парсится?


Хуева, чо.
изображение
16 Кб, 421x151
#504 #1101075
Блядь как же я заебался, аноны, памагити, никак не могу указать pycharm-y путь к интерпретатору, почему-то ругается с указанием pyton-a 2.7, хотя установлен-то блядь последний
#505 #1101097
>>1101075
Поставил кряк из шапки, ситуация не изменилась
#506 #1101163
>>1101023
Бери Scrapy, не еби себе мозг.
#507 #1101174
>>1101163
Наркоман.
#508 #1101264
>>1101075
Первое правило питона - не кодь на питоне из-под винды.
#509 #1101267
Джанганы, а посоветуйте за последие год два может книги какие клевые по джанго выходили, что почитать стоит?
Или может вы видели на гитхабе живые распиздато написанные приложухи на джанго, такие, что бы полистать да чего хорошего набраться?
Да хоть туториалы на ютубе, один хуй, абы полезные
#510 #1101285
#511 #1101328
Когда юзать class-based views а когда обычные в Django?
#512 #1101339
>>1101328
cbv всегда
images
4 Кб, 259x194
#513 #1101349
Анон, помоги разобраться, пожалуйста.
Есть шахматная доска. Надо определить, правильно ли ходит конь.
При отладке почему-то получается, что второй if , судя по всему, неверный и проверка следующего условия не выполняется.
https://ideone.com/D9f2lQ

Также реквестирую советы по оптимизации этого говнокода. Заранее спасибо
#514 #1101395
>>1101349

> почему-то получается


Вводишь строку, сравниваешь с числами.

> по оптимизации


Тут просто дохуя всего. Ты делаешь всё как говно.
#515 #1101409
>>1101264
Прыщеговно ебаное?
#516 #1101425
Может перекот?
#517 #1101441
>>1101409
Ну я вот на маке работаю и всем рекомендую.
Но вообще даже линукс будет по-удобнее, чем пороться в сраку с pip и всякими поделками для numpy под виндой
14878553027800
50 Кб, 400x579
#518 #1101447
Посоветуйте портативную среду, хочу принести на работу, но у нас нельзя ничего установить.
#519 #1101450
>>1101447
Jupiter notebook
#520 #1101451
>>1101447
Жупитер ноутбук
Если есть айпад еще веселенькая ide есть - Pythonista
#521 #1101452
>>1101451

>Pythonista


Ебать название, аж свежим смузи запахло.
#522 #1101456
>>1101395

> Ты делаешь всё как говно.


Возможно. Ведь я учусь.

>Тут просто дохуя всего.


Ну хоть что-то?
#523 #1101459
>>1101452
Хипсторов бояться - в интернеты не выходить!
А штука прикольная - там неплохо расписаны модули для взаимодействия с ios: все эти share button > run script / виджеты / даже простенькие UI - компоненты есть
Ну а внутри обычный питон питоном, третей версии, шелл и pip искаробки не доступны ввиду шизоидности подходов к безопасности appstore, но валом туториалов как запилить их самому и пользовать
#524 #1101464
>>1101451
К слову под иос так же есть бета Juno, который просмотровщик онлайновых Jupiter Notebooks. На сайте приложухи автор всем подряд раздает доступ к этой бете.
#525 #1101474
Хочу выучить Питон. Потом легко будет работу найти?
#526 #1101482
>>1101441
То что пип надо руками прописывать в path и конфликты разрешпть то еще ничего. Гораздо веселее когда нет бинарей под винду. Ipythpn последний, например.
#527 #1101484
>>1100488
Прыщеговно ебаное потомушта. А в юпитере дополнение работает?
#528 #1101485
>>1100831

> Я понял, что это? С планшета сижу.


Ап
#529 #1101486
#530 #1101488
>>1101450
>>1101451
http://portablepython.com/
Вот это не годится?
#531 #1101494
>>1101488
Я ебут что ли? Если удобно - пользуйся.
#532 #1101579
>>1101456

> Ну хоть что-то?



> m1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'] #задаём оси


ХУЁСИ! Просто xs, ys = "abcdefgh", "012345678"
Разбей всё на функции:
конвертация в декартовы координаты
проверка что точка на доске
* проверка что от одной точки до другой можно дойти буквой ГХЭ.
на ideone можно input заполнить чтобы все увидели как твоя поделка падает
#533 #1101607
>>1101349
во-первых добра тебе анончик и успехов в учебе

во-вторых

в функции печатать ничего не надо, поднимай исключения

там, где функцию вызваешь, их обрабатывай

во-третьих, преобразуй координаты в числа, так будет легче сравнивать их и валидировать

в-четвертых успехов и добра
#534 #1101609
>>1101607
>>1101349

к его совету тоже прислушайся

>>1101579
#536 #1101648
Что скажете про книгу learn python the hard way?
#537 #1101649
>>1101648
хуйня уровня ПРЕВОЗМОГАЙ! ПИШИ ГОВНО ДАЖЕ ЕСЛИ НИХУЯ КРОМЕ ГОВНА НЕ МОЖЕШЬ! ОТОЖМИСЬ 100500 РАЗ!!!
на западе жрут потому что скряги и эта говнокнига беслпатная, в РФ жрать такое ваще не по масти, тем более что пятая часть книги это визг пейсателя дескать го смотреть мои видеокурсы платые где я распиздато гнусавым голосом пержа и попивая чай чет пизжу более конкретное чем эта пидорская книжная мотивация

наверни Think Python, короч
#538 #1101652
>>1101649
Спасибо, что ответил анон, а в think python много практики?
#539 #1101653
>>1101652
ага, почти целая книга туда-сюда применимых к жизни приложений "степ бай степ", что называется
#540 #1101656
>>1101653
Спасибо ещё раз, анон.
#541 #1101669
>>1101628
2:18: E225 missing whitespace around operator
10:37: E231 missing whitespace after ','
12:1: E302 expected 2 blank lines, found 1
12:27: E231 missing whitespace after ','
13:30: E225 missing whitespace around operator
14:38: E225 missing whitespace around operator
15:30: E225 missing whitespace around operator
16:38: E225 missing whitespace around operator
19:1: E302 expected 2 blank lines, found 1
22:30: E231 missing whitespace after ','
24:1: E305 expected 2 blank lines after class or function definition, found 1
#542 #1101679
>>1101669
Поставил пайлинтер в вскоде, так он в каждой строчке ссыт мне в лицо. Думаешь стоит прислушиваться к нему?

мимо другой анон
#543 #1101688
>>1101653
Глянул оглавление, там совсем для нюфань. Я же в синтаксисе питона шарю, да в программировании в целом. Похоже я не найду нужной книги. Придется просто свои прожекты мутить и гуглить документацию для доков.
#544 #1101705
Посмотрел, что для анализа данных требуют знание numpy, scipy, scikit-learn, pandas, tensorflow и т.д. Как учить это говно? Есть какая-нибудь литература для изучения или только на сайте читать описание?
#545 #1101710
Питоны, у меня есть несколько скриптов в субдирректории subidr и чтобы импортировать их в файлы верхнего модуля нужно писать как import subdir.file И если я запускаю какой-то файл в дирректории, то все файлы в субдирректории если у них есть импотры между собой должны импортировать тоже как import subdir.file. С другой стороны если запускать скрипты из субдирректории то все импотры между файлами идут по пизде т.к. нужно писать просто import file.
Как это обычно решают?
Вообще где можно почитать/посмотреть бест практикс по импортам, видел в некоторых проектах целые файлы где только импорты а может это было на руби, я не помню.
#546 #1101713
>>1101705

>Как учить это говно?


Ты так пишешь будто это сильно дохуя.
numpy осваивается за 1-2 статьи в инете, pandas сейм шит, если тебе не нужен маняэксель на питоне, тогда еще пару статей придется читануть.
scipy и scikit-learn просто набор алгоритмов. Если ты читаешь про какую-нибудь регрессию или манядеревья, то потом не идешь писать свой велосипед, а просто вызываешь функцию "сделать заебись" из scikit.

До тензорфлоу руки еще не дошли, но вангую что там тоже самое трудное это import tensorflow as tf
#547 #1101719
>>1101264
Ну а играть-то как блядь, я кроме развития еще и аутировать хочу, баланс нужен
#548 #1101724
>>1101679
Конечно, блядь, нестандартное говно читать-то противно, будто крестьянин до клавиатуры добрался.
#549 #1101725
>>1101719
Поставь вторую операционку
#550 #1101726
Перекатите тред
#551 #1101727
>>1101726
Сам перекати, ёпту.
#552 #1101731
>>1101264
Хуй знает о чем ты, пишу на винде, хотя есть прыщи и мак в мультибуте. просто потому что оброс всяким говном на винде, которое лень ставить на другие системы
Ни одного бага еще не ловил, единственное ограничение это то что пути иногда нужно руками прописывать, например пишу в консольке python -m pip install вместо pip install т.к. лень было переменные среды пердолить.

Не скажу за веб, но всякая саентифик параша работает как часы. Разве что один раз caffe нужно было вручную собирать из другой ветки
#553 #1101744
>>1101725
Не с моим жестким на 120гб
#554 #1101814
>>1101713
Ну, я просто смотрю на подобные http://pandas.pydata.org/pandas-docs/version/0.20/pandas.pdf документы, и руки опускаются.
#555 #1101842
Ч почитать годного по джанге есть?
#556 #1101870
>>1101814
Не ссы, описание стандартной библиотеки питона тоже больше тыщи страниц, но это же не мешает тебе юзать его не зная и 5% того, что там есть.
Тем более там с 1000 страницы начинается api reference, а до 400 страницы вспомогательный стафф типа истории версий, как устанавливать и контрибьютить.
#557 #1101873
Поясните за scrappy, когда надо его юзать, а когда чего попроще, в чём его преимущества перед BeutifullSoup, например?
#558 #1101901
>>1101873
scrapy это django для парсинга
#559 #1101902
>>1101901
а если парсить надо в джанге?
#560 #1101904
>>1101902
я имел в виду в scrapy как и в джанге, все включено

создал проект, накидал xpath выражений и вперед.

рейтлимит, редиректы, все автоматом

Если в джанго надо парсить, то или синхронно при помощи чего-нибудь простого (requests + lxml) или асинхронно через Celery и ту же Scrapy.
#561 #1101906
>>1101904
xpath выражения звучат заманчиво, но с другой стороны остальное нахуй не надо.
Ладно, почитаю что там у них в доках, спасибо.
#562 #1101908
Пацаны, помогите решить задачу. В общем, есть последовательность пар чисел. Некоторые из этих пар имеют общие элементы. Нужно вывести цепочки связанных пар по убыванию длины цепочки.
Например, дана последовательность:
[(1,2), (2,4), (5,4), (7,4), (3,8), (8,10)]

Тогда вывод будет таким:
(1,2), (2,4), (5,4), (7,4)
(3,8), (8,10)

Но цепочки могут идти и не последовательно.
Анончик, молю, спаси, нужно для реализации скрипта
#563 #1101911
>>1101873

>Поясните за scrappy, когда надо его юзать, а когда чего попроще, в чём его преимущества перед BeutifullSoup, например?



Скрапи надо юзать когда у тебя вагон сайтенгов одинаковых и их надо регулярно парсить.

Написал парсер, а в скрапи все есть для запуска и хранения результатов.

Скрапи использует beautiful soup тоже. Но это не точно.

Если тебе надо какую-то простую хрень спарсить в джанге, юзай Requests и beautiful soup
#564 #1101913
>>1101911
да вот их и юзаю, просто с фейсбука что-то так хуево всё парсится, что захотелось чего-то другого попробовать.
#565 #1101995
Sicp для питона переводили?
#566 #1102086
Как зделость зис ворк?
https://repl.it/repls/StarchyFearlessLorikeet
#567 #1102106
>>1102086
Все, сделал сам.
#568 #1102135
>>1101842
Бумп
Аноним #570 #1102264
>>1101911
scrapy вонючие фекалии
Тред утонул или удален.
Это копия, сохраненная 19 декабря 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски