Двач.hk не отвечает.
Вы видите копию треда, сохраненную 27 сентября 2020 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Питон тред №88 /python/ 1690482 В конец треда | Веб
Тред, посвящённый языку программирования Питон, #88

Предыдущий: >>1676587 (OP)
Литература:
Автоматизация рутинных задач ч.2 - https://anonymousfiles.io/3CBCoy1o/ <-- тут только одна книжка. Кто может, залейте её на ЯД к остальным.
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек: https://yadi.sk/d/H-00n-UG3RSQem

Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить
https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться

#######################################

ЧаВо: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat Актуальность примерно 2015 года

Вопросы-ответы:
— А стоит ли читать Лутца, том номер N?
Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.

— Стоит ли читать %книга_нейм%, если там питон версии 2.х?
Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х

— А что ещё можно читать?
Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html

— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0

— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4

— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.

— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)

— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется

— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.

— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.

ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.

текущая версия шапки: https://dumpz.org/aaNRDPe2xXh2
T.png1 Кб, 426x51
3 1690520
>>1690495 →

>в сообщении присутствует слово из спам листа

4 1690523
Так какого хуя не работает то?
5 1690527
>>690520
Спасибо, анон.
spam list.png5 Кб, 388x187
6 1690528
7 1690530
>>690523
Это метод класса, а не функция. Можно было сто раз разобраться, пока ты тут спамишь.
https://github.com/TwitchIO/TwitchIO/blob/master/twitchio/client.py#L41
8 1690531
>>690528
Добра
изображение.png5 Кб, 629x110
9 1690535
Парни, кто в веб что-то шарит:
Пилил приложуху на Джанго, добавил для интерактивности js (ajax). В конце удачного post-запроса мой View возвращает фронту вот это:

return HttpResponse(
____json.dumps(response_data),
____content_type="application/json"
)

И я соответственно вижу на экране вот такую херню с пикрила. Вопрос: с хрена ли? Юзер не хочет смотреть на мой json-объект, он хочет чтобы его обработали и показали ему адекватный html. Как фиксить?
10 1690541
>>690530
Я не могу разобраться как его использовать. К чему этот метод .get_chatters относится? В документации есть только упоминание get_chatters и все.

С .timeout я разобрался что он работает с ctx.channel как ctx.channel.timeout.
11 1690553
>>690541
Там всё построено на ООП. Почитай про ООП в пиотне и не еби мозг.
12 1690639
>>690535
Ничего не понял. Ты может просто по запрос оформляешь как post-отправку формы, а на фоновый процесс?

У тебя html должен отправлять в фоне запрос, получать ответ и запускать скрипт, который ответ будет интерпретировать.
13 1690684
подкиньте линк на ключики для PyCharm 2020
14 1690694
>>690684
Зачем, если Community бесплатна?
15 1690698
>>690553
Читал, все равно не понимаю как в этом проекте это работает.
16 1690699
>>690694
Там джанга есть. Даже не разбирался как в community дебажить. Тут даж в темплейте точку остановки поставил и смотри что хочешь.
17 1690742
>>690698
Читай ещё.
18 1690764
>>690639
Неа, вот ajax-запрос:
https://ideone.com/ydNrMV
Страница не рефрешится и данные сохраняются в БД на беке как и надо. Проблемы видны на фронте
19 1690946
>>690742
Можешь пример показать как это делается?
20 1691013
>>690946
Смотрим дальше и видим что основной класс Bot наследуется от этого самого Client.
https://github.com/TwitchIO/TwitchIO/blob/master/twitchio/ext/commands/bot.py#L47
И тогда вспоминаем прочитанное.
21 1691020
Подскажите насчет джанго.

Создал модель A и B
переходя по ссылке в модель A на сайте выводится информация различная и ссылки на переход в модель B
127.0..../A/B - адрес
path(r"^(?P<slug:slug>/<slug:url>)/$", views.ChapterDetailView.as_view())
и при переходе по адресу 127.0..../A/B получаю ошибку 404. что не так?
22 1691028
>>691020
Регулярка неправильная.
Судя по документации, надо (?P<first>\w+)
Т.е. ?P<name>pattern.
Не знаю, зачем там :, может и надо
Т.е. тебе надо примерно так
^(?P<slug:slug>.+?)/(?P<slug:url>.+?)/$
23 1691033
>>691028

>^(?P<slug:slug>.+?)/(?P<slug:url>.+?)/$



тоже самое, "GET /2ch/1/ HTTP/1.1" 404 2621
24 1691035
>>691033
А если открыть /2ch/, то все ок и выводятся дальше ссылки на переход в /2ch/1 итд
25 1691036
>>691028
еще вот такое пишется WARNINGS:
?: (2_0.W001) Your URL pattern '^(?P<slug:slug>.+?)/(?P<slug:url>.+?)/$' has a route that contains '(?P<', begins with a '^', or ends with a '$'. This was likely an oversight when migrating to django.urls.path().
26 1691037
>>691020

> 127.0..../A/B


> ^(?P<slug:slug>/<slug:url>)/$


/ в конце?
27 1691038
28 1691041
>>691036
В сосноли ругается на эти :, читай как надо.
29 1691043
>>691041
да, но ошибка 404 не из-за этого. Это предупреждение - рекомендация, чтобы исправить код, не быть обезьяной
31 1691049
>>691045
чет херня какая-то. и что делать?
32 1691050
>>691049
Надо документацию на эту функию, зачем там эти именованые группы.
33 1691053
>>691050
чет хуйня какая-то, стак овер говорит, что так и должно быть. А я одни ошибки в ебало получаю. Весь день эту хуиту решаю, этот ебучий /2ch/1/
34 1691058
>>691053
Я погуглил и там же всё ясно написано.
https://docs.djangoproject.com/en/3.0/topics/http/urls/#example
https://docs.djangoproject.com/en/3.0/topics/http/urls/#path-converters
https://docs.djangoproject.com/en/3.0/topics/http/urls/#using-regular-expressions
А ты понамешал хуйни с разных методов и ждешь что оно заработает.
35 1691060
>>691058
то есть чтобы программировать на питоне надо что-то читать? нельзя просто брутфорсом перебирать исходники?
36 1691063
>>691058
ТАК БЛЯДЬ В ЧЕМ ОШИБКА, Я НИХУЯ НЕ ВИЖУ
37 1691067
>>691063
Приходи когда я буду осваивать джанго, просто так не интересно.
38 1691071
>>691067
скину 50р
39 1691073
>>691071
Ну может кто и захочет, лол.
40 1691104
>>691036
если 3я джанга, то не надо регулярки в path() писать
41 1691108
>>691104
re_path?
42 1691117
>>691108
Документацию почитай, там регулярки уже со 2-й джанги не используеются
просто path('<slug:slug>/<slug:url>'/SomeShit.as_view())
43 1691209
>>691117
Page not found (404)
Not Found: /2ch/1/
[17/May/2020 01:12:57] "GET /2ch/1/ HTTP/1.1" 404 1797
44 1691225
Здарова, постоянно слышу про какие-то скрипты на питоне, про автоматизацию. Вот у меня есть программка конвертации видео. Она должна предоставлять какое-то API или питон ее взломает и сам заберет себе все нужные методы? Не спал 24 часа поэтому пишу хуйню, но ответ нужен срочно
45 1691226
>>691225
Нужно апи
46 1691227
>>691225
Хотя можно с помощью библиотеки по иметации кликов все заебенить, но заебешься и программа должна быть всегда в координатах нужных, да мышкой не подвигаешь сам, когда она работает
47 1691228
>>691226
А если нет такого, что делать?
48 1691229
>>691227
Ну конечно, мышкой. Сервак будет сидеть и кликать
49 1691249
>>691229
А потом петон взломает сервак
50 1691251
>>691249
Ну и нахрен ваш петон тогда?
51 1691284
>>691225
А что за программа? Если программа работает через консоль, каковых большинство (ffmpeg, mencoder), то можно сделать обвязку на питоне и спокойно работать. Если чисто графическая прога, то скорее никак, или очень сложно.

Для ffmpeg уже такие инструмены есть готовые.
52 1691331
Полоумный сука язык
<re.Match object; span=(0, 16), match='255.255.255.0/24'>

>AttributeError: 're.Match' object has no attribute 'match'

53 1691335
>>691331
Уже час ебусь с рабочим регэкспом, то одно нахуй не работает, то другое
54 1691341
>>691335
В notepad++ проще блядь фильтрануть, чем пистоном
55 1691342
finditer возвращает только один матч, findall нахуй вообще не работает. least surprise principle блядь
56 1691343
>>691342
теперь работает, но матчи хуй достанешь
57 1691344
Ебана как (и зачем) работает строковый метод translate? Читал мануал, но нихера не ясно. Вот пример кода:

translation = {97: None, 98: None, 99: 105}
string = "abcdef"
print("Original string:", string)
# translate string
print("Translated string:", string.translate(translation))

Что он куда "перевел"? Логично было бы если б я давал ему словарь по типу {"a": "X", "b": "Y"} и он замещал бы ключи в оригинальной строке новыми значениями. Но эта срань работает максимально нелогично
58 1691350
>>691344
Это никсовый tr, реализованный несколько через жопу. https://en.wikipedia.org/wiki/Tr_(Unix)
Список одних символов меняется на другие или удаляется.
59 1691353
>>691350
Формировать словари можно, кстати.
a = 'hui'
b = a.maketrans('hui','abc')
print(a.translate(b))
Screenshot20200517141140.png10 Кб, 717x30
60 1691595
Это из-за ебучего умлаута, да? Почему так и что с этим делать, кроме как специально реплейсить его в названии?
Ubuntu 20.14, если что. Сурс кидать не буду, потому что в нём кроме этого всё нормально.
61 1691596
>>691595
*20.04, лол.
62 1691597
>>691595
Вряд ли. Ну попробуй без него для уверенности.
Image 558.png37 Кб, 676x839
63 1691615
>>691013
Читаю про классы, разбираю пример. Поясните пару вопросов.

1. В чем смысл конструкции self.name = name? Почему нельзя сразу использовать name внутри класса?
2. В чем смысл данной строчки SchoolMember.__init__(self, name, age) в подклассе?
64 1691641
>>691597
Да, проблема в точке в конце имени папки, судя по всему.
65 1691688
>>691615

>Почему нельзя сразу использовать name внутри класса


Потому что ты используешь name не "внутри класса" а как локальную переменную внутри одного из методов класса

self это ссылка на сам объект, всегда передается как 1й аргумент в методе (если это не classmethod или staticmethod канешн - там другие плюшки). Поэтому написав del self внутри одного из методов ты просто удалишь эту ссылку, но не сам объект
66 1691694
>>691688
А как гарантированно удалить объект?.. Вот есть у меня функция

def f(obj):
____del obj

Хочу чтобы она 100% удаляла этот переданный объект (все ссылки на него). Как такое сделать? чую что надо для этого написать свой класс и каким-то образом автоматически сохранять все ссылки на экземпляр внутри приватной переменной в этом экземпляре
image.png120 Кб, 1366x768
67 1691702
Подсобите новичку. Вижу, что разгадка на ладони и я ее проекрасно знаю, но додуматься не могу.

https://ideone.com/ayCoOZ
68 1691714
>>691688
А по поводу второго вопроса?
69 1691717
>>691714
Вызов родительского класса. Но сделано не как у белых людей. Белые люди юзают super().__init__
70 1691725
>>691717

>Вызов родительского класса


А для чего его вызывать?
71 1691729
>>691702
Идея такая.
Создай вторую структуру, лучше через set, в которой ты будешь хранить имена в нижнем регистре.
Сначала её надо инициализировать
lowered_names = set(x.lower for x in current_names)

потом в цикле делаешь проверку:
if x.lower() in lowered_names:
____lowered_names.add(x.lower)
____current_names.append(x)
72 1691741
>>691694
В таком варианте никак, это невозможно.

Вот представь, что где-то этот объект хранится в словаре
d['obj'] = obj

Что должно происходить со словарём? А если он хранится как элемент списка?

В объекте можно предусмотреть что-то вроде деструктора. Ты его вызываешь, и объект переходит в блокированное состояние, все его методы переписываются, например. Но это немного извращение.
73 1691866
Дайте инфу по CPython. Какой функционал он предоставляет и какова его сфера влияния. Насколько он урезанный, стоит ли прежде прочитать хотя бы 1 книгу по С чи не? Ну и наконец - стоит ли вкатывать в него в 2020?
74 1691874
Как сделать перевод транслита? Одиночные буквы переводить легко, но как переводить в букву, которая состоит из 2 букв? ( например ja > я или ch - ч).

Получается надо из исходного сообщения надо брать по 2 символа за раз и если эти 2 буквы одна из комбинаций - переводить ее согласно комбинации, иначе переводить по 1 букве, так?

Для начала - как брать из строки по 2 символа за раз?
75 1691891
>>691866

> Дайте инфу по CPython. Какой функционал он предоставляет и какова его сфера влияния.


когда говорят про пайтон имеют в виду cpython в 99% случаев, это дефолтная реализация языка. Или ты про Cython хотел спросить?
76 1691904
>>691891
Да, в точку. Именно Cython я и имел в виду.
77 1691922
>>691874
Делешь словари с заменами и в цикле прогоняешь. Сначала длинные, потом короткие.
78 1691938
>>691922
Я тебя не понял. Как можно брать по 2 символа из строки?
79 1691972
>>691938
Как вариант, можно пользоваться методом .startswith
"chto-to".startswith('ch')
но всё-таки как-то криво это немного.
80 1691979
>>691904
Мне кажется, большого смысла осваивать нет, если у тебя задача только специфичная не стоит. Лучше инвестировать время во что-то ещё.
81 1691982
>>691938
Их не нужно брать, их нужно заменять.
p ={'aa': 'bb', 'cc':'dd'}
for m,r in p.items():
__s.replace(m,r)
82 1691987
>>691972
>>691982
Пока вы отвечали я сделал вот так. Как вам такой вариант? Вроде работает.
83 1691988
>>691866
И да, книгу по Си прочесть в любом случае придётся, иначе такой разговор вообще лишён смысла. Причём полноценно так на Си попрактиковаться.
1.png21 Кб, 770x372
84 1691997
85 1692002
>>691987
Ты бы код расшарил.
Попробуй слово "podzhopnik", по-моему твоё решение свалится, если на нечётной позиции будет двойная буква находиться. И вообще, перегружено очень...

Сейчас сделаю быстренько
Image 649.png17 Кб, 997x488
86 1692005
>>692002
Чет я туплю. Заменил вывод по 1 букве на создание строки. Но на выходе я получаю список из одиночных букв. Что я не так делаю?

>Попробуй слово


У меня пока не полный словарь, я его до буквы Х составил.
87 1692015
>>692002
На словах с четным количеством букв фейлилось все. Поменял условие на while i < end: вместо while i <= end: b заработало. Твое слово перевело как:
podzhopnik = ['п', 'о', 'д', 'з', 'х', 'о', 'п', 'н', 'и', 'к']

Ну почти.
88 1692043
>>692005
Сам додумался как складывать строки, можно не отвечать.
translate.png63 Кб, 673x596
89 1692070
>>692015
Вот такой подход может быть. Тоже говнокод, на самом деле, чисто демонстрация идеи.

Задачка интересная, особенно если её проработь глубже. Например, идеально было бы, чтобы замены работали так:
"Chto eto ne zhopa, a bolshaja ZHOPA"
"Что ето не жопа, а болшая ЖОПА"

Вот как минимум эта история с корректной заменой по регистрам. Совсем класс, если дополнительно словари для слов с "э" прикрутить. В общем тут есть, где развернуться.
90 1692104
Доброго дня, аноны. Занимаюсь поиском лиц на фото, встал такой вопрос. Суть такова: имеем фото с искомым лицом и много неизвестных фото с лицами, где и нужно найти цель. Создаю базу хешей лиц. Собственно вопрос: так как одно и то же лицо может давать различный хеш некоторым допустимым расстоянием (допустим 5), то как быстро найти наиболее ближайший к искомому? По сути это уже не хеш таблица, а поиск какой-то.
Попрошу не нападать, я еще не волшебник, а только учусь.
Каким, в принципе, способом лучше хранить эти хеши и как находить нужный?
91 1692122
Мне нужно загружать картинки (около сотни штук на хард драйве) в Google Images или в Яндекс Картинки (поебать). Как это сделать?..

Нашел только способ устраивать обычный поиск изображений:
GET https://serpapi.com/search?q=Apple&tbm=isch&ijn=0

Но мне нужно не это. Надо загрузить саму картинку и собрать результаты поиска:
https://www.google.com/imghp?hl=ru
92 1692123
>>692070
Скинь эти словарики текстом, чтобы не набирать.
93 1692134
>>691874
>>692070
Прикол в том, что это буквально недавно обсуждали: >>691344
94 1692148
>>692134
Это работает только для одиночных символов.
image.png741 Кб, 1280x720
95 1692159
>>690482 (OP)
Вот есть у меня список url, надо периодически к каждому из них отправить get-запрос а потом собрать полученные данные. Очевидно же, что стоит использовать асинхронки (так как "заспамить" запросами и получить бан не выйдет, все url обращаются к разным ресурсам)
Только вот я не шарю в asyncio, как это мутить?
96 1692161
>>692070
Я сделал вот так. Решил брать по 3 символа за раз. Работает нормально. Но если длина четная - выдает ошибку ( пик 3)

Как мне свой код пофиксить? Уже первый час ночи, плохо соображаю.
97 1692223
>>692161

>Но если длина четная - выдает ошибку


Напиши следующий код в консоли а потом глянь, что он выведет:

string = '1234'
print(string[77:112])

неа, ошибки не будет
98 1692271
>>692159
async get_data(url)

await def get_data(url):
____requests.get(url)
Понятно?
99 1692272
>>692271
ты хотел подъебнуть чувака а сам все нахуй перепутал

await get_data(url)

async def get_data
yoda.jpg14 Кб, 320x225
100 1692274
>>692272
Уже года два не писал асинхронных приложений, немного обосрался.
101 1692277
>>692271
И как это сделать для множества url? Через цикл for? (сдается мне что эта хрень блокирующая)
Через треды можно было б делать через ThreadPoolExecutor, но мультитрединг - зашквар
102 1692279
>>692277
С чего блокирующая?
Делай запрос так. yield from aiohttp.request
Пока идет запрос, идет переключение потока выполнения
103 1692280
>>692279
Или даже просто await requests.get()
104 1692297
>>690482 (OP)
Сап, как проверить какой radiobutton из группы нажат?
105 1692347
2 scoops of Django 3.x выпустили, где-то на енгельских торрентах можно скачать? пока не нашел
https://www.reddit.com/r/django/comments/ghm9jx/we_just_released_the_two_scoops_of_django_3x_alpha/
106 1692368
>>692297
Отличный вопрос, а библиотеку мы телепатически уже знаем.
107 1692401
>>692277
asyncio.ensure_task
108 1692402
>>692401
быстрофикс
asyncio.create_task
109 1692459
>>692347
Ссылочку на покупку дай - прикуплю и закину на диск.
110 1692467
>>692104
Если твоя хеш-функция ведет себя как embedding, т. е. похожие лица выдают похожие хеши, то, например, бинарный поиск. Можно написать версию алгоритма, который при отсутствии искомого элемента приведет к ближайшему слева или справа. Модуль bisect может помочь.
111 1692473
Сап, как мне проверить какой radiobutton из группы нажат? Ну или хотябы проверку нажат ли radiobutton PyQt5
112 1692475
>>692104
Если хеш это вектор чисел, то посмотри в сторону индексов вроде GiST и GIN
113 1692486
>>692459
$ 49.95? Да нахуй надо.
114 1692520
>>692223
К чему этот пример? Никакой ошибки не выдает твой пример.
115 1692539
>>692159
очевидно, надо перлолить скрапи, улиточка.
116 1692563
>>692520
А теперь подумай еще раз, что именно ты делаешь со своей строкой в том безумной цикле while
Screenshot90.jpg179 Кб, 1241x926
117 1692625
>>690482 (OP)

>— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?


ну опять это говно?

Удолите
https://habr.com/ru/post/337420/
118 1692637
>>692625
удали сам
119 1692643
>>692625

>ну опять это говно?


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

Книжки не заменяют таких роликов. В книжках много магии, тебе описывают, как с чем-то работать, но не поясняют, как это работает внутри.

Но книжку может тоже стоит добавить, надо глянуть её.
120 1692645
>>692637

>удали сам


Не надо удалять ни в коем случае. Скорее все эти SICP надо выпилить.
121 1692652
вообще вопрос к тристакасекам и к тем кто самостоятельно вкатывался и таки смог вкатиться: мб шапку как-то получше оформить? мб спиздим идеи в соседних тредах? где годные?
122 1692661
>>692652

>мб шапку как-то получше оформить? мб спиздим идеи в соседних тредах? где годные?


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

Надо какие-то пункты обновить. Про Джанго, уже третья джанга есть, а про это ни слова, никаких комментариев, для чего брать, для чего не брать. ХЗ, я сам третью версию не пробовал.
123 1692663
>>692643
Это полностью старперский ролик, в котором пояснятся как деды страдали все эти годы, пока не позаимствовали async из С#

Вот предисловие из приличной книги по дотнету:

>Однако если обратиться к сегодняшним книгам и другим ресурсам для


изучения конкурентности, почти все они начинаются с изложения большинства низкоуровневых концепций. Обычно приводится превосходное
описание потоков и примитивов синхронизации, а высокоуровневые
методы откладываются на потом, если вообще рассматриваются. Полагаю, это происходит по двум причинам. Во-первых, многие разработчики
конкурентных программ (включая меня) начинали с изучения низкоуровневых концепций и подолгу корпели над описаниями старых методов.
Во-вторых, многие книги были написаны давно и содержат устаревшие
сведения; с появлением более новых средств книги обновлялись, но, к сожалению, новая информация размещалась в конце.
Считаю, что такой подход неверен. В этой книге рассматриваются только
современные подходы к реализации конкурентности. Это вовсе не значит,
что понимание всех низкоуровневых концепций не принесет вам пользы.
Когда я изучал программирование в колледже, на одном из курсов мне
пришлось строить виртуальный процессор из набора элементарных логических вентилей, а на другом — изучать программирование на языке
ассемблера. За всю профессиональную карьеру я не спроектировал ни
одного процессора и написал всего пару десятков строк ассемблерного
кода, но понимание основ приносит пользу ежедневно. И все же лучше
начинать с высокоуровневых абстракций; на моем первом курсе программирования рассматривался вовсе не язык ассемблера.
124 1692665
125 1692668
>>692643
Блин, мне кажется вы просто не писали программы с помощью этих всех этих state-machine и select, поэтому вам кажется что круто бы повысить свою значимость среди молодежи и запудрить им мозги.
НЕТ БЛЯДЬ.
126 1692670
>>692663

>но понимание основ приносит пользу ежедневно


Сам свою цитату читал?

В твоей книжке и многих подобных бахают кучу абстракций, про которые не понятно, как они работают и что за ними вообще стоит. Ты должен тупо как макака пилить код, копируя все эти await, event_loop, future, task и пр., не понимая, что это вообще такое.

Это не старпёрский ролик, это называется "системное обучение". Тебе показывают принципы. Зная их, ты будешь хорошо понимать высокоуровневый код. Причём там даже не про асинк, там про треды в том числе.
127 1692676
>>692668
Неосиляторы неспособны осилить ролик в 45 минут и разобраться с основами. Программисты, такие программисты.
Screenshot20.jpg71 Кб, 1020x530
128 1692685
>>692676
дед ебаный. Весь прогресс в айти застопорился из-за тебя!
129 1692687
>>692670

>Ты должен тупо как макака пилить код, копируя все эти await, event_loop, future, task и пр., не понимая, что это вообще такое.


но ведь это есть хорошо!
Зато он никогда не смешает потоки и async-и.
Screenshot111.jpg59 Кб, 645x273
130 1692691
Вообще охуенно. Дотнет рулит.
131 1692701
>>692691
Больше половины проблем в коде из-за того, что люди просто не понимают, как оно работает. Причём в питоне слабая асинхронность, прикрученная со стороны, всё усугубляется из-за этого.

Большинство багов и чудовищно неоптимального кода из-за этого. И освоение медленно идёт из-за этого.

Вот ты думаешь, что определил функцию как async, написал await и получил асинхронность. А хуй. Код как был синхронным, так и остался, это тебе не JS, где в этом случае уже будет асинхронность. В JS правда своя магия есть.
132 1692735
>>690482 (OP)
Добрый день, подскажите пожалуйста по связке жанга и вью. При разработке у меня 2 сервера 8000 и 8080 так ведь? А при деплое как это работает? Не понимаю как организовать авторизацию через allouth потому что оно на сервере жанги, а на фронте нужно токен держать.
Че то я запутался =(
133 1692738
>>692563
Как я понял выдает ошибку потому что идёт обращение к словарю по ключу, которого нет?

> в том безумной цикле while


Я на работе накидал на телефоне новый цикл, ещё более охуенный. Работает теперь как надо и жрет даже символы что не в словаре.

Вечером выложу, оценишь.
134 1692764
>>690482 (OP)
ОП Хуй, сразу ОЧЕНЬвидно что автор вообще не в теме пайтона.
язык называется пайтон, пайтон, сука! а не питон блять!
потому что назвали в честь цирка Монти Пайтона, а не в честь змеи дебил блять!
1280px-Python-logo-notext..jpg79 Кб, 1280x1280
135 1692777
>>692764
А почему тогда на официальном лого 2 змеи? Покормил долбоеба
image.png12 Кб, 560x196
136 1692784
сап, двач, сори за тупой вопрос
суть в чем: браузер отправляет пост запрос, я нашел его во вкладке network и увидел раздел form data, так вот, как мне отправить этот form data через requests?
137 1692794
>>692784
охуеть, нужно было просто их в url добавить
спасибо, двач
138 1692799
>>692777
Почему почему пошел на хуй вот почему
139 1692803
Подскажите аналог habr только анлоязычный
140 1692815
>>692803

> Подскажите аналог habr только анлоязычный



reddit
141 1692818
>>692764
извини но нам всем насрать на уебанский цирк, мы называем так как удобно. Ты со своими выебонами можешь сходить нахуй
142 1692821
>>692794
обращайся
143 1692834
>>692738
Меня всегда бесили питоновские срезы. Там должен Exception рейзиться для перехвата, а не эта хуйня
144 1692840
>>692701
Асинхронность в питоне тянет как надо (правда полагаться приходится на сторонние либы). Мультипотокое программирование да - сосет бибу
sage 145 1692870
>>692701
что там? надо еще запустить цикл перебора этих корутинок
146 1692887
Как вообще дебажить в Джанге? print-ами (пока так и делаю)? Там дебаггером же в принципе не воспользоваться
147 1692911
Может кто с C# на Python это перевести? https://pastebin.com/eYz8LxTY
Вроде все даже с коментами, но все равно сложно. Если интересно это отсюда https://www.quantalgos.ru/?p=544
148 1692916
Почему у меня запускается не то приложение Джанги на тестовом сервере? Перехожу в папку с моим чат ботом, включаю венв, запускаю mamage.py runserver
При переходе на 127.0.0.1 он подсказывает урлы из другого проекта. Что я делаю не так?
149 1692918
>>692799
а может быть соснёшь змею?

>>692625
выкладывай уже свою книжку сука. сто пудово это старое дерьмо для 3.4/3.5 с поеботой вроде yield from
150 1692921
>>692911
фигурные скобки убери и перед декларациями функций def напиши. с отступами ты уже справился вроде.
151 1692927
>>692916
Вот вывод консоли когда запускаю приложение с чат-ботом и скрин urls для этого проекта.
На 3м скрине Джанго предлагает мне урлы admin/ и polls/ вообще из другого проекта
152 1692940
>>692921
Не так все просто. Да еще декларацию переменных уровня double, int, complex убрать. Но там есть и выражения например for (int k = 0; k <= 31; k++), которые в питоне не так задаются. k++ я хз что такое. Если что я с C# не знаком от слова совсем.
153 1692944
>>692940
да, точно. всякую двойную хуйню перед декларацией убрать, а цикл чисто перебором рейнджа спистонить.
154 1692947
>>692918
По хабро ссылке тоже поделка какая-то:

> Корутины содержат операторы yield, с помощью которых мы определяем места, где можно переключиться на другие ожидающие выполнения задачи.


> За переключение контекста в asyncio отвечает yield, который передаёт управление обратно в event loop, а тот в свою очередь — к другой корутине.


Ну и зачем это нужно? Там дальше пример в синтаксисе 3.5, без yield, но вот нахуй нужен непонятный отсыл к yield, когда вообще не понятно, при чём он тут?

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

Лучше самим родить текст небольшой, но только в шапке места для него нет.
155 1692951
>>692947
может пидарасы с хабра надеются, что им заплатят построчно как в газете.
156 1692955
>>692927
какой же я долбоеб
я нихуя не понял как, но исправил
157 1692957
>>692927
Вангую потому что regex проверяет url-ы последовательно, там ты где-то и проебался
158 1692959
>>692918
А может быть желаю хорошего вечера
159 1692963
>>692918
Книжка с первого взгляда может и норм. Не знаю, как она годна чтобы идеи понять, но говном не смотрится, в отличии от хабра

https://sharefiles.app/download/9e1fa10ad8476c388491cc8c9195d33a7504b58f
160 1692964
>>692963
2019 года, в стиле 3.7 написана
161 1692968
>>692964
чем стиль 3.7 отличается от стиля 3.8?
162 1692974
>>692968
МОРЖАМЕ
163 1692979
>>692974
ну отличие ебать, переписываем книги нахуй
164 1692983
двач, помоги пожалуйста с threading
есть код на пиках
основной поток не хочет разблокироваться, как исправить?
165 1692989
>>692983
хуй знает надо чекать смотреть, тут никто код из скрина набирать себе не будет чтобы тебе помочь

я бы проверил что sys.exit() норм работает в тредах, а лучше бы заменил на какой-нибудь self.exit() наверняка есть такой

и вообще в питоне довольно просто делается однопоточность нахуя вы эти классы ебашите
http://toly.github.io/blog/2014/02/13/parallelism-in-one-line/
166 1693002
Как в BaseHTTPRequestHandler убрать логирование?
168 1693009
аноны, очень нужна ваша помощь ибо гугл не помог...

Суть - надо в Windows автоматизировать взаимодействие с java swing/AWT на python 3.x
элементы этих окон через puwinauto не достать, примеров нет нигде
пытался через java access bridge - установил все, загрузил dll WindowsAccessBridge.dll, дергаю isjavawindow с нужным хендлером - и 0, нихуя, нет коннекта
кто то сталкивался? как получить доступ к работающей jwm и взаимодействовать с внутренними gui элементами?
169 1693015
>>693003
Премного благодарен.
170 1693018
>>692968
В 3.7 довольно много правок относительно 3.6, об этом речь. Большинство материалов по asyncio довольно старые, в стиле 3.5, где активно таскали loop всюду, не говоря уже об адовых yield from из 3.4.

Короче книжка современная, не legacy. На надо внимательнее глянуть, насколько она для обучения пригодна. В начале как-то воды очень много. Мне кажется, что для совсем новичков в конкурентном программировании она не очень.
171 1693023
>>693018
Как вообще в питоне с свежими версиями?
Нормально сказать вот я зделол под 3.8, устанавливайте ёпта.
Image 679-vert.jpg170 Кб, 894x1186
172 1693028
>>692563
>>692070
>>691972
>>691982

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

Оцените, заебись получилось? Работает идеально.
173 1693033
>>693023
Нет, не всегда нормально. В системе может не стоять 3.8, не всегда хорошо навязывать самую последнюю версию питона.

В ubuntu 18.04 базовая версия 3.6, чтобы поставить 3.8 нужно телодвижения делать, добавлять репозеторий специальный и т.п., и тогда будет два питона в системе. А это довольно частный дистрибутив. PyPy вроде только под 3.6, может частично можно библиотеки от 3.7 прикрутить.

В общем можно, но не очень хорошо. Зависит от того, что и для кого ты делаешь.
174 1693036
>>693028
Как-то очень громоздко и прямолинейно.
Скинь код текстом, я покурю.
175 1693040
>>693028
Ну вот ты сам подумай, насколько просто понять логику твоего кода и логику этого >>692070 варианта. Реально ведь надо ломать мозг над всеми его сложными состояниями. И зачем?
176 1693045
>>693036

>Как-то очень громоздко и прямолинейно.


Нахуярил на одних условных операторах, хули. Зато понятно и работает как надо.

>Скинь код текстом, я покурю.


Куда, например?

Кстати, у меня проблема с транслитом. Буква y отвечает как за й, так и за ы. Точно также как и е отвечает за е и за э. Как с этим быть?

>>693040

>Реально ведь надо ломать мозг над всеми его сложными состояниями. И зачем?


Я наоборот тот код нихуя не понял. Поэтому свой вариант и сделал.
178 1693054
179 1693055
>>693045
Почему ты не пользуешься срезами? Ты как-то побуквенно собираешь, это совсем не питон-стиль, среды очень мощная фича питона.

> Буква y отвечает как за й, так и за ы


Обычно поэтому j отвечает за й. Вот "ю" можно кодировать как "ju" и "yu", но с этим нет больших проблем, после ы редко гласные встречаются.

Делай просто замену по приоритетам. Сначала варианты "yu" проверяй, а потом уже 'y' как 'ы'

>Я наоборот тот код нихуя не понял.


могу пояснить, если интересно
tumblrle3iimRqBr1qe91wdo1500.jpg17 Кб, 600x392
180 1693062
>>693054
Попробовал podzhopnik - выдает жопник.
181 1693064
>>693062
Бля, забыл исправить, поменяй изначальное значение i в 0 вместо 3.
182 1693075
>>693045
>>693055
https://ideone.com/QEIIOq
Вот простой вариант, который я предлагал раньше. Даже два.
Тупо сортируем по длине и риплейсим.
183 1693077
Ну как вкатывается в питохун, новички?)) Работку уже пробовали искать? хихи хаха))) Скобачка)
184 1693093
>>693075
Алсо, интересно бы потестировать, насколько это проседает по скорости с вашими проверочками.
185 1693098
>>693093
Может и интересно, может проверю другой анон

Но не факт, что просядет, re довольно быстро работают. Если строка большая и у тебя много посимвольной магии, это плохо работает. И посимвольное добавление к строке тоже плохо работает, строка ведь каждый раз заново создаётся.
186 1693101
>>693098
С ре вариант поинтересней, да, там движок отпимизирован как раз под это.
187 1693121
Анананасы, прочитал "Программирование" и "Изучение" Лутца но писать код так и не научился. Что делать? И как после этого вкатиться на РАБотку?
188 1693192
Ищу кодера питонщика для разработки стартового билда моей визуальной новеллы на ренпае >>665838
Нужен тот, кому эта параша будет интересна...ну хотя бы как хоби
189 1693193
>>693192
Ой, что-то я проебался с гиперссылкой. Тред тута https://2ch.hk/gd/res/665838.html (М) Да, хоби -с два б. Быстрофикс
190 1693196
>>693055

>Почему ты не пользуешься срезами?


не знаю что такое, учу с неделю

>Ты как-то побуквенно собираешь, это совсем не питон-стиль


>я до этого в чистом C немного для себя программировал, там также строки собирал из файла.


>среды очень мощная фича питона.


Что за среды?

>Делай просто замену по приоритетам. Сначала варианты "yu" проверяй, а потом уже 'y' как 'ы'


а как например быть когда e означает и е и э сразу? В словаре нельзя же 2 одинаковых ключа сделать.

>могу пояснить, если интересно


поясни, интересно что за что отвечает.
>>693075
тут какие-то ванлайнеры, даже не интересно. Что делает .items и .replace конкретно?
191 1693202
Можно ли с помощью регэкспа за одну операцию из строки вида
`1,0-1,2 10,20 30,40.2-50,60-70.9,-80.1 90,-100 -110, -120`
получить строку
`1 0 -1 2 10 20 30 40.2 -50 60 -70.9 -80.1 90 -100 -110 -120`
В конечном итоге нужно из начальной строки получить массив чисел за наименьшее кол-во проходов строки.
Пока что делаю так (3 прохода):
`re.sub(r'(\d)(?=-\d)', r'\1 ', s).replace(',', ' ').split()`
192 1693228
>>693202
re.findall(r'-?[\d\.]+', s)
193 1693233
>>693196
items выдает тупли key-value, replace repace`ит.
sage 194 1693239

>тут какие-то ванлайнеры, даже не интересно.


пиздец, съеби
195 1693241
>>693121
Бамп годному вопросу
196 1693242
>>693239
Хули тебе не нравится?долбоеб
197 1693289
>>693242
То что ты пидор ёпта
198 1693331
>>693196
Ещё раз скрин с кодом >>692070

Магия-1. Создание словаря, это вполне обычный паттерн. Можно и может даже лучше именно явно создать, без этих хаков, так проще просто.
Идея, создаём строки "a b c d e f" и "1 2 3 4 5 6"
с помощью split() разбиваем их в списки
['a', 'b', .. 'f'], ['1', ...'6']
assert просто для проверки, что у нас одинаковое число элементов в массиве, что лажи нет, легко при таком подходе промазать
zip() сшивает два списка в словарь, это стандартная функция питона, полезно знать, глянь в доках.

К началу цикла имеем словарь translation,
translation['sh'] --> 'ш'

Его можно было описать явно.

Дальше уже совсем просто.
s3, s2, s1 - это подстроки длины 3, 2, 1 соответственно. Или меньшей длины, если мы в конце строки.

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

Здесь не очень хорошо сделано, в случае s3 явно прибавляется 3, а ведь длина её может быть меньше. Некрасиво, но ничего не ломает, поскольку такая история только в конце строки происходит. Корректно увеличивать на len(s3), но душа байтоёба-оптимизатора возмущается.

В общем всё просто и читается легко, если на питоне пишешь. Если на питоне пишешь, магия по генерации словаря уже не магия.
199 1693370
Анон, поясни пожалуйста ньюфагу про толстые модели и токние вьюхи в Джанго.
Сейчас пытаюсь учиться по одному курсу, увидел там комментарий, мол автор допускает плохую практику.

В курсе автор обучает на практике создания сайта новостей:
Приложение у него одно news.
Вот файл models.py: https://pastebin.com/HAtg2c0s
Вот файл views.py: https://pastebin.com/DvEVejtU

Подскажи пожалуйста, анон, что из вьюхи в данном случае должно бы быть в моделях, чтобы был гуд практис.
image.png141x39
200 1693372
Где css-файлы для Джанговских форм?.. Вот например у меня после удаления из CharField текста форма подсвечивается красным (а это смотрится так себе). Как мне поменять?
П.С. Я подгрузил Bootstrap в <link rel="stylesheet">, может там что найдется, чтобы перекрыть эту ебень?

в css "шарю" на уровне 7классника
201 1693375
>>690535
Обновление: все работает. Проблема была в неработающем жс-скрипте на фронте (id-шник у поля был не тот и скрипт его не видел)
202 1693377
>>693370
"Толстые модели" это просто вынесение бизнес-логики в сами модели, чтобы не засирать вьюхи и не дублировать код

Большая часть бизнес-логики тут в кастомном миксине MyMixin лежит. В принципе можно забить хуй и так и оставить
Screenshot124.jpg183 Кб, 1383x1020
203 1693388
>>693121
уж не пиздишь ли ты? Как можно прочитать большие книги и ничего не написать?
неужели совсем нечего автоматизировать?

Гляди, я сегодня слепил десктопный обработчик фото.
На неделе попытаюсь "продать" руководству на ЗАВОД в качестве рацпредложения.
Неужели у кого-то возникают эти вопросы? Вагон же несделанных дел должен быть!
photo2020-04-17 12.42.39.jpeg163 Кб, 960x960
204 1693404
Аноны, чем
import urllib3
urllib3.disable_warnings()

отличается от
requests.packages.urllib3.disable_warnings()
и что лучше?
205 1693410
>>693404
requests - обертка над urllib и не более того.
Когда был urllib первой версии, то сделать запрос было очень трудно пистонисту больше 3 строчек писать уже трудно, появилась удобная обертка. В urllib3 уже не так все хуево и можно вполне брать на замену.
206 1693412
>>692944
Операторы "new" как я понял тоже не несут смысловой нагрузки. А вот тут [] int1 = new [32] что квадратные скобки значат?
207 1693442
>>693388
Классно, антош, давно погромируешь на пистоне?
208 1693464
>>693442
два месяца. Я, конечно, не показатель и у меня есть опыт программирования на различных языках. Но с другой стороны, в этих долгих годах мало самого программирования было. Я просто Админ.
И реально не понимаю, как можно прочитать толстенные книжки и не придумать как эти знания применять.
Ну с друзьями-кабанчиками поговори! Узнай какие сайты им нужны.
Они, возможно, больше мечтают о гуй-программах, но сайт тоже пойдет.

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

При этом у нас есть еще и php-программисты . Поскольку они дешевы, вся автоматизация сделана в виде веб-интерфейса. Десктоп они тоже не умеют.
209 1693468
>>693331
По поводу создания словаря из списка понял. А что будет если количество элементов в списке не совпадает?

А основная программа дальше похожа на мою, только у меня проверки на трёх символьные элементы нет .

Но вот что будет с твоей программой если в тексте попадется символ не из словаря? Она же выдаст ошибку, не? У меня же это предусмотрено.
210 1693471
https://habr.com/ru/post/502438/
Тут какой-то хрен разошелся и херачит статейки по Киви
211 1693484
>>693471

>Тут какой-то хрен разошелся и херачит статейки по Киви


Вангую, ты - Юрий Лугадонский.

Но спасибо, глянем.
212 1693489
>>693471
Питониты хуже жабаскирптеров. Повторяют за ними и везде пытаются свою херню пропихнуть.
213 1693492
>>693471
это все тот же. видимо, заказы фрилансерские хуже идут.
Ну спасибо что живой.
214 1693493
>>693202
Я может неправильно понял, у тебя заменяется , на пробел же? зачем тебе вообще регулярки?
215 1693494
>>692735
Ну ребят ну чего вы, ну подскажите
216 1693505
Хотет автоматизировать некоторые повторяющиеся операции, когда лезу в шелл джанги на удаленной машине. Команда ниже работает, но ipython запускается без подсветки синтаксиса и автокомплита. Как зделоть, чтобы был цветной и интерактивный?

ssh -C -i ~/.ssh/some.pem ubuntu@host 'cd ~/projectname && . activatevenv && ./manage.py shell_plus'
217 1693557
>>693404
У меня вроде и там и там urllib3
218 1693562
>>693505
Запускай в pycharm.
Кто, я???
219 1693567
>>693410
>>693557
промах
zZWIp-DI6MI.jpg80 Кб, 960x504
220 1693642
>>690482 (OP)
Привет!
Посоветуйте популярный IDE для Python. Я совсем новичок, установил PyCharm, но мне оказалось сложно в нём разобраться. Например, я не могу сменить дефолтную директорию Scratch-файлов, в которой у меня кириллица, и из-за этого есть проблемы при запуске батников. Я не прошу совсем примитивного инструмента - просто более дружелюбного.
221 1693644
Привет, Антон!
Подскажи за структуру проектов/приложений в джанго.
Порядком подзаебался разбирать каждый отдельный "ДАВАЙТЕ РАССМОТРИМ НА ПРИМЕРЕ" пример. Можно как то формальное описание получить?
222 1693650
>>693642
анаконда
223 1693668
>>693557
Тогда оставь одно что-то. По-идее - неважно что заюзаешь, все равно это у urllib3 юзается.
224 1693669
>>693642
Зачем тебе иде? Отупеешь ведь. Юзай vs code. Не сильно сложно, не пишет код за тебя. Как освоишься и не будешь совсем новичком, то тогда решай: pycharm или vim.
225 1693675
>>693669

> иде пишет код за тебя


ВАТ?
226 1693683
>>693668
Ну я подумал может есть какое-нибудь правило хорошего тона делать через импорт или через реквест. Спасибо
227 1693693
>>693650
Спасибо, но не совсем то, что нужно.
>>693669
Идеально. Спасибо.
228 1693708
>>693683
Но ведь это всё равно будут разные инстансы, лол.
Если ты хуяришь напрямую через урллиб, то делай урллиб, если через реквестс, то через реквестс.
229 1693820
аноны, я правильно понимаю, что переменные, объявленные внутри цикла, являются локальными?
230 1693855
>>693708

>Но ведь это всё равно будут разные инстансы, лол.


В каком смысле, антоща?
image.png14 Кб, 395x105
231 1693871
что это за херня?
232 1693889
>>693820
Нет. Это не жс
233 1693896
Аноны, есть идея реализовать решателя капч посредством машоба. Какие подводные? Как реализовать? Доставьте контента.
234 1693899
>>693871
-- coding: utf-8 --
кодировка
/thread
235 1693906
>>693489
Жопаскриптеры хуже. Но только лишь потому что многочисленнее
236 1693945
>>693896
Какую капчу решать собрался? От этого зависит часть подводных камней.
Для себя решил делать или сервис какой?
Для автоматического решения капчи-зображения есть сервис, качество не очень.
237 1693955
>>693945
Да в целом где я сижу только рекапча и заёбывает. Для начала конечно для себя потом если всё пахать будет продавать начну для спамеров хех. Юзал и сервисы и расширения в браузерах, но они действительно не очень.
238 1693960
Аноны, как написать декоратор, который будет работать с произвольными входными данными функции?

Пока что придумал так:

def decorator(func):
....def f(args, kwargs):
........return func(
args, kwargs) # здесь что-то осмысленное
....return f

@decorator
def g(some, arguments): ...

Но выглядит гадко. Лучше нельзя?
239 1693963
>>693960
Можно.
240 1693967
>>693899
Я имею в виду, кто это должен читать. Человек? Интерпретатор?
Да и кто придумал это говно -*-
241 1693972
>>693871
Это Legacy из второй версии питона. Забудь, зумер, а то кошмары по ночам сниться будут. За тебя деды воевали, живи счастливо без этого ужаса.
242 1693974
>>693967
Читает это вм через которую ты запускаешь свой код. Нужно это для того, чтобы текст который ты выводишь выводился правильно на любой локали.
243 1693982
>>693955
Для рекапчи есть либа на гите, для распознавания при помощи аудио.
Хз как она работать будет с рекапчей3.
244 1693983
Третья рекапча весьма злоебуча, там и действия пользователя на странице проверяются, и айпи и т.д.
А тут нуб взялся её забороть, ага. Самый верный метод это решение обезьянками за копейки.
245 1693984
>>693982
Через эту либу работает аддон для браузера о котором я говорил. И последние месяцы работает он архихуёво, где-то 1 раз из 10. Потому и хочу запилить что-то надёжное.
246 1693986
>>693983
Ага, готовь свои шекели, сучёнок. Скоро будешь постить в /b 300к постов/наносекунду.
247 1693987
>>693983
Все так, не он первый, не он последний, просто так ее не взять и она того не стоит.
>>693984
Зря только время потратишь, бери сервисы, их апи и либы для них, и юзай.
Для быстрого решения есть разогрев капчи.
248 1693991
>>693987

>разогрев капчи


Пока что самая полезная идея, которую я услышал.
249 1693993
>>693991
Правда она работает только если юзаешь один и тот же сайт.
250 1693995
>>693468
Бамп посту
251 1693997
>>693993
Посмотрим.
252 1694001
Мне надо где-то хранить список между запусками программы. Программа может и будет просто выключаться без всякого завершения.

Так вот - как в таких условиях лучше хранить список? Использовать pickle или просто хранить содержимое списка в файле и дописывать в него по необходимости?
253 1694003
>>694001
Если данные не критически важные и работа с файлом ограничена только записью/чтением то можно и базовыми средствами обойтись.
254 1694004
>>693963
А как?
255 1694006
Родные мои, есть список словарей
[{'Value': 'test0'}, {'Value': 'test1'}, {'Value': 'test2'}, {'Value': 'test3'}, {'Value': 'test4'}, {'Value': 'test5'}]

Мне его надо привести к списку значений, при этом исключив из него заранее заведенный список исключений

Список исключений:
['test4', 'test5']

Что я хочу получить в итоге:
['test0', 'test1', 'test2', 'test3']

Как мне это сделать?
256 1694008
>>694006
Кури isinstance()
257 1694014
>>694006
res = [val for d in start for key, val in d.items() if key not in excl]
258 1694015
>>694006
[d['Value'] for d in dict_list if d['Value'] not in set(exception_list)]
259 1694016
>>694006
z=твой список словарей
for x in z:
y = x['Value']
дальше вычитаем словарь исключений из словаря z

>>694008
>>694014
>>694015
этих не слушай, они джуны
260 1694018
>>694016

>из словаря y


пофиксил
261 1694021
>>694016
Проиграл с этого синьора.
>>694014
>>694015
Конечно, лучше в пятисотый раз облизать лист компрехеншн чем узнать о новой полезной функции.
262 1694022
>>694016
Чё несёт. Какой словарь y? А если у него [{'Value': 'test0'}, {'Value': 'test1'}, {'Value': 'test0'}]? А порядок как сохранить?
263 1694023
>>694021

>новой полезной функции


И какой же?
264 1694024
>>694022

>А порядок как сохранить?


А он не просил.

>>694022

>А если у него


А у него нет этого в ТЗ.

Вот что отличает джуна (вас) от синьора (от меня). Синьор никогда не будет делать лишней работы, не предусмотренной ТЗ.
265 1694025
>>694003
Надо будет часто обращаться к списку и редко добавлять/удалять элементы.

Базовыми - это какими?
266 1694026
>>694024
МЫ ВАМ ПЕРЕЗВОНИМ
267 1694030
>>694023
Глаза разуй, там написано.
268 1694031
>>694001
Это примерно эквивалентные вещи. В одном случае риск не успеть записать файл, в другом риск не успеть записать обновления.

Чтобы избежать риска, когда ты удалил старый файл, а новые данные записать не успел, можно простой паттерн использовать:
старый файл имеет имя, условно, dump.pickle.123
сохраняешь новый файл в dump.pickle.124
если успешно, старый удаляешь.
Причём так можно хранить, очевидно, несколько последних версий.
269 1694032
>>692963
я хуй его знаю, не могу скачать с твоего рапидшера
270 1694038
>>694030
isisnstance же для проверки типа данных, зачем он тут?
271 1694040
>>694001
И да, посмотри ещё на такую фишку, как сигналы. Это актуально для линукса, в винде может быть хитрее, там что-то работает, что-то нет.

Ты большинство сигналов о закрытии программы можешь перехватить, сохранить в этом момент данные, и после этого уже закрыть программу полноценно.
272 1694043
>>693388
мне всегда нужен был десктопный обработчик фото с драг&дроп. давай на гитхаб, ёба не жмись.
273 1694044
>>693412
ну это такая ёбнутая манера обьявлять массивы целых чисел
274 1694047
>>693494
Итак, день прошел зря, но я пытался узнать как это все делается.
Получается мне нужно реализовывать аутентификацию в социалочку непосредственно на vue, потом получив токен от социалочки, отдать этот токен в жангу, чтобы она там работала с логикой и че ей там еще надо, потом отправить на фронт собственный токен самой жанги, которую сохранить во фронт сторже.
На сколько я понял. Жаль что под мою социалочку незапилен модуль на vue вот под всякие инстаграммы есть и под вк есть.... Но встает другой вопрос. Если я делаю на фронте авторизацию, то мне надо указать свои id и secret key от апи авторизации в социалочке, разве это безопасно?
275 1694072
>>693388

Двачну >>694044
276 1694075
>>694047
ты просто хуяришь баззворды и мы не понимаем о чем речь
что такое токен в социалочку? какая разница вью/невью? ты оауф делаешь и хочешь авторизацию прогнать без бека?
277 1694078
Сап питонач, есть один файл, который представляет собой таблицу в два столбца, левый - заголовок к тексту, правый - сам текст. Планирую вытаскивать из файла определённый текст по номеру строки, по заголовку из левого столбца этой строки или по ключевым словам из самого текста. В какой формат его будет лучше всего сконвертировать для лёгкого доступа из кода? Csv, xml?
278 1694079
279 1694081
>>694078
sqlite
281 1694093
>>694079
>>694081
>>694087
Спасибо, аноны. Я правда довен и вообще никогда не имел дела с форматами кроме стандартных пдф/докх/хлсх, буду пытаться разобраться, что к чему с жсоном
282 1694094
>>694072
>>694043
Ну окей, вкатывальщики-квакивальщики.
Релизю приложение для обработки фото и прочих хренотеней !

https://github.com/pavlozt/kivyphotoenhancer/

Возможно, кого-то вдохновит на большие свершения. А то пишете все какую-то поебень, ей богу.
283 1694103
забыл один момент:
Если русские буквы интерфейсе уплыли, надо ставить python 3.7+ и настраивать переменную среды PYTHONUTF8=1 . Так вот в этой винде.
Когда-нибудь эта хуйня закончится...
284 1694130
Здравствуйте, господа!
Хочу научиться работать с библиотекой vk_api, вернее у меня есть идея, которую хочу реализовать для бота в сообществе.
Но, начинать надо с чего-то простого, что у меня не получилось.
Объясните плз, как можно элементарно с помощью бота отправить, например сообщение самому себе? А то просмотрел несколько источников, на одном источнике была подобная информация, но данную функцию тупо выпилили с какой-то там версией vk_api.
Будьте добры, напишите код, (я знаю, что там строчки 3-4 должно быть, пролема в знании методов), ии подкиньте доков читабельных
285 1694151
>>694130
Делается так же как и отправка обычного сообщения, просто жестко задай ИД человека которому писать хочешь.
+ На сколько я знаю, у вк_апи есть чат в телеге с активными юзерами, можешь залететь туда.
286 1694279
>>694078
стратегически,тебе выгоднее изучить pandas и оставить файл в csv.
загружай и там манипулируй данными.

Эта библиотека все равно на Си написана и к скорости не должно быть претензий.
287 1694282
Есть ли способ ограничить в django rest частоту обращений к апи? Что конкретный юзер или конкретный айпишник не мог делать эт очаще чем N раз в минуту?
288 1694287
>>694282
такой паттерн называется rate limit, по нему гуглится. конкретно в drf это называют тротлингом https://www.django-rest-framework.org/api-guide/throttling/
289 1694290
>>694287
Ебать ПАТТЕРН.
290 1694296
>>694006
from itertools import chain

data = [{'Value': 'test0'}, {'Value': 'test1'}, {'Value': 'test2'}, {'Value': 'test3'}, {'Value': 'test4'}, {'Value': 'test5'}]
exceptions = ['test4', 'test5']
items = chain(*map(dict.values, data))
result = [item for item in items if item not in exceptions]
291 1694297
>>694282
если это реальный кейс, делай сразу на nginx.
Выебут ведь юзеры твой vps-ик.
292 1694330
>>694296
ехал item через item.
видит item в item item.
сунул item item item.
item за item item - цап!
293 1694350
Могу запилить django-templates внутри js-файлов?
Внутри html - как нехер, в том числе и внутри js-кода, вот так например:

<script type="text/javascript">
var a = "{{someDjangoVariable}}";
</script>

А внутри js-файла есть возможность это сделать? Потому что они у меня длинные и я прикрепляю их как белый человек в <script src="static/main.js"></script> ?
294 1694352
>>694350
Зачем?
295 1694357
>>694352
Не хардкодить url path-ы и просто потому что я ебанутый
296 1694358
>>694282
Другой анон дельное советует, может на самом деле стоит использовать nginx, там есть всё для этого.

Смотри сюда:
https://nginx.org/ru/docs/http/ngx_http_limit_req_module.html

"зона" - это зона разделяемой памяти между процессами nginx, про них надо знать, что зон может быть несколько и у них должны быть уникальные имена. В том смысле, что зоны могут и для других целей использоваться, для кешей и т.п.

Я этим не пользовался правда, лепил когда-то свои велосипедные решения, правда не на питоне.

В nginx, судя по описанию, для разного типа url можно задать разные настройки, гибкость есть.

При желании ты можешь сам что-нибудь накрутить на уровне джанго, но думаю, этим стоит заниматься только если у тебя логика сложная.
297 1694365
>>694357
Ну эмбедь все настройки в script или там делай xhr за ними после загрузки.
А статика она и есть статика.
298 1694366
>>694350
По api отдавай переменные, или json портянку в index.html
299 1694376
>>694001
Еще один вариант - sqlite. Есть в стандартной библиотеке, все хранится в одном файле, встроенная защита от выключения программы или вылетевших пробок. Из неудобств - понадобится отдельный слой с SQL.
300 1694389
Аноны, сталкивался мб кто? С какого хуя django-cors-headers просто наебнулось без причины? Работало нормально, а потом хуяк - ваши корс-хедеры не корс-хедеры, идите нахуй.
301 1694391
>>694047
Слишком сложно. У фронта не будет оставаться никакой важной информации, доступной скриптам, работающим с твоего домена. Никаких хранений в local storage и т. д. - это слишком легко украсть. У твоей социалочки есть документация, как к ней подключаться?
302 1694392
>>694389
объясни нормально бля не телепаты
303 1694393
>>694392
Вроде и так нормально, есть либа django-cors-headers, настроена как указано у них в репе (приложение, миддвер, origin_allow_all = True). В какой-то момент она просто сама наебнулась
304 1694396
>>694393
Ты небось пытался использовать аутентификацию, с такими настройками не будет работать.
305 1694397
>>692735

>А при деплое как это работает?


Можешь держать 2 сервера при деплое, можешь сбилдить проект на вью, а джанго будет раздавать его как статику
306 1694400
>>694396
При чем аутентификация? У меня сами запросы просто ебнулись. Работала регистрация, а теперь просто нахуй шлет
307 1694405
>>694400
Ты понимаешь как cors работает?
308 1694406
>>694405
Идет запрос, сервер отвечает списком сайтов, которым разрешен доступ, но у меня блядь всем разрешен доступ с помощью CORS_ORIGIN_ALLOW_ALL = True
309 1694408
>>694406
А теперь открой консоль в браузере и посмотри что там написано.
310 1694412
>>694408
Идет запрос options к серверу, а в ответ я получаю нихуя, а в браузера висит "Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://192.168.1.14:8000/api/users/. (Reason: CORS request did not succeed)." Но проблема в том, что эта хуйня работала какое-то время назад
311 1694418
>>694412
Укажи свой хост явно, разреши пересылку кредлов. Возможно поможет, так как причин может быть много.
312 1694422
>>694418
CORS_ORIGIN_ALLOW_ALL это выключи, CORS_ORIGIN_WHITELIST = ['адрес сайта'], CORS_ALLOW_CREDENTIALS = True
313 1694424
>>694422
Хотя насколько помню, там сообщение об ошибке другое, скорее всего не в этом проблема.
314 1694426
>>694418
>>694422
Поменял, та же самая хуйня. Вот если что сами настройки джанги, касающиеся корсхедеров. Последнее уже выдрал с стаковерфлоу https://pastebin.com/XNz9JsjW
315 1694427
>>694426
У тебя приложение на js дев сервере?
316 1694430
>>694427
Да. Приложение на Вью, запросы делаю через axios
317 1694432
>>694430
Надо прокси в конфиге настроить.
318 1694434
>>694426
Регекс кривой
CORS_URLS_REGEX = r'^/$'
Попробуй
r'^/.
$'
319 1694435
>>694434
Бля, побилось. Точка перед звездочкой кароч.
320 1694436
>>694432
>>694434
спасибо, аноны. В итоге я просто сделал хуйню на фронте из-за чего оно не работало, а именно вместо локалхоста обращался к локальной сети, хотя джанго в отличие от вью разворачивается только на локалхосте, а я как даун про это забыл
321 1694476
петон полная хуйня учите ноду
322 1694477
>>694476
учи кобол
323 1694508
>>693228
Спасибо.
Надо было сразу доку читать.

>>693493

>зачем тебе вообще регулярки?


Ну там же могут встречаться последовательности вида
60-70.9
Т. е. два числа, разделённые минусом без пробела.
324 1694526
>>694476
Лучше хтмл
325 1694528
>>694358

> Смотри сюда:


> https://nginx.org/ru/docs/http/ngx_http_limit_req_module.html



> В nginx, судя по описанию, для разного типа url можно задать разные настройки, гибкость есть.



А вот и нельзя, лол. Там же только ip, а не произвольный элемент.

Тот самый анон.

Но есть Великий Китайский Nginx Openresty, где это делается довольно элегантно на lua с применением этих же механизмов зон.

Зависит от серьезности лавочки, короче.
326 1694529
>>694528
А, не, можно, но непонятно как выудить переменные из post или элементы json. Вот зачем тут нужен lua.
Так что во многих случаях порезать скорость в nginx - отличная идея
327 1694606
>>694528
Ну так ты можешь поставить лимит на количество запросов какого-то url для разных ip. И получаешь дешёвую защиту о ботов, которые высасывают информацию с твоего сайта в много потоков.

Если какую-то сложную логику реализовывать, то проще уже сразу на уровне джанги. Может ты там хочешь, чтобы разные виды запросов на один url имели разный вес, и у разных групп пользователей были разные лимиты? И ещё попутно статистика какая собиралась?
328 1694613
>>694529
В nginx прикрутили javascript, и вроде можно как раз подобные задачи через него делать. Не пробовал. Глянь на это.
https://nginx.org/ru/docs/njs/index.html
329 1694648
>>694613
блядь, как бесит эта пизданина.
lua то много лет,а они ради говноедов js тащат.
в Самом Большом в Мире Китайском Интернете вообще только на lua и пишут.
330 1694679
>>694648
Пишут, что lua паскалеподобное говно, а nginx за js.

https://habr.com/ru/company/oleg-bunin/blog/420465/

Надо бы добраться когда-нибудь до этого и заботать.
331 1694685
Как быстро освоить пихон если освоена Java?
332 1694702
>>694508
Да, точно! Прости мне мою невнимательность
333 1694710
>>693960
def func(args, *kwargs):
334 1694711
>>694710
Парсер съел по одной звездочке перед args и kwargs.
335 1694774
Где почитать подробности языка более углубленно, чем укус питона?
336 1694820
>>694774
Лучано Ромальо. Fluent Python
Злата Обуховская. Что внутри у питона (youtube)
Документация
337 1694858
>>690482 (OP)
Прочитал от корки до корки Dive into Python 3, всё написанное полностью понял. Что делать дальше - не пойму. Цель - фриланс на США. Или хотя бы работа самая простая, тоже в США. Понимаю, что хоть и разбираюсь в многом уже и в принципе смогу нужные библиотеки быстро выучить, всё равно в данном состоянии нигде работать не смогу. Куда копать чтобы хотя бы какую-то копеечку получилось поднять? Нужен хоть какой-то самый простой проект, по типу парсинга блять фанфиков. Хочу развиваться не в вакууме, а на реальных заданиях которые будут востребованы, с которых я смогу получать деньги. Есть идеи куда смотреть и что делать? Большое спасибо, анон. Английский нейтив. Могу и ирл, но предпочтительнее конечно же хоть за сильно меньше, но фриланс. Плюс с рынком работы США не знаком нихуя.
338 1694865
>>694858
Смотри вакансии и то, какие там технологии используются. Чистый питон никому не нужен вообще. Нужны технологии. Нужно уметь работать со сторонними сервисами вроде DB, MQ и др.

Ты в самом питоне хорошо умеешь тестирование, модуль logging, asyncio? И не только это.

Веб фреймворки? БД? MQ?

Представть проект, который мог бы быть полезен и попробуй сам сделать.
339 1694873
>>694679

>Олег Бунин


> не создал ни одного Продукта


>10 лет делает вид, что дохуя умный и стрижет бабло с менеджеров топов

340 1694876
>>694679

> — Уже существует готовый сторонний проект OpenResty. Если не вдаваться в подробности, то это, по сути, nginx + Lua, но он имеет архитектуру, которая идет вразрез с nginx. Мы хотели избежать пересечений с этой экосистемой.



Они хотели продолжать стричь бабос с nginx plus и дать возможность нанимать яваскриптомакак.

Но в lua нет ничего сложного и он фантастически быстр.
341 1694881
>>694865

>Представть проект, который мог бы быть полезен и попробуй сам сделать.


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

От требований на сайтах становится не очень. Даже не беру в расчёт опыт работы, просто дохуя там. То в веб уклон сильный с Джанго, то в дата аналитику. Но там по 5 лет опыт просят, поэтому и ищу чтобы начать где проще порог входа. Мне бы начать с чего-то. Вот как в тестинг мануальный можно вообще вкатиться за неделю, дальше переходить на автоматический и т.д. Вот мне бы что-то похожее в питоне, а не тестинге. С чего-то начать, что уже сейчас было бы хоть кому-то нужно, и дальше улучшаться.
342 1694922
>>694881
Скажи как в тестинг вкатиться за неделю? там такие же хрюши сидят "алло 500 лет опыта нет? вы нам перезвоним"
343 1694927
>>694922
Я про ручной говорю, тыкать в браузере блять баги искать. Не про физически пойти работу найти, онлайн же.
344 1694949
>>694685
А с чего это ты взял, что она тобой освоена, лол?
345 1694962
Хм, есть у меня несколько моделей Джанги. В одной из них есть поле ref=URLField, прикол в том, что в зависимости от значения этого поля (ссылки) надо по-разному обрабатывать данные. Как это блин реализовать?
346 1694969
347 1694983
>>694962
Так в чем трудность? Подробнее расскажи, а то не угадать, ты там не знаешь как if написать или тебе свой йоба диспетчер нужен под это дело.
348 1695028
>>694983
Для каждой комбинации (ref+description) требуется свой обработчик. Всего их на данный момент 8 (скоро могут появятся новые или наоборот что-то будет удалено). На первый взгляд стоит в отдельном модуле типо utils их написать, но как быть дальше? Как "привязать" каждого обработчика к своему instance из модели? Сидеть и вручную в shell это делать? Просто вопрос времени, когда я таки совершу ошибку и буду не понимать, хрен ли оно не работает как надо
349 1695061
>>695028
Первое что пришло в голову: при сохранении экземпляра переопределять метод в котором обрабатываются данные, как-то так
https://pastebin.com/T5DkSnpq
350 1695077
>>695028
Если твоя обработка состоит в различиях при выборе - ебни по менеджеру для каждого из типов
351 1695092
Как записать список в файл? Когда делаю f.write(list) он ругается что надо str записывать, а не список.
352 1695094
>>694927
в твоем понимании "вкатиться" = делать что -то для себя?
Я просто думал что вкатиться это выполнить "работу" для кого то
353 1695097
>>695077
>>695061
Что мне также недавно пришло в голову: назвать обработчики определенным образом. Затем внутри модели определить метод handle, который на основании значений self.ref и self.descr найдет нужный мне обработчик (бизнес-логику намучу, это не проблема)

Вопрос на данный момент лишь таков: как блэт этот обработчик мне импортировать в мой метод handle? Есть 2 варианта: использовать
import module_name
vars(module_name)
и перебрать ключи, либо использовать что-то типа:
mod = importlib.import_module(module_string_name)
handler = getattr(mod, name)

Какой из методов будет рациональнее и быстрее?
354 1695103
>>695092
write("\n".join(lines))
есть ещё writelines, но там тоже надо ебаться с ньюлайнами.
355 1695124
>>695092
Сериализуй чем-нибудь вроде pickle или json, а потом записывай
356 1695126
>>695124
Я видел где-то уже упоминание сериализации. ЧТо это?
358 1695153
>>695097
Не помню как точно, но просто переопределяешь метод на выборку, внутри можешь вызвать каждый из менеджеров, а потом склеить все полученные данные в 1 список и вернуть
359 1695231
>>695132

>TypeError: can't pickle _asyncio.Task objects


Это что выходит, при использование asyncio нельзя пользоваться pickle?
360 1695439
Нихуя не понимаю, объясните пожалуйста

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

А могу вводить всю эту поеботу черед командую строку вручную.

Есть какая-то принципиальная разница между двумя способами? И почему везде в офф документации или туториалах (например Джанго) пишут через командую строку?
361 1695444
Кто тут писал телеграм ботов, как проще организовать напоминалку чтобы она отправлялась два раза в день в разное время? Делаю бота через aiogram
362 1695447
>>695439

> И почему везде в офф документации или туториалах (например Джанго) пишут через командую строку?


Потому что это стандартный способ. Пичарм просто автоматизирует его.
363 1695465
>>695447
Добра тебе анон
364 1695484
Как проще всего сделать таймер? Чтобы раз в N секунд выполнялось действие?
365 1695508
>>695484
while True:
____do_something()
____time.sleep(1)

или
while True:
____do_something()
____await asyncio.sleep(1)

или модуль sched, но фактически это как в пункт 1
Или сигнал alarm в линуксе, но это неправильный подход.

Ты задачу опиши для начала
366 1695515
>>695484
Просто не получится.
Все таймеры работают в контексте ивент лупа, т.е. асинхронно.
367 1695525
>>695508
через определенное время записывать информацию в файл.
>>695515
А чем вариант выше с

while True:
____do_something()
____time.sleep(1)

не подходит?
368 1695526
>>695097
vars?
А есть кстати другой метод получить переменные модуля/класса? А то в модулях много builtins говна, мешается
369 1695534
>>695525
sleep не начнется раньше завершения do_something, потому что они работают линейно. Если он занимает минуту, то о чем говорить?
370 1695536
>>695534
Хотя если у тебя задача на три копейки типа пару раз в минуту качать что-то с сайта, то и такое сойдет.
371 1695547
>>695484
Запуск в отдельном процессе
Запуск посредством Celery (overkill)

Либо

while True:
____do_shit(shit()
____await asyncio.sleep(60)
372 1695552
>>695534
Так говорю же, у меня do_something это сохранение в файл.

>>695547
Зачем асинк для этого?
373 1695554
>>695552
aiofile
374 1695556
>>695552

>Зачем асинк для этого?


Если у тебя только 1 задача в скрипте - незачем, если есть что-то еще - то обычный слип будет блочить выполнение всего кода
375 1695577
>>695552
Всё зависит от того, что делает твоя программа в перерывах между тайм-эвентами.

Один вариант - когда ты делаешь небольшую задачу, таскает данные с сайта, сохраняешь статистику в файл и т.п., а в промежутке ничего. Тогда проще всего sleep.

Если у тебя скрипт всё время работает, но раз в сколько-то ты что-то делаешь, что тогда или async, или что-нибудь ещё, варианты могут быть.

Ещё зависит от того, насколько точно тебе надо интервалы выверять.

Всё это стандартные задачи и для каждого типа есть стандартные решения. Но разные.
376 1695623
Кто-нибудь реализовывал напоминалки в телеграмм ботах?
377 1695916
>>695623
Nothing difficult.
378 1695928
>>695484
Проще всего, внезапно, с модулем threading.
Но это перестанет быть проще, когда ты добавишь туда что-то еще
379 1695929
Кто нибудь использует апи переводчиков? Какой есть бесплатный без анальных лимитов вроде 1000 слов в день?
380 1695974
Слышал, что реальные пацаны в django хранят бизнес-логику не в моделях (как пишут в оф. документации), а в отдельном файле services или utils. Есть примеры как это правильно делать и вообще зачем?
381 1695983
>>695929
Это, ведать, для лентяев.
Автор API предоставляет услугу, которую бесплатно ты должен был предоставить себе сам.
Так же как ремонт автомобиля - бесплатно могут дать совет ремонтироваться в их мастерской.
На этом перечень бесплатных услуг исчерпывается.

Но почему бы не сделать переводчика, НЕ использующего интерфейс API, а чистый HTTP ?
382 1696039
>>695983
Потому что я не знаю хттп, как тебе такой вариант? Ну так что насчёт апи то? Есть чего?
383 1696045
Блядь, запустил один туториал по питону - какой-то индус на ломаном английском вещает, запустил ещё один - опять индус. Какого хуя?
384 1696054
>>696045
Ну так не запускай.
В Степике хорошие цисгендерные айтишники.
385 1696071
>>696045

> запустил нонейм хуйню какая-то хуйня


держи в курсе
386 1696164
>>696039
Ты знаешь, я сейчас проверил, а мой клиент Гугл-переводчик не работает. Я бросился смотреть на страницу переводчика - она уже совершенно другая.
Открыл в IE, а Гугл требует войти в аккаунт - чё за хрень, через Хром захожу на переводчик без никакого акаунта ?
Так что у меня теперь нет переводчика и значит программы, которые его использовали, накрылись тоже.
387 1696167
>>696164
Насколько я сегодня нагуглил - Гугл сделал свой апи платным недавно и все сосут хуй кто бесплатно переводил.
388 1696230
>>696167
Это палка двух концов: Если платный сервис - его функциональность будет гарантироваться.
Если, как бы украл (мой клиент не использовал никаких АПей), то это бесплатно, но... в любой момент они могут изменить что-то и программа накрылась.

Покупать, если тебе клиент-переводчик нужен раз в год - смысла нету.
Поэтому, стоит внести изменения, согласно всем ихним новшествам и прежним курсом пока опять не поменяют.
У меня клиент работал на технологиях COM и DOM, но для этого необходим IE. С ним последнее время проблемы - то старая версия облаком не поддерживается, клиент облака делал, пуд говна съел, прежде чем победить. То в кабинет телефонного провайдера не могу войти - новый сертификат сайта не поддерживается.

На свою старую систему новый IE не ставится, поэтому перенёс клиент кабинета провайдера на планшет с 10 системою - сертиыикаты https есть, клиент работает. Теперь переводчик накрылся, надо переносить тоже на планшет, а на 10 системе IE не установлен.
И вообще 10 система - сволочная штука. Целая эпопея борьбы. И она только началась - её предстоит обкарнать по самые яйца. И от предателя-системы безопасности, и от изменника родины планировщика заданий. Надо будет выявить где эти файлы, пользующиеся преступной неприкосновенностью и зайдя с внешнего диска - ампутировать их в пизду.
389 1696256
Запомните товарищи наизусть - как бы хорошо ни было приложение, но если оно насильственно навязано - это обрекает его нести метку говна.
И всяк его будет стрематься и поносить.
Ибо насильно мил никто, пока что не стал и НИ - КО - ГДА НЕ СТА - НЕТ !
390 1696366
Как во Flask сохранить кэш на стороне пользователя?
391 1696370
>>693388
Советую вместо принтов юзать logging. А так код нормальный. У новичков неосиляторов основная проблема, то что они не знают с чего начать и как построить архитектуру проекта. По твоему коду же видно, что опыт есть.
392 1696381
>>696370
Ты где там архитектуру разглядел в этих 100 строчках, среди которых полезных около 50?
393 1696418
>>696381
АРХИТЕКТУРА ПАТТЕРНЫ РЕФАКТОРИНГ
394 1696653
Я не могу просто взять и вставить элемент словаря в ф-стринг?

slovar = {
'kluch': 'znachenie',
}

print(slovar['kluch']) - вот так все норм

print(f'bla bla {slovar['kluch']}') - а вот так уже ошибка.

Мне обязательно нужно сперва упаковать элемент в переменную, а в стринге обращаться уже к ней? Это ж очень нудно, нах мне тогда вообще писать этот словарь, если все равно для каждого ключа нужно отдельно писать переменную, я это могу и без словаря сделать. Может еще какой способ есть?
395 1696663
>>696653
Из-за скобок ошибка. Используй другие или эскейпь.
15882642647221.jpg35 Кб, 487x414
396 1696665
>>690482 (OP)
Програмач ай нид хелп.
Укус питона прочёл, Hello World написал.
Написал говнопрогу, которая приветствует тебя, просит ввода имени и возраста и в зависимости от этого оскорбляет тебя.
Какую книгу читать дальше? желательно с примерами т.к. хочется практики.
397 1696666
>>696663
Можно подробней? Не понимаю в каких именно скобках ошибка и как я могу их изменить, я думал для каждого элемента вполне конкретные скобки используются.
398 1696669
>>696666
Есть дохуя видов скобок, все они взаимозаменяемы.
Одинарные 'str' и "str" и тройные '''str''' и """str""".
Если какие-то используются у тебя в строке, то оформить можно другими.
В твоем случае можно сделать
print(f'bla bla {slovar["kluch"]}') или наоборот.
399 1696671
>>696669
А, ты про кавычки! Точно, работает, спасибо!
400 1696672
>>696671
Ох лол, да.
401 1696676
Как установить MySQL? Нихуя не понятно что-то. Коды из консоли, клиенты, архивы с сайта, инсталляторы. Конкретно что ставить нужно?
402 1696679
>>696676
Нужен сервер, клиенты уже к нему подключаются.
На шиндовсе инсталятор, на шинуксах из реп.
403 1696680
>>696676
sudo apt install postgresql postgresql-contrib
404 1696716
Парни, тут кто-то писал насчет таймеров, на чем-то годном по итогу сошлись?

Я подумал на досуге и нахуярил вот такую реализацию "сигнальной" функции, которая раз в n секунд вызывается и совершает некую небольшую операцию. А основная функция, которая потребляет много ресурсов CPU, идет фоном, пока не выполнится: https://ideone.com/tpaOTQ

Реализовано на тредах. Какой-то ощутимой просадки по производительности не заметил. Но уверен, что есть способы и лучше. На асинхронках можно что-то подобное намутить? А с помощью какой-нибудь левой либы?..
405 1696800
Решил попробовать этот хваленый jupyter lab.
Ну и нихуя!
Не открывает мои экселевские файлы.
File Load Error for testme.xlsx
testme.xlsx is not UTF-8 encoded
И так все файлы. Что я их экселем создаю, что через pandas.to_excel.

Хорошо что хоть csv открывает.

Нагуглить ничего толкового не смог.
Неужели придется anaconda ставить чтобы совсем уж по-ихнему было?
406 1696805
>>696716

>Какой-то ощутимой просадки по производительности не заметил. Но уверен, что есть способы и лучше.



так ее и не будет, лол. Оверхед на потоки слишком низкий. Многие программы на тредах и всем норм.

Сначала нужно определиться, что для тебя лучше.
В твоем коде нихрена не происходит кроме print.
Никакого совместного доступа.
Соответственно, ты не занимаешься никакой синхронизацией и проблем ты успешно избежал.

Вот, допустим, мой пример : >>694094
Он работает потому что там "волшебная" синхронизация от kivy через декоратор @mainthread
В серьезных случаях были бы проблемы.
(кстати, на самом деле киви работает из без этого. не понятно почему, но я на всякий случай пишу. как у них в документации это написано лет 5)
407 1696808
>>696370
да харош. смысл этой программы был показать, что kivy - довольно просто и пора бы новичкам переходить от заманавших всех телеграм-ботов к полезным программам.
408 1696811
>>693388
Что эта штука вообще делает?
409 1696828
>>696811
это чтобы в фотошопе не мучаться. Фото часто надо обрабатывать, но сами манипуляции шаблонные . Посмотри как это выглядит в фотшопе:
https://pskurs.ru/photoeffects/avtomaticheskaya-korrekciya-urovnei-v-photoshop.html

У меня на производстве продукцию фоткают перед тем как отправить клиентам зеркальным фотиком и получается плохо.
Я как буду рабочих-дуболомов обучать в консоли что-ли работать?
Поэтому сделал гуй.

На самом деле там еще (будет) сжатие фото до веб-разрешения и загрузка на сайт к конкретному заказу.
410 1696878
>>696828
То есть это автоматизатор кнопки "авто" в фотошопе средствами сторонней проги? Ну заебись, хуле, и гуй красивенький.
411 1697051
Есть один список (list). Структура такова: A= [array([100, 200, многа чисел]), array([300, 400, многа чисел])]. array это numpy.ndarray. Как мне получить вывод последних чисел из каждого array. Просто A[:][-1] выводит array([100, 200, многа чисел]). По сути индексация не идет внутрь списка. Я предполагаю это из-за того что внутри numpy.ndarray, а не простой список. Не могу догадаться как вводить индексы.
412 1697065
>>697051
Можно конечно циклом перебирать
B=[]
C=[]
for i in range (len (A)):
A = A
C.append(A[-1])

Но хочется сразу индекс.
413 1697089
>>697065
Попробуй так [a[-1] for a in A]
414 1697091
Объясните понятным языком, что представляют из себя атрибуты co_lnotab и co_flags у code object в Python?
415 1697095
>>693388

> неужели совсем нечего автоматизировать?



Если только написать программу, которая наримана током от компа коротнет, лол.

В конце концов, не все же такие кабанчики занятые. Мне вот обработчик фото нахуй не нужно, тебе наоборот. Время такое, для моих потребностей например уже все написано.
416 1697098
>>697089
Получилось, спасибо. Ни разу с таким индексированием не сталкивался.
417 1697152
>>697051
A[:, -1]
A[строка, столбец]
418 1697155
>>697152
Не работает list indices must be integers or slices, not tuple. Я так пробовал. Пока либо цикл, либо это >>697089
419 1697164
>>697155
Тебе обязательно использовать ndarray ? Если вместо обычного списка в начале и в списках внутри использовать numpy.array() то все работает.

np.array([np.array([1,2,3]),
np.array([1,2,3]),
np.array([1,2,3])])
420 1697187
>>697164

> Тебе обязательно использовать ndarray ?


Не то чтобы очень, но формат задает чужая функция. Перебирать её во много раз сложнее чем пердолиться с индексами.
3.png2 Кб, 340x95
421 1697215
422 1697250
>>695094
Нет, я и имел в виду работу для кого-то. Мануальное тестирование - для вката достаточно полной недели и можно зарабатывать деньги - я тому пример. Только деньги всё же не такие огромные, и заниматься этим постоянно не импонирует. Развития там так же не много, да и куда развиваться. А питон, это другое. Но здесь порог входа на любую работу мне кажется намного ввше, поэтому и растерян.
numpy.png24 Кб, 760x435
423 1697282
>>697051
>>697155

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

Как исключить все смайлы из перевода, если они в контексте чата состоят из простых слов?

Самый очевидный и тупой способ - добавить все смайлы в исключение не проканает. Их не фиксированный набор, у каждого стримера есть свой уникальный пак.

Часть смайлов я отсек проверяя слово на количество заглавных букв - если их больше 2 в слове - оно игнорируется. Но это отсекает только смайлы, состоящие из двух слов. Та же Kappa будет проходить

Ещё часть отсек проверкой на наличие цифры в слове.

Есть идеи как отсечь остальные смайлы?
425 1697298
>>697293
Ты его копипастом переводишь что ли, как сообщения получаешь? Получаются сообщения через вебсокет, в каждом сообщении отражается не только его содержание, но и доп. информация в т. ч. и используемые смайлы.
Проблема только в том, что есть еще и расширение bttv которое добавляет свои смайлы, поэтому тебе их отдельно парсить нужно будет в зависимости от канала. Может у них api есть.
426 1697310
>>697298

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


За основу своего бота я взял twitchio. Он сообщения получает в виде простого текста вида "какой-то текст Kappa" и смайлы никакими служебными знаками не отображаются.

> Проблема только в том, что есть еще и расширение bttv


Эта хуйня только новые смайлы добавляет в твич?
427 1697342
>>697310
И зачем? Для практики как рах полезным будет не использовать сторонние библиотеки, которые напрямую решают задачу. Это тоже самое, что написать калькулятор в виде вызова системного калькулятора. Ну а хули, "у меня обертка".
Ничего сложного в твоей задаче нет. Подключаешься к нужному вебсокет каналу, парсишь оттуда сообщения, переводишь и выводишь результат. Bttv эмоуты установленные для конкретного канала можно посмотреть на сайте, т. е. перед обработкой сообщений канала тебе нужно будеи спарсить названия смайдов с этой страницы.
428 1697364
>>697250
Где ты такую вакуху нащел что без опыта взяли... а как же тестовое с "ой ну вы не все баги нашли идите нахуй"
429 1697388
>>696716
Будет задача, будут решения.

Первый вопрос в том, ради чего ты прерываешь исполнение.

Вот в твоём примере, у тебя есть содержательный и важный код:
def do_shit() -> None:
____'''Эту функцию будет вызывать другая - "сигнальная" функция'''
____print(f'Shit called at {time.perf_counter()-START}')
____print(f'Shit got: {random.randint(1,1000)}') # имитируем какую-то херню

Насколько пользователям программы важно, чтобы эти строчки напечалались друг за другом? Ты ведь понимаешь, что у тебя переключение потоков может произойти в любой момент, эта функция не атомарна, и в момент МЕЖДУ принтами может что-то произойти? Исполнение переключится куда-то ещё, другая функция что-нибудь напечатает. Оно точно устраивает?

Как говорится, добро пожаловать в мир многопоточного программирования.

В случае async-await такой проблемы нет. Переключение в предсказуемый момент. Правда если у тебя тяжёлая фукнция, то тебе надо явно разрешать переключение в какие-то моменты.

Вариант: ты просто раз в сколько-то итераций тяжёлого цикла запускаешь
await asyncio.sleep(0)
что разрешает переключение задачи на другую.
430 1697399
>>697342
Ну не скажи, элементарного бота сделать думаю не сложно. Но один хуй будешь по гайдам делать и мало чему научишься. А так я по тихоньку ковыряю твичио, дописываю и обучаюсь питону.
431 1697421
>>697342

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

4ced22a63c8181920972d0a5b9ee7f67715e5aed.png983 Кб, 2024x1626
432 1697467
>>697388
есть тупой и стандартный паттерн: в лог добавляется ИД задачи-треда и перемешивание вывода никого больше не ебет.

И можно еще нескучных эмодзи добавить.
Screenshot125.jpg258 Кб, 866x1210
433 1697474
Не, вы заценити эти паравозики!
434 1697559
>>697421
Речь идёт именно о практике и обучении, да для практики и обучения полезно писать всё самому. И глубина начала зависит от того уровня знаний который ты хочешь получить.
>>697399
В том то и дело, что гайдов никаких не нужно. Достаточно проанализировать запросы и повторить их из своей программы. Ковыряя чужой софт ты обучаешься не питону, а работе с API этого софта.
435 1697561
Антоши, как в VS code убрать один отступ перед кучей выделенных строк?
Ну короче как выделяешь строки, жмешь таб, они улетают на уровень глубже. А как наоборот?
436 1697567
>>697388
Если кстати реализовать тот пример через async и делать await asyncio.sleep(0) после каждого числа num в цикле for, то время выполнения увеличивается в 3 раза... решение которое помогло: сделать в том месте строчку

if num % 10000 == 0:
____await asyncio.sleep(0)

но вопрос, фиг ли переключение контекста настолько сильно ебет остается открытым
437 1697568
>>697561
shift + tab
438 1697575
Помогите. При таком раскладе переменная par будет определена в p?

for x in result:
par = dict['u']
p = {
"Parent": par
}
439 1697609
>>697567
Ты просто сам подумай, сколько работы должно совершиться для переключения контекста. Там надо идти в event loop, ставить задачу в планировщик и т.п.

Естественно думать надо. В конкурентном программировании в любом случае думать надо. А как ты хотел?

Для моего ноутбучного проца переключение требует на уровне 10 микросекунд. Если uvloop подключить, раза в 2 ускорение, pypy ещё сильнее, но даже pypy 2 микросекунды на простых примерах.

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

Зачем тебе переключаться 100 тысяч раз в секунду? Делай так, чтобы вычислительные задачи могли передать исполнения 10-100-1000 раз в секунду, в зависимости от твоего приложения.

В полноценных приложениях вычислительные задачи должны в отдельный процесс, не поток, а процесс выноситься.
440 1697618
>>697575
Ты что сделать-то хочешь?
441 1697631
>>697559
Ты пишешь хуйню которая с легкостью отпугнет любого изучать. Если ты это делаешь намерено то пошел ты нахуй токсичная хуйня, если ты делаешь это для защиты своей самооценки, поищи другие способы сохранить свое чсв не через унижение попыток других.
Применяя инструмент, попутно можно понять как он работает, ты же понимаешь что в шариковой ручке крутится шарик?, а вот твои "это все не то, надо писать все с нуля" уничижают стремления юнцов и вгоняют их в "я тупой юзаю готовое" состояние.
442 1697675
>>697609

>Ты просто сам подумай, сколько работы должно совершиться для переключения контекста. Там надо идти в event loop, ставить задачу в планировщик и т.п



Блядь, надоели уже.
Вы откуда лезете? Из Яндекса или Амазона?

Ребятки, достаем ручки и листочки, открываем Методичку:

>Preallocated virtual memory is a staggering ~80 GB (due to 8 MB stack space per


thread!), but resident memory is only ~130 MB.

это реально имеет смысл если ты пишешь какой-то суперплотный сервер, но в действительности ты своим кривым sql положишь сервак намного раньше.
443 1697690
>>697467

О посоветуйте архитектуру вот какой штуки:

я хочу забабахать некую Аналитическую Платформу :
на сервере крутить подготовленные мной jupyter notebooks чтобы конечные юзеры не могли их менять, не могли скачать реквизиты доступа к данным в sql или других api, не могли скачать элементы нотебуков распиханные в py-файлы.
Но могли конструировать самостоятельно графики, что-то отфильтровывать, скачивать готовые отчеты себе в эксель и тд.
То есть, как бы веб-интерфейс без джанги.

По сути это будет замена metabase, который себя не оправдывает.
Это типичный корпоративный ебенейших размеров софт на яве, который, в общем, не делает главного. Непонятная хуйня какая-то. Создал там кое-как пару таблиц, поебался с mysql tengine=federated, но все равно неудобно. А с графиками вообще пиздец.
444 1697691
>>697631
Ну да, вариант "сам был новичком и научился на своих ошибках" почему то даже и не рассматривается. Одни попытки унижения и детекты токсичности. Узнаю забитого омежку с двача.
В любом случае, я просто высказал своё мнение, он может его послушать и сделать свои выводы. Какие - мне абсолютно похуй, для меня ничего не изменится всё равно.
445 1697726
>>697215
У меня A= [array([100, 200, многа чисел]), array([300, 400, многа чисел])]. Твой код выдает array([300, 400, многа чисел]), то есть последний array из списка, но весь. У тебя работает, т.к. у тебя a = array([300, 400, многа чисел]). У меня же поверх этого обычный список.
>>697282
Вот тут работает. Как я понял за счет конвертации моего списка в np.array A= np.array(A).
446 1697727
>>697618
Стать программистом за 300к час
image.png1 Кб, 126x58
447 1697738
Лол, аноны, почему-то VSC думает, что \a это управляющий символ (и я потом получаю ошибку при аутентификации). Как это вырубить?
С "local\pidor" например нормально.
448 1697743
>>697738
Правильно думает. Эскейпи через \\
Также можно raw strings с префиксом r"\a huli"
449 1697744
>>697738
Выход очевиден Переименовать пользователя alexey в pidor
450 1697749
Утечка памяти в тестах -- как бороться?
451 1697750
>>697749
и как выявить?
452 1697752
>>697743
Он так же будет думать, когда я буду перебирать пару тысяч имен вида domain\name в списке?
453 1697754
>>697691
За базаром следи.
454 1697756
>>697752
Это работает для значений, которые ты определяешь коде.
Если оно получено другим путем, то похуй.
image.png10 Кб, 644x149
455 1697779
>>690482 (OP)
всем привет, хочу встроить один свой код на питоне в бота в телеге, поставил telebot, но у меня тут проблема в том, что в библиотеке Telebot, как в принципе и в api телеграма нет ни input, ни его нормальных аналогов, поэтому я просто ебанул нахуй вот так вот как на пикриле, присваивая переменной текст сообщения. И вот проблема в том, что после того как бот выводит сообщение, то сразу начинает выполнять код дальше, в итоге на практике это выглядит так:
я пишу ему сообщение чтобы запустить, следом он пишет мне текст с вопросом на который нужно ответить цифрой, и тут же начинает прогонять код, не дожидаясь ответа. Берёт суёт в переменную моё сообщение которое я ему написал в начале, затем суёт его в integer и жидко пукнув выдаёт ошибку что не может преобразовать строку в целое число, по понятным причинам

Так вот вопрос: как мне сделать паузу в telebot чтобы как в стандартном инпут код продолжал работу после того как я напишу следующее сообщение?
456 1697786
Есть в питоне какое-нибудь обозначение для 0+? То есть число близко к 0, но чуть больше. В написанной формуле это выглядит y → 0+. Вручную задавать 0.000многанулей0001 некрасиво.
457 1697795
>>697786
1e-10 == 0.0000000001
458 1697798
>>697795
Я имел в виду что аналогичное numpy.inf. Какой-нибудь numpy.zero+. Модуль не важен, просто как аналогия.
459 1697802
>>697798
Нет. Ты сам подумай. inf имеет конкретное представление в процессорах, особое значение, "бесконечно малое" не имеет. Всегда у тебя конкретное число.
460 1697803
>>697798
Я с таким не особо сталкиваюсь.
Глянь ещё math.isclose
461 1697806
Есть такого вида код:

string ="some random text"
new_string = string.split()

for word in new_string:
____for letter in word:
________if ...
________elif ...
________else ...

Как сделать чтобы цикл for word in new_string прекращался если в цикле for letter in word выполнялось бы хотя бы одно из условий? Т.е. если letter в любом слове равна r то выходило бы из цикла целиком и не проверяло остальные слова.
462 1697809
>>697806
Если достаточно да или нет, то можно через any.
Если нужно будет достать конкретное значение, то придется как-то выкручиваться, нет брейков для внешних циклов.
463 1697811
>>697809

>нет брейков для внешних циклов.


Я уже догадался. Брейк прерывает проверку буквы в слове, но не проверку остальных слов.

>Если достаточно да или нет, то можно через any.


не очень понял. Мне надо сделать так что если в слове одна из букв соответствует условию, то выходило бы из цикла целиком.
464 1697820
>>697811
Ну вообще для этого можно обойтись одной итерацией, а не смотреть каждую букву.
if letter in word:
___break

Способ с any:
res = any(letter for word in new_string if letter in word)
465 1697825
>>697811
а если примерно так:

string ="some random text"
new_string = string.split()

for word in new_string:
____for letter in word:
________if ...:
___________if найдена нужная буква:
__________________break
________elif ...
________else ...
___break

прервётся внутренний цикл и после его окончания прервётся и внешний
цикл.png5 Кб, 291x200
466 1697827
>>697806
ищет букву 'i' если находит, то цикл прирывается
467 1697840
>>697803
math.isclose проверяет на близко ли мое вручную заданное число к 0, при этом точность тоже сам задаю.
>>697802

> inf имеет конкретное представление в процессорах, особое значение, "бесконечно малое" не имеет.


Звучит убедительно. Придется просто задавать число самому.
468 1697842
>>697825
Внешний в любом случае прервется, норкоман.
469 1697843
>>697827
а если вместо i надо сверится со списком символов? Если написать if list in word пишет что левый операнд не может быть списком.
470 1697852
>>697843
Сравнивай сеты.
471 1697853
>>697852
Это как? Впервые слышу это слово
if op is hui.png7 Кб, 389x254
472 1697859
473 1697864
Django или Flask?
Интересует соотношение зп, времени затраченного на вкатывание и необходимые начальные+дополнительные навыки.
image.png3 Кб, 423x67
474 1697865
475 1697869
>>697859
Ищет подстроки, а не символы.
hui.png11 Кб, 396x403
476 1697892
477 1697913
>>697892
Ебать ты нахуевертил.
https://ideone.com/difp2v
Screen Shot 2020-05-22 at 8.31.31 PM.png173 Кб, 1247x526
478 1698071
Надеюсь здесь не кроют хуями начинающих, как на php борде.
Начинаю только работать на питоне, хочу заебашить силениум.
Вылезает вот такой шматок говна (пикрил)

Я понимаю что силениум находится не в деректории питона, но дальше наши полномочия все.

Аноны, объясните в чем проблема, очень хочу вкатиться
479 1698095
>>698071
Судя по ошибке, в переменной file нихуя нет.
480 1698414
>>697474
Что здесь? queue.Queue в которую кладутся задачи, а логгер их вытягивает раз в N мс?
481 1698448
>>698095
переменной вообще нет
import selenium - все что написано
run и я обосрался
на macOS High Sierra пишу, в сублиме
482 1698461
>>698071
У тебя питон 2.7? Как ставил селениум? Возможно последняя версия не совместима с питоном 2.7
483 1698481
>>698448
У тебя какая-то хуйня с питоном. Поставь отдельно третий и пользуйся им.
484 1698487
>>698461
3.7
>>698481
c IDLE то же говно
485 1698489
>>698461
ставил слениум через pip/терминал
486 1698498
>>698487
Ну ошибка с вторым, разбирайся.
487 1698540
>>698487
А в PATH походу ссылка на 2й, раз оно у тебя через 2.7 пытается открыть
488 1698542
>>698540
разобрался, cпасибо огромное
489 1698594
Где найти чела шарящего за sympy и matplotlib? Нужно решить пару тройку заданий по лабе, а самому в этой параше разбираться не хочется.
490 1698675
>>698594
Че за лабы
491 1698679
>>698594
Молодой человек, вы охуели. Вам бесплатно препод разжевывает материалы платных курсов и дает актуальные знания.
492 1698702
>>697864
Django, на фласке нет работы
493 1698721
>>698679
Ничего, сейчас заплатит за то, чтобы за него лабу сделали, через N лет будет платить за курсы, чтобы в ИТ вкатиться.
494 1698726
>>697864
Странный вопрос, начать мог бы сам с поиска по вакансиям ХХ.

Такой альтернативы сейчас нет, сейчас альтернатива Django vs Aiohttp.

Aiohttp примерно как flask, только асинхронный.

Django большой тяжёлый энтерпрайз-фреймворк, с официальной документацией на 2000 страниц. Имеет самостоятельную ценность.

Aiohttp и устаревшие синхронные аналоги легковесный, подразумевает, что очень многое будет прикручено со стороны. Самостоятельной ценности поэтому почти не имеет. Прежде чем в него лезть, надо разобраться с asyncio.

Ниша Джанго - большие сайты CRUD-направленности, ниша aiohttp - сетевые сервисы, где в том числе используется веб-взаимодействие, но лишь как часть.
495 1698730
>>698726
Посмотрел ХХ, ни на aiohttp, ни на flask практически нет чистых вакансий, в основном их только через запятую перечисляют, что неплохо бы. Пара штук только, где aiohttp основное, но не единственное, что надо.

Для Django/Django Rest есть и чистые вакансии.
496 1698748
>>698730
Как aiohttp кстати соотносится с django (который де-факто синхронный даже в 3.0)? Есть примеры проектов, написанных на плотной связке этих двух?
497 1698754
>>697820
>>697825
Я сделал вот так:

for word in new_string:
____if any(letter in russian_letters for letter in word):
____print(f"-----> russian_letters detected!")
____break

russian_letters это список из русских букв. Оно работает, но иногда пропускает строки в которых есть русские буквы. Почему так? Я хуй знает как при таком условии можно пропустить строку хоть с 1 русской буквой.
498 1698756
>>698754

>for word in new_string:


>____if any(letter in russian_letters for letter in word):


>________print(f"-----> russian_letters detected!")


>________break


Быстрофикс
499 1698770
>>698748
Примерно никак, кусок асинхронщины добавили в 3 версии, но основные операции все еще синхронны, хотя можно на свой страх и риск убрать некоторые ограничители. А так жди 4 версии еще года полтора, в ней уже допилят асинхронность на базовом уровне.
500 1698773
>>698675
Лабы по матану и линалу. Графики там строить, матрицы, производные, дифференциалы, поверхности второго порядка
>>698679
У этого препода в его каловых материалах код зачастую даже не запускается, дохуя ошибок. Да и я перепутал, нужно онлайн кр решить за час, а не лабу.
image.png185 Кб, 605x800
501 1698782
Аноны, можете, пожалуйста, поделиться Python Crash Course 2nd Edition? Уже спрашивал, но переехал на новый пк и забыл скинуть её себе.
502 1698840
>>698770
Просто я видел связки вакансий aiohttp + django. Это как понимать вообще?
503 1698860
>>698840
епта позвони и спроси, мы откуда ебем что за вакансия?
может у них часть сервисов круды+админка и они на джанге, а часть хитрые запросы в базу
может была джанга, а сейчас ебашат на аиохттп
504 1698887
>>698860
>>698770
То есть если я хочу периодически отсылать асинхронные запросы на сторонние ресурс, то с Джангой этого не сделать? В общем ситуация обстоит так: есть набор url (объявленный в settings либо в utils), каждые 5-10 минут необходимо совершать на них запрос, идеальным будет асинхронный вариант чтобы не ждать их последовательно, но... выходит что запихать asyncio + aiohttp внутрь Джанги не выйдет? Слыхал про Celery, вроде он так может (скоро собираюсь читать мануал) - это поможет?
505 1698952
Как проверить что все элементы в списке равны?
506 1699099
>>698952
list.count(list[0]) == len(list)
507 1699152
>>698887
"Запихать внутрь" не выйдет - поток, в котором исполняется код Django, не займется другими вещами, если ты создашь в нем цикл asyncio - он будет крутить этот цикл, пока в нем не закончатся задачи. То есть в идеале можно сократить время ожидания с 5-10 последовательных вызовов до одного самого медленного.

Проверь - может этого будет достаточно. В ином случае, Celery поможет.

А еще это может не быть частью приложения. Запросы может передавать и просто скрипт по расписанию, а результат складыать в ту же БД, которой пользуется твой сайт.

Хотя... Celery фактически сделает то же самое.
508 1699248
>>699099
Это разве проверяет не длину элементов?
509 1699277
>>698952
for item in my_list:
if item != my_list[0]:
print('Loh')
break
510 1699508
В таблице/модели может быть несколько primary key? Как это?
511 1699526
>>699248
Нет. Изучай ещё.
513 1706449
>>690482 (OP)
Сап, в каких программах или при помощи каких библиотек можно создать красивый, ну или хотя бы не всратый дизайн?
514 1797603
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 27 сентября 2020 года.

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

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