Программирование

Ответить в тред Ответить в тред
Питон тред №88 /python/ Аноним 16/05/20 Суб 18:05:12 16904821
1a8064beddc2428[...].png 481Кб, 1817x1025
1817x1025
pylogo.jpeg 39Кб, 1000x625
1000x625
B3ZFCeaIgAI2jHd.jpg 82Кб, 572x700
572x700
Тред, посвящённый языку программирования Питон, #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
Аноним 16/05/20 Суб 18:17:36 16905182
Аноним 16/05/20 Суб 18:18:16 16905203
T.png 1Кб, 426x51
426x51
>>1690495 →

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




Аноним 16/05/20 Суб 18:20:25 16905234
Image 556.png 9Кб, 583x246
583x246
Image 557.png 11Кб, 742x255
742x255
Так какого хуя не работает то?
Аноним 16/05/20 Суб 18:24:16 16905275
Аноним 16/05/20 Суб 18:24:35 16905286
spam list.png 5Кб, 388x187
388x187
Аноним 16/05/20 Суб 18:25:26 16905307
Аноним 16/05/20 Суб 18:26:45 16905318
Аноним 16/05/20 Суб 18:29:32 16905359
изображение.png 5Кб, 629x110
629x110
Парни, кто в веб что-то шарит:
Пилил приложуху на Джанго, добавил для интерактивности js (ajax). В конце удачного post-запроса мой View возвращает фронту вот это:

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

И я соответственно вижу на экране вот такую херню с пикрила. Вопрос: с хрена ли? Юзер не хочет смотреть на мой json-объект, он хочет чтобы его обработали и показали ему адекватный html. Как фиксить?
Аноним 16/05/20 Суб 18:32:27 169054110
>>1690530
Я не могу разобраться как его использовать. К чему этот метод .get_chatters относится? В документации есть только упоминание get_chatters и все.

С .timeout я разобрался что он работает с ctx.channel как ctx.channel.timeout.
Аноним 16/05/20 Суб 18:36:24 169055311
>>1690541
Там всё построено на ООП. Почитай про ООП в пиотне и не еби мозг.
Аноним 16/05/20 Суб 19:08:27 169063912
>>1690535
Ничего не понял. Ты может просто по запрос оформляешь как post-отправку формы, а на фоновый процесс?

У тебя html должен отправлять в фоне запрос, получать ответ и запускать скрипт, который ответ будет интерпретировать.
Аноним 16/05/20 Суб 19:29:28 169068413
подкиньте линк на ключики для PyCharm 2020
Аноним 16/05/20 Суб 19:35:21 169069414
>>1690684
Зачем, если Community бесплатна?
Аноним 16/05/20 Суб 19:39:09 169069815
>>1690553
Читал, все равно не понимаю как в этом проекте это работает.
Аноним 16/05/20 Суб 19:39:22 169069916
>>1690694
Там джанга есть. Даже не разбирался как в community дебажить. Тут даж в темплейте точку остановки поставил и смотри что хочешь.
Аноним 16/05/20 Суб 19:57:10 169074217
Аноним 16/05/20 Суб 20:03:56 169076418
>>1690639
Неа, вот ajax-запрос:
https://ideone.com/ydNrMV
Страница не рефрешится и данные сохраняются в БД на беке как и надо. Проблемы видны на фронте
Аноним 16/05/20 Суб 21:01:49 169094619
>>1690742
Можешь пример показать как это делается?
Аноним 16/05/20 Суб 21:39:14 169101320
Аноним 16/05/20 Суб 21:51:47 169102021
Подскажите насчет джанго.

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

тоже самое, "GET /2ch/1/ HTTP/1.1" 404 2621
Аноним 16/05/20 Суб 22:02:31 169103524

>>1691033
А если открыть /2ch/, то все ок и выводятся дальше ссылки на переход в /2ch/1 итд
Аноним 16/05/20 Суб 22:03:02 169103625
>>1691028
еще вот такое пишется 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().
Аноним 16/05/20 Суб 22:03:33 169103726
>>1691020
> 127.0..../A/B
> ^(?P<slug:slug>/<slug:url>)/$
/ в конце?
Аноним 16/05/20 Суб 22:04:05 169103827
Аноним 16/05/20 Суб 22:06:33 169104128
>>1691036
В сосноли ругается на эти :, читай как надо.
Аноним 16/05/20 Суб 22:08:22 169104329
>>1691041
да, но ошибка 404 не из-за этого. Это предупреждение - рекомендация, чтобы исправить код, не быть обезьяной
Аноним 16/05/20 Суб 22:10:49 169104530
Аноним 16/05/20 Суб 22:12:21 169104931
>>1691045
чет херня какая-то. и что делать?
Аноним 16/05/20 Суб 22:13:02 169105032
>>1691049
Надо документацию на эту функию, зачем там эти именованые группы.
Аноним 16/05/20 Суб 22:16:45 169105333
>>1691050
чет хуйня какая-то, стак овер говорит, что так и должно быть. А я одни ошибки в ебало получаю. Весь день эту хуиту решаю, этот ебучий /2ch/1/
Аноним 16/05/20 Суб 22:22:14 169105834
Аноним 16/05/20 Суб 22:23:57 169106035
>>1691058
то есть чтобы программировать на питоне надо что-то читать? нельзя просто брутфорсом перебирать исходники?
Аноним 16/05/20 Суб 22:26:10 169106336
>>1691058
ТАК БЛЯДЬ В ЧЕМ ОШИБКА, Я НИХУЯ НЕ ВИЖУ
Аноним 16/05/20 Суб 22:30:55 169106737
>>1691063
Приходи когда я буду осваивать джанго, просто так не интересно.
Аноним 16/05/20 Суб 22:34:45 169107138
Аноним 16/05/20 Суб 22:36:19 169107339
>>1691071
Ну может кто и захочет, лол.
Аноним 16/05/20 Суб 22:57:38 169110440
>>1691036
если 3я джанга, то не надо регулярки в path() писать
Аноним 16/05/20 Суб 23:00:29 169110841
Аноним 16/05/20 Суб 23:13:01 169111742
>>1691108
Документацию почитай, там регулярки уже со 2-й джанги не используеются
просто path('<slug:slug>/<slug:url>'/SomeShit.as_view())
Аноним 17/05/20 Вск 01:17:53 169120943
>>1691117
Page not found (404)
Not Found: /2ch/1/
[17/May/2020 01:12:57] "GET /2ch/1/ HTTP/1.1" 404 1797
Аноним 17/05/20 Вск 02:09:55 169122544
Здарова, постоянно слышу про какие-то скрипты на питоне, про автоматизацию. Вот у меня есть программка конвертации видео. Она должна предоставлять какое-то API или питон ее взломает и сам заберет себе все нужные методы? Не спал 24 часа поэтому пишу хуйню, но ответ нужен срочно
Аноним 17/05/20 Вск 02:11:42 169122645
Аноним 17/05/20 Вск 02:12:58 169122746
>>1691225
Хотя можно с помощью библиотеки по иметации кликов все заебенить, но заебешься и программа должна быть всегда в координатах нужных, да мышкой не подвигаешь сам, когда она работает
Аноним 17/05/20 Вск 02:13:18 169122847
>>1691226
А если нет такого, что делать?
Аноним 17/05/20 Вск 02:14:10 169122948
>>1691227
Ну конечно, мышкой. Сервак будет сидеть и кликать
Аноним 17/05/20 Вск 03:35:29 169124949
>>1691229
А потом петон взломает сервак
Аноним 17/05/20 Вск 03:46:15 169125150
>>1691249
Ну и нахрен ваш петон тогда?
Аноним 17/05/20 Вск 08:07:35 169128451
>>1691225
А что за программа? Если программа работает через консоль, каковых большинство (ffmpeg, mencoder), то можно сделать обвязку на питоне и спокойно работать. Если чисто графическая прога, то скорее никак, или очень сложно.

Для ffmpeg уже такие инструмены есть готовые.
Аноним 17/05/20 Вск 09:58:21 169133152
Полоумный сука язык
<re.Match object; span=(0, 16), match='255.255.255.0/24'>
>AttributeError: 're.Match' object has no attribute 'match'
Аноним 17/05/20 Вск 10:01:13 169133553
>>1691331
Уже час ебусь с рабочим регэкспом, то одно нахуй не работает, то другое
Аноним 17/05/20 Вск 10:11:54 169134154
>>1691335
В notepad++ проще блядь фильтрануть, чем пистоном
Аноним 17/05/20 Вск 10:13:13 169134255
finditer возвращает только один матч, findall нахуй вообще не работает. least surprise principle блядь
Аноним 17/05/20 Вск 10:17:17 169134356
>>1691342
теперь работает, но матчи хуй достанешь
Аноним 17/05/20 Вск 10:17:34 169134457
Ебана как (и зачем) работает строковый метод 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"} и он замещал бы ключи в оригинальной строке новыми значениями. Но эта срань работает максимально нелогично
Аноним 17/05/20 Вск 10:27:32 169135058
>>1691344
Это никсовый tr, реализованный несколько через жопу. https://en.wikipedia.org/wiki/Tr_(Unix)
Список одних символов меняется на другие или удаляется.
Аноним 17/05/20 Вск 10:31:10 169135359
>>1691350
Формировать словари можно, кстати.
a = 'hui'
b = a.maketrans('hui','abc')
print(a.translate(b))
Аноним 17/05/20 Вск 14:20:00 169159560
Screenshot20200[...].png 10Кб, 717x30
717x30
Это из-за ебучего умлаута, да? Почему так и что с этим делать, кроме как специально реплейсить его в названии?
Ubuntu 20.14, если что. Сурс кидать не буду, потому что в нём кроме этого всё нормально.
Аноним 17/05/20 Вск 14:21:28 169159661
Аноним 17/05/20 Вск 14:21:56 169159762
>>1691595
Вряд ли. Ну попробуй без него для уверенности.
Аноним 17/05/20 Вск 14:33:05 169161563
Image 558.png 37Кб, 676x839
676x839
>>1691013
Читаю про классы, разбираю пример. Поясните пару вопросов.

1. В чем смысл конструкции self.name = name? Почему нельзя сразу использовать name внутри класса?
2. В чем смысл данной строчки SchoolMember.__init__(self, name, age) в подклассе?
Аноним 17/05/20 Вск 14:45:00 169164164
>>1691597
Да, проблема в точке в конце имени папки, судя по всему.
Аноним 17/05/20 Вск 15:28:38 169168865
>>1691615
>Почему нельзя сразу использовать name внутри класса
Потому что ты используешь name не "внутри класса" а как локальную переменную внутри одного из методов класса

self это ссылка на сам объект, всегда передается как 1й аргумент в методе (если это не classmethod или staticmethod канешн - там другие плюшки). Поэтому написав del self внутри одного из методов ты просто удалишь эту ссылку, но не сам объект
Аноним 17/05/20 Вск 15:34:15 169169466
>>1691688
А как гарантированно удалить объект?.. Вот есть у меня функция

def f(obj):
____del obj

Хочу чтобы она 100% удаляла этот переданный объект (все ссылки на него). Как такое сделать? чую что надо для этого написать свой класс и каким-то образом автоматически сохранять все ссылки на экземпляр внутри приватной переменной в этом экземпляре
Аноним 17/05/20 Вск 15:40:56 169170267
image.png 120Кб, 1366x768
1366x768
Подсобите новичку. Вижу, что разгадка на ладони и я ее проекрасно знаю, но додуматься не могу.

https://ideone.com/ayCoOZ
Аноним 17/05/20 Вск 15:47:22 169171468
>>1691688
А по поводу второго вопроса?
Аноним 17/05/20 Вск 15:49:27 169171769
>>1691714
Вызов родительского класса. Но сделано не как у белых людей. Белые люди юзают super().__init__
Аноним 17/05/20 Вск 15:54:26 169172570
>>1691717
>Вызов родительского класса
А для чего его вызывать?
Аноним 17/05/20 Вск 15:58:09 169172971
>>1691702
Идея такая.
Создай вторую структуру, лучше через 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)
Аноним 17/05/20 Вск 16:03:36 169174172
>>1691694
В таком варианте никак, это невозможно.

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

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

В объекте можно предусмотреть что-то вроде деструктора. Ты его вызываешь, и объект переходит в блокированное состояние, все его методы переписываются, например. Но это немного извращение.
Аноним 17/05/20 Вск 17:35:05 169186673
Дайте инфу по CPython. Какой функционал он предоставляет и какова его сфера влияния. Насколько он урезанный, стоит ли прежде прочитать хотя бы 1 книгу по С чи не? Ну и наконец - стоит ли вкатывать в него в 2020?
Аноним 17/05/20 Вск 17:39:31 169187474
Как сделать перевод транслита? Одиночные буквы переводить легко, но как переводить в букву, которая состоит из 2 букв? ( например ja > я или ch - ч).

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

Для начала - как брать из строки по 2 символа за раз?
Аноним 17/05/20 Вск 17:45:06 169189175
>>1691866
> Дайте инфу по CPython. Какой функционал он предоставляет и какова его сфера влияния.
когда говорят про пайтон имеют в виду cpython в 99% случаев, это дефолтная реализация языка. Или ты про Cython хотел спросить?
Аноним 17/05/20 Вск 17:50:50 169190476
>>1691891
Да, в точку. Именно Cython я и имел в виду.
Аноним 17/05/20 Вск 17:56:38 169192277
>>1691874
Делешь словари с заменами и в цикле прогоняешь. Сначала длинные, потом короткие.
Аноним 17/05/20 Вск 18:08:59 169193878
>>1691922
Я тебя не понял. Как можно брать по 2 символа из строки?
Аноним 17/05/20 Вск 18:36:57 169197279
>>1691938
Как вариант, можно пользоваться методом .startswith
"chto-to".startswith('ch')
но всё-таки как-то криво это немного.

Аноним 17/05/20 Вск 18:41:49 169197980
>>1691904
Мне кажется, большого смысла осваивать нет, если у тебя задача только специфичная не стоит. Лучше инвестировать время во что-то ещё.
Аноним 17/05/20 Вск 18:42:32 169198281
>>1691938
Их не нужно брать, их нужно заменять.
p ={'aa': 'bb', 'cc':'dd'}
for m,r in p.items():
__s.replace(m,r)
Аноним 17/05/20 Вск 18:45:24 169198782
Image 647.png 14Кб, 537x551
537x551
Image 648.png 4Кб, 683x153
683x153
>>1691972
>>1691982
Пока вы отвечали я сделал вот так. Как вам такой вариант? Вроде работает.
Аноним 17/05/20 Вск 18:45:26 169198883
>>1691866
И да, книгу по Си прочесть в любом случае придётся, иначе такой разговор вообще лишён смысла. Причём полноценно так на Си попрактиковаться.
Аноним 17/05/20 Вск 18:48:34 169199784
1.png 21Кб, 770x372
770x372
Аноним 17/05/20 Вск 18:50:31 169200285
>>1691987
Ты бы код расшарил.
Попробуй слово "podzhopnik", по-моему твоё решение свалится, если на нечётной позиции будет двойная буква находиться. И вообще, перегружено очень...

Сейчас сделаю быстренько
Аноним 17/05/20 Вск 18:53:39 169200586
Image 649.png 17Кб, 997x488
997x488
>>1692002
Чет я туплю. Заменил вывод по 1 букве на создание строки. Но на выходе я получаю список из одиночных букв. Что я не так делаю?

>Попробуй слово
У меня пока не полный словарь, я его до буквы Х составил.
Аноним 17/05/20 Вск 18:57:17 169201587
>>1692002
На словах с четным количеством букв фейлилось все. Поменял условие на while i < end: вместо while i <= end: b заработало. Твое слово перевело как:
podzhopnik = ['п', 'о', 'д', 'з', 'х', 'о', 'п', 'н', 'и', 'к']

Ну почти.
Аноним 17/05/20 Вск 19:11:51 169204388
>>1692005
Сам додумался как складывать строки, можно не отвечать.
Аноним 17/05/20 Вск 19:22:25 169207089
translate.png 63Кб, 673x596
673x596
>>1692015
Вот такой подход может быть. Тоже говнокод, на самом деле, чисто демонстрация идеи.

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

Вот как минимум эта история с корректной заменой по регистрам. Совсем класс, если дополнительно словари для слов с "э" прикрутить. В общем тут есть, где развернуться.

Аноним 17/05/20 Вск 19:42:33 169210490
Доброго дня, аноны. Занимаюсь поиском лиц на фото, встал такой вопрос. Суть такова: имеем фото с искомым лицом и много неизвестных фото с лицами, где и нужно найти цель. Создаю базу хешей лиц. Собственно вопрос: так как одно и то же лицо может давать различный хеш некоторым допустимым расстоянием (допустим 5), то как быстро найти наиболее ближайший к искомому? По сути это уже не хеш таблица, а поиск какой-то.
Попрошу не нападать, я еще не волшебник, а только учусь.
Каким, в принципе, способом лучше хранить эти хеши и как находить нужный?
Аноним 17/05/20 Вск 19:56:44 169212291
Мне нужно загружать картинки (около сотни штук на хард драйве) в Google Images или в Яндекс Картинки (поебать). Как это сделать?..

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

Но мне нужно не это. Надо загрузить саму картинку и собрать результаты поиска:
https://www.google.com/imghp?hl=ru
Аноним 17/05/20 Вск 19:57:51 169212392
>>1692070
Скинь эти словарики текстом, чтобы не набирать.
Аноним 17/05/20 Вск 20:06:20 169213493
Аноним 17/05/20 Вск 20:12:53 169214894
>>1692134
Это работает только для одиночных символов.
Аноним 17/05/20 Вск 20:17:32 169215995
image.png 741Кб, 1280x720
1280x720
>>1690482 (OP)
Вот есть у меня список url, надо периодически к каждому из них отправить get-запрос а потом собрать полученные данные. Очевидно же, что стоит использовать асинхронки (так как "заспамить" запросами и получить бан не выйдет, все url обращаются к разным ресурсам)
Только вот я не шарю в asyncio, как это мутить?
Аноним 17/05/20 Вск 20:17:42 169216196
Image 653.png 34Кб, 879x761
879x761
Image 661.png 6Кб, 695x262
695x262
Image 668.png 10Кб, 682x265
682x265
>>1692070
Я сделал вот так. Решил брать по 3 символа за раз. Работает нормально. Но если длина четная - выдает ошибку ( пик 3)

Как мне свой код пофиксить? Уже первый час ночи, плохо соображаю.
Аноним 17/05/20 Вск 20:54:23 169222397
>>1692161
>Но если длина четная - выдает ошибку
Напиши следующий код в консоли а потом глянь, что он выведет:

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

неа, ошибки не будет
Аноним 17/05/20 Вск 21:49:07 169227198
>>1692159
async get_data(url)

await def get_data(url):
____requests.get(url)
Понятно?
Аноним 17/05/20 Вск 21:51:11 169227299
>>1692271
ты хотел подъебнуть чувака а сам все нахуй перепутал

await get_data(url)

async def get_data
Аноним 17/05/20 Вск 21:53:05 1692274100
yoda.jpg 14Кб, 320x225
320x225
>>1692272
Уже года два не писал асинхронных приложений, немного обосрался.
Аноним 17/05/20 Вск 21:54:07 1692277101
>>1692271
И как это сделать для множества url? Через цикл for? (сдается мне что эта хрень блокирующая)
Через треды можно было б делать через ThreadPoolExecutor, но мультитрединг - зашквар
Аноним 17/05/20 Вск 21:55:47 1692279102
>>1692277
С чего блокирующая?
Делай запрос так. yield from aiohttp.request
Пока идет запрос, идет переключение потока выполнения
Аноним 17/05/20 Вск 21:56:32 1692280103
>>1692279
Или даже просто await requests.get()
Аноним 17/05/20 Вск 22:08:34 1692297104
>>1690482 (OP)
Сап, как проверить какой radiobutton из группы нажат?
Аноним 17/05/20 Вск 22:47:47 1692347105
Аноним 17/05/20 Вск 23:14:04 1692368106
>>1692297
Отличный вопрос, а библиотеку мы телепатически уже знаем.
Аноним 17/05/20 Вск 23:52:54 1692401107
Аноним 17/05/20 Вск 23:53:36 1692402108
>>1692401
быстрофикс
asyncio.create_task
Аноним 18/05/20 Пнд 00:59:05 1692459109
>>1692347
Ссылочку на покупку дай - прикуплю и закину на диск.
Аноним 18/05/20 Пнд 01:09:35 1692467110
>>1692104
Если твоя хеш-функция ведет себя как embedding, т. е. похожие лица выдают похожие хеши, то, например, бинарный поиск. Можно написать версию алгоритма, который при отсутствии искомого элемента приведет к ближайшему слева или справа. Модуль bisect может помочь.
Аноним 18/05/20 Пнд 01:25:15 1692473111
Сап, как мне проверить какой radiobutton из группы нажат? Ну или хотябы проверку нажат ли radiobutton PyQt5
Аноним 18/05/20 Пнд 01:33:09 1692475112
>>1692104
Если хеш это вектор чисел, то посмотри в сторону индексов вроде GiST и GIN
Аноним 18/05/20 Пнд 01:49:30 1692486113
>>1692459
$ 49.95? Да нахуй надо.
Аноним 18/05/20 Пнд 04:40:45 1692520114
>>1692223
К чему этот пример? Никакой ошибки не выдает твой пример.
Аноним 18/05/20 Пнд 05:36:57 1692539115
>>1692159
очевидно, надо перлолить скрапи, улиточка.
Аноним 18/05/20 Пнд 07:45:36 1692563116
>>1692520
А теперь подумай еще раз, что именно ты делаешь со своей строкой в том безумной цикле while
Аноним 18/05/20 Пнд 10:27:21 1692625117
Screenshot90.jpg 179Кб, 1241x926
1241x926
>>1690482 (OP)
>— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
ну опять это говно?

Удолите
https://habr.com/ru/post/337420/
Аноним 18/05/20 Пнд 10:41:31 1692637118
Аноним 18/05/20 Пнд 10:47:22 1692643119
>>1692625
>ну опять это говно?
Это очень хороший ролик, он демонстрирует сами идеи, лежащие в основе, и сразу с набором кода налету, можно самому попробовать. Причём и треды, и идеи асинхронности одновременно.

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

Но книжку может тоже стоит добавить, надо глянуть её.
Аноним 18/05/20 Пнд 10:48:20 1692645120
>>1692637
>удали сам
Не надо удалять ни в коем случае. Скорее все эти SICP надо выпилить.
Аноним 18/05/20 Пнд 10:51:11 1692652121
вообще вопрос к тристакасекам и к тем кто самостоятельно вкатывался и таки смог вкатиться: мб шапку как-то получше оформить? мб спиздим идеи в соседних тредах? где годные?
Аноним 18/05/20 Пнд 10:58:25 1692661122
>>1692652
>мб шапку как-то получше оформить? мб спиздим идеи в соседних тредах? где годные?
Например, где годные? У большинства почти пустые шапки, у некоторых, как PHP, какой-то лес ссылок без пояснения. Лес ссылок можно и самому нагуглить.

Надо какие-то пункты обновить. Про Джанго, уже третья джанга есть, а про это ни слова, никаких комментариев, для чего брать, для чего не брать. ХЗ, я сам третью версию не пробовал.
Аноним 18/05/20 Пнд 11:04:03 1692663123
>>1692643
Это полностью старперский ролик, в котором пояснятся как деды страдали все эти годы, пока не позаимствовали async из С#


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

>Однако если обратиться к сегодняшним книгам и другим ресурсам для
изучения конкурентности, почти все они начинаются с изложения большинства низкоуровневых концепций. Обычно приводится превосходное
описание потоков и примитивов синхронизации, а высокоуровневые
методы откладываются на потом, если вообще рассматриваются. Полагаю, это происходит по двум причинам. Во-первых, многие разработчики
конкурентных программ (включая меня) начинали с изучения низкоуровневых концепций и подолгу корпели над описаниями старых методов.
Во-вторых, многие книги были написаны давно и содержат устаревшие
сведения; с появлением более новых средств книги обновлялись, но, к сожалению, новая информация размещалась в конце.
Считаю, что такой подход неверен. В этой книге рассматриваются только
современные подходы к реализации конкурентности. Это вовсе не значит,
что понимание всех низкоуровневых концепций не принесет вам пользы.
Когда я изучал программирование в колледже, на одном из курсов мне
пришлось строить виртуальный процессор из набора элементарных логических вентилей, а на другом — изучать программирование на языке
ассемблера. За всю профессиональную карьеру я не спроектировал ни
одного процессора и написал всего пару десятков строк ассемблерного
кода, но понимание основ приносит пользу ежедневно. И все же лучше
начинать с высокоуровневых абстракций; на моем первом курсе программирования рассматривался вовсе не язык ассемблера.
Аноним 18/05/20 Пнд 11:07:47 1692665124
Аноним 18/05/20 Пнд 11:08:33 1692668125
>>1692643
Блин, мне кажется вы просто не писали программы с помощью этих всех этих state-machine и select, поэтому вам кажется что круто бы повысить свою значимость среди молодежи и запудрить им мозги.
НЕТ БЛЯДЬ.
Аноним 18/05/20 Пнд 11:11:51 1692670126
>>1692663
>но понимание основ приносит пользу ежедневно
Сам свою цитату читал?

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

Это не старпёрский ролик, это называется "системное обучение". Тебе показывают принципы. Зная их, ты будешь хорошо понимать высокоуровневый код. Причём там даже не про асинк, там про треды в том числе.

Аноним 18/05/20 Пнд 11:14:19 1692676127
>>1692668
Неосиляторы неспособны осилить ролик в 45 минут и разобраться с основами. Программисты, такие программисты.
Аноним 18/05/20 Пнд 11:20:38 1692685128
Screenshot20.jpg 71Кб, 1020x530
1020x530
>>1692676
дед ебаный. Весь прогресс в айти застопорился из-за тебя!
Аноним 18/05/20 Пнд 11:24:10 1692687129
>>1692670
>Ты должен тупо как макака пилить код, копируя все эти await, event_loop, future, task и пр., не понимая, что это вообще такое.
но ведь это есть хорошо!
Зато он никогда не смешает потоки и async-и.
Аноним 18/05/20 Пнд 11:26:55 1692691130
Screenshot111.jpg 59Кб, 645x273
645x273
Вообще охуенно. Дотнет рулит.
Аноним 18/05/20 Пнд 11:48:55 1692701131
>>1692691
Больше половины проблем в коде из-за того, что люди просто не понимают, как оно работает. Причём в питоне слабая асинхронность, прикрученная со стороны, всё усугубляется из-за этого.

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

Вот ты думаешь, что определил функцию как async, написал await и получил асинхронность. А хуй. Код как был синхронным, так и остался, это тебе не JS, где в этом случае уже будет асинхронность. В JS правда своя магия есть.
Аноним 18/05/20 Пнд 12:55:37 1692735132
>>1690482 (OP)
Добрый день, подскажите пожалуйста по связке жанга и вью. При разработке у меня 2 сервера 8000 и 8080 так ведь? А при деплое как это работает? Не понимаю как организовать авторизацию через allouth потому что оно на сервере жанги, а на фронте нужно токен держать.
Че то я запутался =(
Аноним 18/05/20 Пнд 13:05:02 1692738133
>>1692563
Как я понял выдает ошибку потому что идёт обращение к словарю по ключу, которого нет?

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

Вечером выложу, оценишь.
Аноним 18/05/20 Пнд 13:34:46 1692764134
>>1690482 (OP)
ОП Хуй, сразу ОЧЕНЬвидно что автор вообще не в теме пайтона.
язык называется пайтон, пайтон, сука! а не питон блять!
потому что назвали в честь цирка Монти Пайтона, а не в честь змеи дебил блять!
Аноним 18/05/20 Пнд 13:50:31 1692777135
1280px-Python-l[...].jpg 79Кб, 1280x1280
1280x1280
>>1692764
А почему тогда на официальном лого 2 змеи? Покормил долбоеба
Аноним 18/05/20 Пнд 13:57:22 1692784136
image.png 12Кб, 560x196
560x196
сап, двач, сори за тупой вопрос
суть в чем: браузер отправляет пост запрос, я нашел его во вкладке network и увидел раздел form data, так вот, как мне отправить этот form data через requests?
Аноним 18/05/20 Пнд 14:09:20 1692794137
>>1692784
охуеть, нужно было просто их в url добавить
спасибо, двач
Аноним 18/05/20 Пнд 14:12:00 1692799138
>>1692777
Почему почему пошел на хуй вот почему
Аноним 18/05/20 Пнд 14:15:27 1692803139
Подскажите аналог habr только анлоязычный
Аноним 18/05/20 Пнд 14:29:02 1692815140
>>1692803
> Подскажите аналог habr только анлоязычный

reddit
Аноним 18/05/20 Пнд 14:31:02 1692818141
>>1692764
извини но нам всем насрать на уебанский цирк, мы называем так как удобно. Ты со своими выебонами можешь сходить нахуй
Аноним 18/05/20 Пнд 14:31:38 1692821142
Аноним 18/05/20 Пнд 14:47:44 1692834143
>>1692738
Меня всегда бесили питоновские срезы. Там должен Exception рейзиться для перехвата, а не эта хуйня
Аноним 18/05/20 Пнд 14:50:27 1692840144
>>1692701
Асинхронность в питоне тянет как надо (правда полагаться приходится на сторонние либы). Мультипотокое программирование да - сосет бибу
18/05/20 Пнд 15:10:35 1692870145
>>1692701
что там? надо еще запустить цикл перебора этих корутинок
Аноним 18/05/20 Пнд 15:23:00 1692887146
Как вообще дебажить в Джанге? print-ами (пока так и делаю)? Там дебаггером же в принципе не воспользоваться
Аноним 18/05/20 Пнд 15:38:36 1692911147
Аноним 18/05/20 Пнд 15:43:43 1692916148
Почему у меня запускается не то приложение Джанги на тестовом сервере? Перехожу в папку с моим чат ботом, включаю венв, запускаю mamage.py runserver
При переходе на 127.0.0.1 он подсказывает урлы из другого проекта. Что я делаю не так?
Аноним 18/05/20 Пнд 15:45:11 1692918149
>>1692799
а может быть соснёшь змею?

>>1692625
выкладывай уже свою книжку сука. сто пудово это старое дерьмо для 3.4/3.5 с поеботой вроде yield from
Аноним 18/05/20 Пнд 15:49:06 1692921150
>>1692911
фигурные скобки убери и перед декларациями функций def напиши. с отступами ты уже справился вроде.
Аноним 18/05/20 Пнд 15:52:37 1692927151
image.png 44Кб, 979x512
979x512
image.png 60Кб, 828x591
828x591
image.png 25Кб, 924x297
924x297
>>1692916
Вот вывод консоли когда запускаю приложение с чат-ботом и скрин urls для этого проекта.
На 3м скрине Джанго предлагает мне урлы admin/ и polls/ вообще из другого проекта
Аноним 18/05/20 Пнд 16:01:53 1692940152
>>1692921
Не так все просто. Да еще декларацию переменных уровня double, int, complex убрать. Но там есть и выражения например for (int k = 0; k <= 31; k++), которые в питоне не так задаются. k++ я хз что такое. Если что я с C# не знаком от слова совсем.
Аноним 18/05/20 Пнд 16:03:38 1692944153
>>1692940
да, точно. всякую двойную хуйню перед декларацией убрать, а цикл чисто перебором рейнджа спистонить.
Аноним 18/05/20 Пнд 16:05:21 1692947154
>>1692918
По хабро ссылке тоже поделка какая-то:
> Корутины содержат операторы yield, с помощью которых мы определяем места, где можно переключиться на другие ожидающие выполнения задачи.
> За переключение контекста в asyncio отвечает yield, который передаёт управление обратно в event loop, а тот в свою очередь — к другой корутине.
Ну и зачем это нужно? Там дальше пример в синтаксисе 3.5, без yield, но вот нахуй нужен непонятный отсыл к yield, когда вообще не понятно, при чём он тут?

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

Лучше самим родить текст небольшой, но только в шапке места для него нет.
Аноним 18/05/20 Пнд 16:07:44 1692951155
>>1692947
может пидарасы с хабра надеются, что им заплатят построчно как в газете.
Аноним 18/05/20 Пнд 16:11:59 1692955156
>>1692927
какой же я долбоеб
я нихуя не понял как, но исправил
Аноним 18/05/20 Пнд 16:14:10 1692957157
>>1692927
Вангую потому что regex проверяет url-ы последовательно, там ты где-то и проебался
Аноним 18/05/20 Пнд 16:20:10 1692959158
>>1692918
А может быть желаю хорошего вечера
Аноним 18/05/20 Пнд 16:27:59 1692963159
Аноним 18/05/20 Пнд 16:28:37 1692964160
>>1692963
2019 года, в стиле 3.7 написана
Аноним 18/05/20 Пнд 16:33:37 1692968161
>>1692964
чем стиль 3.7 отличается от стиля 3.8?
Аноним 18/05/20 Пнд 16:39:05 1692974162
Аноним 18/05/20 Пнд 16:45:25 1692979163
>>1692974
ну отличие ебать, переписываем книги нахуй
Аноним 18/05/20 Пнд 16:53:00 1692983164
image.png 14Кб, 395x234
395x234
image.png 13Кб, 346x269
346x269
двач, помоги пожалуйста с threading
есть код на пиках
основной поток не хочет разблокироваться, как исправить?
Аноним 18/05/20 Пнд 17:05:31 1692989165
>>1692983
хуй знает надо чекать смотреть, тут никто код из скрина набирать себе не будет чтобы тебе помочь

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

и вообще в питоне довольно просто делается однопоточность нахуя вы эти классы ебашите
http://toly.github.io/blog/2014/02/13/parallelism-in-one-line/
Аноним 18/05/20 Пнд 17:21:42 1693002166
Как в BaseHTTPRequestHandler убрать логирование?
Аноним 18/05/20 Пнд 17:22:44 1693003167
Аноним 18/05/20 Пнд 17:29:07 1693009168
аноны, очень нужна ваша помощь ибо гугл не помог...

Суть - надо в Windows автоматизировать взаимодействие с java swing/AWT на python 3.x
элементы этих окон через puwinauto не достать, примеров нет нигде
пытался через java access bridge - установил все, загрузил dll WindowsAccessBridge.dll, дергаю isjavawindow с нужным хендлером - и 0, нихуя, нет коннекта
кто то сталкивался? как получить доступ к работающей jwm и взаимодействовать с внутренними gui элементами?
Аноним 18/05/20 Пнд 17:34:56 1693015169
>>1693003
Премного благодарен.
Аноним 18/05/20 Пнд 17:38:20 1693018170
>>1692968
В 3.7 довольно много правок относительно 3.6, об этом речь. Большинство материалов по asyncio довольно старые, в стиле 3.5, где активно таскали loop всюду, не говоря уже об адовых yield from из 3.4.

Короче книжка современная, не legacy. На надо внимательнее глянуть, насколько она для обучения пригодна. В начале как-то воды очень много. Мне кажется, что для совсем новичков в конкурентном программировании она не очень.
Аноним 18/05/20 Пнд 17:40:52 1693023171
>>1693018
Как вообще в питоне с свежими версиями?
Нормально сказать вот я зделол под 3.8, устанавливайте ёпта.
Аноним 18/05/20 Пнд 17:43:27 1693028172
Image 679-vert.jpg 170Кб, 894x1186
894x1186
>>1692563
>>1692070
>>1691972
>>1691982

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

Оцените, заебись получилось? Работает идеально.

Аноним 18/05/20 Пнд 17:47:38 1693033173
>>1693023
Нет, не всегда нормально. В системе может не стоять 3.8, не всегда хорошо навязывать самую последнюю версию питона.

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

В общем можно, но не очень хорошо. Зависит от того, что и для кого ты делаешь.
Аноним 18/05/20 Пнд 17:49:15 1693036174
>>1693028
Как-то очень громоздко и прямолинейно.
Скинь код текстом, я покурю.
Аноним 18/05/20 Пнд 17:52:49 1693040175
>>1693028
Ну вот ты сам подумай, насколько просто понять логику твоего кода и логику этого >>1692070 варианта. Реально ведь надо ломать мозг над всеми его сложными состояниями. И зачем?
Аноним 18/05/20 Пнд 17:54:48 1693045176
>>1693036
>Как-то очень громоздко и прямолинейно.
Нахуярил на одних условных операторах, хули. Зато понятно и работает как надо.

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

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

>>1693040
>Реально ведь надо ломать мозг над всеми его сложными состояниями. И зачем?
Я наоборот тот код нихуя не понял. Поэтому свой вариант и сделал.

Аноним 18/05/20 Пнд 17:56:49 1693049177
Аноним 18/05/20 Пнд 18:02:40 1693054178
Аноним 18/05/20 Пнд 18:02:44 1693055179
>>1693045
Почему ты не пользуешься срезами? Ты как-то побуквенно собираешь, это совсем не питон-стиль, среды очень мощная фича питона.

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

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

>Я наоборот тот код нихуя не понял.
могу пояснить, если интересно
Аноним 18/05/20 Пнд 18:09:38 1693062180
tumblrle3iimRqB[...].jpg 17Кб, 600x392
600x392
>>1693054
Попробовал podzhopnik - выдает жопник.
Аноним 18/05/20 Пнд 18:11:08 1693064181
>>1693062
Бля, забыл исправить, поменяй изначальное значение i в 0 вместо 3.
Аноним 18/05/20 Пнд 18:23:23 1693075182
>>1693045
>>1693055
https://ideone.com/QEIIOq
Вот простой вариант, который я предлагал раньше. Даже два.
Тупо сортируем по длине и риплейсим.
Аноним 18/05/20 Пнд 18:23:48 1693077183
Ну как вкатывается в питохун, новички?)) Работку уже пробовали искать? хихи хаха))) Скобачка)
Аноним 18/05/20 Пнд 18:37:59 1693093184
>>1693075
Алсо, интересно бы потестировать, насколько это проседает по скорости с вашими проверочками.
Аноним 18/05/20 Пнд 18:44:04 1693098185
>>1693093
Может и интересно, может проверю другой анон

Но не факт, что просядет, re довольно быстро работают. Если строка большая и у тебя много посимвольной магии, это плохо работает. И посимвольное добавление к строке тоже плохо работает, строка ведь каждый раз заново создаётся.
Аноним 18/05/20 Пнд 18:45:11 1693101186
>>1693098
С ре вариант поинтересней, да, там движок отпимизирован как раз под это.
Аноним 18/05/20 Пнд 19:03:03 1693121187
Анананасы, прочитал "Программирование" и "Изучение" Лутца но писать код так и не научился. Что делать? И как после этого вкатиться на РАБотку?
Аноним 18/05/20 Пнд 20:14:49 1693192188
Ищу кодера питонщика для разработки стартового билда моей визуальной новеллы на ренпае >>665838
Нужен тот, кому эта параша будет интересна...ну хотя бы как хоби
Аноним 18/05/20 Пнд 20:16:49 1693193189
Аноним 18/05/20 Пнд 20:21:05 1693196190
>>1693055
>Почему ты не пользуешься срезами?
не знаю что такое, учу с неделю
>Ты как-то побуквенно собираешь, это совсем не питон-стиль
>я до этого в чистом C немного для себя программировал, там также строки собирал из файла.
>среды очень мощная фича питона.
Что за среды?
>Делай просто замену по приоритетам. Сначала варианты "yu" проверяй, а потом уже 'y' как 'ы'
а как например быть когда e означает и е и э сразу? В словаре нельзя же 2 одинаковых ключа сделать.
>могу пояснить, если интересно
поясни, интересно что за что отвечает.
>>1693075
тут какие-то ванлайнеры, даже не интересно. Что делает .items и .replace конкретно?
Аноним 18/05/20 Пнд 20:26:38 1693202191
Можно ли с помощью регэкспа за одну операцию из строки вида
`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()`
Аноним 18/05/20 Пнд 20:47:55 1693228192
Аноним 18/05/20 Пнд 20:53:49 1693233193
>>1693196
items выдает тупли key-value, replace repace`ит.
18/05/20 Пнд 21:02:35 1693239194
>тут какие-то ванлайнеры, даже не интересно.
пиздец, съеби
Аноним 18/05/20 Пнд 21:03:57 1693241195
>>1693121
Бамп годному вопросу
Аноним 18/05/20 Пнд 21:04:25 1693242196
>>1693239
Хули тебе не нравится?долбоеб
Аноним 18/05/20 Пнд 21:52:06 1693289197
>>1693242
То что ты пидор ёпта
Аноним 18/05/20 Пнд 22:47:33 1693331198
>>1693196
Ещё раз скрин с кодом >>1692070

Магия-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), но душа байтоёба-оптимизатора возмущается.

В общем всё просто и читается легко, если на питоне пишешь. Если на питоне пишешь, магия по генерации словаря уже не магия.

Аноним 18/05/20 Пнд 23:38:22 1693370199
Анон, поясни пожалуйста ньюфагу про толстые модели и токние вьюхи в Джанго.
Сейчас пытаюсь учиться по одному курсу, увидел там комментарий, мол автор допускает плохую практику.

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

Подскажи пожалуйста, анон, что из вьюхи в данном случае должно бы быть в моделях, чтобы был гуд практис.
Аноним 18/05/20 Пнд 23:39:09 1693372200
image.png 0Кб, 141x39
141x39
Где css-файлы для Джанговских форм?.. Вот например у меня после удаления из CharField текста форма подсвечивается красным (а это смотрится так себе). Как мне поменять?
П.С. Я подгрузил Bootstrap в <link rel="stylesheet">, может там что найдется, чтобы перекрыть эту ебень?

в css "шарю" на уровне 7классника
Аноним 18/05/20 Пнд 23:47:37 1693375201
>>1690535
Обновление: все работает. Проблема была в неработающем жс-скрипте на фронте (id-шник у поля был не тот и скрипт его не видел)
Аноним 18/05/20 Пнд 23:51:27 1693377202
>>1693370
"Толстые модели" это просто вынесение бизнес-логики в сами модели, чтобы не засирать вьюхи и не дублировать код

Большая часть бизнес-логики тут в кастомном миксине MyMixin лежит. В принципе можно забить хуй и так и оставить
Аноним 19/05/20 Втр 00:26:49 1693388203
Screenshot124.jpg 183Кб, 1383x1020
1383x1020
>>1693121
уж не пиздишь ли ты? Как можно прочитать большие книги и ничего не написать?
неужели совсем нечего автоматизировать?

Гляди, я сегодня слепил десктопный обработчик фото.
На неделе попытаюсь "продать" руководству на ЗАВОД в качестве рацпредложения.
Неужели у кого-то возникают эти вопросы? Вагон же несделанных дел должен быть!
Аноним 19/05/20 Втр 01:20:49 1693404204
photo2020-04-17[...].jpeg 163Кб, 960x960
960x960
Аноны, чем
import urllib3
urllib3.disable_warnings()

отличается от
requests.packages.urllib3.disable_warnings()
и что лучше?
Аноним 19/05/20 Втр 01:58:22 1693410205
>>1693404
requests - обертка над urllib и не более того.
Когда был urllib первой версии, то сделать запрос было очень трудно пистонисту больше 3 строчек писать уже трудно, появилась удобная обертка. В urllib3 уже не так все хуево и можно вполне брать на замену.
Аноним 19/05/20 Втр 02:13:08 1693412206
>>1692944
Операторы "new" как я понял тоже не несут смысловой нагрузки. А вот тут [] int1 = new [32] что квадратные скобки значат?
Аноним 19/05/20 Втр 05:11:42 1693442207
>>1693388
Классно, антош, давно погромируешь на пистоне?
Аноним 19/05/20 Втр 07:14:29 1693464208
>>1693442
два месяца. Я, конечно, не показатель и у меня есть опыт программирования на различных языках. Но с другой стороны, в этих долгих годах мало самого программирования было. Я просто Админ.
И реально не понимаю, как можно прочитать толстенные книжки и не придумать как эти знания применять.
Ну с друзьями-кабанчиками поговори! Узнай какие сайты им нужны.
Они, возможно, больше мечтают о гуй-программах, но сайт тоже пойдет.

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

При этом у нас есть еще и php-программисты . Поскольку они дешевы, вся автоматизация сделана в виде веб-интерфейса. Десктоп они тоже не умеют.
Аноним 19/05/20 Втр 08:10:02 1693468209
>>1693331
По поводу создания словаря из списка понял. А что будет если количество элементов в списке не совпадает?

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

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

Аноним 19/05/20 Втр 08:56:27 1693471210
Аноним 19/05/20 Втр 09:23:18 1693484211
>>1693471
>Тут какой-то хрен разошелся и херачит статейки по Киви
Вангую, ты - Юрий Лугадонский.

Но спасибо, глянем.
Аноним 19/05/20 Втр 09:36:01 1693489212
>>1693471
Питониты хуже жабаскирптеров. Повторяют за ними и везде пытаются свою херню пропихнуть.
Аноним 19/05/20 Втр 09:48:13 1693492213
>>1693471
это все тот же. видимо, заказы фрилансерские хуже идут.
Ну спасибо что живой.
Аноним 19/05/20 Втр 09:54:13 1693493214
>>1693202
Я может неправильно понял, у тебя заменяется , на пробел же? зачем тебе вообще регулярки?
Аноним 19/05/20 Втр 09:56:29 1693494215
>>1692735
Ну ребят ну чего вы, ну подскажите
Аноним 19/05/20 Втр 10:21:16 1693505216
Хотет автоматизировать некоторые повторяющиеся операции, когда лезу в шелл джанги на удаленной машине. Команда ниже работает, но ipython запускается без подсветки синтаксиса и автокомплита. Как зделоть, чтобы был цветной и интерактивный?

ssh -C -i ~/.ssh/some.pem ubuntu@host 'cd ~/projectname && . activatevenv && ./manage.py shell_plus'
Аноним 19/05/20 Втр 11:20:27 1693557217
>>1693404
У меня вроде и там и там urllib3
Аноним 19/05/20 Втр 11:27:10 1693562218
>>1693505
Запускай в pycharm.
Кто, я???
Аноним 19/05/20 Втр 11:29:01 1693567219
Аноним 19/05/20 Втр 12:34:39 1693642220
zZWIp-DI6MI.jpg 80Кб, 960x504
960x504
>>1690482 (OP)
Привет!
Посоветуйте популярный IDE для Python. Я совсем новичок, установил PyCharm, но мне оказалось сложно в нём разобраться. Например, я не могу сменить дефолтную директорию Scratch-файлов, в которой у меня кириллица, и из-за этого есть проблемы при запуске батников. Я не прошу совсем примитивного инструмента - просто более дружелюбного.
Аноним 19/05/20 Втр 12:37:52 1693644221
Привет, Антон!
Подскажи за структуру проектов/приложений в джанго.
Порядком подзаебался разбирать каждый отдельный "ДАВАЙТЕ РАССМОТРИМ НА ПРИМЕРЕ" пример. Можно как то формальное описание получить?
Аноним 19/05/20 Втр 12:42:54 1693650222
Аноним 19/05/20 Втр 13:08:00 1693668223
>>1693557
Тогда оставь одно что-то. По-идее - неважно что заюзаешь, все равно это у urllib3 юзается.
Аноним 19/05/20 Втр 13:09:31 1693669224
>>1693642
Зачем тебе иде? Отупеешь ведь. Юзай vs code. Не сильно сложно, не пишет код за тебя. Как освоишься и не будешь совсем новичком, то тогда решай: pycharm или vim.
Аноним 19/05/20 Втр 13:15:47 1693675225
>>1693669
> иде пишет код за тебя
ВАТ?
Аноним 19/05/20 Втр 13:25:43 1693683226
>>1693668
Ну я подумал может есть какое-нибудь правило хорошего тона делать через импорт или через реквест. Спасибо
Аноним 19/05/20 Втр 13:32:24 1693693227
>>1693650
Спасибо, но не совсем то, что нужно.
>>1693669
Идеально. Спасибо.
Аноним 19/05/20 Втр 13:45:21 1693708228
>>1693683
Но ведь это всё равно будут разные инстансы, лол.
Если ты хуяришь напрямую через урллиб, то делай урллиб, если через реквестс, то через реквестс.
Аноним 19/05/20 Втр 15:33:04 1693820229
аноны, я правильно понимаю, что переменные, объявленные внутри цикла, являются локальными?
Аноним 19/05/20 Втр 16:00:41 1693855230
>>1693708
>Но ведь это всё равно будут разные инстансы, лол.
В каком смысле, антоща?
Аноним 19/05/20 Втр 16:06:58 1693871231
image.png 14Кб, 395x105
395x105
что это за херня?
Аноним 19/05/20 Втр 16:11:24 1693889232
Аноним 19/05/20 Втр 16:14:05 1693896233
Аноны, есть идея реализовать решателя капч посредством машоба. Какие подводные? Как реализовать? Доставьте контента.
Аноним 19/05/20 Втр 16:14:36 1693899234
>>1693871
-- coding: utf-8 --
кодировка
/thread
Аноним 19/05/20 Втр 16:19:21 1693906235
>>1693489
Жопаскриптеры хуже. Но только лишь потому что многочисленнее
Аноним 19/05/20 Втр 16:47:41 1693945236
>>1693896
Какую капчу решать собрался? От этого зависит часть подводных камней.
Для себя решил делать или сервис какой?
Для автоматического решения капчи-зображения есть сервис, качество не очень.
Аноним 19/05/20 Втр 17:01:02 1693955237
>>1693945
Да в целом где я сижу только рекапча и заёбывает. Для начала конечно для себя потом если всё пахать будет продавать начну для спамеров хех. Юзал и сервисы и расширения в браузерах, но они действительно не очень.
Аноним 19/05/20 Втр 17:07:27 1693960238
Аноны, как написать декоратор, который будет работать с произвольными входными данными функции?

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

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

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

Но выглядит гадко. Лучше нельзя?
Аноним 19/05/20 Втр 17:10:36 1693963239
Аноним 19/05/20 Втр 17:15:54 1693967240
>>1693899
Я имею в виду, кто это должен читать. Человек? Интерпретатор?
Да и кто придумал это говно -*-
Аноним 19/05/20 Втр 17:18:19 1693972241
>>1693871
Это Legacy из второй версии питона. Забудь, зумер, а то кошмары по ночам сниться будут. За тебя деды воевали, живи счастливо без этого ужаса.
Аноним 19/05/20 Втр 17:18:48 1693974242
>>1693967
Читает это вм через которую ты запускаешь свой код. Нужно это для того, чтобы текст который ты выводишь выводился правильно на любой локали.
Аноним 19/05/20 Втр 17:24:55 1693982243
>>1693955
Для рекапчи есть либа на гите, для распознавания при помощи аудио.
Хз как она работать будет с рекапчей3.
Аноним 19/05/20 Втр 17:27:40 1693983244
Третья рекапча весьма злоебуча, там и действия пользователя на странице проверяются, и айпи и т.д.
А тут нуб взялся её забороть, ага. Самый верный метод это решение обезьянками за копейки.
Аноним 19/05/20 Втр 17:28:33 1693984245
>>1693982
Через эту либу работает аддон для браузера о котором я говорил. И последние месяцы работает он архихуёво, где-то 1 раз из 10. Потому и хочу запилить что-то надёжное.
Аноним 19/05/20 Втр 17:29:28 1693986246
>>1693983
Ага, готовь свои шекели, сучёнок. Скоро будешь постить в /b 300к постов/наносекунду.
Аноним 19/05/20 Втр 17:30:11 1693987247
>>1693983
Все так, не он первый, не он последний, просто так ее не взять и она того не стоит.
>>1693984
Зря только время потратишь, бери сервисы, их апи и либы для них, и юзай.
Для быстрого решения есть разогрев капчи.
Аноним 19/05/20 Втр 17:32:03 1693991248
>>1693987
>разогрев капчи
Пока что самая полезная идея, которую я услышал.
Аноним 19/05/20 Втр 17:32:40 1693993249
>>1693991
Правда она работает только если юзаешь один и тот же сайт.
Аноним 19/05/20 Втр 17:33:54 1693995250
Аноним 19/05/20 Втр 17:34:31 1693997251
Аноним 19/05/20 Втр 17:41:58 1694001252
Мне надо где-то хранить список между запусками программы. Программа может и будет просто выключаться без всякого завершения.

Так вот - как в таких условиях лучше хранить список? Использовать pickle или просто хранить содержимое списка в файле и дописывать в него по необходимости?
Аноним 19/05/20 Втр 17:43:48 1694003253
>>1694001
Если данные не критически важные и работа с файлом ограничена только записью/чтением то можно и базовыми средствами обойтись.
Аноним 19/05/20 Втр 17:44:31 1694004254
Аноним 19/05/20 Втр 17:46:13 1694006255
Родные мои, есть список словарей
[{'Value': 'test0'}, {'Value': 'test1'}, {'Value': 'test2'}, {'Value': 'test3'}, {'Value': 'test4'}, {'Value': 'test5'}]

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

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

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

Как мне это сделать?
Аноним 19/05/20 Втр 17:47:53 1694008256
Аноним 19/05/20 Втр 17:51:02 1694014257
>>1694006
res = [val for d in start for key, val in d.items() if key not in excl]
Аноним 19/05/20 Втр 17:51:19 1694015258
>>1694006
[d['Value'] for d in dict_list if d['Value'] not in set(exception_list)]
Аноним 19/05/20 Втр 17:53:03 1694016259
>>1694006
z=твой список словарей
for x in z:
y = x['Value']
дальше вычитаем словарь исключений из словаря z

>>1694008
>>1694014
>>1694015
этих не слушай, они джуны
Аноним 19/05/20 Втр 17:53:33 1694018260
>>1694016
>из словаря y
пофиксил
Аноним 19/05/20 Втр 17:56:40 1694021261
>>1694016
Проиграл с этого синьора.
>>1694014
>>1694015
Конечно, лучше в пятисотый раз облизать лист компрехеншн чем узнать о новой полезной функции.
Аноним 19/05/20 Втр 17:56:47 1694022262
>>1694016
Чё несёт. Какой словарь y? А если у него [{'Value': 'test0'}, {'Value': 'test1'}, {'Value': 'test0'}]? А порядок как сохранить?
Аноним 19/05/20 Втр 17:57:53 1694023263
>>1694021
>новой полезной функции
И какой же?
Аноним 19/05/20 Втр 17:58:05 1694024264
>>1694022
>А порядок как сохранить?
А он не просил.

>>1694022
>А если у него
А у него нет этого в ТЗ.

Вот что отличает джуна (вас) от синьора (от меня). Синьор никогда не будет делать лишней работы, не предусмотренной ТЗ.
Аноним 19/05/20 Втр 17:58:45 1694025265
>>1694003
Надо будет часто обращаться к списку и редко добавлять/удалять элементы.

Базовыми - это какими?
Аноним 19/05/20 Втр 17:58:53 1694026266
Аноним 19/05/20 Втр 18:00:57 1694030267
>>1694023
Глаза разуй, там написано.
Аноним 19/05/20 Втр 18:01:06 1694031268
>>1694001
Это примерно эквивалентные вещи. В одном случае риск не успеть записать файл, в другом риск не успеть записать обновления.

Чтобы избежать риска, когда ты удалил старый файл, а новые данные записать не успел, можно простой паттерн использовать:
старый файл имеет имя, условно, dump.pickle.123
сохраняешь новый файл в dump.pickle.124
если успешно, старый удаляешь.
Причём так можно хранить, очевидно, несколько последних версий.

Аноним 19/05/20 Втр 18:01:10 1694032269
>>1692963
я хуй его знаю, не могу скачать с твоего рапидшера
Аноним 19/05/20 Втр 18:03:29 1694038270
>>1694030
isisnstance же для проверки типа данных, зачем он тут?
Аноним 19/05/20 Втр 18:06:47 1694040271
>>1694001
И да, посмотри ещё на такую фишку, как сигналы. Это актуально для линукса, в винде может быть хитрее, там что-то работает, что-то нет.

Ты большинство сигналов о закрытии программы можешь перехватить, сохранить в этом момент данные, и после этого уже закрыть программу полноценно.
Аноним 19/05/20 Втр 18:07:23 1694043272
>>1693388
мне всегда нужен был десктопный обработчик фото с драг&дроп. давай на гитхаб, ёба не жмись.
Аноним 19/05/20 Втр 18:08:51 1694044273
>>1693412
ну это такая ёбнутая манера обьявлять массивы целых чисел
Аноним 19/05/20 Втр 18:11:50 1694047274
>>1693494
Итак, день прошел зря, но я пытался узнать как это все делается.
Получается мне нужно реализовывать аутентификацию в социалочку непосредственно на vue, потом получив токен от социалочки, отдать этот токен в жангу, чтобы она там работала с логикой и че ей там еще надо, потом отправить на фронт собственный токен самой жанги, которую сохранить во фронт сторже.
На сколько я понял. Жаль что под мою социалочку незапилен модуль на vue вот под всякие инстаграммы есть и под вк есть.... Но встает другой вопрос. Если я делаю на фронте авторизацию, то мне надо указать свои id и secret key от апи авторизации в социалочке, разве это безопасно?
Аноним 19/05/20 Втр 18:37:06 1694072275
Аноним 19/05/20 Втр 18:47:56 1694075276
>>1694047
ты просто хуяришь баззворды и мы не понимаем о чем речь
что такое токен в социалочку? какая разница вью/невью? ты оауф делаешь и хочешь авторизацию прогнать без бека?
Аноним 19/05/20 Втр 18:53:52 1694078277
Сап питонач, есть один файл, который представляет собой таблицу в два столбца, левый - заголовок к тексту, правый - сам текст. Планирую вытаскивать из файла определённый текст по номеру строки, по заголовку из левого столбца этой строки или по ключевым словам из самого текста. В какой формат его будет лучше всего сконвертировать для лёгкого доступа из кода? Csv, xml?
Аноним 19/05/20 Втр 18:54:49 1694079278
Аноним 19/05/20 Втр 18:58:07 1694081279
Аноним 19/05/20 Втр 19:03:18 1694087280
Аноним 19/05/20 Втр 19:08:31 1694093281
>>1694079
>>1694081
>>1694087
Спасибо, аноны. Я правда довен и вообще никогда не имел дела с форматами кроме стандартных пдф/докх/хлсх, буду пытаться разобраться, что к чему с жсоном
Аноним 19/05/20 Втр 19:09:32 1694094282
>>1694072
>>1694043
Ну окей, вкатывальщики-квакивальщики.
Релизю приложение для обработки фото и прочих хренотеней !

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

Возможно, кого-то вдохновит на большие свершения. А то пишете все какую-то поебень, ей богу.
Аноним 19/05/20 Втр 19:20:23 1694103283
забыл один момент:
Если русские буквы интерфейсе уплыли, надо ставить python 3.7+ и настраивать переменную среды PYTHONUTF8=1 . Так вот в этой винде.
Когда-нибудь эта хуйня закончится...
Аноним 19/05/20 Втр 19:42:05 1694130284
Здравствуйте, господа!
Хочу научиться работать с библиотекой vk_api, вернее у меня есть идея, которую хочу реализовать для бота в сообществе.
Но, начинать надо с чего-то простого, что у меня не получилось.
Объясните плз, как можно элементарно с помощью бота отправить, например сообщение самому себе? А то просмотрел несколько источников, на одном источнике была подобная информация, но данную функцию тупо выпилили с какой-то там версией vk_api.
Будьте добры, напишите код, (я знаю, что там строчки 3-4 должно быть, пролема в знании методов), ии подкиньте доков читабельных
Аноним 19/05/20 Втр 19:58:22 1694151285
>>1694130
Делается так же как и отправка обычного сообщения, просто жестко задай ИД человека которому писать хочешь.
+ На сколько я знаю, у вк_апи есть чат в телеге с активными юзерами, можешь залететь туда.
Аноним 19/05/20 Втр 22:15:57 1694279286
>>1694078
стратегически,тебе выгоднее изучить pandas и оставить файл в csv.
загружай и там манипулируй данными.

Эта библиотека все равно на Си написана и к скорости не должно быть претензий.
Аноним 19/05/20 Втр 22:18:22 1694282287
Есть ли способ ограничить в django rest частоту обращений к апи? Что конкретный юзер или конкретный айпишник не мог делать эт очаще чем N раз в минуту?
Аноним 19/05/20 Втр 22:20:37 1694287288
Аноним 19/05/20 Втр 22:24:54 1694290289
Аноним 19/05/20 Втр 22:31:06 1694296290
>>1694006
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]
Аноним 19/05/20 Втр 22:31:40 1694297291
>>1694282
если это реальный кейс, делай сразу на nginx.
Выебут ведь юзеры твой vps-ик.
Аноним 19/05/20 Втр 23:14:38 1694330292
>>1694296
ехал item через item.
видит item в item item.
сунул item item item.
item за item item - цап!
Аноним 19/05/20 Втр 23:38:02 1694350293
Могу запилить django-templates внутри js-файлов?
Внутри html - как нехер, в том числе и внутри js-кода, вот так например:

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

А внутри js-файла есть возможность это сделать? Потому что они у меня длинные и я прикрепляю их как белый человек в <script src="static/main.js"></script> ?
Аноним 19/05/20 Втр 23:39:07 1694352294
Аноним 19/05/20 Втр 23:41:42 1694357295
>>1694352
Не хардкодить url path-ы и просто потому что я ебанутый
Аноним 19/05/20 Втр 23:41:52 1694358296
>>1694282
Другой анон дельное советует, может на самом деле стоит использовать nginx, там есть всё для этого.

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

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

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

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

При желании ты можешь сам что-нибудь накрутить на уровне джанго, но думаю, этим стоит заниматься только если у тебя логика сложная.
Аноним 19/05/20 Втр 23:45:33 1694365297
>>1694357
Ну эмбедь все настройки в script или там делай xhr за ними после загрузки.
А статика она и есть статика.
Аноним 19/05/20 Втр 23:45:50 1694366298
>>1694350
По api отдавай переменные, или json портянку в index.html
Аноним 20/05/20 Срд 00:04:51 1694376299
>>1694001
Еще один вариант - sqlite. Есть в стандартной библиотеке, все хранится в одном файле, встроенная защита от выключения программы или вылетевших пробок. Из неудобств - понадобится отдельный слой с SQL.
Аноним 20/05/20 Срд 00:18:06 1694389300
Аноны, сталкивался мб кто? С какого хуя django-cors-headers просто наебнулось без причины? Работало нормально, а потом хуяк - ваши корс-хедеры не корс-хедеры, идите нахуй.
Аноним 20/05/20 Срд 00:26:06 1694391301
>>1694047
Слишком сложно. У фронта не будет оставаться никакой важной информации, доступной скриптам, работающим с твоего домена. Никаких хранений в local storage и т. д. - это слишком легко украсть. У твоей социалочки есть документация, как к ней подключаться?
Аноним 20/05/20 Срд 00:26:20 1694392302
>>1694389
объясни нормально бля не телепаты
Аноним 20/05/20 Срд 00:30:46 1694393303
>>1694392
Вроде и так нормально, есть либа django-cors-headers, настроена как указано у них в репе (приложение, миддвер, origin_allow_all = True). В какой-то момент она просто сама наебнулась
Аноним 20/05/20 Срд 00:34:50 1694396304
>>1694393
Ты небось пытался использовать аутентификацию, с такими настройками не будет работать.
Аноним 20/05/20 Срд 00:35:00 1694397305
>>1692735
>А при деплое как это работает?
Можешь держать 2 сервера при деплое, можешь сбилдить проект на вью, а джанго будет раздавать его как статику
Аноним 20/05/20 Срд 00:36:42 1694400306
>>1694396
При чем аутентификация? У меня сами запросы просто ебнулись. Работала регистрация, а теперь просто нахуй шлет
Аноним 20/05/20 Срд 00:43:15 1694405307
>>1694400
Ты понимаешь как cors работает?
Аноним 20/05/20 Срд 00:48:05 1694406308
>>1694405
Идет запрос, сервер отвечает списком сайтов, которым разрешен доступ, но у меня блядь всем разрешен доступ с помощью CORS_ORIGIN_ALLOW_ALL = True
Аноним 20/05/20 Срд 00:49:22 1694408309
>>1694406
А теперь открой консоль в браузере и посмотри что там написано.
Аноним 20/05/20 Срд 01:01:09 1694412310
>>1694408
Идет запрос 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)." Но проблема в том, что эта хуйня работала какое-то время назад
Аноним 20/05/20 Срд 01:08:48 1694418311
>>1694412
Укажи свой хост явно, разреши пересылку кредлов. Возможно поможет, так как причин может быть много.
Аноним 20/05/20 Срд 01:10:55 1694422312
>>1694418
CORS_ORIGIN_ALLOW_ALL это выключи, CORS_ORIGIN_WHITELIST = ['адрес сайта'], CORS_ALLOW_CREDENTIALS = True
Аноним 20/05/20 Срд 01:12:48 1694424313
>>1694422
Хотя насколько помню, там сообщение об ошибке другое, скорее всего не в этом проблема.
Аноним 20/05/20 Срд 01:16:35 1694426314
>>1694418
>>1694422
Поменял, та же самая хуйня. Вот если что сами настройки джанги, касающиеся корсхедеров. Последнее уже выдрал с стаковерфлоу https://pastebin.com/XNz9JsjW
Аноним 20/05/20 Срд 01:18:30 1694427315
>>1694426
У тебя приложение на js дев сервере?
Аноним 20/05/20 Срд 01:20:05 1694430316
>>1694427
Да. Приложение на Вью, запросы делаю через axios
Аноним 20/05/20 Срд 01:22:15 1694432317
>>1694430
Надо прокси в конфиге настроить.
Аноним 20/05/20 Срд 01:25:29 1694434318
>>1694426
Регекс кривой
CORS_URLS_REGEX = r'^/$'
Попробуй
r'^/.
$'

Аноним 20/05/20 Срд 01:25:59 1694435319
>>1694434
Бля, побилось. Точка перед звездочкой кароч.
Аноним 20/05/20 Срд 01:34:44 1694436320
>>1694432
>>1694434
спасибо, аноны. В итоге я просто сделал хуйню на фронте из-за чего оно не работало, а именно вместо локалхоста обращался к локальной сети, хотя джанго в отличие от вью разворачивается только на локалхосте, а я как даун про это забыл
Аноним 20/05/20 Срд 02:53:49 1694476321
петон полная хуйня учите ноду
Аноним 20/05/20 Срд 02:55:25 1694477322
Аноним 20/05/20 Срд 05:42:48 1694508323
>>1693228
Спасибо.
Надо было сразу доку читать.

>>1693493
>зачем тебе вообще регулярки?
Ну там же могут встречаться последовательности вида
60-70.9
Т. е. два числа, разделённые минусом без пробела.
Аноним 20/05/20 Срд 07:41:02 1694526324
Аноним 20/05/20 Срд 07:49:52 1694528325
>>1694358

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

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

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

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

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

Зависит от серьезности лавочки, короче.
Аноним 20/05/20 Срд 07:54:46 1694529326
>>1694528
А, не, можно, но непонятно как выудить переменные из post или элементы json. Вот зачем тут нужен lua.
Так что во многих случаях порезать скорость в nginx - отличная идея
Аноним 20/05/20 Срд 09:18:40 1694606327
>>1694528
Ну так ты можешь поставить лимит на количество запросов какого-то url для разных ip. И получаешь дешёвую защиту о ботов, которые высасывают информацию с твоего сайта в много потоков.

Если какую-то сложную логику реализовывать, то проще уже сразу на уровне джанги. Может ты там хочешь, чтобы разные виды запросов на один url имели разный вес, и у разных групп пользователей были разные лимиты? И ещё попутно статистика какая собиралась?
Аноним 20/05/20 Срд 09:21:01 1694613328
Аноним 20/05/20 Срд 09:41:11 1694648329
>>1694613
блядь, как бесит эта пизданина.
lua то много лет,а они ради говноедов js тащат.
в Самом Большом в Мире Китайском Интернете вообще только на lua и пишут.
Аноним 20/05/20 Срд 10:01:38 1694679330
Аноним 20/05/20 Срд 10:07:44 1694685331
Как быстро освоить пихон если освоена Java?
Аноним 20/05/20 Срд 10:21:58 1694702332
>>1694508
Да, точно! Прости мне мою невнимательность
Аноним 20/05/20 Срд 10:26:43 1694710333
Аноним 20/05/20 Срд 10:27:18 1694711334
>>1694710
Парсер съел по одной звездочке перед args и kwargs.
Аноним 20/05/20 Срд 11:04:56 1694774335
Где почитать подробности языка более углубленно, чем укус питона?
Аноним 20/05/20 Срд 11:24:44 1694820336
>>1694774
Лучано Ромальо. Fluent Python
Злата Обуховская. Что внутри у питона (youtube)
Документация
Аноним 20/05/20 Срд 11:55:13 1694858337
>>1690482 (OP)
Прочитал от корки до корки Dive into Python 3, всё написанное полностью понял. Что делать дальше - не пойму. Цель - фриланс на США. Или хотя бы работа самая простая, тоже в США. Понимаю, что хоть и разбираюсь в многом уже и в принципе смогу нужные библиотеки быстро выучить, всё равно в данном состоянии нигде работать не смогу. Куда копать чтобы хотя бы какую-то копеечку получилось поднять? Нужен хоть какой-то самый простой проект, по типу парсинга блять фанфиков. Хочу развиваться не в вакууме, а на реальных заданиях которые будут востребованы, с которых я смогу получать деньги. Есть идеи куда смотреть и что делать? Большое спасибо, анон. Английский нейтив. Могу и ирл, но предпочтительнее конечно же хоть за сильно меньше, но фриланс. Плюс с рынком работы США не знаком нихуя.
Аноним 20/05/20 Срд 11:59:51 1694865338
>>1694858
Смотри вакансии и то, какие там технологии используются. Чистый питон никому не нужен вообще. Нужны технологии. Нужно уметь работать со сторонними сервисами вроде DB, MQ и др.

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

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

Представть проект, который мог бы быть полезен и попробуй сам сделать.
Аноним 20/05/20 Срд 12:04:12 1694873339
>>1694679
>Олег Бунин
> не создал ни одного Продукта
>10 лет делает вид, что дохуя умный и стрижет бабло с менеджеров топов
Аноним 20/05/20 Срд 12:07:22 1694876340
>>1694679

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


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

Но в lua нет ничего сложного и он фантастически быстр.
Аноним 20/05/20 Срд 12:09:28 1694881341
>>1694865
>Представть проект, который мог бы быть полезен и попробуй сам сделать.
Займусь
В самом питоне почти ничего не знаю, так как кроме книги и попыток что-то годное написать не делал с ним ничего. Опять же, трудно писать что-то, когда понимаешь, что оно не пригодится в работе.

От требований на сайтах становится не очень. Даже не беру в расчёт опыт работы, просто дохуя там. То в веб уклон сильный с Джанго, то в дата аналитику. Но там по 5 лет опыт просят, поэтому и ищу чтобы начать где проще порог входа. Мне бы начать с чего-то. Вот как в тестинг мануальный можно вообще вкатиться за неделю, дальше переходить на автоматический и т.д. Вот мне бы что-то похожее в питоне, а не тестинге. С чего-то начать, что уже сейчас было бы хоть кому-то нужно, и дальше улучшаться.
Аноним 20/05/20 Срд 12:26:21 1694922342
>>1694881
Скажи как в тестинг вкатиться за неделю? там такие же хрюши сидят "алло 500 лет опыта нет? вы нам перезвоним"
Аноним 20/05/20 Срд 12:28:11 1694927343
>>1694922
Я про ручной говорю, тыкать в браузере блять баги искать. Не про физически пойти работу найти, онлайн же.
Аноним 20/05/20 Срд 12:40:16 1694949344
>>1694685
А с чего это ты взял, что она тобой освоена, лол?
Аноним 20/05/20 Срд 12:48:41 1694962345
Хм, есть у меня несколько моделей Джанги. В одной из них есть поле ref=URLField, прикол в том, что в зависимости от значения этого поля (ссылки) надо по-разному обрабатывать данные. Как это блин реализовать?
Аноним 20/05/20 Срд 12:54:22 1694969346
Аноним 20/05/20 Срд 13:03:49 1694983347
>>1694962
Так в чем трудность? Подробнее расскажи, а то не угадать, ты там не знаешь как if написать или тебе свой йоба диспетчер нужен под это дело.
Аноним 20/05/20 Срд 13:41:16 1695028348
>>1694983
Для каждой комбинации (ref+description) требуется свой обработчик. Всего их на данный момент 8 (скоро могут появятся новые или наоборот что-то будет удалено). На первый взгляд стоит в отдельном модуле типо utils их написать, но как быть дальше? Как "привязать" каждого обработчика к своему instance из модели? Сидеть и вручную в shell это делать? Просто вопрос времени, когда я таки совершу ошибку и буду не понимать, хрен ли оно не работает как надо
Аноним 20/05/20 Срд 14:08:30 1695061349
>>1695028
Первое что пришло в голову: при сохранении экземпляра переопределять метод в котором обрабатываются данные, как-то так
https://pastebin.com/T5DkSnpq

Аноним 20/05/20 Срд 14:18:44 1695077350
>>1695028
Если твоя обработка состоит в различиях при выборе - ебни по менеджеру для каждого из типов
Аноним 20/05/20 Срд 14:33:13 1695092351
Как записать список в файл? Когда делаю f.write(list) он ругается что надо str записывать, а не список.
Аноним 20/05/20 Срд 14:36:16 1695094352
>>1694927
в твоем понимании "вкатиться" = делать что -то для себя?
Я просто думал что вкатиться это выполнить "работу" для кого то
Аноним 20/05/20 Срд 14:41:39 1695097353
>>1695077
>>1695061
Что мне также недавно пришло в голову: назвать обработчики определенным образом. Затем внутри модели определить метод handle, который на основании значений self.ref и self.descr найдет нужный мне обработчик (бизнес-логику намучу, это не проблема)

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

Какой из методов будет рациональнее и быстрее?
Аноним 20/05/20 Срд 14:43:57 1695103354
>>1695092
write("\n".join(lines))
есть ещё writelines, но там тоже надо ебаться с ньюлайнами.
Аноним 20/05/20 Срд 14:54:57 1695124355
>>1695092
Сериализуй чем-нибудь вроде pickle или json, а потом записывай
Аноним 20/05/20 Срд 14:58:44 1695126356
>>1695124
Я видел где-то уже упоминание сериализации. ЧТо это?
Аноним 20/05/20 Срд 15:02:27 1695132357
Аноним 20/05/20 Срд 15:19:37 1695153358
>>1695097
Не помню как точно, но просто переопределяешь метод на выборку, внутри можешь вызвать каждый из менеджеров, а потом склеить все полученные данные в 1 список и вернуть
Аноним 20/05/20 Срд 16:27:31 1695231359
>>1695132
>TypeError: can't pickle _asyncio.Task objects
Это что выходит, при использование asyncio нельзя пользоваться pickle?
Аноним 20/05/20 Срд 19:07:55 1695439360
Нихуя не понимаю, объясните пожалуйста

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

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

Есть какая-то принципиальная разница между двумя способами? И почему везде в офф документации или туториалах (например Джанго) пишут через командую строку?
Аноним 20/05/20 Срд 19:12:22 1695444361
Кто тут писал телеграм ботов, как проще организовать напоминалку чтобы она отправлялась два раза в день в разное время? Делаю бота через aiogram
Аноним 20/05/20 Срд 19:13:23 1695447362
>>1695439
> И почему везде в офф документации или туториалах (например Джанго) пишут через командую строку?
Потому что это стандартный способ. Пичарм просто автоматизирует его.
Аноним 20/05/20 Срд 19:41:22 1695465363
Аноним 20/05/20 Срд 20:16:13 1695484364
Как проще всего сделать таймер? Чтобы раз в N секунд выполнялось действие?
Аноним 20/05/20 Срд 20:44:40 1695508365
>>1695484
while True:
____do_something()
____time.sleep(1)

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

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

Ты задачу опиши для начала
Аноним 20/05/20 Срд 20:57:55 1695515366
>>1695484
Просто не получится.
Все таймеры работают в контексте ивент лупа, т.е. асинхронно.
Аноним 20/05/20 Срд 21:07:39 1695525367
>>1695508
через определенное время записывать информацию в файл.
>>1695515
А чем вариант выше с

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

не подходит?
Аноним 20/05/20 Срд 21:10:59 1695526368
>>1695097
vars?
А есть кстати другой метод получить переменные модуля/класса? А то в модулях много builtins говна, мешается
Аноним 20/05/20 Срд 21:15:06 1695534369
>>1695525
sleep не начнется раньше завершения do_something, потому что они работают линейно. Если он занимает минуту, то о чем говорить?
Аноним 20/05/20 Срд 21:16:33 1695536370
>>1695534
Хотя если у тебя задача на три копейки типа пару раз в минуту качать что-то с сайта, то и такое сойдет.
Аноним 20/05/20 Срд 21:24:19 1695547371
>>1695484
Запуск в отдельном процессе
Запуск посредством Celery (overkill)

Либо

while True:
____do_shit(shit()
____await asyncio.sleep(60)
Аноним 20/05/20 Срд 21:28:02 1695552372
>>1695534
Так говорю же, у меня do_something это сохранение в файл.

>>1695547
Зачем асинк для этого?
Аноним 20/05/20 Срд 21:30:36 1695554373
Аноним 20/05/20 Срд 21:31:09 1695556374
>>1695552
>Зачем асинк для этого?
Если у тебя только 1 задача в скрипте - незачем, если есть что-то еще - то обычный слип будет блочить выполнение всего кода
Аноним 20/05/20 Срд 21:50:22 1695577375
>>1695552
Всё зависит от того, что делает твоя программа в перерывах между тайм-эвентами.

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

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

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

Всё это стандартные задачи и для каждого типа есть стандартные решения. Но разные.
Аноним 20/05/20 Срд 22:27:57 1695623376
Кто-нибудь реализовывал напоминалки в телеграмм ботах?
Аноним 21/05/20 Чтв 06:39:47 1695916377
Аноним 21/05/20 Чтв 07:23:00 1695928378
>>1695484
Проще всего, внезапно, с модулем threading.
Но это перестанет быть проще, когда ты добавишь туда что-то еще
Аноним 21/05/20 Чтв 07:34:20 1695929379
Кто нибудь использует апи переводчиков? Какой есть бесплатный без анальных лимитов вроде 1000 слов в день?
Аноним 21/05/20 Чтв 09:13:57 1695974380
Слышал, что реальные пацаны в django хранят бизнес-логику не в моделях (как пишут в оф. документации), а в отдельном файле services или utils. Есть примеры как это правильно делать и вообще зачем?
Аноним 21/05/20 Чтв 09:20:16 1695983381
>>1695929
Это, ведать, для лентяев.
Автор API предоставляет услугу, которую бесплатно ты должен был предоставить себе сам.
Так же как ремонт автомобиля - бесплатно могут дать совет ремонтироваться в их мастерской.
На этом перечень бесплатных услуг исчерпывается.

Но почему бы не сделать переводчика, НЕ использующего интерфейс API, а чистый HTTP ?
Аноним 21/05/20 Чтв 10:31:18 1696039382
>>1695983
Потому что я не знаю хттп, как тебе такой вариант? Ну так что насчёт апи то? Есть чего?
Аноним 21/05/20 Чтв 10:39:31 1696045383
Блядь, запустил один туториал по питону - какой-то индус на ломаном английском вещает, запустил ещё один - опять индус. Какого хуя?
Аноним 21/05/20 Чтв 11:09:47 1696054384
>>1696045
Ну так не запускай.
В Степике хорошие цисгендерные айтишники.
Аноним 21/05/20 Чтв 11:27:16 1696071385
>>1696045
> запустил нонейм хуйню какая-то хуйня
держи в курсе
Аноним 21/05/20 Чтв 13:12:27 1696164386
>>1696039
Ты знаешь, я сейчас проверил, а мой клиент Гугл-переводчик не работает. Я бросился смотреть на страницу переводчика - она уже совершенно другая.
Открыл в IE, а Гугл требует войти в аккаунт - чё за хрень, через Хром захожу на переводчик без никакого акаунта ?
Так что у меня теперь нет переводчика и значит программы, которые его использовали, накрылись тоже.
Аноним 21/05/20 Чтв 13:17:59 1696167387
>>1696164
Насколько я сегодня нагуглил - Гугл сделал свой апи платным недавно и все сосут хуй кто бесплатно переводил.
Аноним 21/05/20 Чтв 14:19:28 1696230388
>>1696167
Это палка двух концов: Если платный сервис - его функциональность будет гарантироваться.
Если, как бы украл (мой клиент не использовал никаких АПей), то это бесплатно, но... в любой момент они могут изменить что-то и программа накрылась.

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

На свою старую систему новый IE не ставится, поэтому перенёс клиент кабинета провайдера на планшет с 10 системою - сертиыикаты https есть, клиент работает. Теперь переводчик накрылся, надо переносить тоже на планшет, а на 10 системе IE не установлен.
И вообще 10 система - сволочная штука. Целая эпопея борьбы. И она только началась - её предстоит обкарнать по самые яйца. И от предателя-системы безопасности, и от изменника родины планировщика заданий. Надо будет выявить где эти файлы, пользующиеся преступной неприкосновенностью и зайдя с внешнего диска - ампутировать их в пизду.
Аноним 21/05/20 Чтв 14:36:21 1696256389
Запомните товарищи наизусть - как бы хорошо ни было приложение, но если оно насильственно навязано - это обрекает его нести метку говна.
И всяк его будет стрематься и поносить.
Ибо насильно мил никто, пока что не стал и НИ - КО - ГДА НЕ СТА - НЕТ !
Аноним 21/05/20 Чтв 15:59:01 1696366390
Как во Flask сохранить кэш на стороне пользователя?
Аноним 21/05/20 Чтв 16:00:37 1696370391
>>1693388
Советую вместо принтов юзать logging. А так код нормальный. У новичков неосиляторов основная проблема, то что они не знают с чего начать и как построить архитектуру проекта. По твоему коду же видно, что опыт есть.
Аноним 21/05/20 Чтв 16:07:47 1696381392
>>1696370
Ты где там архитектуру разглядел в этих 100 строчках, среди которых полезных около 50?
Аноним 21/05/20 Чтв 16:41:51 1696418393
>>1696381
АРХИТЕКТУРА ПАТТЕРНЫ РЕФАКТОРИНГ
Аноним 21/05/20 Чтв 19:18:31 1696653394
Я не могу просто взять и вставить элемент словаря в ф-стринг?

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

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

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

Мне обязательно нужно сперва упаковать элемент в переменную, а в стринге обращаться уже к ней? Это ж очень нудно, нах мне тогда вообще писать этот словарь, если все равно для каждого ключа нужно отдельно писать переменную, я это могу и без словаря сделать. Может еще какой способ есть?
Аноним 21/05/20 Чтв 19:25:09 1696663395
>>1696653
Из-за скобок ошибка. Используй другие или эскейпь.
Аноним 21/05/20 Чтв 19:28:45 1696665396
15882642647221.jpg 35Кб, 487x414
487x414
>>1690482 (OP)
Програмач ай нид хелп.
Укус питона прочёл, Hello World написал.
Написал говнопрогу, которая приветствует тебя, просит ввода имени и возраста и в зависимости от этого оскорбляет тебя.
Какую книгу читать дальше? желательно с примерами т.к. хочется практики.
Аноним 21/05/20 Чтв 19:30:22 1696666397
>>1696663
Можно подробней? Не понимаю в каких именно скобках ошибка и как я могу их изменить, я думал для каждого элемента вполне конкретные скобки используются.
Аноним 21/05/20 Чтв 19:36:01 1696669398
>>1696666
Есть дохуя видов скобок, все они взаимозаменяемы.
Одинарные 'str' и "str" и тройные '''str''' и """str""".
Если какие-то используются у тебя в строке, то оформить можно другими.
В твоем случае можно сделать
print(f'bla bla {slovar["kluch"]}') или наоборот.
Аноним 21/05/20 Чтв 19:38:09 1696671399
>>1696669
А, ты про кавычки! Точно, работает, спасибо!
Аноним 21/05/20 Чтв 19:39:15 1696672400
Аноним 21/05/20 Чтв 19:46:00 1696676401
Как установить MySQL? Нихуя не понятно что-то. Коды из консоли, клиенты, архивы с сайта, инсталляторы. Конкретно что ставить нужно?
Аноним 21/05/20 Чтв 19:51:14 1696679402
>>1696676
Нужен сервер, клиенты уже к нему подключаются.
На шиндовсе инсталятор, на шинуксах из реп.
Аноним 21/05/20 Чтв 19:51:54 1696680403
>>1696676
sudo apt install postgresql postgresql-contrib
Аноним 21/05/20 Чтв 20:10:14 1696716404
Парни, тут кто-то писал насчет таймеров, на чем-то годном по итогу сошлись?

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

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

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

Нагуглить ничего толкового не смог.
Неужели придется anaconda ставить чтобы совсем уж по-ихнему было?
Аноним 21/05/20 Чтв 21:41:01 1696805406
>>1696716
>Какой-то ощутимой просадки по производительности не заметил. Но уверен, что есть способы и лучше.

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

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

Вот, допустим, мой пример : >>1694094
Он работает потому что там "волшебная" синхронизация от kivy через декоратор @mainthread
В серьезных случаях были бы проблемы.
(кстати, на самом деле киви работает из без этого. не понятно почему, но я на всякий случай пишу. как у них в документации это написано лет 5)
Аноним 21/05/20 Чтв 21:44:49 1696808407
>>1696370
да харош. смысл этой программы был показать, что kivy - довольно просто и пора бы новичкам переходить от заманавших всех телеграм-ботов к полезным программам.
Аноним 21/05/20 Чтв 21:47:34 1696811408
>>1693388
Что эта штука вообще делает?
Аноним 21/05/20 Чтв 21:59:15 1696828409
>>1696811
это чтобы в фотошопе не мучаться. Фото часто надо обрабатывать, но сами манипуляции шаблонные . Посмотри как это выглядит в фотшопе:
https://pskurs.ru/photoeffects/avtomaticheskaya-korrekciya-urovnei-v-photoshop.html

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

На самом деле там еще (будет) сжатие фото до веб-разрешения и загрузка на сайт к конкретному заказу.
Аноним 21/05/20 Чтв 22:24:01 1696878410
>>1696828
То есть это автоматизатор кнопки "авто" в фотошопе средствами сторонней проги? Ну заебись, хуле, и гуй красивенький.
Аноним 22/05/20 Птн 00:14:55 1697051411
Есть один список (list). Структура такова: A= [array([100, 200, многа чисел]), array([300, 400, многа чисел])]. array это numpy.ndarray. Как мне получить вывод последних чисел из каждого array. Просто A[:][-1] выводит array([100, 200, многа чисел]). По сути индексация не идет внутрь списка. Я предполагаю это из-за того что внутри numpy.ndarray, а не простой список. Не могу догадаться как вводить индексы.
Аноним 22/05/20 Птн 00:22:14 1697065412
>>1697051
Можно конечно циклом перебирать
B=[]
C=[]
for i in range (len (A)):
A = A
C.append(A[-1])

Но хочется сразу индекс.
Аноним 22/05/20 Птн 00:38:09 1697089413
>>1697065
Попробуй так [a[-1] for a in A]
Аноним 22/05/20 Птн 00:39:04 1697091414
Объясните понятным языком, что представляют из себя атрибуты co_lnotab и co_flags у code object в Python?
Аноним 22/05/20 Птн 00:42:40 1697095415
>>1693388
> неужели совсем нечего автоматизировать?

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

В конце концов, не все же такие кабанчики занятые. Мне вот обработчик фото нахуй не нужно, тебе наоборот. Время такое, для моих потребностей например уже все написано.
Аноним 22/05/20 Птн 00:45:19 1697098416
>>1697089
Получилось, спасибо. Ни разу с таким индексированием не сталкивался.
Аноним 22/05/20 Птн 01:52:50 1697152417
>>1697051
A[:, -1]
A[строка, столбец]
Аноним 22/05/20 Птн 01:57:54 1697155418
>>1697152
Не работает list indices must be integers or slices, not tuple. Я так пробовал. Пока либо цикл, либо это >>1697089
Аноним 22/05/20 Птн 02:02:52 1697164419
>>1697155
Тебе обязательно использовать ndarray ? Если вместо обычного списка в начале и в списках внутри использовать numpy.array() то все работает.

np.array([np.array([1,2,3]),
np.array([1,2,3]),
np.array([1,2,3])])
Аноним 22/05/20 Птн 03:17:13 1697187420
>>1697164
> Тебе обязательно использовать ndarray ?
Не то чтобы очень, но формат задает чужая функция. Перебирать её во много раз сложнее чем пердолиться с индексами.
Аноним 22/05/20 Птн 07:00:54 1697215421
3.png 2Кб, 340x95
340x95
Аноним 22/05/20 Птн 08:29:42 1697250422
>>1695094
Нет, я и имел в виду работу для кого-то. Мануальное тестирование - для вката достаточно полной недели и можно зарабатывать деньги - я тому пример. Только деньги всё же не такие огромные, и заниматься этим постоянно не импонирует. Развития там так же не много, да и куда развиваться. А питон, это другое. Но здесь порог входа на любую работу мне кажется намного ввше, поэтому и растерян.
Аноним 22/05/20 Птн 09:28:38 1697282423
numpy.png 24Кб, 760x435
760x435
Аноним 22/05/20 Птн 09:40:31 1697293424
Такой вопрос. Пробую переводить чат для твича. Так проблема со смайлами возникла. Гугл апи за каким-то хуем переводит некоторые смайлы вроде Kappa, смайлы из нескольких слов вроде NotLikeThis и другие.

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

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

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

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


Есть идеи как отсечь остальные смайлы?
Аноним 22/05/20 Птн 09:53:31 1697298425
>>1697293
Ты его копипастом переводишь что ли, как сообщения получаешь? Получаются сообщения через вебсокет, в каждом сообщении отражается не только его содержание, но и доп. информация в т. ч. и используемые смайлы.
Проблема только в том, что есть еще и расширение bttv которое добавляет свои смайлы, поэтому тебе их отдельно парсить нужно будет в зависимости от канала. Может у них api есть.
Аноним 22/05/20 Птн 10:07:48 1697310426
>>1697298
> Ты его копипастом переводишь что ли, как сообщения получаешь?
За основу своего бота я взял twitchio. Он сообщения получает в виде простого текста вида "какой-то текст Kappa" и смайлы никакими служебными знаками не отображаются.
> Проблема только в том, что есть еще и расширение bttv
Эта хуйня только новые смайлы добавляет в твич?
Аноним 22/05/20 Птн 10:39:46 1697342427
>>1697310
И зачем? Для практики как рах полезным будет не использовать сторонние библиотеки, которые напрямую решают задачу. Это тоже самое, что написать калькулятор в виде вызова системного калькулятора. Ну а хули, "у меня обертка".
Ничего сложного в твоей задаче нет. Подключаешься к нужному вебсокет каналу, парсишь оттуда сообщения, переводишь и выводишь результат. Bttv эмоуты установленные для конкретного канала можно посмотреть на сайте, т. е. перед обработкой сообщений канала тебе нужно будеи спарсить названия смайдов с этой страницы.
Аноним 22/05/20 Птн 10:51:49 1697364428
>>1697250
Где ты такую вакуху нащел что без опыта взяли... а как же тестовое с "ой ну вы не все баги нашли идите нахуй"
Аноним 22/05/20 Птн 11:14:03 1697388429
>>1696716
Будет задача, будут решения.

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

Вот в твоём примере, у тебя есть содержательный и важный код:
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)
что разрешает переключение задачи на другую.
Аноним 22/05/20 Птн 11:21:40 1697399430
>>1697342
Ну не скажи, элементарного бота сделать думаю не сложно. Но один хуй будешь по гайдам делать и мало чему научишься. А так я по тихоньку ковыряю твичио, дописываю и обучаюсь питону.
Аноним 22/05/20 Птн 11:35:51 1697421431
>>1697342
>ну и чего, используешь свои фреймверки, так ничему не научишься, надо самому писать всю обработку, и орм самому пилить. Атак лютая копипакста получается просто
Аноним 22/05/20 Птн 11:59:53 1697467432
4ced22a63c81819[...].png 983Кб, 2024x1626
2024x1626
>>1697388
есть тупой и стандартный паттерн: в лог добавляется ИД задачи-треда и перемешивание вывода никого больше не ебет.

И можно еще нескучных эмодзи добавить.
Аноним 22/05/20 Птн 12:03:12 1697474433
Screenshot125.jpg 258Кб, 866x1210
866x1210
Не, вы заценити эти паравозики!
Аноним 22/05/20 Птн 13:03:08 1697559434
>>1697421
Речь идёт именно о практике и обучении, да для практики и обучения полезно писать всё самому. И глубина начала зависит от того уровня знаний который ты хочешь получить.
>>1697399
В том то и дело, что гайдов никаких не нужно. Достаточно проанализировать запросы и повторить их из своей программы. Ковыряя чужой софт ты обучаешься не питону, а работе с API этого софта.
Аноним 22/05/20 Птн 13:06:37 1697561435
Антоши, как в VS code убрать один отступ перед кучей выделенных строк?
Ну короче как выделяешь строки, жмешь таб, они улетают на уровень глубже. А как наоборот?
Аноним 22/05/20 Птн 13:09:25 1697567436
>>1697388
Если кстати реализовать тот пример через async и делать await asyncio.sleep(0) после каждого числа num в цикле for, то время выполнения увеличивается в 3 раза... решение которое помогло: сделать в том месте строчку

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

но вопрос, фиг ли переключение контекста настолько сильно ебет остается открытым
Аноним 22/05/20 Птн 13:10:10 1697568437
Аноним 22/05/20 Птн 13:18:49 1697575438
Помогите. При таком раскладе переменная par будет определена в p?

for x in result:
par = dict['u']
p = {
"Parent": par
}
Аноним 22/05/20 Птн 13:46:26 1697609439
>>1697567
Ты просто сам подумай, сколько работы должно совершиться для переключения контекста. Там надо идти в event loop, ставить задачу в планировщик и т.п.

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

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

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

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

В полноценных приложениях вычислительные задачи должны в отдельный процесс, не поток, а процесс выноситься.
Аноним 22/05/20 Птн 13:58:27 1697618440
>>1697575
Ты что сделать-то хочешь?
Аноним 22/05/20 Птн 14:18:17 1697631441
>>1697559
Ты пишешь хуйню которая с легкостью отпугнет любого изучать. Если ты это делаешь намерено то пошел ты нахуй токсичная хуйня, если ты делаешь это для защиты своей самооценки, поищи другие способы сохранить свое чсв не через унижение попыток других.
Применяя инструмент, попутно можно понять как он работает, ты же понимаешь что в шариковой ручке крутится шарик?, а вот твои "это все не то, надо писать все с нуля" уничижают стремления юнцов и вгоняют их в "я тупой юзаю готовое" состояние.
Аноним 22/05/20 Птн 15:04:56 1697675442
Screenshot126.jpg 12Кб, 353x106
353x106
Screenshot127.jpg 103Кб, 550x627
550x627
>>1697609
>Ты просто сам подумай, сколько работы должно совершиться для переключения контекста. Там надо идти в 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 положишь сервак намного раньше.
Аноним 22/05/20 Птн 15:20:33 1697690443
>>1697467

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

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

По сути это будет замена metabase, который себя не оправдывает.
Это типичный корпоративный ебенейших размеров софт на яве, который, в общем, не делает главного. Непонятная хуйня какая-то. Создал там кое-как пару таблиц, поебался с mysql tengine=federated, но все равно неудобно. А с графиками вообще пиздец.
Аноним 22/05/20 Птн 15:20:48 1697691444
>>1697631
Ну да, вариант "сам был новичком и научился на своих ошибках" почему то даже и не рассматривается. Одни попытки унижения и детекты токсичности. Узнаю забитого омежку с двача.
В любом случае, я просто высказал своё мнение, он может его послушать и сделать свои выводы. Какие - мне абсолютно похуй, для меня ничего не изменится всё равно.
Аноним 22/05/20 Птн 15:46:04 1697726445
>>1697215
У меня A= [array([100, 200, многа чисел]), array([300, 400, многа чисел])]. Твой код выдает array([300, 400, многа чисел]), то есть последний array из списка, но весь. У тебя работает, т.к. у тебя a = array([300, 400, многа чисел]). У меня же поверх этого обычный список.
>>1697282
Вот тут работает. Как я понял за счет конвертации моего списка в np.array A= np.array(A).
Аноним 22/05/20 Птн 15:47:17 1697727446
>>1697618
Стать программистом за 300к час
Аноним 22/05/20 Птн 15:55:46 1697738447
image.png 1Кб, 126x58
126x58
Лол, аноны, почему-то VSC думает, что \a это управляющий символ (и я потом получаю ошибку при аутентификации). Как это вырубить?
С "local\pidor" например нормально.
Аноним 22/05/20 Птн 15:58:20 1697743448
>>1697738
Правильно думает. Эскейпи через \\
Также можно raw strings с префиксом r"\a huli"
Аноним 22/05/20 Птн 15:58:53 1697744449
>>1697738
Выход очевиден Переименовать пользователя alexey в pidor
Аноним 22/05/20 Птн 16:07:44 1697749450
Утечка памяти в тестах -- как бороться?
Аноним 22/05/20 Птн 16:08:16 1697750451
Аноним 22/05/20 Птн 16:12:33 1697752452
>>1697743
Он так же будет думать, когда я буду перебирать пару тысяч имен вида domain\name в списке?
Аноним 22/05/20 Птн 16:14:46 1697754453
Аноним 22/05/20 Птн 16:15:59 1697756454
>>1697752
Это работает для значений, которые ты определяешь коде.
Если оно получено другим путем, то похуй.
Аноним 22/05/20 Птн 16:47:38 1697779455
image.png 10Кб, 644x149
644x149
>>1690482 (OP)
всем привет, хочу встроить один свой код на питоне в бота в телеге, поставил telebot, но у меня тут проблема в том, что в библиотеке Telebot, как в принципе и в api телеграма нет ни input, ни его нормальных аналогов, поэтому я просто ебанул нахуй вот так вот как на пикриле, присваивая переменной текст сообщения. И вот проблема в том, что после того как бот выводит сообщение, то сразу начинает выполнять код дальше, в итоге на практике это выглядит так:
я пишу ему сообщение чтобы запустить, следом он пишет мне текст с вопросом на который нужно ответить цифрой, и тут же начинает прогонять код, не дожидаясь ответа. Берёт суёт в переменную моё сообщение которое я ему написал в начале, затем суёт его в integer и жидко пукнув выдаёт ошибку что не может преобразовать строку в целое число, по понятным причинам

Так вот вопрос: как мне сделать паузу в telebot чтобы как в стандартном инпут код продолжал работу после того как я напишу следующее сообщение?
Аноним 22/05/20 Птн 17:03:01 1697786456
Есть в питоне какое-нибудь обозначение для 0+? То есть число близко к 0, но чуть больше. В написанной формуле это выглядит y → 0+. Вручную задавать 0.000многанулей0001 некрасиво.
Аноним 22/05/20 Птн 17:14:15 1697795457
Аноним 22/05/20 Птн 17:19:47 1697798458
>>1697795
Я имел в виду что аналогичное numpy.inf. Какой-нибудь numpy.zero+. Модуль не важен, просто как аналогия.
Аноним 22/05/20 Птн 17:23:52 1697802459
>>1697798
Нет. Ты сам подумай. inf имеет конкретное представление в процессорах, особое значение, "бесконечно малое" не имеет. Всегда у тебя конкретное число.
Аноним 22/05/20 Птн 17:24:57 1697803460
>>1697798
Я с таким не особо сталкиваюсь.
Глянь ещё math.isclose
Аноним 22/05/20 Птн 17:32:34 1697806461
Есть такого вида код:

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 то выходило бы из цикла целиком и не проверяло остальные слова.
Аноним 22/05/20 Птн 17:36:30 1697809462
>>1697806
Если достаточно да или нет, то можно через any.
Если нужно будет достать конкретное значение, то придется как-то выкручиваться, нет брейков для внешних циклов.
Аноним 22/05/20 Птн 17:38:42 1697811463
>>1697809
>нет брейков для внешних циклов.
Я уже догадался. Брейк прерывает проверку буквы в слове, но не проверку остальных слов.
>Если достаточно да или нет, то можно через any.
не очень понял. Мне надо сделать так что если в слове одна из букв соответствует условию, то выходило бы из цикла целиком.
Аноним 22/05/20 Птн 17:45:14 1697820464
>>1697811
Ну вообще для этого можно обойтись одной итерацией, а не смотреть каждую букву.
if letter in word:
___break

Способ с any:
res = any(letter for word in new_string if letter in word)
Аноним 22/05/20 Птн 17:51:56 1697825465
>>1697811
а если примерно так:

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

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

прервётся внутренний цикл и после его окончания прервётся и внешний
Аноним 22/05/20 Птн 17:52:54 1697827466
цикл.png 5Кб, 291x200
291x200
>>1697806
ищет букву 'i' если находит, то цикл прирывается
Аноним 22/05/20 Птн 17:59:53 1697840467
>>1697803
math.isclose проверяет на близко ли мое вручную заданное число к 0, при этом точность тоже сам задаю.
>>1697802
> inf имеет конкретное представление в процессорах, особое значение, "бесконечно малое" не имеет.
Звучит убедительно. Придется просто задавать число самому.
Аноним 22/05/20 Птн 18:00:11 1697842468
>>1697825
Внешний в любом случае прервется, норкоман.
Аноним 22/05/20 Птн 18:01:13 1697843469
>>1697827
а если вместо i надо сверится со списком символов? Если написать if list in word пишет что левый операнд не может быть списком.
Аноним 22/05/20 Птн 18:11:43 1697852470
Аноним 22/05/20 Птн 18:19:26 1697853471
>>1697852
Это как? Впервые слышу это слово
Аноним 22/05/20 Птн 18:23:28 1697859472
if op is hui.png 7Кб, 389x254
389x254
Аноним 22/05/20 Птн 18:27:03 1697864473
Django или Flask?
Интересует соотношение зп, времени затраченного на вкатывание и необходимые начальные+дополнительные навыки.
Аноним 22/05/20 Птн 18:27:04 1697865474
image.png 3Кб, 423x67
423x67
Аноним 22/05/20 Птн 18:28:26 1697869475
>>1697859
Ищет подстроки, а не символы.
Аноним 22/05/20 Птн 18:49:54 1697892476
hui.png 11Кб, 396x403
396x403
Аноним 22/05/20 Птн 19:04:23 1697913477
Аноним 22/05/20 Птн 20:34:41 1698071478
Screen Shot 202[...].png 173Кб, 1247x526
1247x526
Надеюсь здесь не кроют хуями начинающих, как на php борде.
Начинаю только работать на питоне, хочу заебашить силениум.
Вылезает вот такой шматок говна (пикрил)

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

Аноны, объясните в чем проблема, очень хочу вкатиться
Аноним 22/05/20 Птн 20:44:54 1698095479
>>1698071
Судя по ошибке, в переменной file нихуя нет.
Аноним 22/05/20 Птн 23:35:01 1698414480
>>1697474
Что здесь? queue.Queue в которую кладутся задачи, а логгер их вытягивает раз в N мс?
Аноним 23/05/20 Суб 00:18:50 1698448481
>>1698095
переменной вообще нет
import selenium - все что написано
run и я обосрался
на macOS High Sierra пишу, в сублиме
Аноним 23/05/20 Суб 00:23:44 1698461482
>>1698071
У тебя питон 2.7? Как ставил селениум? Возможно последняя версия не совместима с питоном 2.7
Аноним 23/05/20 Суб 00:32:47 1698481483
>>1698448
У тебя какая-то хуйня с питоном. Поставь отдельно третий и пользуйся им.
Аноним 23/05/20 Суб 00:37:49 1698487484
Аноним 23/05/20 Суб 00:38:41 1698489485
>>1698461
ставил слениум через pip/терминал
Аноним 23/05/20 Суб 00:50:35 1698498486
>>1698487
Ну ошибка с вторым, разбирайся.
Аноним 23/05/20 Суб 01:29:54 1698540487
>>1698487
А в PATH походу ссылка на 2й, раз оно у тебя через 2.7 пытается открыть
Аноним 23/05/20 Суб 01:35:23 1698542488
>>1698540
разобрался, cпасибо огромное
Аноним 23/05/20 Суб 03:05:56 1698594489
Где найти чела шарящего за sympy и matplotlib? Нужно решить пару тройку заданий по лабе, а самому в этой параше разбираться не хочется.
Аноним 23/05/20 Суб 09:13:25 1698675490
Аноним 23/05/20 Суб 09:40:41 1698679491
>>1698594
Молодой человек, вы охуели. Вам бесплатно препод разжевывает материалы платных курсов и дает актуальные знания.
Аноним 23/05/20 Суб 10:40:58 1698702492
>>1697864
Django, на фласке нет работы
Аноним 23/05/20 Суб 11:08:32 1698721493
>>1698679
Ничего, сейчас заплатит за то, чтобы за него лабу сделали, через N лет будет платить за курсы, чтобы в ИТ вкатиться.
Аноним 23/05/20 Суб 11:22:33 1698726494
>>1697864
Странный вопрос, начать мог бы сам с поиска по вакансиям ХХ.

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

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

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

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

Ниша Джанго - большие сайты CRUD-направленности, ниша aiohttp - сетевые сервисы, где в том числе используется веб-взаимодействие, но лишь как часть.
Аноним 23/05/20 Суб 11:31:36 1698730495
>>1698726
Посмотрел ХХ, ни на aiohttp, ни на flask практически нет чистых вакансий, в основном их только через запятую перечисляют, что неплохо бы. Пара штук только, где aiohttp основное, но не единственное, что надо.

Для Django/Django Rest есть и чистые вакансии.

Аноним 23/05/20 Суб 12:21:37 1698748496
>>1698730
Как aiohttp кстати соотносится с django (который де-факто синхронный даже в 3.0)? Есть примеры проектов, написанных на плотной связке этих двух?
Аноним 23/05/20 Суб 12:30:35 1698754497
>>1697820
>>1697825
Я сделал вот так:

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

russian_letters это список из русских букв. Оно работает, но иногда пропускает строки в которых есть русские буквы. Почему так? Я хуй знает как при таком условии можно пропустить строку хоть с 1 русской буквой.
Аноним 23/05/20 Суб 12:31:29 1698756498
>>1698754
>for word in new_string:
>____if any(letter in russian_letters for letter in word):
>________print(f"-----> russian_letters detected!")
>________break
Быстрофикс
Аноним 23/05/20 Суб 12:47:46 1698770499
>>1698748
Примерно никак, кусок асинхронщины добавили в 3 версии, но основные операции все еще синхронны, хотя можно на свой страх и риск убрать некоторые ограничители. А так жди 4 версии еще года полтора, в ней уже допилят асинхронность на базовом уровне.
Аноним 23/05/20 Суб 12:54:32 1698773500
>>1698675
Лабы по матану и линалу. Графики там строить, матрицы, производные, дифференциалы, поверхности второго порядка
>>1698679
У этого препода в его каловых материалах код зачастую даже не запускается, дохуя ошибок. Да и я перепутал, нужно онлайн кр решить за час, а не лабу.
Аноним 23/05/20 Суб 13:08:13 1698782501
image.png 185Кб, 605x800
605x800
Аноны, можете, пожалуйста, поделиться Python Crash Course 2nd Edition? Уже спрашивал, но переехал на новый пк и забыл скинуть её себе.
Аноним 23/05/20 Суб 14:25:54 1698840502
>>1698770
Просто я видел связки вакансий aiohttp + django. Это как понимать вообще?
Аноним 23/05/20 Суб 14:47:19 1698860503
>>1698840
епта позвони и спроси, мы откуда ебем что за вакансия?
может у них часть сервисов круды+админка и они на джанге, а часть хитрые запросы в базу
может была джанга, а сейчас ебашат на аиохттп
Аноним 23/05/20 Суб 15:24:23 1698887504
>>1698860
>>1698770
То есть если я хочу периодически отсылать асинхронные запросы на сторонние ресурс, то с Джангой этого не сделать? В общем ситуация обстоит так: есть набор url (объявленный в settings либо в utils), каждые 5-10 минут необходимо совершать на них запрос, идеальным будет асинхронный вариант чтобы не ждать их последовательно, но... выходит что запихать asyncio + aiohttp внутрь Джанги не выйдет? Слыхал про Celery, вроде он так может (скоро собираюсь читать мануал) - это поможет?
Аноним 23/05/20 Суб 16:18:52 1698952505
Как проверить что все элементы в списке равны?
Аноним 23/05/20 Суб 18:10:21 1699099506
Аноним 23/05/20 Суб 18:39:50 1699152507
>>1698887
"Запихать внутрь" не выйдет - поток, в котором исполняется код Django, не займется другими вещами, если ты создашь в нем цикл asyncio - он будет крутить этот цикл, пока в нем не закончатся задачи. То есть в идеале можно сократить время ожидания с 5-10 последовательных вызовов до одного самого медленного.

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

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

Хотя... Celery фактически сделает то же самое.
Аноним 23/05/20 Суб 19:58:37 1699248508
>>1699099
Это разве проверяет не длину элементов?
Аноним 23/05/20 Суб 20:27:44 1699277509
>>1698952
for item in my_list:
if item != my_list[0]:
print('Loh')
break
Аноним 23/05/20 Суб 22:32:08 1699508510
В таблице/модели может быть несколько primary key? Как это?
Аноним 23/05/20 Суб 22:43:57 1699526511
Аноним 23/05/20 Суб 23:33:11 1699564512
Аноним 29/05/20 Птн 09:27:09 1706449513
>>1690482 (OP)
Сап, в каких программах или при помощи каких библиотек можно создать красивый, ну или хотя бы не всратый дизайн?
Аноним 04/09/20 Птн 22:09:32 1797603514
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов