Сохранен 540
https://2ch.hk/pr/res/2224725.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Питон тред №132 /python/

 Аноним 28/11/21 Вск 21:57:42 #1 №2224725 
logo3110.jpg
reticulated-python-gold.jpg
Тред, посвящённый языку программирования Питон, #132

Предыдущий: >>2213498 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: 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/bASGKD8cCFDf
Аноним 28/11/21 Вск 22:00:18 #2 №2224728 
>>2224725 (OP)
>Актуальность примерно 2015 года
Каков путь в 2021?
Аноним 28/11/21 Вск 22:04:52 #3 №2224732 
Ещё раз спрошу, как загрузить процессор на 100%?
while True:
pass
очень плохо процессор грузит.
Аноним 28/11/21 Вск 22:13:35 #4 №2224745 
>>2224732
Мультипроцесинг или мультитрединг можно юзать? Если да, то в мультипроцесинг вызови то же самое, но вместо пасс напиши а+=1. А если нет, то в разных тредах вызывай hashlib бесконечно прося посчитать какой-то хэш. Из-за того, что подсчёт хэша освобождает gil это cpu bound операция позволит сразу нескольким посикс тредам занимать процессор одновременно.
Аноним 28/11/21 Вск 22:14:43 #5 №2224747 
>>2224732
Начинай считать простые числа
>>2224745
Держи в курсе плс, операции сложения почти не грузят проц. У чела забьется оперативка, а проц нагрузится на 10%
Аноним 28/11/21 Вск 22:16:37 #6 №2224750 
>>2224732
Вычисляй определитель для огромной матрицы через матричные операции
Аноним 28/11/21 Вск 22:16:40 #7 №2224751 
>>2224747
>Держи в курсе плс, операции сложения почти не грузят проц. У чела забьется оперативка, а проц нагрузится на 10%
В мультипроцессинге даже создание процесса грузит
Аноним 28/11/21 Вск 22:18:33 #8 №2224755 
>>2224751
На сотую долю процента грузит проц и оперативку на пару десятков мегабайт. Угадай что закончится быстрее
Аноним 28/11/21 Вск 22:19:19 #9 №2224756 
>>2224728
https://github.com/ru-python-beginners/faq
Аноним 28/11/21 Вск 22:25:13 #10 №2224760 
>>2224732
Питон неспособен загрузить проц
Аноним 28/11/21 Вск 22:27:47 #11 №2224764 
Не кажется ли вам, что учить питон не релевантно, ибо самый распиаренный язык, хотя столько людей и не требуется?

мимо рубист
Аноним 28/11/21 Вск 22:28:29 #12 №2224765 
>>2224764
Естественно говорю за джангу, про мл вопросов нет.

а всякие игры и мобильные приложения на питоне никому не нужны
Аноним 28/11/21 Вск 22:30:22 #13 №2224767 
>>2224765
Ренпи вполне имеет успех среди порно игр и обычных ВН.
Аноним 28/11/21 Вск 22:32:01 #14 №2224769 
>>2224767
Хз, за порнуху, но вн легче уже на конструкторах без кода пилить
Аноним 28/11/21 Вск 22:33:29 #15 №2224770 
>>2224769
Да, настолько легче, что все больше наркоманов переезжает на Юнити для этих целей.
Аноним 28/11/21 Вск 22:34:44 #16 №2224771 
>>2224770
А в чём профит? Там же нет сложной логики или чего-то того, что нельзя уместить в конструктор.
Аноним 28/11/21 Вск 22:36:44 #17 №2224772 
>>2224765
Так не только джангой живем же, бизнес логику на питоне спокойно делают. У нас микросервисы сделаны. У райфайзенбанка тоже есть.
https://www.youtube.com/watch?v=4zjj1aHJoko
Аноним 28/11/21 Вск 22:36:56 #18 №2224773 
>>2224771
А хз. Люди просто хотят новеллы с характеристиками, картами города, внутренними интерфейсами вроде телефона и прочее.

Вообще люди некоторые пробуют в Унрил и уже там делают своего рода порно-гта. Так что но-код генераторы будут постоянно отставать пока нейросети не накроют вообще всех
Аноним 28/11/21 Вск 22:59:31 #19 №2224783 
>>2224732
while True:
____pass
грузин на 100%, но только одно ядро, конечно.

Если надо все ядра грузить, то надо на много процессов раскидывать.
Аноним 28/11/21 Вск 23:16:41 #20 №2224797 
>>2224764
Все так, питон умер и вкатываться туда бессмысленно
Аноним 28/11/21 Вск 23:19:23 #21 №2224800 
>>2224797
То ли дело Руби...
Аноним 28/11/21 Вск 23:21:19 #22 №2224801 
>>2224755
Ты сам проверь. Это всё зависит от честности скедулера. Заспавнив кучу прецессов один из них наверняка займёт процессорное время. а там не важно что внутри гоняется. Главное чтобы cpu bound таска выполнялась. например икремент
Аноним 28/11/21 Вск 23:30:48 #23 №2224807 
>>2224801
Займет твердо и четко, у тебя контекст будет без остановки меняться, все будет пердеть и лагать, но при этом проц будет загружен на полпроцента.
Аноним 28/11/21 Вск 23:38:26 #24 №2224823 
люблю python сыглы?
Аноним 29/11/21 Пнд 00:20:13 #25 №2224842 
>>2224807
Переключения контекста это и есть cpu bound задачА, но в режиме ядра. Да в таск менеджере не увидешь, что какой-то процесс занял проц, но проц будет занят т.к. иммено он тут будет изким местом. Иначе из-за чего у тебя система нагрузиться до придела при свободных проце и памяти как ты утверждаешь?
Аноним 29/11/21 Пнд 01:15:25 #26 №2224858 
По вебдеву/QA/любым релевантным вопросам у кого-то есть предложения посотрудничать?
Давненько уже не делал чего-то в этом направлении, но тем не менее.

Skills: python, django, rest api, html, css, js(слегка), Linux, selenium
tg https://privnote.com/CibP6PFc#NqpMEH4JH
Аноним 29/11/21 Пнд 01:19:42 #27 №2224860 
>>2224842
Это не кпу баунд задача, точнее, частично кпу, но буквально на пол шишечки. Я держу в курсе, но разные части процессора делают разные вещи. Ты нагрузишь действительно сильно один небольшой кусок проца и оперативную память.
Аноним 29/11/21 Пнд 01:41:08 #28 №2224866 
1.png
>>2224732
Аноним 29/11/21 Пнд 02:11:02 #29 №2224872 
1.png
>>2224866
Аноним 29/11/21 Пнд 10:19:52 #30 №2224930 
>>2224872
И че ты высрал?
Пидорас что ле?
Аноним 29/11/21 Пнд 12:48:50 #31 №2225043 
В рамках одного треда может существовать только 1 event loop из asyncio?
Аноним 29/11/21 Пнд 13:47:49 #32 №2225116 
https://ideone.com/lyIXz7

Он сломался?
Аноним 29/11/21 Пнд 13:52:31 #33 №2225122 
>>2225116
> Time limit exceeded
Слепой штоле?
Аноним 29/11/21 Пнд 14:28:38 #34 №2225155 
Шо це таке?

Я думал range это генератор. Когда на генератор юзаем next он след значение отдает. А тут чтоб это работало его надо в iter обернуть, с хуяШо це таке?

Я думал range это генератор. Когда на генератор юзаем next он след значение отдает. А тут чтоб это работало его надо в iter обернуть, с хуя ли? ли?
Аноним 29/11/21 Пнд 14:29:03 #35 №2225156 
image.png
Макаба скрин проебала
Аноним 29/11/21 Пнд 14:33:57 #36 №2225163 
>>2225155
теперь ты узнал что range - не итератор.
Ну и что с того? Незначительная хуйня.
Извини, не весь питон создан математиками и не обязан быть идеальным.
Аноним 29/11/21 Пнд 14:43:23 #37 №2225171 
>>2225043
Да. И как ты себе иное представляешь, как один event loop будет чередовать переключение задач с другим, в рамках одного треда?

Вообще в норме в принципе должен быть только один event loop вообще. Если тебе надо несколько, свой в каждом треде, ты скорее всего что-то делаешь сильно не так.
Аноним 29/11/21 Пнд 14:51:26 #38 №2225179 
>>2225155
Это объект, который реализует протокол итератора, поэтому его можно итерировать. Кроме того, у него есть другие фичи вроде слайсов или проверок на вхождение.
Аноним 29/11/21 Пнд 15:05:49 #39 №2225190 
>>2224858
булджад потерся контакт
tg https://pastebin.com/9R3uK3Bb
Аноним 29/11/21 Пнд 15:38:50 #40 №2225219 
>>2224858
>искать работу на дваче, в треде с одними вкатывальщиками
Аноним 29/11/21 Пнд 15:44:21 #41 №2225225 
>>2225219
Я уже давно вкатился например. Все зовут меня Папкой. Я тут все разруливаю.
Аноним 29/11/21 Пнд 16:38:00 #42 №2225268 
>>2225219
Работу не работу, но может какое-то collaboration или startup
Аноним 29/11/21 Пнд 23:18:42 #43 №2225573 
Здравствуйте, это тред много процессорного языка?

# All done. Time taken 45.307 , Workers 1
# All done. Time taken 32.062 , Workers 2
# All done. Time taken 27.553 , Workers 3
# All done. Time taken 38.718 , Workers 4
# All done. Time taken 47.477 , Workers 5
# All done. Time taken 45.283 , Workers 9
# All done. Time taken 45.413 , Workers 12
# All done. Time taken 43.496 , Workers 12
# All done. Time taken 45.294 , Workers 12
# All done. Time taken 45.059 , Workers None
Аноним 30/11/21 Втр 00:46:07 #44 №2225629 
>>2225573
Вангую, твой код — дерьмо. Показывай.
Аноним 30/11/21 Втр 10:57:32 #45 №2225814 
>>2225573
Сколько ядер на твоей говномашине?
что еще блять за "Workers None" ?)
Аноним 30/11/21 Втр 12:25:15 #46 №2225896 
image.png
Перешел к имплементации range в builtins.py - мне показывают вот такую херь, где походу висит просто файл-заглушка, никакой бизнес-логики не видно. Почаму так?
Аноним 30/11/21 Втр 12:32:17 #47 №2225899 
>>2225896
Они реализованы на си.
Аноним 30/11/21 Втр 12:44:13 #48 №2225908 
image.png
>>2225899
Хм, я делал как-то подобное с Cython - функции на Си импортировал в питон-скрипте, но никаких заглушок и py-файлов не повлялось, толь ко с-файлы и so-файл через который шла интеграция. Если надо то заглушку пишу я сам что ле? Оно конфликтовать не будет ни с чем?
Аноним 30/11/21 Втр 13:19:27 #49 №2225931 
>>2225908
Не знаю, я этим не занимался. Вероятно, оно сделано чтобы добавить докстринги и т.п.
Аноним 30/11/21 Втр 13:29:13 #50 №2225938 
>>2225225
А, ты тот самый чмошка, который начал сракой вилять и считать хеш корутины, высирая варнинги, ошибки памяти, носамостоятельно управлять работой корутины?
Аноним 30/11/21 Втр 19:29:19 #51 №2226182 
1595925262content700x455[1].jpg
Помогите распарсить время
Есть строка
2021-10-28T15:32:06.289609+07:00
пытаюсь скормить ее datetime.strptime но меня шлет в нахуй. Если убрать +07:00 то парситься через
'%Y-%m-%dT%H:%M:%S.%f'
Что делать с таймзоной хз
Аноним 30/11/21 Втр 19:43:52 #52 №2226190 
Кочаны, что делать?

Ставлю sentry 9.1.2 через pip в virtualenv - всё ок

Ставлю тот же sentry без virtualenv - падает при установке зависимости cryptography>=1.2 с SyntaxError: invalid syntax

File "/tmp/pip-build-6eVV_0/cryptography/setup.py", line 84
print(f" Python: {'.'.join(str(v) for v in sys.version_info[:3])}")

Питон второй. Если ставить третьим, то тоже херня получается, но другая.

Мне в принципе плевать на каком питоне оно будет, главное чтобы работало. На втором в virtualenv всё ок. Сервис удалось настроить и запустить.

Хочу избавиться от virtualenv, завести в системе отдельного юзера и поставить ему глобально. Что этому pip не хватает?
Аноним 30/11/21 Втр 19:54:51 #53 №2226193 
>>2226190
> Питон второй
Месье знает толк в некрофилии
> На втором в virtualenv всё ок
В виртуальном окружении где точно все ставится пишешь:
pip freeze > requirements.txt
Потом на окружении на котором хочешь воспроизвести пишешь:
pip install -r requirements.txt
Питон должен быть той же версии. Смотришь что пишет. Если опять хуйня, то с логом сюда.
Аноним 30/11/21 Втр 19:59:08 #54 №2226194 
>>2226190
>Питон второй
это зря, может вылезти кокоя-нибудь левая зависимость и все сломать к хуям
Аноним 30/11/21 Втр 20:00:54 #55 №2226196 
>>2225629
>>2225814
ядер 8х2, код просто считал хеши. https://ideone.com/uVnNcz
Аноним 30/11/21 Втр 20:15:35 #56 №2226210 
>>2226193
> pip freeze
Ага, фриз, забыл про него. Немного помогло, по крайней мере cryptography прошел.

Теперь падает на таком

error in httplib2 setup command: 'install_requires' must be a string or list of strings containing valid project/version requirement specifiers

$ python --version
Python 2.7.5

$ python -m pip --version
pip 9.0.1 from /home/sentry/.local/lib/python2.7/site-packages (python 2.7)

Полностью совпадает с тем, что в virtualenv

Ладно, хуй с ним, на сегодня с меня хватит.

>>2226194
Мне просто sentry развернуть надо. Свежая версия у него через докер ставятся, но капец прожорливая. Решил вот покрасноглазить и сэкономить на оперативе.
Аноним 30/11/21 Втр 20:17:31 #57 №2226211 
>>2226196
У тебя max_workers один. Поставь больше. Плюс пул не гарантирует, что всегда столько процессов будет создано вызывай его через map с заданыым chunksize равным размеру твоего пула. хэшфункция простая и преобразование строк в памяти не грузит процессор. Используй hashlib.pbkdf2_hmac с большим количество итераций
Аноним 30/11/21 Втр 20:35:29 #58 №2226223 
>>2224765
> а всякие игры ... на питоне никому не нужны
Скажи это EA, у которых чуть не вся логика симсов на пистоне. Не графика, конечно, но логика -- да.
> мобильные приложения на питоне никому не нужны
Я про них слышал, но не видел пока ни разу. Дайте пример, что ли?
Впрочем, я планирую поизучать Swift как-нибудь, для пэт-проектов будет полезно.
Аноним 30/11/21 Втр 20:54:33 #59 №2226234 
>>2226196
Ты в курсе, что ThreadPoolExecutor создаёт треды, а не процессы? Уж не знаю, что там hashlib делает в плане отпускания гила, но у меня результаты такие (4c/8t):

ThreadPoolExecutor:
All done. Time taken 7.156 , Workers 1
All done. Time taken 6.141 , Workers 2
All done. Time taken 8.997 , Workers 4
All done. Time taken 8.771 , Workers 6
All done. Time taken 8.813 , Workers 7
All done. Time taken 9.821 , Workers 8

ProcessPoolExecutor:
All done. Time taken 7.327 , Workers 1
All done. Time taken 4.464 , Workers 2
All done. Time taken 3.099 , Workers 4
All done. Time taken 2.48 , Workers 6
All done. Time taken 2.573 , Workers 7
All done. Time taken 2.894 , Workers 8
Аноним 30/11/21 Втр 21:03:06 #60 №2226237 
Пытаюсь разобраться.

А вообще есть профиты от какой-то асинхронности движков? И вообще что это значит по факту?

Ну то есть:
я могу взять какой-нибудь ${FRAMEWORK_NAME} и в его функциях в asynk/await, скажем, обращаться к БД. Это же возможно?
А, если возможно, то значит, что ${FRAMEWORK_NAME} может работать асинхронно, так? То есть ${FRAMEWORK_NAME} асинхронный?
Тогда чем отличиется то, что называют синхронными фреймворками от того, что называется асинхронными фреймворками?

В целом, как я понимаю, любой web-framework многопоточный (по крайней мере умеет отвечать на все входящие вопросы даже если они пришли одновременно, запуская обработчики параллельно). Но тут я, возможно, запутался в терминах или в том, кто что делает.
И внутри любого фреймворка исполняется обычный Python-код, который может быть асинхронным.
Ещё по-хорошему асинхронным может (и по-хорошему должен быть) web-сервер (apache/nginx/gunicorn), в том числе чтобы по канонам HTTP2 отдать пользователю все ресурсы одной пачкой, но к фреймворку это прямого отношения не имеет.

Но тогда где граница между синхронными и асинхронными движками?
Возможно (и даже крайне вероятно), я что-то недопонял и всё перепутал. Прошу анона пояснить тогда, в чём цимус, где и на каком этапе возникает асинхронность и как используется.
Аноним 30/11/21 Втр 21:14:54 #61 №2226251 
>>2226237
>${FRAMEWORK_NAME}
Ты тредом ошибся, пхп тред ниже
>Тогда чем отличиется то, что называют синхронными фреймворками от того, что называется асинхронными фреймворками?
Тем, что начинка переключает контекст при вызове.
>любой web-framework многопоточный
Ты долбаеб? Зачем тебе многопоточность в вебе?
>Ещё по-хорошему асинхронным может (и по-хорошему должен быть) web-сервер
Ты долбаеб? На пальцах расскажу что делает веб сервер. Принимает запрос, принимает параметры и передает твоему фреймворк. Какая асинхронщита даже в теории тут может быть?
>чтобы по канонам HTTP2 отдать пользователю все ресурсы одной пачкой
А юзер сидит и лоадер смотрит?
>Но тогда где граница между синхронными и асинхронными движками?
Иди нахуй, тупая макака.
Аноним 30/11/21 Втр 21:34:48 #62 №2226286 
изображение.png
>>2226251
>пхп тред ниже
Синтаксис из баша. Это один из моих "родных" языков, которыми я пользовался и пользуюсь всё время, сколько работаю
>начинка переключает контекст при вызове
А подробнее можно? Ты любую функцию в коде можешь вызвать асинхронно.
>Зачем тебе многопоточность в вебе?
Чтобы, например, не ждать, пока БД или API вернёт результаты, а заниматься полезным делом. Недавно ковырял баг, связанный с таким ожиданием.
А если она нахуй не не нужна, то хули даже в предыдущем треде рекомендовали вместо синхронного фласка асинхронный aiohttp?
>Какая асинхронщита даже в теории тут может быть?
М-м... Многопоточность тогда? Давай подробности.
>А юзер сидит и лоадер смотрит?
А юзер заходит на сайт и понимает, что он грузился либо 0,3с, либо 1,3с. И ему не суть важно, что index.html прилетел за 0,1с на самом деле.
>Иди нахуй, тупая макака.
Сам иди, если нихуя не знаешь.
Аноним 30/11/21 Втр 21:36:41 #63 №2226290 
>>2226251
>Ты долбаеб? На пальцах расскажу что делает веб сервер. Принимает запрос, принимает параметры и передает твоему фреймворк. Какая асинхронщита даже в теории тут может быть?
А ты сам не долбоёб, случайно?
>Иди нахуй, тупая макака.
Сам иди, быдло ёбаное!
мимо
Аноним 30/11/21 Втр 21:40:29 #64 №2226294 
изображение.png
>>2226251
> Тем, что начинка переключает контекст при вызове.
Ты не поверишь что происходит в многопоточности
> Ты долбаеб? Зачем тебе многопоточность в вебе?
Очередная макака, которая считает что RED ASYNC GOES FASTA. В зависимости от задач может быть быстрее и асинхронное, и многопоточное приложение
> Ты долбаеб? На пальцах расскажу что делает веб сервер. Принимает запрос, принимает параметры и передает твоему фреймворк. Какая асинхронщита даже в теории тут может быть?
Долбаеб тут только ты, загугли что такое ASGI и WSGI протоколы для веб-серверов
> Иди нахуй, тупая макака.
Макака тут только ты, тот чел хотя бы пытается разобраться
>>2226237
> А вообще есть профиты от какой-то асинхронности движков? И вообще что это значит по факту?
Это значит, что у тебя есть бесконечный цикл, который переключается между выполнениями разных тасок. Переключение происходит в тех местах, где ты пишешь await. Советую глянуть вот этот плейлист, тут довольно подробно разобрано все
https://www.youtube.com/watch?v=ZGfv_yRLBiY&list=PLlWXhlUMyooawilqK4lPXRvxtbYiw34S8
> я могу взять какой-нибудь ${FRAMEWORK_NAME} и в его функциях в asynk/await, скажем, обращаться к БД. Это же возможно?
Да, возможно
> А, если возможно, то значит, что ${FRAMEWORK_NAME} может работать асинхронно, так?
Не совсем. Суть асинхронных фреймворков в том, что они на каждый запрос вместо потока создают таску в эвент лупе. Если фреймворк не асинхронный и не создает таску на подключение, то смысла что-то в луп закидывать нету, так как у тебя будет блокировка происходить в эти моменты
> Тогда чем отличиется то, что называют синхронными фреймворками от того, что называется асинхронными фреймворками?
Я выше написал уже, синхронный создает по потоку на клиента, асинхронный по таске
> любой web-framework многопоточный
Нет, асинхронный это асинхронный. Их только процессами(aka worker) множат
А агрессивную макаку не слушай, он курсы гикбрейнса по созданию ботов прошел и теперь считает, что стал дохуя экспертом. Пиздец, каждый день таких под десяток приходит с хуйней уровня пикрила
Аноним 30/11/21 Втр 22:00:46 #65 №2226312 
>>2226286
> Чтобы, например, не ждать, пока БД или API вернёт результаты, а заниматься полезным делом.
Ну так и многопоток занимается полезным делом, пока ждет ответ
> А если она нахуй не не нужна, то хули даже в предыдущем треде рекомендовали вместо синхронного фласка асинхронный aiohttp?
Это долбаебы, которые считают необходимым повсюду пихать асинхронщину. Обычно, они даже представления не имеют как эта асинхронщина работает, просто что-то уровня религии
Аноним 30/11/21 Втр 22:48:14 #66 №2226353 
>>2226294
> Пиздец, каждый день таких под десяток приходит с хуйней уровня пикрила

а какие камни в пикриле? мимо-нуб
Аноним 30/11/21 Втр 22:49:13 #67 №2226355 
image.png
Почему не работает?
Аноним 30/11/21 Втр 22:51:55 #68 №2226356 
>>2226182
>Есть строка
import re
Аноним 30/11/21 Втр 23:16:55 #69 №2226375 
>>2226355
> Page not found
Действительно, что же пошло не так? кто-то обосрался с роутингом
>>2226353
> а какие камни в пикриле? мимо-нуб
Начнём с того, что это абсолютно дебильный декоратор, который нихуя не делает и является магнитом для багов, крашей и не очевидного поведения. Во-вторых, банально синтаксис некорректный. Тайпинги через or не работают
Аноним 30/11/21 Втр 23:21:48 #70 №2226380 
>>2226356
Ты идиот?
>>2226182
Ты документацию открывал вообще? У тебя исо время и там спецметод есть для него. Это во-первых. Во-вторых, %z и %Z есть.
Аноним 30/11/21 Втр 23:25:00 #71 №2226384 
Супчанский, аноны. Вопрос по гиту, но отдельного треда вроде нет, так что спрошу здесь.
Вот у меня есть список задач - под каждую я создаю свою ветку, что-то там делаю, тестирую на стейджовом стенде, и если все ок, то коммичусь, делаю пулл реквест и мержу изменения в мастер. Затем беру следующую задачу, выделяю ветку и т.д.
А если я начал делать одну задачу, сделал уже какие-то изменения, и мне внезапно надо переключиться на другую задачу - как мне в этом случае поступать с уже сделанными изменениями в текущей ветке? Я пока что придумал только так:
1. застешить изменения
2. выделить и чекаутнуться на новую ветку
3. сделать там срочную задачу
4. закоммитить изменения
5. открыть ПР и замержиться
6. затем вернуться на первую ветку
7. анстешнуть изменения
(7.1.) опционально фетчнуться и пулльнуть изменения с мастера если надо
8. продолжать делать изначальный таск

Насколько это правильно?
Аноним 30/11/21 Втр 23:26:56 #72 №2226387 
>>2226223
Странно что ты не вспомнил про EVE online где тоже вся логика на питоне.
Аноним 30/11/21 Втр 23:28:00 #73 №2226388 
>>2226375
>кто-то обосрался с роутингом
Я все скопировал с туториала. Где мне искать ошибку?
Аноним 30/11/21 Втр 23:32:10 #74 №2226390 
image.png
>>2226388
>>2226375
К слову, сейчас список url выглядит так, но admin раньше работал, а сейчас нет, значит я что-то зря поменял
Аноним 30/11/21 Втр 23:39:44 #75 №2226397 
>>2226384
А в чём проблема вместо стеша просто закоммитить изменения, вместо стеша? Можно потом либо commit --amend делать, когда дальше обновишь задачу, либо их потом просто слить в один перед пулл реквестом — https://stackoverflow.com/questions/35703556/what-does-it-mean-to-squash-commits-in-git
Аноним 30/11/21 Втр 23:40:08 #76 №2226398 
>>2226390
А ты в главной апе приложения(которое создаётся после startproject) настроил роутинг в свое приложение djpoligon? А роут дальше пробрасываешь?
>>2226384
Все правильно, только я сразу коммит делаю и забиваю хуй, так как наканецта ввели сквеш коммитов и из можно нормально объединить. И если попросят потом передать задачу другому разрабу, то без задней мысли делаешь чекаут пуш ориджин, чекаут обратно и продолжаешь хуярить в другой ветке. Ну и я советую максимально часто пушить изменения, чтобы иметь возможность продолжить работу из другого места в случае чего. Несколько раз так обсирался уже и решил что ну его нахуй. Сквешить коммиты можно и в гитхабе
Аноним 30/11/21 Втр 23:43:01 #77 №2226399 
>>2226390
Так ^$ это же пустой путь, а ты по /index зайти пытаешься. Разве такой url не будут работать лишь для www.website.com/, т.е. без /index? Джангой ни разу не пользовался, могу ошибатся.
Аноним 30/11/21 Втр 23:48:04 #78 №2226404 
>>2226237
> А вообще есть профиты от какой-то асинхронности движков?
Каких таких движков? ты про игровые или про автомобильные?
> я могу взять какой-нибудь ${FRAMEWORK_NAME} и в его функциях в asynk/await, скажем, обращаться к БД. Это же возможно?
Да, это возможно.
> А, если возможно, то значит, что ${FRAMEWORK_NAME} может работать асинхронно, так?
То как это реализовано под капотом никто не знает. Может он там процессы плодит. Но ты можешь предположить. что он асинхронный.
> В целом, как я понимаю, любой web-framework многопоточный
Многопоточность ни есть асинхронность.
> Ещё по-хорошему асинхронным может (и по-хорошему должен быть) web-сервер (apache/nginx/gunicorn)
Apache многопоточный. он для каждого процесса создает отдельный процесс. 100 запросов значит удет крутиться 100 процессов. nginx как раз асинхронный. Один процесс обрабатывает множество соединений.
> числе чтобы по канонам HTTP2 отдать пользователю все ресурсы одной пачкой
Нет там таких канонов.

Тебе надо вырыть яму и наполнить ее водой из ведра. Веро наполняется из крана с определенной скоростью.
Ты нанимаешь для этого:
Однопоточный таджик - сначала выроет яму. потом будет носить ведра.
Многопоточный грузовик таджиков - будут по очереди носить единственное ведро туда сюда, несколько будут копать яму.
Асинхронный таджик - Поставит ведро под кран и пока оно наполняется копает яму. Как ведро наполнилось несет его и выливает в яму, ставит обратно под кран и продолжает копать поушы в воде
Аноним 30/11/21 Втр 23:57:18 #79 №2226411 
>>2226397
>>2226398
А это норм история с коммитом сырых изменений? Я просто хз, впервые работаю над проектом с командой, до этого таких ситуаций не возникало. Я думал, что коммит - это условно говоря ты подписываешься, что вот эта порция кода удовлетворяет неким минимально требованиям и она принципиально работоспособна, а тут я по сути могу коммитнуть наполовину написанную функцию - насколько это хорошая/плохая практика?
Аноним 30/11/21 Втр 23:59:21 #80 №2226413 
>>2226286
> Чтобы, например, не ждать, пока БД или API вернёт результаты, а заниматься полезным делом.
Нюанс в том, что без данных из базы данных ты никаким делом дальше заниматься не можешь. Веб сервер максимум что может, так это обработать другой запрос. Если он есть. А если нет, то похуй.
> А если она нахуй не не нужна, то хули даже в предыдущем треде рекомендовали вместо синхронного фласка асинхронный aiohttp?
Ты забыл куда ты пришел? Я постоянно встречаю таких людей котоыре текут от асинхронщины, от программирования в VIM, от чистого кода и процей моднйо хуйни про которую говорят что оно тру. Но если распросить этих мамкиных сеньиоров, то окажется они не вполне понимают как работает питон принципе и компьютер в частности.
Запуск асинхронной таски в процессе реализован избыточным кодом. Если в работе твоего процесса нет длительных ожиданий, то этот дополнительный код наоборот замедлит работу. Если же ты ждешь из базы какой нибудь отчет по 5 минут, то асинхронность тебе даст заметный бкст, т.к. время выполнения избыточного кода меньше времени ожидания данных и вот эта разница и есть твой прирост. Но опять же, только если тебе есть чем это время занять.
Аноним 01/12/21 Срд 00:02:53 #81 №2226419 
>>2226413
Двачую мудрого анона
мимо >>2226294
Аноним 01/12/21 Срд 00:06:00 #82 №2226421 
>>2226380
> Ты документацию открывал вообще?
В документации черным по белому напсиано, что %Z это строковое представление таймзоны, а %z это +7000 без двоеточия.
Однако, если эту строку ввести в консоль браузера, то Date.parse ее прекрасно преобразует. Хочу такое же решение. email.utils не помогают.
Аноним 01/12/21 Срд 00:13:38 #83 №2226425 
>>2226384
> но отдельного треда вроде нет
Вот есть что то похожее.
https://2ch.hk/pr/res/2155312.html

Алгоритм жизнеспособен. За исключением того, что вместо стеша лучше коммитить. Похуй что у тебя там рабочее или нет. Один хуй потом найдутся баги и придется делать правки. Да и шанс проебать код меньше.
> (7.1.) опционально фетчнуться и пулльнуть изменения с мастера если надо
Каждое утро начинай с ребейза на мастер. Если задача долгая, то к моменту ее завершения может обнаружить пару десятков конфликтов при мерже.

А вообще лить сразу в мастер это не особо норм. Если вас раблтает больше одного человека, то лучше всю неделю лейте в dev а в пятницу после тестов уже дев в мастер.
Аноним 01/12/21 Срд 00:24:33 #84 №2226437 
>>2226384
Всё давно придумано до нас
https://nvie.com/posts/a-successful-git-branching-model/
Аноним 01/12/21 Срд 00:25:36 #85 №2226438 
image.png
>>2226437
Аноним 01/12/21 Срд 00:57:14 #86 №2226455 
изображение.png
>>2226421
Блять, ну ты бы затестил хотя бы
Аноним 01/12/21 Срд 01:10:19 #87 №2226459 
>>2226455
Я затестил
ValueError: time data '2021-10-28T15:32:06.289609+07:00' does not match format '%Y-%m-%dT%H:%M:%S.%f%z'
Хуй знает почему у тебя работает.
Аноним 01/12/21 Срд 01:13:30 #88 №2226461 
>>2226459
А у тебя питон какой версии? И ты один-в-один код запускаешь? Если нет, то кидай сюда
Аноним 01/12/21 Срд 01:19:06 #89 №2226463 
code.png
>>2226461
Аноним 01/12/21 Срд 01:23:29 #90 №2226465 
>>2226463
Ебать, обновись хотя бы на 3.9, зачем на древнем говне сидеть? Там под 3.6 может быть документация другая, этой версии около 5 лет уже
Аноним 01/12/21 Срд 01:27:07 #91 №2226467 
>>2226411
>А это норм история с коммитом сырых изменений?
Тебе не обязательно этот коммит куда-то пушить вообще, у тебя целая ветка может быть локальной для твоего компьютера. Так что и те ветки, что ты создаёшь для своих задач, никто другой не видит даже. Что хочешь там, то и твори.

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

Ничего плохого в том, что во временном коммите есть недоделанный код, если этот коммит не мерджится никуда, разумеется, нет.
Аноним 01/12/21 Срд 01:30:09 #92 №2226468 
>>2226465
Это убунта 18,04 Там нельзя обновится до другйо версии. Если только саму убунту обновить или качать из неофициальных репозиториев. А код этот надо выполнять на сервере, где точно такая же убунта. И мне чет нихуя не хочется обновлять настроенный сервер. Ведь если что то идет по пизде, обычно виноват тот кто крайний на сервере что то делал.
К томуже это все лечится просто удалением двоеточия в таймзоне. Костыль конечно, но это более простое решение.
Аноним 01/12/21 Срд 01:31:29 #93 №2226470 
>>2226468
Попробуй открыть для себя venv, можешь там хоть 3.10 поставить. Именно для таких целей он и был сделан, а на бубунте стоит древнее говно мамонта, так как там все баги пофиксилиДА НИХУЯ, dealloc None В 3.10 ДО СИХ ПОР ХУЯЧИТ
Аноним 01/12/21 Срд 01:51:45 #94 №2226472 
image.png
>>2226425
А можешь поподробнее про ребейз на мастер рассказать? Мне старшие коллеги говорили, что просто после выделения ветки с мастера (на всякий случай) и перед коммитом делай фетч и пулл и все будет ок.
У нас еще есть такая бага - я доделываю какую-то фичу ветке TASK-1, коммичу и открываю пулл реквест, сеньор относительно быстро его ревьют и мержит. Далее я беру следующую таску, выделяю под нее ветку TASK-2 с удаленного мастера, и все мои изменения, сделанные в ветке TASK-1 пропадают вообще из пайчарма. Сеньор говорит, у них на прошлой работе такая же хуйня была, и однозначно починить они не смогли, то ли там у гита какая-то задержка в синхронизации, то ли кеш, то ли хуй его знает. Поэтому сразу после выделения ветки с мастера я делаю гит фетч & гит пулл с мастера - и изменения ветки TASK-1 появляются обратно. Хуй знает короче, магия.

Насчет литья сразу в мастер - я мб не так выразился. Я работаю в ветке, коммичу свои изменения и открываю пулл реквест - его аппрувят и только тогда мержат в мастер. Литье по пятницам у нас особо не сработает, т.к. мы работаем по канбану - приняли задачу, сделали, залили.


>>2226437
>>2226438
Выглядит сложно, у нас используется "Гитхаб флоу" (пикрил), никаких фича, девелоп и хотфиксов нет, только мастер, в который мержатся пулл-реквесты.

>>2226467
Очень подробно объяснил, спасибо!
Аноним 01/12/21 Срд 03:23:11 #95 №2226476 
>>2226472
> А можешь поподробнее про ребейз на мастер рассказать?
Приходишь на работу, открываешь свою ветку, над которой вчера работал, и пишешь
git rebase master
Если кто то что то вливал в мастер, то эти изменения подтянуться. твоя ветка как бы отделилась от актуального мастера.
Могут возникнуть конфликты, если кто то правил файлы над которыми ты работаешь в своей ветке. Если часто ребейзиться на актуальынй мастер, то конфликты можно решать понемногу, а не все разом. Это актуально для больших проектов над которыми рабоатет хоят бы 3 человека.
> Далее я беру следующую таску, выделяю под нее ветку TASK-2 с удаленного мастера, и все мои изменения, сделанные в ветке TASK-1 пропадают вообще из пайчарма
PyCharm ничего от себя не добавляет. Он дерагает системный гит. Если нет изменений. Значит вы что то сделали не так.
По идее после того, как ты влил свою ветку и ее замерили, ты должен чекаутнуться на мастер и сделать пулл. Мастер станет такой же как в гите.
Фетч обычно нахуй ненужен. Он тянет просто список изменений, но не сами изменения. Что бы гит был в курсе, что там такие то ветки создались и такие то коммиты. Изменения накатывает именно пулл.
ХЗ что там за баг, что про него аж несколкьо человек знает. Может у вас на офис стоит кеширующая прокся и она то и не дает слить актуальные данные.
Аноним 01/12/21 Срд 03:37:20 #96 №2226478 
>>2226476
> git rebase master
А чем этот гит ребейз отличается от гит фетч + гит пулл мастер? Ну пускай даже без фетча, раз ты говоришь, что он не нужен.
Аноним 01/12/21 Срд 10:45:03 #97 №2226551 
>>2226251
Нахуй ты че-то высираешь? Ты ж даже на уровень джуна не тянешь
Аноним 01/12/21 Срд 11:04:57 #98 №2226562 
>>2226294
>Долбаеб тут только ты, загугли что такое ASGI и WSGI протоколы для веб-серверов
>> Иди нахуй, тупая макака.
>Макака тут только ты, тот чел хотя бы пытается разобраться
Вот двачую этого.
мимо
>>2226413
А можно сначала проверить, быстро ли получится дать ответ или нет (например, проверить на 304/404 и отдать их, если что, ну может статические файлы короткие типа редиректов на "у вас кукисы не включены"), а если не получится, то вот только тогда создать отдельный асинхронный таск? Ну то есть сделать один или два процесса, скажем, только для быстрых запросов, которые обрабатываются моментально, а все остальные запросы обрабатывать в остальных процессах?
Или так не делают?
Аноним 01/12/21 Срд 11:17:59 #99 №2226566 
Мне вот интересно стало. Можно ли через curses отобразить tqdm как-то? Или там только текст прокидываются? Просто я хотел tqdm обложить звездочками снизу и сверху, но использовать декоратор для этого не катит, там сначала верхняя линия, потом полная загрузка прогресс бара tqdm, и ток потом нижняя. А я хочу чтобы сразу все обрамление прогрузилось.
Аноним 01/12/21 Срд 11:18:56 #100 №2226568 
>>2226562
Не понял что ты хочешь сделать. Ты принял запрос, что-то там не так - отдаешь ошибку без всяких асинк тасок и дело с концом. Нету ошибок - делается какая-то работа, в которой может быть асинхронность (а может и не быть, зависит только от написанного тобой). Если ты про запросы в бд пытаешься определить какой быстрый, а какой достаточно медленный, чтоб его в эвейт пихнуть, то тут в целом два варика. Либо ты пишешь на асинк фрейме и тебе строго похуй быстрый он там или нет и ты всегда пихаешь такие вещи в эвейт (иначе будет блокировка лупа, пусть даже на мгновение с каким-то ультрабыстрым запросом, все равно это плохо в целом скажется), либо если ты в синхронном фрейме работаешь и:
1. тебе нехуй делать до завершения этого запроса - делаешь синхронно
2. тебе можно дохуища всего сделать до завершения запроса - стартуешь ивент луп и делаешь запрос асинхронно, пока он делается совершаешь какую-то грязь у себя.
но вообще последний варик это нечто ебнутое и редкое.
Аноним 01/12/21 Срд 12:45:58 #101 №2226602 
>>2226398
>Ну и я советую максимально часто пушить изменения, чтобы иметь возможность продолжить работу из другого места в случае чего. Несколько раз так обсирался уже и решил что ну его нахуй.
Вот здесь я не догоняю. Из какого другого места? В смысле с другого компьютера, что ли? А как это? В смысле, почему вдруг, зачем?
Или ты о том, что кто-то запушит, и в итоге мастер перестанет мержиться с твоей веткой, а если ты её первым запушишь, то конфликты мерджа придётся разргебать тому, кто не запушил свою?
>>2226425
>Каждое утро начинай с ребейза на мастер. Если задача долгая, то к моменту ее завершения может обнаружить пару десятков конфликтов при мерже.
А почему не каждый час, скажем? Настроить ребейз по кулдауну?
А если в dev лить, то тоже rebase каждое утро делать?
>>2226476
Тут как посмотреть... Может быть один раз проще разрешить конфликты, чем три раза их разрешать, и в итоге прийти к тому же самому. Зачем разрешать конфликты с версиями, которые как бы промежуточные?
>Фетч обычно нахуй ненужен. Он тянет просто список изменений, но не сами изменения. Что бы гит был в курсе, что там такие то ветки создались и такие то коммиты. Изменения накатывает именно пулл.
Если я правильно понимаю, фетч от пулла отличается только тем, что фетч только скачивает в локальный гит изменения, а пулл ещё и сразу же мержит их с локальной веткой. Поправьте, если это не так.
>>2226478
Я так понимаю, что ничем. И ребейз по сути делает мердж, и пул-реквест по сути делает мердж.
Ребейз, как я понимаю, мерджит по одному коммиту, а пулл все разом. В итоге может быть отличается только порядок того, что с чем мерджится, но от перемены мест слагаемых... А фетч в связке с pull, вроде как, точно не нужен, так как pull это fetch+merge. Как бы.
>>2226438
Объясните вот этот нижний треугольник состояний на картинке. Где из develop льётся на rel.branch и тут же то же самое состояние льётся обратно в develop. Что имеется в виду? Зачем? Зачем туда и сразу обратно, что это даст?
Аноним 01/12/21 Срд 12:58:06 #102 №2226614 
>>2225896
Не уверен, но по моему это какая-то внутренняя хрень IDEшки, которую ты используешь, необходимая для анализа кода. Никакого builtins.py в библиотеке питона нет, но какой-нибудь PyCharm при попытке перейти к имплементации встроенного объекта кидает примерно на такой же файл.
Реальная имплементация range выглядит вот так
https://github.com/python/cpython/blob/main/Objects/rangeobject.c
Аноним 01/12/21 Срд 13:02:16 #103 №2226618 
>>2226404
>Однопоточный таджик - сначала выроет яму
Что-то какой-то антиарийский нацизм развели. Почему как таджик, так сразу землекоп? Почему не еврей-отоларинголог?
Ну ладно. Допустим, вёдра, яма и ведро.
Яма - это же база данных, и её надо выкопать. Но тогда носить мы будем не в неё, а обратно. Соответственно, носить будем, скажем, добытые в этой яме алмазы.
Однопоточный работник - выроет яму до скального грунта, сложит все алмазы в кучку, потом насыпет в ведро и отдаст это ведро тебе.
Многопоточный грузовик работников - один будет рыть яму, другие будут ждать, не попросишь ли ты где-то выкопать ещё одну яму. И у каждого будет своё ведро. Но ведро у них будет только одно и отдавать они его будут только когда всю яму выкопают.
Асинхронный работник - копнул, увидел алмаз, положил его в ведро, отдал ведро тебе. Ещё раз копнул, там ещё алмаз, положил его во второе ведро, кинул второе ведро тебе вдогонку, поставил рядом третье ведро и продолжил копать.
Так?
Аноним 01/12/21 Срд 13:29:26 #104 №2226642 
>>2226618
>Асинхронный работник - копнул, увидел алмаз, положил его в ведро, отдал ведро тебе. Ещё раз копнул, там ещё алмаз, положил его во второе ведро, кинул второе ведро тебе вдогонку, поставил рядом третье ведро и продолжил копать.
Так?
Не, асинхронный работник прорабу без ведра выротые алмазы в ебло кидает. И так каждый. Но зато каждый из работников ждет сввоей очереди вырыть алмаз, а копает в сущности только один из них. (если это не внешняя для процесса операция)
Аноним 01/12/21 Срд 13:30:46 #105 №2226643 
изображение.png
>>2226468
В двадцатой убунте вот так работает. То есть одним шаблоном три варианта парсит. Буквенное обозначение парсит только %Z, и то коряво. MSK и GMT знает, а EET нет.
Доков не читал.
>>2226470
>dealloc None
А что это и зачем?
Аноним 01/12/21 Срд 13:41:14 #106 №2226651 
>>2226642
Но ведь таких асинхронных работников может запущено сразу несколько, в разных процессах? Соответственно, копать смогут сразу несколько из них. При чём каждый, гипотетически, может ещё и асинхронно переключаться с одной ямы на другую, но в каждый момент времени каждый будет копать только одну яму. То есть даже если каждый из работников будет асинхронно копать по три отдельные ямы, то в каждый момент времени они будут копать лишь десять ям, а двадцать ям будут оставаться в ожидании.
Так?
Аноним 01/12/21 Срд 13:44:02 #107 №2226657 
>>2226651
Да, копание ям это CPU bound задача, асинхронность нужно для IO bound, а в вебе таких операций дохуя.
Аноним 01/12/21 Срд 13:52:52 #108 №2226664 
>>2226404
А сможешь объяснить на примере сосания хуев?
Аноним 01/12/21 Срд 14:40:45 #109 №2226712 
>>2226651
>синхронно переключаться с одной ямы на другую
Считай что нет.
>каждый из работников будет асинхронно копать по три отдельные ямы
В контексте работника это будет синхронно.
>Так?
Из-за прошлого комментария как бы получается, что не так.
Ваще асинхронность роляет только тогда, когда есть внешняя блокирующая кпу задача. Когда такие вещи случаются обычно жопа чует что вот оно момент настал.
Аноним 01/12/21 Срд 16:07:18 #110 №2226777 
>>2226193
>>2226194
Корочи оказалось, что надо было просто апнуть pip и setuptools до тех что запускались в virtualenv, и поставилось даже без фриза.

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

держу в курсе
Аноним 01/12/21 Срд 16:13:40 #111 №2226781 
image.png
>>2226476
>Фетч обычно нахуй ненужен. Изменения накатывает именно пулл.
Если быть точным, то изменения накатывает merge, а pull — это просто алиас для git fetch + git merge.
Поэтому-то фетч перед пуллом и не нужен — он сам его делает.

>>2226478
>А чем этот гит ребейз отличается от гит фетч + гит пулл мастер?
Это разные вещи. git pull скачивает все изменения с удалённого репозитория в твой локальный. rebase же меняет "базовый" коммит ветки.
Ты выделил себе ветку под таск1, эта ветка базируется на коммите мастер1. Но пока ты работал над своей задачей, в мастер смержили ещё коммитов, в итоге твой бранч с таск1 базируется уже не на самам свежем коде мастера, и в дальнейшем при мерже твоего таска могут возникнуть конфликты, которые придётся исправлять. rebase позволить сделать так, будто бы ты отделился в ветку таск1 с коммита мастер2 и уже потом добавил свои изменения.
При мерже после пулл реквеста всё равно этот процесс ребейза будет происходить, и в случае конфликтов их надо будет решать, поэтому нет смысла не делать этого постепенно.

Вот в пеинте нарисовал примерно. То есть, приходя утром на работу исполняешь команды из пунктов 2 и 3 и продолжаешь свою работу (починив конфликты в пункте 3, если вдруг будут).
Аноним 01/12/21 Срд 17:03:14 #112 №2226831 
>>2226602
> Вот здесь я не догоняю. Из какого другого места? В смысле с другого компьютера, что ли?
Да, с другого компьютера
> А как это? В смысле, почему вдруг, зачем?
Ты заболел или стало хуево просто и решил поработать из дома -> тебе пизда, так как все изменения остались на работе
> Или ты о том, что кто-то запушит, и в итоге мастер перестанет мержиться с твоей веткой, а если ты её первым запушишь, то конфликты мерджа придётся разргебать тому, кто не запушил свою?
Конфликты мержа должен разгребать тот, чья таска более сложная и вероятность сломать которую выше. Если обе таски такие, то и разгребать будете вместе. Это вообще никак связано быть не должно с последовательностью пушей и мров
Аноним 01/12/21 Срд 17:55:17 #113 №2226901 
>>2226831
А как можно вместе разгребать конфликт слияния? Технически, применительно к git? Ну вот оба попробовали сделать merge, у обоих конфликт. У обоих одинаковые файлы с <<<<<<< ===== >>>>>> А дальше что? Они ведь пока не закончат слияние, ничего закоммитить не могут. Допустим, кто-то устранил конфликт в одной процедуре, а другой в этот момент устранил конфликт в другой процедуре. А как объединить?
Аноним 01/12/21 Срд 17:59:35 #114 №2226905 
>>2226901
Рибейзит один. Затем рибейзит другой
Аноним 01/12/21 Срд 18:04:58 #115 №2226908 
>>2226602
>Объясните вот этот нижний треугольник состояний на картинке.
Объясняю.
Ветка master содержит текущий продуктовый код. В ветке develop лежит текущий актуальный код в разработке.
Макаки пилят и пилят код в фича-бранчах (по ветке на каждую фичу), потом сливают его в девелоп.
Тимлид говорит "готовим новый релиз" и переливает код из develop в release. Там гоняют тесты и прямо там фиксят косяки.
Каждый косяк, пофикшеный в release возвращается в develop, чтобы в develop была актуальная версия кода и можно было делать из него branch для новых веток или rebase для старых.
Но если очередная фича прилетит из одного из feature-бранчей в develop, то в release этот код не попадёт.
Когда код в release будет достаточно качественный, его переливают в мастер и тегают. Возможно, имело бы смысл bugfix'ы для release делать в ещё отдельной ветке (чтобы недоделанные фиксы случайно не попадали в develop), но это ещё сильнее усложнило бы и без того перегруженную схему.
Эта схема называется git flow и многие конторы от неё отказываются в пользу более лаконичных, например, gitlab flow.
Аноним 01/12/21 Срд 18:12:50 #116 №2226914 
К некому сервису подключается человек и сидит ждет "собеседника" - другого такого же чела. Когда второй появляется, между этими двумя создается чат и они оказываются в нем, но пока нужного чела нет, тот первый будет сидеть и ждать его появления. Естественно таких людей может быть множество и между каждой парой будет создан чат.

Как такое реализовать?.. У меня есть свои наработки, но мы просто в бесконечном цикле в треде проверяем массив с ожидающими посетителями (превращая его в set и убирая из него самого же посетителя) и если он пустой то засыпаем на 0.1 секунды, если нет - вытаскиваем первого что попался. Что-то подсказываем мне использовать очередь но вот незадача - первый посетитель также окажется в этой очереди (в моем случае мы избавляемся от него при помощи множеств)
Аноним 01/12/21 Срд 18:21:46 #117 №2226923 
>>2226914
Ты думаеш с т.з. клиента, а надо сервера.
На сервере LIFO очередь, если она >= 2, то попишь пару и соединяешь, всё.
Аноним 01/12/21 Срд 19:09:36 #118 №2226965 
>>2226905
Рибейзит относительно чего? Вот у них два текста с содержимым AB и CD. Они не сливаются в EF. Оба попытались сделать из обоих текстов простым слиянием EF, но у них ничего не вышло. Вышло AC-BD. В итоге один из A и C сделал E, то есть сделал E-BD, другой сделал AC-F. Как из этого получить EF? Что куда рибейзить?
>>2226908
Это я всё понял, но вон там ведь внизу в последний зелёный кружок стрелка из develop и входит, и сразу выходит обратно. То есть там нет никаких багфиксов (выше багфиксы были отдельными кружками показаны). А зачем тогда обратно в develop что-то копировать? Там же то же самое в данный момент. В этом какой-то особый смысл или нет никакого особого смысла?
Аноним 01/12/21 Срд 19:28:36 #119 №2226991 
>>2226643
Ошибка с подсчетом refcount у None. Из-за этого питон пытается удалить None и падает с Python Fatal error Очень редко возникает, но при этом если возникает, то никак не фиксится, только переписыванием исходников на сях
>>2226901
> А как можно вместе разгребать конфликт слияния?
Созваниваетесь в зуме/телеге, один шарит экран, а второй говорит что писать. Самый надежный и быстрый вариант
> Технически, применительно к git?
Можно придумать какой-то изъебистый способ, но обычно один разруливает все, что смог, а что не смог, то выбирает accept their и коммитит. Другой пулит и фиксит хуйню. И так итеративно по очереди допиливают, чтобы работало
Аноним 01/12/21 Срд 19:31:08 #120 №2226995 
>>2226923
> На сервере LIFO очередь
Мы вам перезвоним
Аноним 01/12/21 Срд 20:02:09 #121 №2227014 
>>2226991
import ctypes
lib = ctypes.PyDLL("libpython3.8.so")
lib.Py_IncRef(ctypes.cast(id(None), ctypes.py_object))
:)
Аноним 01/12/21 Срд 20:23:28 #122 №2227025 
Вопрос не совсем по теме треда, но что как открыть задеплоенный проект, обернутый в докер? Не локально я имею в виду, а уже на впске, открыть с моего компа при этом. По ip адресу арендованного сервера нихуя, по ipадрес:8000 тоже.
Аноним 01/12/21 Срд 20:25:58 #123 №2227027 
>>2227014
Можно через декоратор FuncType
Аноним 01/12/21 Срд 20:27:51 #124 №2227029 
>>2227025
Что значит открыть? Если подключиться к консольке, то через ssh подключаешься и там attach к контейнеру делаешь
Аноним 01/12/21 Срд 20:31:08 #125 №2227032 
>>2227025
Ты порты не прокинул контейнеру наверное
Надо при docker run mydoker добавить -p 8000:8000
Аноним 01/12/21 Срд 20:46:03 #126 №2227046 
>>2227029
Я задеплоил проект с gunicorne, запустил его через docker-compose, вроде всё работает, по крайней мере никаких ошибок нет. Как мне его открыть в браузере теперь только?
>>2227032
>Надо при docker run mydoker добавить -p 8000:8000
По идее это docker-compose.yml делает.
Вот мой docker-compose.yml https://pastebin.com/DykPTSZx
Вот докерфайл https://pastebin.com/08Q1SRiy
Вот баш энтрипоинт https://pastebin.com/bqMfZqji
Ну и нжинкс ещё до кучи https://pastebin.com/MEFfxqLM
Делаю docker-compose --build, вроде всё заебись, бдшка создается, миграции проводятся. Как только мне сайт-то сам открыть?
Аноним 01/12/21 Срд 20:49:33 #127 №2227047 
>>2227046
expose:
- 8000
expose открывает порты для других контейнеров, чтобы замапить с хостом нужно
ports:
-8000:8000
И да, ты БД в интернет открыл зачем-то
Аноним 01/12/21 Срд 20:57:07 #128 №2227056 
>>2227047
>ports:
-8000:8000
Спасибо.
>И да, ты БД в интернет открыл зачем-то
Да я использовал шаблон с пет проекта знакомого, а он пользуется ещё каким-то сервисом для мониторинга своих контейнеров через веб.
Аноним 01/12/21 Срд 21:12:24 #129 №2227078 
>>2227046
> Как мне его открыть в браузере теперь только?
А ну тебе вон выше написали, докер самой уебищной документацией эвер обладает. Буквально блять энциклопедия без гайдов и нормальных примеров. Советую гуглить готовые докер/докеркомпоуз файлы и их под себя адаптировать
Аноним 01/12/21 Срд 22:26:32 #130 №2227142 
>>2227014
Непонятно только, зачем кому-то пытаться удалять None.
Аноним 01/12/21 Срд 22:59:28 #131 №2227177 
>>2227027
Да можно, конечно, но то была шутка и я бы такую дурь в проде не осмелился использовать.

>>2227142
Я тоже не понимаю, что там такое должно происходить. Исходники бы увидеть.
Аноним 01/12/21 Срд 23:26:43 #132 №2227190 
19345011.jpg
>>2225938
>самостоятельно управлять работой корутины
Это поведение альфы. Самостоятельно берет дело в свои руки и вертит им как хочет. Все правильно ящитаю
Аноним 01/12/21 Срд 23:28:13 #133 №2227191 
>>2226923
>LIFO
Ты хотел сказать FIFO?..
В любом случае как именно быть когда мы вытащили из очереди человека (или его айдишник - не суть) а это оказался тот же самый чел? Соединить с самим же собой?
Аноним 01/12/21 Срд 23:39:40 #134 №2227194 
>>2227177
>>2227142
Библиотека zstandart, при больших нагрузках начинает пытаться удалять None. Такие дела, недавно только эту хуйню починили, три недели ушло на фикс бтв
>>2227191
А какого хуя у тебя тот же айдишник оказался в очереди? Это означает, что у тебя ОЧЕНЬ хуевый код. Энивэй это фиксится элементарной проверкой и я бы в таких случаях выпиздовывал пользователя из очереди и высирал критикал в логи
Аноним 02/12/21 Чтв 00:53:23 #135 №2227244 
>>2226211
>>2226234
Ладно, всем спасибо. Реальная задача в Питоне 3.8 стала явно быстрее, алсо Питон 3.6 глюкавый в плане мультипроцессинга. Знали б вы как я с ивентами и сигналами в Qt заебался...

Done: 124 results. Time 18.73 sec, Workers: 1 multiprocessing
Done: 124 results. Time 9.73 sec, Workers: 2 multiprocessing
Done: 124 results. Time 6.01 sec, Workers: 4 multiprocessing
Done: 124 results. Time 4.59 sec, Workers: 6 multiprocessing
Done: 124 results. Time 4.02 sec, Workers: 8 multiprocessing
Done: 124 results. Time 3.786 sec, Workers: 12 multiprocessing
Аноним 02/12/21 Чтв 01:19:08 #136 №2227253 
>>2227244
> алсо Питон 3.6 глюкавый в плане мультипроцессинга
То есть, ты запускаешь не процессы, а треды, не по количеству ядер, а один, но виноват все равно глякавый питон?
Аноним 02/12/21 Чтв 01:36:27 #137 №2227257 
Хотел посоветоваться стилистически.

Как в питоне поступают с глобальными переменными?
Вроде все документировано и довольно просто.
Но кажется так не делают?

Является ли зашкваром писать global в функции?

У меня необычные условия:
- должно работать в python2.7
- все должно быть одним файлов
- я пишу небольшую сисадминскую утилитку и можно отойти от трушной архитектуры, но совсем позориться не хочется.
полчаса как програмист на жаваскрипте 02/12/21 Чтв 03:13:01 #138 №2227270 
pidor.png
петян, что под пистон есть, чтоб простые капчи (пять заглавных латинских букв, пару линий, шум) щёлкать?
Аноним 02/12/21 Чтв 03:14:58 #139 №2227271 
>>2227257
пиши в глобальный словарь, к нему можно и без объявления global всё время обращаться. такой вот питон.
Аноним 02/12/21 Чтв 03:32:12 #140 №2227272 
>>2227046
expose можешь смело убирать. В nginx открой 80 порт через ports
Аноним 02/12/21 Чтв 09:14:56 #141 №2227304 
>>2224732
pycharm спокойно роняет комп, ставишь logger, и через while логгируешь от 1 до 100000, где-то на 15к все зависает и если убить процесс комп в себя приходит где-то минут через 10. Как-то проверял логгирование, сколько файл будет весить, так он файл не создал и просто в консоли выводить начал и завис.
Ещё ронял когда в django в orm сделал создание 2к объектов, почему завис, я до сих пор не понял, но через минут 5 отпустило, когда убил pycharm и все остальное. Комп был в режиме слайдшок.
Ryzen 7 2300 проц
Аноним 02/12/21 Чтв 10:00:13 #142 №2227318 
>>2226965
АВ рибейзится относительно EF и мержится. Затем CD рибейзится относительно EF и также мержится. Как и говорили, кто именно первый должен решать конфликты и мержить в основную ветку свой пулл-реквест, должны решить сами разрабы, как правило это тот, чьи фичи важнее
Аноним 02/12/21 Чтв 10:01:50 #143 №2227319 
>>2227257
>- должно работать в python2.7
Так оно уже не поддерживается, что вы с ним мучаетесь
Аноним 02/12/21 Чтв 10:04:44 #144 №2227321 
>>2227257
>Является ли зашкваром писать global в функции?
Нахуя тебе это, ты скажи? Передавай в функцию/метод параметры явно
Аноним 02/12/21 Чтв 10:47:51 #145 №2227336 
>>2227194
>Библиотека zstandart, при больших нагрузках начинает пытаться удалять None
Ну это, скорее всего, не проблема интерпретатора, а проблема библиотеки. Видимо, неправильная работа с указателями на динамически создаваемые переменные. Надо её просто отладить хорошенько, и перестанут константы удаляться почём зря.
Аноним 02/12/21 Чтв 10:51:34 #146 №2227338 
>>2227319
Поддерживается. Мной.
Не все программисты в мире делают веб, знаешь ли.

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


Дело в том, что код в принципе из без global нормально работает в силу особенностей variable scope питона.
Неужели это можно смело использовать? Зачем тогда ключевое слово global ? Не хочу выглядеть стилистически неместным.
Аноним 02/12/21 Чтв 11:03:04 #147 №2227347 
>>2227338
>Зачем тогда ключевое слово global
Чтобы переприсваивать
Вообще даже без global можно мутировать глобальное состояние, что является херовым признаком. Если у тебя мутаций нет, можешь так и юзать свой сервис конекшна к БД (или че там у тебя), но вообще как правило в функцию передают объект курсора или объект конекшна, внутри функции с ним уже работают, в жопаскрипте подход тот же

>Не все программисты в мире делают веб
Просто блин обнови питон... Неужели у вас там 1 глобальный интерпретатор стоит без venv в котором все зависимости сразу нахуячены?
Аноним 02/12/21 Чтв 11:43:43 #148 №2227372 
>>2227347
>Вообще даже без global можно мутировать глобальное состояние, что является херовым признаком
то есть, мне таки придется писать global как я и подозревал ? окей.

>Просто блин обнови питон...
Не нужно. Это особенная программа. Она должна работать на старье.
Аноним 02/12/21 Чтв 12:30:40 #149 №2227397 
>>2226294 >>2226404 >>2226413
И всем остальным, позитивно участвующим -- большое спасибо. Какое-то понимание появилось.
За плейлист -- отдельное гранд мерси. Просмотрю, как смогу выделить 4,5 часа.
Аноним 02/12/21 Чтв 12:41:29 #150 №2227405 
>>2226413
>Запуск асинхронной таски в процессе реализован избыточным кодом
>пук
Оверхед там не более 10% для нормальных фреймворков, 20% в крайнем случае, превышения уже как бэ намекают, что у вас получилось говно (как в случае с новым "асинхронным фласком"). Если пишешь сервак и не используешь асинхронный подход то юзай адекватный мультрединг/горутины, т.к. ни одного ни другого в питоне нет, то бля кроме асинхронки ничего не остается. Спорить с этим - значит жить в 2008
Аноним 02/12/21 Чтв 13:16:05 #151 №2227425 
Есть только 2 user-defined сигнала в Unix (и соответственно в Питоне) это SIGUSR1 и SIGUSR2, как мне сделать больше своих собственных сигналов? Можно было б через передаваемые параметры, но такого для сигналов нет...
Аноним 02/12/21 Чтв 13:26:12 #152 №2227429 
>>2227405
Нет, не 10% и даже не 20. Оверхэд там приличный, в два-три раза скорость работы асинхронщины может быть ниже. А ты просто малолетний долбаеб, который даже не понимает как работает асинхронность в питоне
Аноним 02/12/21 Чтв 13:30:42 #153 №2227431 
>>2227429
Ебанько, uvloop уже давно оптимизирован по самые не могу
Вылезай из под камня, где ты просидел начиная с 2008
Аноним 02/12/21 Чтв 13:31:48 #154 №2227433 
>>2227425
tcp-сокет открывай и слушай команды.
Аноним 02/12/21 Чтв 14:01:57 #155 №2227464 
>>2226965
>стрелка из develop и входит, и сразу выходит обратно
Хм-м. Молодой человек (или юная леди?.. впрочем, какая в жопу разница?), а не рано ли вам вайти, если вы не особо понимаете что на схемах могут быть условности?
Это всё лишь призвано подчеркнуть, что все изменения в релиз-бранче должны отображаться на девелоп-бранч и это будет касаться всех будущих RB, сколько бы их ни было.
Мне лично на этой схеме куда больше не нравятся коммиты в develop вне бранчей. Лучше бы их запретить и оставить изменения в dev только мерджами: на каждое изменение -- таск и бранч, отладил -- мерджни. Потом по истории мерджей делаешь ченджлог и документацию.

GitLab Flow и GitHub Flow явно запрещают прямые коммиты.
Аноним 02/12/21 Чтв 14:29:09 #156 №2227506 
>>2227431
Ты недавно только курс "Создай своего бота и стань хакером" закончили или совсем ебанутый?
https://youtu.be/z7WIm0iZcOU
Аноним 02/12/21 Чтв 14:30:50 #157 №2227509 
>>2227464
Ну там конфиги пофиксить или поправить креды — может быть вполне себе уместно сразу в дев коммитить, чем создавать таску "изменить пароль" на 15 минут и потом ее закрывать
Аноним 02/12/21 Чтв 15:23:33 #158 №2227592 
Capture.JPG
Можно это в 1 строчку как-то уместить?
Аноним 02/12/21 Чтв 15:59:24 #159 №2227621 
>>2227592
да, print(list(filter(lambda x: x != 'None', [i if x == "TMIN" else 'None' for i, x in enumerate(header)])))
Аноним 02/12/21 Чтв 16:06:42 #160 №2227627 
>>2227621
понял, принял
Аноним 02/12/21 Чтв 16:15:45 #161 №2227639 
16289699508323.jpg
>>2227621
>понял, принял
Аноним 02/12/21 Чтв 16:28:46 #162 №2227652 
image.png
>>2227506
Почему он там юзается тюнинг для синхронных фреймворков в виде гринлетов и picoev, где реализуется собственный эвент луп и работа со стеком, но для aiohttp он даже не добавил uvloop? При этом не учитывается производительность драйверов для базы, которую отдельно считать надо, мог бы взять asyncpg, вместо залупного aiopg.
К слову, meinheld жив на уровне vibora, его тоже можно было затестить, хули.
Аноним 02/12/21 Чтв 17:24:37 #163 №2227688 
>>2227405
Во-первых, хорошо что ты хотя бы согласен, что оверхед есть.
Во-вторых, благодаря таким как ты и возникают эти дебичи. Понаслушаются о теме не вникнув. Потом пишут асинхронную функцию которая делает return a+b И искренне удивляются и даже обижаются, когда им поясняешь, что это какая то хуйня. Как же так? Как так замедлет? Она же асинхронная. В их понимании асинхронный код исполняется быстрее силой магии. Они бы асинхронную ОС написали и асинхронный компилятор. И вот тогда бы на древнем пентиуме можно было запускать крузис. А весь софт в мире тормозит от того. что не асинхронный. Наверное всякие архитекторы с многолетним стажем не знают как писать асинхронный код, потому и видео рендерится медленно и игры тормозят.
А тут еще ты заходишь с ноги и опять пиздишь, что асинхронность это мастхев. И никаких если.
Фу таким быть.
Аноним 02/12/21 Чтв 17:24:59 #164 №2227689 
>>2227592
trow = header.index("TMIN") if "TMIN" in header else None
(Да, формально тут два прохода по списку будет, но не похуй ли?)
Аноним 02/12/21 Чтв 17:29:51 #165 №2227695 
>>2227689
Хотя нет, строго говоря надо сделать len(header) - header[::-1].index("TMIN"), потому что код на скрине присвоит trow последний индекс, если TMIN больше одного раза встречается. Впрочем, не думаю, что ты задумывался о возможности TMIN быть в списке более одного раза.
Аноним 02/12/21 Чтв 17:30:23 #166 №2227696 
>>2227372
> то есть, мне таки придется писать global как я и подозревал ?
Если собираешся переменную из функции модифицировать, то используй.
> Не нужно. Это особенная программа. Она должна работать на старье.
Третий питон тоже может работать на старье. Ты вот сейчас траишь энергию на поддержания второго питона, который скоро официально рип. Т.е. что то новое прикрутить к программе уже не получится. Потом кому то понадобится запилить новую фичу и окажется, что надо переписывать весь код с нуля.
Если есть возможность обновится до живой версии, не игнорируй ее.
Аноним 02/12/21 Чтв 17:33:51 #167 №2227700 
>>2227695
Только вот если TMIN отсутствует, то этот код вызовет эксепшн.
Аноним 02/12/21 Чтв 18:03:46 #168 №2227721 
>>2227509
Увы, но я видел, как даже самые невинные на первый взгляд коммиты чуть ли не уровня "поменять цвет кнопки" если и не ломали систему совсем, то по меньшей мере делали её использование некомфортным. Так что в develop с таким подходом может оказаться условно-нерабочий код. Конечно, тестирование найдёт косяк, но лучше тестить левый бранч, а не dev (мало ли кто успеет бранчнуться между ломающим и исправляющим коммитом, ребейзь потом вот это вот всё).

Это, конечно, IMNSHO и в реальной жизни всё не так гладко, но я за то чтобы потратить лишние пару минут, но получить более лучшую систему.
Аноним 02/12/21 Чтв 18:43:32 #169 №2227752 
>>2227700
Это почему это? Тем проверка для этого же стоит — https://ideone.com/KFazIU
Аноним 02/12/21 Чтв 19:01:23 #170 №2227778 
Дайте мне интересных идей для консольных программ, что написать можно для вкатывающегося.
Аноним 02/12/21 Чтв 19:10:41 #171 №2227789 
pgPab4B.png
22MZhdz.png
Поч эту ошибку выдаёт? А со второго скрина всё сразу закрывается после запуска.
Аноним 02/12/21 Чтв 19:16:07 #172 №2227799 
изображение.png
>>2227464
>Хм-м. Молодой человек (или юная леди?.. впрочем, какая в жопу разница?), а не рано ли вам вайти, если вы не особо понимаете что К чему это хамство? Ты так со всеми общаешься?
>на схемах могут быть условности?
Да я в некоторых случаях предпочёл бы точность условностям.
Я не уверен, что я точно понимаю, как работает гит, и предполагаю, что я что-то мог упустить, поэтому и уточнил, ничего ли я не упустил.
Аноним 02/12/21 Чтв 19:30:49 #173 №2227805 
>>2227789
Потому что перед вводом этих команд тебе не надо заходить в интерпретатор. Они выполняются в консоли.

Найди какой-нибудь подробный гайд для старта с полного нуля.
Аноним 02/12/21 Чтв 19:35:29 #174 №2227811 
>>2227696
расслабься. Я пишу программу помогающую обновиться.
Аноним 02/12/21 Чтв 19:43:52 #175 №2227816 
uname.jpg

>>2227696
давай расскажи мне, cколько нужно девопсов чтобы вкрутить лампочку?
Аноним 02/12/21 Чтв 20:00:34 #176 №2227827 
>>2227319
>>2227696
>Третий питон тоже может работать на старье.
Не всегда у тебя вообще есть контроль над этим старьём. Я как-то на работе один скрипт писал, всё протестировал на рабочем же сервере, предполагая, что и там плюс-минус та же среда будет, отдаю — ниработаит! Оказалось, у них там вообще 2.6 питон стоит и какой-то даже стандартной либы не было ещё.
Аноним 02/12/21 Чтв 20:38:38 #177 №2227837 
>>2227816
Один. Только он не будет вкручивать лампочку, а спулит контейнер, который для этого предназначен.
Аноним 02/12/21 Чтв 21:03:11 #178 №2227852 
>>2227837
контейнер с новым софтом и сам заспулю. Эка невидаль.
в легаси кто будет разбираться?
Аноним 02/12/21 Чтв 21:24:37 #179 №2227861 
Как очистить все данные в базе данных джанго командой? python manage.py flush ни все чистит, таблички с миграциями и правами остаются.
Аноним 02/12/21 Чтв 21:47:49 #180 №2227876 
>>2227861
Дропни базу, епта
Аноним 02/12/21 Чтв 22:27:18 #181 №2227894 
Всем привет, что сейчас будет актуальнее Django Flask или aiohttp?
Аноним 02/12/21 Чтв 22:31:02 #182 №2227897 
Как асинхронщину под десктоп писать? Нужно по действию пользователя вызвать последовательно 2 тяжелые функции модели.

Это мне получается нужно в представлении ради них сразу 3 функции: первая инициирующая и две обработывалка событий? Или как это, блять, пишется? Но можно все события одной функцией принимать и, в зависимости от события, запускать следующую операцию.
Аноним 02/12/21 Чтв 22:59:10 #183 №2227920 
>>2227897
Никак. Потому что никто ничего молодежного не написал. Там слишком дохуя кода у них.

Но есть Kivy! У них все переписано.
Аноним 02/12/21 Чтв 23:01:14 #184 №2227923 
>>2224732
тут >>2226196
Аноним 02/12/21 Чтв 23:34:57 #185 №2227931 
>>2227920
Потому что питон для десктопа нахуй не нужен, там ничего живого кроме QT и киви нет.
Аноним 03/12/21 Птн 00:11:09 #186 №2227938 
>>2227894
В джанго какой-то свой мирок со своими инструментами, а так все эти фреймворки крайне похожие и можно сразу все изучить.
Аноним 03/12/21 Птн 00:49:34 #187 №2227954 
>>2227894
> Всем привет, что сейчас будет актуальнее
Что значит "актуальнее"? Актуальнее учить джуну, чтобы проще было вкатиться? Что перспективнее и в ближайшее время отожмет значительную часть рынка? Что использует самые современные практики питона? Ты можешь мысли яснее выражать?
> Django
Хтоническая залупа, которая тащит всю хуйню с собой. Все прибито гвоздями и если какой-то ополоумевший анальник решил, что уебищный старый синтаксис алхимии лучше, значит ты будешь жрать что дают. Но с другой стороны, не нужно ебаться и настраивать интеграции и разработка идет быстрее до первого нестандартного кейса. Так что на штанге дохуища вакансий есть
> Flask
Штанга без встроенных интеграций. Все минусы штанги превращаются в плюсы, все плюсы в минусы. Можешь сам выбирать что использовать, но придется ебаться с интеграциями. Мои симпатии на стороне фласка
> aiohttp
Это аналог фласка, только асинхронный. Все что справедливо для фласка, справедливо и для него
Еще есть фастапи. Это аналог штангиеще не совсем, но стремительно в него превращается Ставлю жопу, что через 3-4 года будет распространен не меньше, чем штанга
А что конкретно изучать для вката значения не имеет, главное чтобы не асинхронность. Чтобы потом не превратиться в сектанта, который уверен, что если написать асинк, то функция получает +10 к скорости выполнения
>>2227897
> Как асинхронщину под десктоп писать?
Берешь и пишешь без задней мысли. В чем проблема?
> Нужно по действию пользователя вызвать последовательно 2 тяжелые функции
> последовательно
Ты долбаеб? Ты долбаеб.
> Это мне получается нужно в представлении ради них сразу 3 функции: первая инициирующая и две обработывалка событий? Или как это, блять, пишется? Но можно все события одной функцией принимать и, в зависимости от события, запускать следующую операцию.
Что ты нахуй несешь? Что ты блять собрался асинхронно последовательно запускать?
Аноним 03/12/21 Птн 00:52:59 #188 №2227957 
>>2227652
Если тебе тесты с видео не нравятся, то запили свои и выложи. Зачем рассуждать с дивана?
Аноним 03/12/21 Птн 11:08:38 #189 №2228109 
>>2227405
>то юзай адекватный мультрединг/горутины
Что ты подразумеваешь под адекватностью мультитрединга? Конкретно, чего именно недостаёт в питонских серверах, не использующих асинхронный подход?
Аноним 03/12/21 Птн 11:12:45 #190 №2228115 
>>2227827
Еще раз: у вас там venv нет? Все в 1 глобальный интерпретатор суете?
Аноним 03/12/21 Птн 11:13:40 #191 №2228118 
Вот смотрите, запустил я тред, threading.Thread, вот это всё. Он что-то делает. Потом я внезапно понимаю, что то, что он делает, больше уже не нужно. Как мне этот тред извне остановить? Проблема в том, что run передаёт управление в стороннюю библиотеку и оно оттуда, гипотетически, может не возвращаться дольше, чем следовало бы.
Возможно туда как-то исключение бросить, что ли? Или это может всё поломать и вообще невозможно? Просто Event кинуть я могу, но ведь внутри треда его ещё нужно поймать, то есть в любом случае придётся ждать завершения длинной процедуры из сторонней библиотеки.
Скажите честно, я задумал дурное?
И как это сделать всё-таки, если возможно?
Аноним 03/12/21 Птн 11:16:39 #192 №2228123 
>>2228109
Про GIL только сегодня услышал что ле?
Аноним 03/12/21 Птн 11:55:45 #193 №2228150 
>>2228109
> чего именно недостаёт в питонских серверах
Там не достает номрльного сервера. Поэтому все ваши гуникорны работают за nginx и все у них норм.
А лебичи, котоыре топят за асинхронные запросы по 200мс просто не знают про кеш.
Аноним 03/12/21 Птн 11:59:27 #194 №2228155 
>>2228150
>кеш
Система кеша это по-твоему панацея?
обращения в кеш вроде Редиса тоже могут быть асинхронными, хоть там задержка и не 200 мс а 10 мкс то тем не менее блокировка происходит

Все обращения к стороннему АПИ тоже закешируешь?
Аноним 03/12/21 Птн 12:02:02 #195 №2228156 
>>2228150
>А лебичи, котоыре топят за асинхронные запросы по 200мс просто не знают про кеш.
А у тебя сервер только на чтение работает и все методы идемпотентны на протяжении всего рабочего цикла?
Аноним 03/12/21 Птн 12:02:52 #196 №2228157 
>>2228155
Самое угарное что БДшки, в том числе кеш могут располагаться где угодно, может на том же серваке а может и нихера. Все это вносит дополнительные задержки, без асинхронки тут никак
Динозавры конечно привыкли жить в мире монолитного джанго-говна, им ничего не пояснишь, они в своем мирке живут
Аноним 03/12/21 Птн 12:36:37 #197 №2228175 
>>2228123
Тут я сначала не понял, о чём ты.
>>2228157
А вот теперь понял. Так что, длинный запрос к сторонней базе данных оставляет блокировку GIL?
А это точно? Что-то как-то с трудом верится. Оно же во время операций ввода-вывода вроде же ничего не блокирует. А разве запрос в сторонней базе данных по сети с точки зрения питона это не ввод-вывод?
А это прям точно-точно? А можно с пруфами?
Аноним 03/12/21 Птн 12:43:35 #198 №2228179 
>>2228118
Так что, так нельзя?
Аноним 03/12/21 Птн 12:46:56 #199 №2228182 
>>2228175
Ты все прекрасно понял, но специально водишь очком
Мультитрединг в питоне помогает только с IO, в отличие от той же Жавы или ГОвна, и в довесок к этому несет кучу проблем сам по себе, начиная с того что с увеличением числа реквестов создается все больше тредов, которые вынуждены между собой делить GIL, заканчивая потенциальными ништяками вроде дедлоков

В том же ЖСе асинхронность - основной подход, там нет никаких "тредов" бля, просто потому что они не нужны нахуй и просто вредны, там в Ноде есть Воркеры, аналог питоновских процессов, чтоб совать туда CPU-bound таски, но тредов там нет, потому что ЖС точно так же однопоточен и асинхронность - идеальное решение в данном случае для преодоления проблем с IO
Аноним 03/12/21 Птн 12:53:44 #200 №2228189 
Можно как-то прочитать сообщения из кафки с применением фильтра?
Аноним 03/12/21 Птн 14:19:22 #201 №2228261 
>>2228115
Где "у нас"-то, блин? Ты не то себе представляешь.
Это был скрипт, который обычные саппорт инженеры должны были запускать для упрощения/ускорения анализа дампов логов. Это не какой-то проект большой, который на каких-то серверах централизированных крутится. Просто есть какой-то там виртуальный сервер в корпоративной сети на видимо тухлой centos, с которого есть доступ к железкам в лаборатории. Он вообще может быть "личным" для этого инженера, и хоть он там и может поставить себе новый питон, это же придётся каждому всё объяснять как сделать (но рута тебе никто не даст, а значит руками компилировать в какую-то локальную директорию, что сам понимаешь) — кому нужны эти проблемы? Проще сделать то, что изначально будет молча работать без дополнительных действий со стороны "пользователя". (Ну и немного договориться о минимальных требованиях можно, что использовать сдохшую более 10 лет назад версию как-то не предполагалось.)
Аноним 03/12/21 Птн 14:41:22 #202 №2228275 
>>2228261
Если один скриптик пишешь для некроговна, то нахуй вообще вопросы по стилю задаёшь? Пиши как во времена 2.7 писали, с глобалами, мутациями и прочими class Zalupa(object).
Аноним 03/12/21 Птн 15:03:57 #203 №2228279 
>>2228182
>Ты все прекрасно понял, но специально водишь очком
Что ты несёшь? Если ты не можешь по делу ответить, то просто иди на хуй, и всё. Другие ответят, если есть что сказать, а зачем мне слушать мнение долбоёба?
Ты что, считаешь, что ты лучше меня знаешь, что я понял, а чего не понял? Ты экстрасенсом себя возомнил?
Или ты понял, что обосрался, раньше, чем я это заметил, а теперь сам и "водишь очком", чтобы запутать следы, идущие прямиком из твоей жопы? К чему этот твой высер про очко, долбоёб?
С чего ты взял, что все тут способны читать твои мысли и каждую твою маняфантазию "понимают"?
При чём в следующем же посте ты, долбоёб, начнёшь кукарекать, что я, напротив, ничего не знаю и ничего не понимаю. Ты понимаешь, что ты аутист, который пытается в проецирование? Нахуя ты это делаешь? Ты вообще пробовал с реальными людьми говорить, чтобы при этом от них каждый день по морде не получать? Или тебе это не надо? С компьютером безопаснее?
>начиная с того что с увеличением числа реквестов создается все больше тредов, которые вынуждены между собой делить GIL
А какая разница? Ядро одно. Процесс один. Интерпретатор один. Запросов много. Но все они либо процессорозависимые, и тогда они не могут выполняться одновременно и GIL не мешает, либо среди них есть зависящие от работы удалённой базы данных, и тогда это операция ввода-вывода и GIL снова не мешает.
Я уточняю, в чём проблема. Конкретно, в чём? Без общих слов, что вот есть GIL и он мешает. Ты можешь ответить или нет? Если не можешь - это ещё не повод вести себя как истеричка и хамить незнакомым дядям.
>заканчивая потенциальными ништяками вроде дедлоков
Например? Картинку нарисовать можешь? (Кроме баивой.)
А ещё лучше кусок кода приведи, который вместо нужной и полезной работы внезапно делает этот дедлок, чтобы каждый мог убедиться, какое же пайтон говно. А пока ты нихуя не осилил - не выёбывайся. Тут не глупее тебя люди сидят, даже если мысли твои читать не умеют.
>В том же ЖСе асинхронность - основной подход, там нет никаких "тредов" бля, просто потому что они не нужны нахуй и просто вредны
Ага, зато километры промисов, очень интуитивно, понятно и читаемо. А чем тред хуже километра промисов?
>потому что ЖС точно так же однопоточен и асинхронность - идеальное решение в данном случае для преодоления проблем с IO
То есть, если подытожить этот твой пост, то асинхронность идеальное решение потому что ты скозал?
Ну охуенно. Спасибо тебе за консультацию, я от тебя узнал много нового (нет).
Аноним 03/12/21 Птн 15:06:51 #204 №2228281 
>>2228182
Я может в том своём посте что-то не так спросил? Может я тебя чем-то обидел? Может быть я случайно выеб твою жену? Или мамку твою выеб прямо у тебя на глазах? Я просто не понимаю, я вроде нормально общаюсь, а в ответ получаю брызги дерьма. Охота понять, это во мне проблема, или в действительности проблема лишь в том, что ты тупой долбоёб, который хочет кому-то что-то доказать, но не может, и потому срывается на визги и оскорбления?
Аноним 03/12/21 Птн 15:25:09 #205 №2228290 
>>2228279
>Ага, зато километры промисов, очень интуитивно, понятно и читаемо.
У питона и жса плюс/минус одинаковый синтаксис промисов на асинках/эвэйтах. А обычные промисы используются для написания обёрток для легасиговен на колбэках, чтобы их можно было тем же эвэйтом вызывать.
Аноним 03/12/21 Птн 19:54:49 #206 №2228506 
>>2227592
header.index('TMIN')
Аноним 03/12/21 Птн 20:05:42 #207 №2228518 
>>2228506
А, тебе надо последний найти.
Тогда - len(header) - header[::-1].index('TMIN') - 1
Аноним 03/12/21 Птн 20:10:02 #208 №2228524 
>>2227897
Для тяжёлых функций не асинк, а мультипроцессинг нужен. Просто последовательно запускай их в отдельном процессе.
Аноним 03/12/21 Птн 20:14:13 #209 №2228526 
>>2228118
Создаешь свой поток в отдельном классе, наследующемся от Thread, в нём переопределяешь метод join, чтобы когда ты его вызвал он правильно закончил выполнение.
Аноним 03/12/21 Птн 20:49:58 #210 №2228580 
7IabRli3yE3CaGoOJ6BQbQ[1].jpeg
>>2228155
> Система кеша это по-твоему панацея?
Вы опять сравниваете холодное с круглым, лишь бы картина манямирка не рушилась.
Да, кеш это панацея. Он решает проблему ожидания ответа.
Асинхронный запрос просто не блокирует выполнение. Это звучит круто, но что это значт? Что в базу одновременно может ломится больеш человек. Но один хуй ждать ответ они будут свои 500мс. Кеш же возвращает результат практически мгновенно.
> Все обращения к стороннему АПИ тоже закешируешь?
Да, закеширую. Реальный прмиер - отзывы на сайте с разных сервисов. Тянутся они долго, но обновляются редко. Можно хранить уже сформированный html в кеше и отдавать его мгновенно. А к апи обращаться раз в неделю в фоне. твоя асинхронность тут курит в сторонке.
> А у тебя сервер только на чтение работает и все методы идемпотентны на протяжении всего рабочего цикла?
Слово умное, но вопрос не верный. Если данные и меняются, то ничто не мешает обновить кеш именно в момент обновления данных, а не при первом их запросе. При перезапуске сервера просто запускаешь скрипт на разогрев кеша и получаешь отличную производительность.

Для особо умных напоминаю. Если синхронный запрос обрабатывается 5 секунд, то и асинхронный запрос будет отрабатывать те же 5 секунд. А скорее даже больше. т.к. в базу одновременно асигнхронно долбится большее число запросов. Какой то профит от асинхронных фреймвокров есть в очень малом количестве проектов. В 90% синхронный монолит лучшее решение.
Аноним 03/12/21 Птн 21:26:12 #211 №2228636 
>>2228261
ебать вы там долбоёбы все, конечно.
Аноним 03/12/21 Птн 21:27:55 #212 №2228640 
>>2228526
это нихуя не поможет.
Аноним 03/12/21 Птн 21:29:29 #213 №2228642 
>>2228580
>Если данные и меняются, то ничто не мешает обновить кеш именно в момент обновления данных, а не при первом их запросе
А можно еще всю базу в оперативку засунуть, хули, тогда вообще быстро будет.
Плюс к этому данные могут быть и не с твоей базы, а с другой апишки или сервиса, который неизвестно сколько работает и процессит данные, еще прослушивание стрима кролика или кафки добавь, вообще заебись будет все это по тредам разделывать.

>Для особо умных напоминаю. Если синхронный запрос обрабатывается 5 секунд, то и асинхронный запрос будет отрабатывать те же 5 секунд
Если у тебя долбление в одну базу между которым ничего не происходит, то заебись у тебя работа конечно.
Аноним 03/12/21 Птн 21:35:20 #214 №2228651 
Помогите, я что-то туплю. Как манкипатчить класс?
Вот есть файл с тестом. Там хочу заменить на свой класс один сторонний.
Как сделать?

#test_file.py
import module
...
module.ThirdPartyClass = MyClass

#some_file.py
from module import ThirdPartyClass
...
ThirdPartyClass() # Тут не заменяется


Аноним 03/12/21 Птн 21:36:06 #215 №2228652 
Делаю сервисы на джанго, вкатился недавно. Не знаю как их структурировать.
Проекты лучше сразу начинать докера? Потому как переезд в контейнер когда всё отлажено немного неудобен.
У сервиса есть разные версии типа dev, prod и тд с разными приставками в домене. Я делаю скажем запрос на свой другой сервер который в деве, а при выкате на прод в коде приходится править адрес на другой домен. Как избежать этого? Они хостятся на разных адресах.

Как лучше организовать конфигурацию запросов на другие ресурсы? Я сначала делал что-то типа json, файла с указанием uri, headers, params и тд, вытаскивал его оттуда и regex-ом добавлял свои переменные. Потом решил просто оформить это в одном классе, типа, RequestsConfig. Какой способ правильнее? Я смотрел другие репы в гитхабах, но что-то единообразного так и не нашёл.

Как сделать чтоб метод, который находится в классе возвращал экземпляр класса как конструктор? Чтоб было не Class().create, а Class.create. Работаю с mongo, там поиск по базе очень всрат

Аноним 03/12/21 Птн 21:37:42 #216 №2228653 
>>2228652
>хостятся на разных адресах
Имеется ввиду, прод и дев одного сервиса.
Аноним 03/12/21 Птн 21:42:10 #217 №2228654 
>>2228651
Конечно не заменяется, в первом случае импортишь module и обращаешься через приставку module, а во втором импортишь сам класс, без этой приставки. Импорти его как модуль, если он с другим именем пиши так
import fuck as module
Аноним 03/12/21 Птн 21:45:21 #218 №2228656 
>>2228654
И вообще, можно писать так
from module import fuck as you
Аноним 03/12/21 Птн 21:55:45 #219 №2228661 
>>2228290
Я так и не понял прикола промисов в жсе и чем они отличаются от обычных методов с if response.ok Они позволяют не ждать ответа и крутить код дальше? Но зачем, если он практически всегда линейный и следующая реакция зависит от ответа и программа в любом случае должна ждать ответ, а не делать лишних телодвижений, еслм ответ пришёл не такой какой ожидался
Аноним 03/12/21 Птн 22:07:07 #220 №2228666 
>>2228642
> А можно еще всю базу в оперативку засунуть, хули, тогда вообще быстро будет.
Любая БД и так пытается держать все часто используемые данные в оперативке. Но основной профит все ровно от правильной архитектуры. select это быстрая операция.
> Плюс к этому данные могут быть и не
А могут и не быть. Опять начинается подведение ситуации под доказательствов духе - "А вот если бы у бабушки был хуй..."
И действительно, если бы не, то тогда бы ух! Но это как раз те редкие случаи.
> Если у тебя долбление в одну базу между которым ничего не происходит, то заебись у тебя работа конечно.
> Если у тебя долбление в одну базу между которым ничего не происходит, то заебись у тебя работа конечно.
Это 90% всех проектов. Реальные нагрузки только у яндексов и прочих хуяндексов. Если у твоей конторы еще нет офисов во всех регионах страны, то асинхронность тебе в хуй не вперлась. Обычный пользователь обычного сервиса хочет видеть результат запроса сразу, а не осознавать, что стоит в очереди с тысячами таких же счастливчиков.
Аноним 03/12/21 Птн 22:07:29 #221 №2228667 
Прочитал Лутца за 3 дня. 6 лет на С, 5 лет на С++ опыта, да-да я. Что дальше посоветуете?
Аноним 03/12/21 Птн 22:10:19 #222 №2228672 
Снимок.JPG
Помогите, пожалуйста, поставил питон 3.10, а пайчарм вот такое пишет, а я в этом совсем новичок, что можно сделать?
Аноним 03/12/21 Птн 22:39:56 #223 №2228689 
>>2228666
>Любая БД и так пытается держать все часто используемые данные в оперативке. Но основной профит все ровно от правильной архитектуры. select это быстрая операция.
Нахуярить кэша это не архитектура

>А могут и не быть. Опять начинается подведение ситуации под доказательствов духе - "А вот если бы у бабушки был хуй..."
>И действительно, если бы не, то тогда бы ух! Но это как раз те редкие случаи.
Так может быть, только если у тебя монолитное приложение на питоне, а такие все чаще распиливаются на микросервисы по понятным причинам. А там нормально делать запросы на 3-4 сервиса одновременно.

>Это 90% всех проектов.
Ну так ты работаешь с говном и жалуешься на говно. У меня на первой работе жирнючий монолит на фласке переписывали, так как эта залупа отжирала слишком много ресурсов при скалировании. Это уже нормальная практика.
Аноним 03/12/21 Птн 22:52:50 #224 №2228693 
>>2228652
Начинать надо в Windows Substem for Linux или прям в линуксе каком-то. Dockerfile и docker-compose.yml напишешь в конце, разве что можешь себе контейнером поднять базу данных, монгу эту самую или что-то такое.

По структуре смотри сюда https://12factor.net/ там и пишет, что разделять на dev, prod и т.д. плохая идея
Отличия должно быть разве что в конфигурационных файлах вроде .env или даже просто те самые сущности, но в виде переменных окружения
Аноним 03/12/21 Птн 23:05:34 #225 №2228700 
>>2228526
Не понимаю. Так ведь join просто заблокирует выполнение основного треда до завершения отдельного потока? А поток-то досрочно прервать возможно?
Аноним 03/12/21 Птн 23:25:58 #226 №2228722 
>>2228666
>select это быстрая операция.
И, что немаловажно, насколько я понимаю, через всё тот же селект (в смысле сокетов) работают и те самые запросы к сторонним базам данных. Вот эти вот: >>2228157
Ну и объясните мне, что хотел сказать тот сударь, когда написал про неадекватный мультитрединг питона, и в итоге привёл в пример стороннюю БД, которая "вносит дополнительные задержки и поэтому без асинхронки там никак". Да, я согласен, нельзя закэшировать всё, включая небо. Придётся и асинхронные запросы выполнять. А в чём проблема их выполнить? Он же идут через тот же селект, что и все остальные данные, передаваемые с сервера и на сервер. И при чём тут GIL, если распараллеливанием этого вообще операционная система занимается?
Аноним 03/12/21 Птн 23:29:01 #227 №2228725 
>>2228693
Делаю на виртуалке через ssh, там же контейнеры валяются. Мне в принципе удобно и сразу в докере, vscode умеет удобно отображать это вот всё, просто хотелось бы уточнить как надо.
Обычно запускал через nginx pm2 с подтягиванием certbota, поскольку общаюсь со сторонними апи и надо всё проверять прямо в процессе. Вот и подумал почему бы сразу через докер не собирать и не париться с деплоем впоследствии.
Про env да, звучит довольно удобно, но не знаю как это скажется на скорости. Мои сервисы это прокладки между нашим основным сервисом и другими, там всё шаблонно с минимальными правками потому и появилась мысль просто делать шаблоны запросов в json Хотя казалось бы, но у многих тот же oauth отличается и есть индивидумы которые передают секретки в боди, а не хедере. Вот думаю над структурой пока число таких проектов не разлослось до пары десятков.

Я в вебе буквально пару месяцев. Всё такое новое тут.
Аноним 03/12/21 Птн 23:38:05 #228 №2228732 
Привет, аноны, то ли я тупой, то ли я очень тупой, суть такова, есть tcp сервер на джаве, который работает по механизму вопрос-ответ, то бишь схема такая
nc localhost 878
ответ сервера: Hello, enter phrase
Тут я типа отправляю ему байты
Он мне снова отвечает

и так далее

Так вот, проблема такова, что я не могу получить его второй ответ, чтобы не делал, удается получить "Hello, enter phrase", я отправляю байты, пытаюсь получить ответ, который при обычном подключении через неткат есть, а у меня его нету
В чем может быть дело?


import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('localhost', 8787))
print(client_socket.recv(512).decode())
client_socket.send("LOGIN 1234".encode())
# Вот тут уже я не получаю ответ, а в netcat получил его
print(client_socket.recv(512).decode())


Аноним 03/12/21 Птн 23:41:25 #229 №2228733 
>>2228672
>поставил питон 3.10
3.1 и 3.10 это немного разные версии.
Аноним 03/12/21 Птн 23:48:15 #230 №2228738 
>>2228722
>И при чём тут GIL, если распараллеливанием этого вообще операционная система занимается?
Так не занимается же, в один момент активен только один тред питонячьего процесса, остальные спят. Да и само количество тредов ограниченно операционной системой, а их переключение в среднем более дорогая операция, чем обслуживание эвент лупа.
Аноним 04/12/21 Суб 00:05:02 #231 №2228750 
>>2228732
Вангую что ты гавно отправляешь, а не авторизацю. Посмотри на стороне джавы что отправляешь или если это не твой личный сервер,то лови пакеты
Аноним 04/12/21 Суб 02:00:34 #232 №2228788 
>>2228689
> Нахуярить кэша это не архитектура
Потому что ты так сказал?
К БД были конкретные требования - выполнять поиск и выдачу максимально быстро. Поэтому архитекторы нахуярили кеш всюду куда могли. Кешируются часто запрашиваемые данные, кешируются частые запросы, кешируются планы выполнения этих запросов. Другого пути решения просто нет.
> Так может быть, только если у тебя монолитное приложение на питоне, а такие все чаще распиливаются на микросервисы по понятным причинам.
Вот нихуя непонятны причины. Если вам нужно захуярить проект и сделать это быстро, то микросервисы идут лесом. Потмо когда заказчик скажет, что проект ок и продолжаем банкет уже можно его пилить на что угодно. Если есть смысл. Порой смысла нет. Не всем нужно стучать в 4 апи одновременно для 500 пользователей.
> Ну так ты работаешь с говном и жалуешься на говно.
Поправка. Я залуюсь на ваше говно, которое вы пихаете всюду просто чтоб было.
> У меня на первой работе жирнючий монолит на фласке переписывали, так как эта залупа отжирала слишком много ресурсов при скалировании.
У меня на работе переписывали асинхронный сервер на фласк чтоб повысить его производительность. Охуеть да?
Аноним 04/12/21 Суб 10:26:29 #233 №2228879 
>>2228738
>>И при чём тут GIL, если распараллеливанием этого вообще операционная система занимается?
>Так не занимается же, в один момент активен только один тред питонячьего процесса, остальные спят.
Я имел в виду само получение данных. А для их обработки больше одного треда-то и не надо. Зачем больше тредов, если у тебя процесс один и тот же? Треды нужны чтобы переключаться между задачами. Когда один тред работает над одной задачей, но не может выполнить её прямо сейчас, потому что некий ресурс ещё не готов отдать данные, чтобы он не блокировал работу над другими задачами, треды переключаются.
А в случае с запросами к удалённым базам данных через селект, зачем переключаться? Тебе операционная система сказала "вот эти, вот эти и вот эти данные получены, прими их". И дальше ты их в любом порядке обрабатываешь. Но не все одновременно, так как у тебя процесс-то всего один. Зачем их параллельно на одном и том же ядре процессора обрабатывать? Какой в этом смысл?
Я вот пытаюсь ответ на этот вопрос получить. Какой-то конкретный пример можете привести, что это вообще надо? Кроме того что "мне вот так захотелось потому что я привык так писать, чтобы одной лопатой копались десять ям одновременно и мне пофиг, что их вполне уместно было бы копать последовательно, а не параллельно".
>Да и само количество тредов ограниченно операционной системой, а их переключение в среднем более дорогая операция, чем обслуживание эвент лупа.
Я имею в виду получение данных в разных сокетах идёт параллельно. Хотя в итоге всё равно последовательно, скорее всего. Но в любом случае этим занимается операционная система, а не сам сервер. Складывает там пакетик к пакетику, проверяет у них заголовочки и всё такое. А сервер получает управление от селекта в одном единственном потоке, и это настолько же эффективно, насколько и эвент луп. Это по сути он и есть. Пришли данные - это событие. Обработали, проверили, что новых данных нет - прекратили работу. Всё это в одном потоке. И больше не надо, как мне кажется.
Для дополнительных ядер - да, есть смысл по потоку создать. Но и тут у питона никакие GIL не проявляются. Так в чём проблема с GIL а Питоне?
Аноним 04/12/21 Суб 10:43:50 #234 №2228889 
>>2228661
>Я так и не понял прикола промисов в жсе и чем они отличаются от обычных методов с if response.ok
От каких методов? До промисов были колбэки, а с ними охуеешь комплексные цепочки строить. Сравни создание запроса с XMLHttpRequest и c фетчем, например.
>Они позволяют не ждать ответа и крутить код дальше?
Они позволяют не блочить основной покпок в однопоточной среде. Однохуйственно для севера, но на фронтенде обычно сидит конечный пользователь с непредсказуемым состоянием, но с предсказуемой реакцией на отсутствие фидбэка о действии. И сидит он скорее всего не на одной странице.
>Но зачем, если он практически всегда линейный и следующая реакция зависит от ответа и программа в любом случае должна ждать ответ
У тебя хттп головного мозга, не все програмные взаимодействия сводятся к запрос-ответ.
>а не делать лишних телодвижений, еслм ответ пришёл не такой какой ожидался
Так промисы и не делают лишних движений в контексте промиса. Пока процессор ждёт завершения запроса, но может обработать другой.
Аноним 04/12/21 Суб 11:32:46 #235 №2228911 
>>2228518
> len(header) - header[::-1].index('TMIN') - 1
А что это вообще такое? Как это работает?
Аноним 04/12/21 Суб 11:52:37 #236 №2228928 
>>2228750
Нет, говно не отправляю, там нет механизма авторизации, работает через неткат нормально, через питоны хуево, делаю тоже самое
Аноним 04/12/21 Суб 12:50:23 #237 №2228956 
>>2228788
>Вот нихуя непонятны причины. Если вам нужно захуярить проект и сделать это быстро, то микросервисы идут лесом.
Дед, хватит работать в говне, даже mvp делают на микросервисах потому что схема отработана, есть уже готовые фреймворки для всего этого. Поставил реббит
или настроил gRPC для обмена сообщениями и ебош.

>У меня на работе переписывали асинхронный сервер на фласк чтоб повысить его производительность. Охуеть да?
Потому что у тебя там базодолбильни c селектами
Аноним 04/12/21 Суб 13:01:16 #238 №2228962 
>>2228911
Это он не знает про существование rindex.
Аноним 04/12/21 Суб 13:16:59 #239 №2228970 
>>2228956
Всегда было интересно это стремление распилить проект на атомы, которые вроде как должны работать независимо, но в действительности они все зависят друг от друга. Насколько оно интенсивно? Каждая строчка монолита - микросервис?


Я не сторонник монолита, просто вы в микросервисах видите какую-то панацею. Просто распили и будет заебись. Просто вот как часы. Нет, увы, так оно не работает, где всё взаимосвязано. Никакие ассинки тут не помогут.
Например, есть последовательность из 3-4 запросов, при этом каждый запрос использует ответ из предыдущего. Такое встречается чаще всего и тут ничего не поделать.
Аноним 04/12/21 Суб 13:55:42 #240 №2228993 
>>2228970
Да это очередной тренд.
Как раньше были потоки статей вроде "как мы перекатили всё на носкл и как стало охуенно".
А через некоторое время "как мы перекатили носкл на скл и как стало охуенно".
Аноним 04/12/21 Суб 15:18:23 #241 №2229075 
>>2228993
>>2228970
Потому что питономонолиты очень жирно скалировать. В языках, где нагрузку можно разделить на треды с этим проблем нет, как в жабе. Можно вспомнить руби, где часто жаловались на дороговизну увеличения инстансов. Так же следует учитывать неравномерность нагрузки на разные компоненты, у нас матаносервис написан на плюсах, а достаточно тяжёлый препроцессинг данных от корпоративных клиентов на скале и во время прайм-тайма можно достаточно дёшево увеличить бутылочное горлышко.
Аноним 04/12/21 Суб 16:25:33 #242 №2229136 
>>2229075
Ничто не мешает разделить монолит на составляющие без парадигмы микросервисов. Даже в том же джанго проект делится на app-сы, которые по сути должны юыть независимыми друг от друга.
Или это просто попытка наебать ос, когда она и так должна распределять нагрузку, в итоге получается просто перекидывание педаль вкдосипеда с задних колёс на передние. Конструктивно выглядит иначе, но суть такая же.
Аноним 04/12/21 Суб 18:16:37 #243 №2229209 
изображение.png
Как расположить кнопку около label справа?
https://ideone.com/3YJISI
Аноним 04/12/21 Суб 18:39:34 #244 №2229236 
>>2229136
>Ничто не мешает разделить монолит на составляющие без парадигмы микросервисов
А что бы составляющие могли масштабироваться независимо от друг друга, то без них не обойтись

>Даже в том же джанго проект делится на app-сы, которые по сути должны юыть независимыми друг от друга.
Причем тут аппы, если их нельзя запустить отдельно друг от друга в разном количестве экземпляров?

>Или это просто попытка наебать ос, когда она и так должна распределять нагрузку, в итоге получается просто перекидывание педаль вкдосипеда с задних колёс на передние.
Запуская инстанс монолита, ты разварачиваешь вообще весь проект, при этом часть компонентов, тебе масштабировать вообще не нужно, так как они могут нормально работать и без этого.
Про ОС я вообще ничего не понял что ты имеешь ввиду. По тредам ты масштабировать не сможешь, так как там могут быть CPU bound задачи и даже если там идет обычное ожидание, то смена тредов GIL'ом убьет всю производительность, так как каждому треду выделяется 5 мс перед сменой, даже если там ничего не происходит и производительность нужна в другом месте.
Аноним 04/12/21 Суб 18:44:27 #245 №2229245 
16386309993250.jpg
>>2229209
Малой, попробуй вот так
Аноним 04/12/21 Суб 19:54:51 #246 №2229300 
>>2228956
> Дед, хватит работать в говне, даже mvp делают на микросервисах потому что схема отработана
Раз назвал меня дедом, занчит все же осознаешь, что тут старший. Так вот послушай, что старший тебе скажет.
Была у нас микросервисная архитектура. Былов се модно и молодежно. И проект пилился год. Потому что каждый серваис пилили разыне люди. А потом все это пытались вместе собрать. Люди были разные с разным уровнем образования, разным уровнем iq и каждый со свои богатым внутренним миром. К каждому надсмотрщика не поставишь. В итоге у одного сервиса не было логов вообще, у другого логировался каждый чих, что за миллионом INFO не найти ERROR. Третий вообще сделал не убиваемое приложение, которое в цикле бесконечно ретраило. А когда это стали собирать в docker выяснилось что 90% переменных у всех сервисов одинаковые. И если нужно поменять одну настройку, то меняй ее у каждого контейнера. Если хоть один забыл, то все работает. но совершенно непредсказуемо. Тесты конечно же были и покрытие было 90%+ на каждый сервис. Тока все вместе это собрать был тот еще квест.
Сейчас уже у многих руки чешутся написать про хуевую организацию. Ну да. Но как только начали mvp пилить на монолитах эти же люди стали делать работу быстрее и лучше. Т.к. можно было видеть весь код в одном месте и тут же его ревьюить меньшим числом людей. Не меняя организацию изменился результат. И деплой стал проще. И даже стало сразу видно, что из этого реально можно выделить в микросервис, а что и так норм работает.
> Потому что у тебя там базодолбильни c селектами
Нет. там были АПИ долбильни. Которые своими асинхронными запросами плодили инстансы на удаленном сервисе и увеличивали время его ответа.

Вы вечно пиздите, что кеш не панацея, селект не панацея, хуйнянейм не панацея. Но что то про свою асинхронность так не говорите. А ведь эти ваши новомодные изыски как стеклянный хуй. Вы его всем дуракам даете, а потом кто руки поцарапает, кто жопу поранит. Это создает негативный фон для, в общем то нормальной, но ситуативной технологии.
Аноним 04/12/21 Суб 19:58:41 #247 №2229303 
>>2229245
Подвинь кнопку ближе к тексту и буде норм. Да слово Авторизация звучит как то двусмысленно, надо написать Получение пользователем прав на чтение и редактирование контента. Тогда пользователям будет понятно зачем им нужно заполнять поля.

мимо кабан
Аноним 04/12/21 Суб 20:04:37 #248 №2229307 
image.png
>>2229300
>Была у нас микросервисная архитектура. Былов се модно и молодежно. И проект пилился год. Потому что каждый серваис пилили разыне люди. А потом все это пытались вместе собрать. Люди были разные с разным уровнем образования, разным уровнем iq и каждый со свои богатым внутренним миром. К каждому надсмотрщика не поставишь. В итоге у одного сервиса не было логов вообще, у другого логировался каждый чих, что за миллионом INFO не найти ERROR. Третий вообще сделал не убиваемое приложение, которое в цикле бесконечно ретраило. А когда это стали собирать в docker выяснилось что 90% переменных у всех сервисов одинаковые. И если нужно поменять одну настройку, то меняй ее у каждого контейнера. Если хоть один забыл, то все работает. но совершенно непредсказуемо. Тесты конечно же были и покрытие было 90%+ на каждый сервис. Тока все вместе это собрать был тот еще квест.
Ебала этих говноедов без нормально ревью и стандартизации микросервисов представили? Охуеть просто, когда понадобилось все месте собрать, то ВНЕЗАПНО окалось, что каждый написал говно. Да у вас же шарашкина контора без налаженных процессов.
Аноним 04/12/21 Суб 20:14:17 #249 №2229314 
>>2229300
>И если нужно поменять одну настройку, то меняй ее у каждого контейнера. Если хоть один забыл, то все работает. но совершенно непредсказуемо.

Вы что ли экстеншены не освоили?
Аноним 04/12/21 Суб 20:25:20 #250 №2229325 
>>2229245
как это сделать?
Аноним 04/12/21 Суб 22:18:24 #251 №2229370 
>>2229325
Тег <div>
Аноним 04/12/21 Суб 22:51:38 #252 №2229422 
>>2229300
> Была у нас микросервисная архитектура. Былов се модно и молодежно. И проект пилился год. Потому что каждый серваис пилили разыне люди. А потом все это пытались вместе собрать. Люди были разные с разным уровнем образования, разным уровнем iq и каждый со свои богатым внутренним миром. К каждому надсмотрщика не поставишь.
А у монолит, стало быть, пилят поголовно чеды с умным волевым лицами, которые с детства на производство просились?
> В итоге у одного сервиса не было логов вообще, у другого логировался каждый чих, что за миллионом INFO не найти ERROR.
А в монолите логирование подключается автоматически с правильными уровнями логов?
> А когда это стали собирать в docker
Ебала челов, которые все сервисы в одном докер компоузе хранят представили?
> выяснилось что 90% переменных у всех сервисов одинаковые
Я даже боюсь представить что вы там нахуевертили. 5 сервисов, каждый из которых в бд ходит?
> И если нужно поменять одну настройку, то меняй ее у каждого контейнера. Если хоть один забыл, то все работает. но совершенно непредсказуемо.
Предлагаю следующий раз сначала думать, а потом колбасить код
> И даже стало сразу видно, что из этого реально можно выделить в микросервис, а что и так норм работает.
То есть, вы реально сначала начали пилить микросервисы, а потом думать что вы хотите написать?
> Нет. там были АПИ долбильни. Которые своими асинхронными запросами плодили инстансы на удаленном сервисе и увеличивали время его ответа.
Пиздос...
> Вы вечно пиздите, что кеш не панацея, селект не панацея, хуйнянейм не панацея. Но что то про свою асинхронность так не говорите. А ведь эти ваши новомодные изыски как стеклянный хуй. Вы его всем дуракам даете, а потом кто руки поцарапает, кто жопу поранит. Это создает негативный фон для, в общем то нормальной, но ситуативной технологии.
Красота микросервисов заключается в том, что каждый из них должен быть независимым, кроме круда под бд, и так же независимо масштабироваться. А еще это дополнительный уровень абстракции, который упрощает разработку. Все твои претензии можно так же и к ООП отнести. АРЯЯЯ КОНФИГИ ПО ВСЕМУ КОДУ РАСКИДАНЫ АРЯЯЯЯ КЛАССЫ ПО РАЗНОМУ РАБОТАЮТ И НИХУЯ НЕ ПОНЯТНО только это говорит о том, что ты не умеешь технологией пользоваться
Аноним 05/12/21 Вск 00:10:40 #253 №2229487 
>>2229307
> Да у вас же шарашкина контора без налаженных процессов.
Спасибо кэп.
Зато у нас очень толерантное руководство. Поощряет инициативы. И если джуны предложат написать новый проект на микросервисах, то флаг всем в руки. А менеджмент еще поддакивает, давайте попробуем.
В итоге 8 контейнеров без необходимости масштабирвоания на одном хосте.
>>2229314
> Вы что ли экстеншены не освоили?
Мы там дохуя чего осваивали. Если ты про синтаксис yaml позволяющий неиспользование части env то тут тоже удалось соснуть. Значения переменных одинаковые, но имена разные. Не спрашивай как так вышло.
>>2229422
> А у монолит, стало быть, пилят поголовно чеды с умным волевым лицами, которые с детства на производство просились?
Монолит проверяют такие целы. Одну кодовую базу тупо проще проверять.
> А в монолите логирование подключается автоматически с правильными уровнями логов?
В монолите это может делать один человек в едином стиле.
> Я даже боюсь представить что вы там нахуевертили. 5 сервисов, каждый из которых в бд ходит?
8 и часть из них ходят друг в друга.
> То есть, вы реально сначала начали пилить микросервисы, а потом думать что вы хотите написать?
Что писать было понятно с самого начала. Просто нименее опытные оказались наиболее инициативными и убедили что микросервисы тут вот прям то что надо. По сути за гос счет удовлетворили свои амбиции.
> Пиздос...
Что не так? Там все было полностью асинхронное. 100500 запросов в приложуху которая производит вычисления нес вязанные с БД, просто сложные расчеты. Хотели ее так ускорить.
> только это говорит о том, что ты не умеешь технологией пользоваться
Я то как раз умею. И я бы делал монолит. Потому что не было смысла ни один из этих сервисов делать сервисом. Их не надо было мастабировать. Некоторые все что делали, это отдавали результат работы АПИ по запросу. Тоже самое могла сделать и основная приложуха. парочка делали запросы постоянно и отдавали последний результат. Не помню уже нахуя так, но опять же можно было заменить на celery По факту проебали время за которое можно было пару проектов запилить такого же уровня. Но нет. Джуны начитались ереси и начали творить какую то дичь. вышла сложно поддерживаемая хуита.
Аноним 05/12/21 Вск 01:09:03 #254 №2229510 
>>2229487
>Значения переменных одинаковые, но имена разные.
>Мы написали говно - виноваты микросервисы[x1]

>100500 запросов в приложуху которая производит вычисления нес вязанные с БД, просто сложные расчеты. Хотели ее так ускорить.
И что мешало в этой приложухе ограничить количество инстансов или сначала по профилировать ее?
>Мы написали говно - виноваты микросервисы[x2]

>В монолите это может делать один человек в едином стиле.
Ну охуеть, а договорится перед этим нельзя было?
>Мы написали говно - виноваты микросервисы[x3]

>Монолит проверяют такие целы. Одну кодовую базу тупо проще проверять.
А в монорепе не судьба все держать? Или вы не разделяете компоненты в ваших монолитах?

>Я то как раз умею
Охуенно умеешь, коммуникации никакой, даже о общих ресурсах и логах никто не договорился, никто не ревьюил чужой код что бы не было говна, а потом получается говно, вот удивительно.
Аноним 05/12/21 Вск 01:39:19 #255 №2229527 
>>2229510
> И что мешало в этой приложухе ограничить количество инстансов или сначала по профилировать ее?
Не предусмотрено конструкцией. Там просто по сути был ее запуск. Сколько раз вызвали - столько ось ее запустила.
> Ну охуеть, а договорится перед этим нельзя было?
Нет. Проект делал новая команда недавно набраная но очень талантливая
> А в монорепе не судьба все держать? Или вы не разделяете компоненты в ваших монолитах?
От случая к случаю. Есть и монорепы. Этот писали "по всем правилам"
> Охуенно умеешь, коммуникации никакой, даже о общих ресурсах и логах никто не договорился
Вот ты такой умный. Делаешь свой асинхронный проект, как ты любишь. Сдаешь его. А на следующий день тебя ставят перед фактом что надо быстро допилить хуйню, которую уже пол года пилят и не допилят. Там хуйня вопрос. Вот тогда я посмотрю как ты будешь своей комуникацией переписывать весь преокт правильно. Ах да. Времени на переписывание тебе никто не даст.
> никто не ревьюил чужой код
Людские ресурсы ограничены. Что успевали, то ревьюили. Как только начали все пилить в монолитах резко повысилось качество кода.
> Мы написали говно - виноваты микросервисы
Виноват ты лично и тебе подобные.
Все что было вынесено в сервисы не предполагало дальнейшего масштабирования.
Просто авторы идеи видимо читали этот тред и нахуячили их потому что им сказали то так все делают.
Аноним 05/12/21 Вск 02:12:09 #256 №2229537 
>>2229487
> Монолит проверяют такие целы. Одну кодовую базу тупо проще проверять.
Да ты что? А мне вот кажется, что проще проверять API и корректность жсонов, чем ебаться с кодом. Потому что люди сначала проектируют API и контракты, а потом колбасят код. Точно так же, как и с ООП в монолите -- сначала описываются контракты классов, а потом пишется код. Причем на время разработки связи, которые описываются контрактом банально мокаются
> В монолите это может делать один человек в едином стиле.
Нет, не может. Ну или с таким же успехом логи прикрутить один человек может ко всем сервисам. Не неси совсем уж хуйни, логи нужно не просто прикрутить, а выстроить пайплайн логирования, а для этого надо разобраться в коде
> 8 и часть из них ходят друг в друга.
А что там блять может на 90% совпадать? То есть, у вас либо все сервисы ходят друг в друга по кругу, что означает, что вы долбаебы, которые не смогли на микросервисы распилить, либо 90% совпадающих энвов это LOG_LEVEL, LOGFILE_NAME, IS_DEBUG и подобное, но такие энвы иметь нормально
> Что писать было понятно с самого начала. Просто нименее опытные оказались наиболее инициативными и убедили что микросервисы тут вот прям то что надо. По сути за гос счет удовлетворили свои амбиции.
Я скорее склоняюсь к мысли, что у вас команда дедов заросла тиной и покрылась пылью на одном стеке и подходе. А попытавшись сделать что-то новое произошел обсер. И теперь начинаются маневры про то, что это микросервисы говна в шаровары залили
> Что не так? Там все было полностью асинхронное. 100500 запросов в приложуху которая производит вычисления нес вязанные с БД, просто сложные расчеты. Хотели ее так ускорить.
Ну так, а в чем проблема? Так это и должно работать тащемта
> Я то как раз умею
Я заметил лол
> И я бы делал монолит.
Монолит уместен в двух случаях:
1. У вас вообще нет работы с сетью. Например, все что вы делаете это закидываете числа в свою числодробилку локально и получаете какой-то ответ. Эти числа никуда дальше не идут и на этом вся работа закончена.
2. Это легасиговно, которое когда-то написали монолитом и переделывать концепцию не просто дорого, а ОЧЕНЬ дорого.
Во всех остальных случаях микросервисы ВСЕГДА лучше.
>>2229527
> Не предусмотрено конструкцией. Там просто по сути был ее запуск. Сколько раз вызвали - столько ось ее запустила.
Пиздец, я тебе тут целую стену текста накатал, а ты блять вообще не понимаешь даже что такое концепция микросервисов, просто охуеть
Аноним 05/12/21 Вск 11:13:22 #257 №2229636 
Анончики, решил вкатиться, поясните где лучше обучаться за деньги?
Или тут все гуру постигают бесплатно?
Аноним 05/12/21 Вск 11:21:58 #258 №2229640 
image.png
Доброе утро! Подскажите пожалуйста, почему у меня цикл остается бесконечным и как его прервать при len(list) == num
https://www.online-python.com/80MayWLEeG
Напишите программу, которая выводит часть последовательности 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 ... (число повторяется столько раз, чему равно). На вход программе передаётся неотрицательное целое число n — столько элементов последовательности должна отобразить программа. На выходе ожидается последовательность чисел, записанных через пробел в одну строку.

Например, если n = 7, то программа должна вывести 1 2 2 3 3 3 4.
Аноним 05/12/21 Вск 12:25:02 #259 №2229679 
Снимок.JPG
>>2228733
Видимо пайчарм этого не понимает, потому что качал то я именно 3.10, если сайт не врёт.
Аноним 05/12/21 Вск 12:36:39 #260 №2229687 
>>2229640
Потому что условие в while проверяется на итерациях while, а не вложенного for. Удали у принта один отступ и увидишь на какие значения попадает проверка условия while - и там всегда условие выполняется, отсюда и бесконечный цикл.

>>2229679
Все он понимает, криво поставил или одно, или другое. Смотри вывод
python -V
в консоли.
Аноним 05/12/21 Вск 12:39:32 #261 №2229689 
111.PNG
>>2229640
цикл перескакивает проверку внутри for
введи число например 10 и условие выполнится
Аноним 05/12/21 Вск 13:04:24 #262 №2229711 
>>2229636
На работе, если хочешь работать.
На курсах, если хочешь читать курсы.
Аноним 05/12/21 Вск 15:17:09 #263 №2229833 
5.JPG
>>2229640
По возможности лучше избегать использования while
Аноним 05/12/21 Вск 15:20:19 #264 №2229840 
>>2227954
>Ты можешь мысли яснее выражать?
Да, я имел ввиду, что актуальнее учить джуну, чтобы устроиться через год например. Сейчас знаю джангу на начальном уровне хочу двигаться дальше, а куда - непонятно
Аноним 05/12/21 Вск 15:55:21 #265 №2229897 
>>2228962
Блин, пиздец я додик, реально забыл

>>2228518
Это я перевернул список, нашёл индекс первого вхождения элемента в нём и вычислил индекс для не перевёрнутого, но как анон выше заметил это решается конструкцией header.rindex('TMIN')
Аноним 05/12/21 Вск 16:09:00 #266 №2229926 
>>2229833
За компрехеншены ради сайд-эффектов тоже обоссывают, тащемта.
Аноним 05/12/21 Вск 16:14:24 #267 №2229936 
>>2229926
Мне похуй, код вполне читаемый и работает. Если такое легкое выражение не могут прочесть, то пусть идёт доучиваться на курсах или откуда он там пришёл.
Аноним 05/12/21 Вск 16:22:00 #268 №2229950 
5585253734.png
>>2229936
Аноним 05/12/21 Вск 17:02:16 #269 №2230018 
code.png
Аноним 05/12/21 Вск 17:02:41 #270 №2230020 
>>2229640
>>2230018
Аноним 05/12/21 Вск 18:25:16 #271 №2230124 
>>2228889
>Они позволяют не блочить основной покпок в однопоточной среде.
>основной покпок
:3
Аноним 05/12/21 Вск 18:29:06 #272 №2230131 
Какую либу использовать для скрапинга? Pandas BeautifulSoup или Selenium? Чем они отличаются?
Аноним 05/12/21 Вск 18:29:29 #273 №2230132 
Какую либу использовать для скрапинга? Pandas BeautifulSoup или Selenium? Чем они отличаются?
Аноним 05/12/21 Вск 18:30:29 #274 №2230134 
Учусь по книжке. Когда сделал одно задание, обязательно ли его сохранять? Это поможет мне как нибудь в будущем?
Аноним 05/12/21 Вск 18:32:29 #275 №2230136 
На долгую перспективу - нет. На время обучения - да. большинство задач из книжек ты еще сто раз реализуешь сам и загуглишь.
Аноним 05/12/21 Вск 18:32:51 #276 №2230138 
>>2230136
>>2230134
Аноним 05/12/21 Вск 18:37:25 #277 №2230142 
>>2229487
>Зато у нас очень толерантное руководство
И очень хороший заказчик, который за всё это платит, да?
Аноним 05/12/21 Вск 18:41:46 #278 №2230147 
>>2230138
Спасибо
Аноним 05/12/21 Вск 18:43:17 #279 №2230148 
>>2230132
Зависит от целей. Базовый вариант это реквестс + суп.
Аноним 05/12/21 Вск 18:48:50 #280 №2230152 
>>2230148
А в чем изюминка pandas и selenium?
Аноним 05/12/21 Вск 18:50:19 #281 №2230156 
>>2230152
Селениум может исполнять жс, так как юзает движок браузера.
Аноним 05/12/21 Вск 18:53:52 #282 №2230159 
>>2230131
pandas
Аноним 05/12/21 Вск 18:56:51 #283 №2230160 
>>2230152
pandas для работы с данными, он умеет кушоть всякие простые форматированные таблички, но не более.
Аноним 05/12/21 Вск 18:59:27 #284 №2230163 
>>2230160
А другие либы разве не могут? А еще, если мне нужно, чтобы на основе собранных данных был сформирован excel'евский документ, мне поможет в этом какая нибудь из этих библиотек?
Аноним 05/12/21 Вск 19:05:41 #285 №2230165 
>>2229537
>Во всех остальных случаях микросервисы ВСЕГДА лучше.
"Сильное заявление. Доказывать его я, конечно, не буду..."
>>2229537
>Пиздец, я тебе тут целую стену текста накатал, а ты блять вообще не понимаешь даже что такое концепция микросервисов, просто охуеть
Ну я вот тоже не понимаю, объясни нам.
Аноним 05/12/21 Вск 19:05:53 #286 №2230166 
>>2230163
Это разный подход. Он это делает автоматически, но возможности ограничены. Примерно как в эксель ты можешь скопипастить табличные данные или извлечь из страницы.
В других ты можешь что угодно заскриптовать.
Экспортировать можно где угодно.
Аноним 05/12/21 Вск 19:07:38 #287 №2230167 
>>2230166
Что тогда будет самым универсальным и сбалансированным в плане возможностей? Selenium?
Аноним 05/12/21 Вск 19:08:36 #288 №2230168 
>>2230167
Я же написал - >>2230148
Аноним 05/12/21 Вск 19:25:35 #289 №2230177 
>>2229209
Погугли там что-нибудь вроде HBox, добавь его вместо нижней метки, а уже туда добавь метку и кнопку. В Gtk так, а больше я уже давно ничего не видел.
А вообще-то такие вещи лучше делать чем-нибудь вроде Glade, чтобы как в делфи накидать кнопок на формочку, сериализовать, а потом уже в работающей программе просто загрузить всю форму из файла. Ну или по крайней мере посмотреть в design-time, что у тебя получится на формочке накидать, чтобы потом накидать всё это поэлементно у себя в программе.
Аноним 05/12/21 Вск 19:48:33 #290 №2230211 
>>2230165
> "Сильное заявление. Доказывать его я, конечно, не буду..."
Хули там доказывать, самая дешевая масштабируемость и возможность использовать по 500 раз одни и те же сервисы вообще не заморачиваясь по поводу интеграций => самая дешевая разработка => микросервисы всегда лучше для вебсервисов
> Ну я вот тоже не понимаю, объясни нам.
google.com
Аноним 05/12/21 Вск 19:57:21 #291 №2230219 
15.JPG
>>2229640
Аноним 05/12/21 Вск 20:10:21 #292 №2230225 
>>2230219
Норкоман.
https://ideone.com/HSKN3I
Аноним 05/12/21 Вск 20:22:04 #293 №2230231 
>>2230211
>>>Монолит уместен в двух случаях:
>>>1. У вас вообще нет работы с сетью. Например, все что вы делаете это закидываете числа в свою числодробилку локально и получаете какой-то ответ. Эти числа никуда дальше не идут и на этом вся работа закончена.
>>>2. Это легасиговно, которое когда-то написали монолитом и переделывать концепцию не просто дорого, а ОЧЕНЬ дорого.
>>>Во всех остальных случаях микросервисы ВСЕГДА лучше.
>>"Сильное заявление. Доказывать его я, конечно, не буду..."
>Хули там доказывать, самая дешевая масштабируемость
То есть если мы делаем хоть что-либо кроме закидывания чисел в числодробилку, то ВСЕГДА мы должны закладывать возможность значительного масштабирования?
Аноним 05/12/21 Вск 21:57:36 #294 №2230276 
>>2230225
А если бы генератор был бесконечным? Простоц слайс бы не прошёл
Аноним 05/12/21 Вск 21:59:48 #295 №2230278 
>>2230276
Да и считать всю последовательность ненужно, надо только несколько
Аноним 05/12/21 Вск 23:55:24 #296 №2230365 
>>2230231
> То есть если мы делаем хоть что-либо кроме закидывания чисел в числодробилку, то ВСЕГДА мы должны закладывать возможность значительного масштабирования?
Пиздец ты уебок, понял что обосрался, но начал вилять жопой, чтобы на анонимном форуме не признать, что неправ. Просто охуеть. Но ладно, я натыкаю тебя носом
> возможность переиспользовать сервисы без проведения интеграции, что ужешевляет разработку
А про масштабируемость это к тому, что дешевле не только разработка, но и поддержка проекта
Аноним 06/12/21 Пнд 02:45:45 #297 №2230553 
>>2229537
> Да ты что? А мне вот кажется
Пока тебе кажется я виду результаты.
> Нет, не может.
Но ведь смог же.
> А что там блять может на 90% совпадать?
Там есть внешние сервисы в которые сервисы стучат по разному. Единственный серсис единственной ответственностью.
> у вас либо все сервисы ходят друг в друга по кругу, что означает, что вы долбаебы
А я сразу тебе говорил.
> Я скорее склоняюсь к мысли, что у вас команда дедов заросла тиной и покрылась пылью на одном стеке и подходе. А попытавшись сделать что-то новое произошел обсер.
Ты пытаешься выдать желаемое за действительное не имея неопровержимых доказательств.
> Ну так, а в чем проблема? Так это и должно работать тащемта
Это так быть нихуя не должно. В итоге скорость ответа увеличивается по экспоненте. Просто дебичи разработчики не осознавали разницу между IO блокировкой и загрузкой CPU. А ты осознаешь?
> Монолит уместен в двух случаях
Это классика и она уместна всегда. В отличии от микросервисов и асинхронности.
> Это легасиговно
Охуенный аргумент. В психологии твоей состояние называют пиком глупости. Когда нихуя не знаешь, по вершкам тему прочитал, но уже мнишь себя гением познавшим дзен.
> Пиздец, я тебе тут целую стену текста накатал, а ты блять вообще не понимаешь даже что такое концепция микросервисов
А по моему это ты не понимаешь, что микросервисная архитектура это лишь один из вариантов архитектуры и использовать его надо там, где он уместен. раз ты такой умный, то назови конкретные примеры где эта архитектура уместна. А если сможешь, то и где неуместна.
Аноним 06/12/21 Пнд 02:51:25 #298 №2230560 
>>2230142
Да. Там ебанутый заказчик был.
Аноним 06/12/21 Пнд 02:57:10 #299 №2230562 
>>2230365
> А про масштабируемость это к тому, что дешевле не только разработка, но и поддержка проекта
А если, допустим, в дальнейшем эти микросеврисы нигде никогда не понадобятся?
Аноним 06/12/21 Пнд 04:41:37 #300 №2230576 
Хей, Аноны! Чёт, я совсем приуныл. Чем можно заниматься на Питоне кроме веба? Веб достал. И не всякие там бигдаты.
Аноним 06/12/21 Пнд 05:03:33 #301 №2230578 
>>2230576
Можешь писать нейронки.
Аноним 06/12/21 Пнд 05:26:32 #302 №2230582 
>>2230576
Можешь научить ИИ отличать негров от обезьян. Гугл тебя с руками оторвёт за изобретение этого волшебного алгоритма, так как у них целая команда синьоров годами над этой проблемой работает.
Аноним 06/12/21 Пнд 07:48:18 #303 №2230595 
>>2230553
> Пока тебе кажется я виду результаты
АУФ
> Но ведь смог же
Что мешало сделать тоже самое в микросервисах? В чем космическая разница?
> А я сразу тебе говорил
Оказывается, прежде чем использовать технологию, в ней нужно разобраться, вау
> Ты пытаешься выдать желаемое за действительное не имея неопровержимых доказательств
То что ты пишешь это и есть неопровержимые доказательства лол
> Это так быть нихуя не должно. В итоге скорость ответа увеличивается по экспоненте.
Схуяли?
> Просто дебичи разработчики не осознавали разницу между IO блокировкой и загрузкой CPU. А ты осознаешь?
Так у тебя должен был быть 1 инстанс апишки, которая получает реквесты и собирает жсоны и 100500 синхронных инстансов аппы, которая занимается расчетами. Апи в зависимости от времени ответа аппы или синхронное, или асинхронное. А вы какую-то хуйни наворотили
> Это классика и она уместна всегда. В отличии от микросервисов и асинхронности.
В вебе не использовать микросервисы = быть дауном
> Охуенный аргумент. В психологии твоей состояние называют пиком глупости. Когда нихуя не знаешь, по вершкам тему прочитал, но уже мнишь себя гением познавшим дзен
Пчел ты так и не понял что такое микросервисная архитектура, но продолжаешь спорить, пиздец
> А по моему это ты не понимаешь, что микросервисная архитектура это лишь один из вариантов архитектуры и использовать его надо там, где он уместен. раз ты такой умный, то назови конкретные примеры где эта архитектура уместна
Конечно, это архитектура онли для веба
> А если сможешь, то и где неуместна.
Неуместна вне веба, все просто
>>2230562
Офк 95% сервисов никогда переиспользованы не будут, а всякие аутентификации, логи, метрики, кракены и тому подобное переиспользуются в каждом первом приложении. Что уже сокращает время на разработку на пару сотен часов.
Аноним 06/12/21 Пнд 09:32:42 #304 №2230610 
>>2230365
>Пиздец ты уебок, понял что обосрался, но начал вилять жопой
Ебать ты конченный... Ты же животное! Ты понимаешь, что тебя в зоопарке надо держать, и не пускать в треды для людей? Да хотя хули ты понимать можешь, дерьмо тупое?
Я тебе просто задал простой вежливый вопрос. И в итоге ты набираешь полную глотку говна и начинаешь им плеваться во все стороны. Ты же ёбнутый! Ты понимаешь, что ты ёбнутый на всю голову?
>Но ладно, я натыкаю тебя носом
Кого ты там тыкать собралась, блядина ёбаная? Не можешь нормально разговаривать - на хер иди. Мнение дегенератов меня в принципе не интересует. Я лучше с нормальными людьми поговорю.
>возможность переиспользовать сервисы
Ага, блядь, всем нужно каждый сервис переиспользовать, в каждом проекте, блядь.
>>2230595
>Офк 95% сервисов никогда переиспользованы не будут, а всякие аутентификации, логи,
Ага, а других способов переиспользовать код, кроме микросервисов, не существует. Модульность и ООП уже не работают, это же прошлый век, а в прошлом году их отключили, как устаревшие. Особенно, когда нужно строчки писать в лог, тут помогут только микросервисы. А заодно ещё и остальные 95 процентов надо обязательно на микросервисы переписать, потому что иначе те 5 процентов тоже не переиспользуются. Блядь, вот я вижу просто, что когда у тупорылого долбоёба заканчиваются аргументы, только тогда он срывается на визг рваножопой истерички и начинает всех подряд оскорблять.
Аноним 06/12/21 Пнд 09:46:46 #305 №2230612 
>>2230610
> Кого ты там тыкать собралась, блядина ёбаная? Не можешь нормально разговаривать - на хер иди. Мнение дегенератов меня в принципе не интересует. Я лучше с нормальными людьми поговорю.
Не рвись, чмонь. Я понимаю, что тебе очень обидно, что твое виляние жопой было в грубой форме остановлено, но это только твои проблемы
> Ага, а других способов переиспользовать код, кроме микросервисов, не существует
Пиздец, печальный опыт предыдущего виляния жопой тебя ничему не научил? Окей, я натыкаю тебя еще разок, мне не трудно
> возможность использовать по 500 раз одни и те же сервисы вообще не заморачиваясь по поводу интеграций
Угомонись, додик. И перестань пытаться мои слова переврать или выдрать кусок без контекста и начать с ним спорить
> Блядь, вот я вижу просто, что когда у тупорылого долбоёба заканчиваются аргументы, только тогда он срывается на визг рваножопой истерички и начинает всех подряд оскорблять.
Ну так перестань визжать, в чем проблема?
Аноним 06/12/21 Пнд 10:51:13 #306 №2230635 
Ебать вы тут срете!
Аноним 06/12/21 Пнд 11:39:25 #307 №2230668 
>>2230635
Обсуждение архитектуры на двоще
Ублюдок, мать твою, а ну, иди сюда, говно собачье, а? Ну, решил ко мне лезть? Ты, засранец вонючий...
Обсуждение архитектуры на мите
Как вам будет угодно! Я всяко могу, как хотите! Пожалуйста, я к вашим услугам!
Аноним 06/12/21 Пнд 11:45:06 #308 №2230674 
Алсо, подскажите в планирование архитектуры.
На проекте мы с руководителем обсуждаем. Он базис представляет, я дополняю, он корректирует. Но во время реализации бывает периодически проебы. Не такие, что подпорками забиваем или вообще переделываем из-за невозможности масштабиравания, но такие, что какую-нибудь таску переделать придется, чтоб выглядело хорошо, которая релиза 2 назад была сделана.
Аноним 06/12/21 Пнд 11:48:02 #309 №2230676 
>>2230674
Таску прихоидтся переделывать из-за встратого ТЗ или проеба со стороны разработчика ?
Аноним 06/12/21 Пнд 11:52:04 #310 №2230680 
>>2230553
>В отличии от микросервисов и асинхронности
Джанговская тредочушка, ты? Я уже давал тебе свежую порцию урины на лицо, тебе все мало?
Аноним 06/12/21 Пнд 11:52:32 #311 №2230681 
>>2230676
Больше из-за тз, т.к. сначала все хорошо выглядит и подходит, но с новыми требованиями узко становится.
Аноним 06/12/21 Пнд 11:54:29 #312 №2230684 
>>2230681
Не ссы, это называется рефакторинг и он неизбежен. Сразу хуй ты всё продумаешь, чтоб нигде не запнуться
Аноним 06/12/21 Пнд 12:05:09 #313 №2230692 
>>2230681
Ну так это нормально, разрабов для того кабанчики и содержат, чтобы бесконечно меняющиеся требования реализовывали. Если тебя это беспокоит и анонам из пр не веришь, то можешь к Кабан Кабанычу подойти и рассказать про это. Он тебе пояснит, что реализовывать фичу с запасом, когда еще не понятно выстрелит она или нет -- слишком дорого. Дешевле написать минимально работающую версию и выкатить, а если стрельнет, то допилить+часто вообще не понятно что там расширять и улучшать нужно, пока фидбэк от юзеров не получен
Аноним 06/12/21 Пнд 12:15:53 #314 №2230696 
>>2230167
вот ты додик.
Ну начни с pandas, раз ты неизбежно будешь обрабатывать таблички.
Аноним 06/12/21 Пнд 12:37:01 #315 №2230708 
>>2230576
Ну, поскольку это скриптовая параша, то можно всякие мат. расчёты делать по быстрому и прочие вместо матлаба. Ну или просто скриптики
По большей части, на нём писать кроме околовеба особо нечего
Аноним 06/12/21 Пнд 12:40:09 #316 №2230711 
>>2230576
Ну напиши какой-нибудь видеоплеер. Нет, на нем писать можно почти всё, но юзается он практически только в вебе или нейронках, как сейчас можно.
Аноним 06/12/21 Пнд 12:44:33 #317 №2230713 
image.png
>>2230711
>видеоплеер
Нахуя?.. Десктоп мертв. Модные пацаны нейронки хуярят и баб ебут
Аноним 06/12/21 Пнд 12:59:04 #318 №2230722 
>>2230668
наоборот вообщето
Аноним 06/12/21 Пнд 13:01:33 #319 №2230725 
>>2230713
Окей, напиши видеоплеер, который хостит твои видюшки где-то на cdn, ты можешь задать веб адрес, а плеер спарсит страницу, найдет видюшки и сделает плейлист с отображением мета данных
Аноним 06/12/21 Пнд 13:03:38 #320 №2230729 
какие есть идеи на телеграм бота?, видел интервью с создателем глаза бога и он говорил, что зарабатывает на боте на хату в Москве каждый месяц. Как так же зарабатывать, ну или хотябы 1-2млнруб.?
Аноним 06/12/21 Пнд 13:14:09 #321 №2230737 
>>2230729
У него есть конкретные услуги, телеграм тут вообще никаким боком.
Если у тебя нет востребованной услуги, то хоть обвешайся этими ботами.
Аноним 06/12/21 Пнд 13:30:23 #322 №2230752 
https://pastebin.com/unTrPVgL
Нужно получить значение без $. Почему на regex101 проходит, а в компиляторе нет?
Аноним 06/12/21 Пнд 13:33:26 #323 №2230753 
>>2230729
Так дело не в боте, а в том, что чел дохуя внешних сервисов интегрировал в свою залупу. Хотя там на самом деле даже 50% от возможного функционала не реализована, особенно в контексте вк. Контакт вообще дырявая хуйня, в которой понятия приватности отсутствует
Аноним 06/12/21 Пнд 13:37:37 #324 №2230756 
>>2230752
Матч это полное совпадение, тебе нужен search.
Аноним 06/12/21 Пнд 13:43:00 #325 №2230759 
>>2230756
да, работает. Спасибо
Аноним 06/12/21 Пнд 13:43:01 #326 №2230760 
>>2230752
match проверяет подходит ли строка под шаблон. Ты хуяришь шаблон "без символа $" и передаешь строку с $. Казалось бы, что могло пойти не так? Как тебе уже сказали, используй search
Аноним 06/12/21 Пнд 13:52:29 #327 №2230764 
Можно ли из распарсенных данных soup'ом сформировать таблицу не прибегая к сторонним либам?
Аноним 06/12/21 Пнд 13:58:42 #328 №2230777 
>>2230764
Какую таблицу?
Аноним 06/12/21 Пнд 14:01:01 #329 №2230778 
>>2230764
ну можно через итерации и словари, но нахуя?
Аноним 06/12/21 Пнд 14:07:32 #330 №2230786 
>>2230764
Что за данные? Что за таблица? Ты блять можешь мысли свои формулировать нормально?
Аноним 06/12/21 Пнд 14:07:52 #331 №2230787 
>>2230764
Ну опять ну началось, ебать.

Да, pandas наиболее оптимален для вкатуна-оналитика. А bs4 более оптимален для остальных случае.
Аноним 06/12/21 Пнд 14:09:11 #332 №2230791 
>>2230729
Что-нибудь спиздить и продавать, очевидно же.

Так что кривенькая дорожка ведет тебя в даркнет.
Ну а там и тюрьмы недалеко.

Видите как трудно вкатунам.
Аноним 06/12/21 Пнд 14:10:48 #333 №2230793 
image.png
Как при запуске веб-приложения в Питоне подгрузить к нему env-файл?
В Fastapi есть способ через pydantic и задание пути к env-файлу, но как по мне тут какая-то "магия", не совсем ясно что делать если фреймворк другой и pydantic юзать не хочется
Аноним 06/12/21 Пнд 14:10:51 #334 №2230794 
>>2230729
> видел интервью с создателем глаза бога и он говорил
Это тот которого в сауне приняли с трапом и негритянкой?
Аноним 06/12/21 Пнд 14:12:07 #335 №2230795 
>>2230791
Это кстати популярная хуйня среди малолетних зумерков. Всякие мелкокриминальные делишки в интернете, чтобы сшибить себе копеечку на досуг. Там целые форумы, где полно всякой такой движухи. Я как-то натыкался, интересное зрелище.
Аноним 06/12/21 Пнд 14:12:58 #336 №2230796 
>>2230777
>>2230786
>>2230787
CSV. Использую bs4, экспортировать удобно получилось через встроенную библиотеку csv, pandas не нужен
Аноним 06/12/21 Пнд 14:13:21 #337 №2230798 
>>2230793
dotenv
Аноним 06/12/21 Пнд 14:13:38 #338 №2230799 
>>2230793
Ты можешь вручную его распарсить, это во-первых. Во-вторых, возьми любую либу, тот же dotenv и аналоги. Хотя судя по всему ты не понимаешь что такое переменные окружения лол
Аноним 06/12/21 Пнд 14:14:06 #339 №2230803 
>>2230796
И причем тут таблица?
Аноним 06/12/21 Пнд 14:14:42 #340 №2230804 
>>2230793
Ах да, у тебя в коде синтаксическая ошибка, просто охуеть
Аноним 06/12/21 Пнд 14:15:17 #341 №2230806 
>>2230796
Как нахуя csv связан с таблицами? Ты долбаеб?
Аноним 06/12/21 Пнд 14:15:41 #342 №2230807 
>>2230799
Как раз я спрашиваю не "как файл прочитать" а "как переменные окружения подгрузить"

>>2230804
?
Это скрин из офф доков фастапи, чел, тут нет никаких косяков синтаксиса
Аноним 06/12/21 Пнд 14:15:41 #343 №2230808 
>>2230796
>pandas не нужен
А вот здесь ты не прав.
pandas нужен всегда. Просто привыкай.
Аноним 06/12/21 Пнд 14:32:13 #344 №2230836 
изображение.png
>>2230807
> Как раз я спрашиваю не "как файл прочитать" а "как переменные окружения подгрузить"
Ну так читаешь файл и подгружаешь переменные, в чем проблема? Или ты не знаешь что такое переменные окружения и как их устанавливать? Вот на скрине срываю покровы с этой вселенской тайны
> Это скрин из офф доков фастапи, чел, тут нет никаких косяков синтаксиса
Это я обосрался, показалось, что класс Settings является датаклассом, а там дефолт валуе нельзя указывать после поля без дефолтного значения. Но в любом случае, даже если это не ошибка, то просто не питоник вэй
Аноним 06/12/21 Пнд 14:32:43 #345 №2230837 
>>2230808
двачую, как можно работать без pandas? это жи стандарт
Ну сделаешь ты свой менеджер таблиц, одна ошибка и ты сосешь, а потом еще и ищешь петуха который код писал, чтобы его накуканить
Аноним 06/12/21 Пнд 14:53:39 #346 №2230859 
Нубловопрос по PANDAS

Есть у меня данные в Django ORM (SQLite) вида:

>1.12.2021 - Вова - 12
>1.12.2021 - Стёпа - 5
>2.12.2021 - Леша - 4
>2.12.2021 - Вова - 4
>3.12.2021 - Степа - 1
>3.12.2021 - Лёша - 9000

Хочу из них получить табличку:

Дата | Вова | Стёпа | Лёша
1.12 | ..12.. | ...5.. | ...-..
2.12 | ...4.. | ...-... | ...4..
3.12 | ...-... | ...1.. | ..9000

Как мне это сделать?
Аноним 06/12/21 Пнд 14:59:03 #347 №2230867 
>>2230859
groupby
Аноним 06/12/21 Пнд 15:03:10 #348 №2230871 
>>2230859
unstack же
Аноним 06/12/21 Пнд 15:03:32 #349 №2230872 
>>2230859
Дай угадать, теперь ты будешь бегать с простейшими вопросами про pandas по десять раз на день?
Аноним 06/12/21 Пнд 15:03:33 #350 №2230873 
>>2230859
А ещё лучше pivot_table
Аноним 06/12/21 Пнд 15:04:25 #351 №2230875 
>>2230872
А почему бы ему и не бегать сюда?
Аноним 06/12/21 Пнд 15:18:37 #352 №2230889 
>>2230867
Чёт у меня после этого не завелось. После GroupBy сортировать нельзя.
>>2230871
Спасибо
>>2230873
>pivot_table
Спасибо, этот вариант сработал.
>>2230872
Мне только эту хуйню сделать шоб график в жанге выводился с фрагментарными данными, и в рот его всё ебать. Но вообще а чем хуйово.
Аноним 06/12/21 Пнд 15:30:16 #353 №2230897 
image.png
image.png
>>2224725 (OP)
Выкатываюсь из айти нахуй.
5 лет жизни потраченных в никуда и вот я ни где.

На связи Кун Кунович 31 лвл который в 27 лет решил вкотится в это ваше ебаное ойти.
Учи питон говорили они, будешь зарабатывать 100500$ говорили они.
Сейчас я зарабатываю 3400000 ржублей в месяц минус премия и ебашу по 4к строк в день как Лев Толстой обезьяна ебаная(Абу, милый это не про тебя).
Да, нам буквально платят за количество строк как Индусам. Я серьезно, перед начальством начальства нужно отчитаться чем ты занимался весь спринт и если кода мало то выглядит так что ты бездельник. Воды в проектах пиздец как много.
И эту работу я еще еле нашел по блату.
За 5 лет я научился ебашить на питоне бек енд для сайтиков и апи, верстать странички любой хитровыебаной красоты и сложности, мошинному зрению и мошинному обучению, работать с базами данных, даже ебаную онлайн игру делаю и всю залупу эту тут лень перечислять.
И я не могу найти ни какую другую работу.
На интервью говорят что я охуенно сделал техническое задание(они уже заебали этими тз, почти каждая шарага высылает тз), задают вопросы и я правильно отвечаю, все хорошо но потом спустя 5 дней, извините мы нашли кандидата который нам подходит чуть лучше вас.
У меня есть примеры кода на гите и свой сайт-резюме и пет проекты.
Я завалил уже больше 50 интервью.

На хедхантере можно делать по 200 откликов в сутки, у меня пальчик устает, так что я написал скрипт который делает отклики на подходящие вакансии. И знаете что? За 2 недели все вакансии на удаленную работу на Python кончились. Я откликнулся на все вакансии по удаленной работе и на все вакансии в моем городе и мне везде отказали.

Легенду о дефиците кадров и высоких зарплатах раздувают сами ИТ конторы что бы вкатыши задемпинговали рынок и сбили цены на рабов.
На деле же если и есть дефицит то это опытных, под опытом подразумевается стаж работы а не умение. В первую очередь смотрят на количество лет в коммерческой разработке и если у тебя нет 5 лет хотя бы, то тебя даже в ебаные стажеры не возьмут.
А джунов-вайтишников их дохуя по 200 штук на одну вакансию. И среди них выберут того кто мордочкой понравится, либо задрота, олимпиадника.
Даже мой коллега с 10 летнем стажем и высшим образованием уже год ищет куда свалить с нашей конторы и вариантов у него видимо нет, хотя платят ему 100к.
Но блин с 10 летнем стажем и высшем образованием даже у знакомой юристки 80к зп, а у экономистки 90к.
Сейчас я задумался на что еще можно было поратить 5 лет жизни? Мой друг 5 лет работал торговым представителем и у него сейчас зп 70к.
Почему этот тред здесь а не в пограмаче? Потому что там орудует лахта. Серьезно, это буквально госзаказ что бы все ломанулись в погромисты, это граммотность 21 века. Без дешевых погромистов людишек роботами не заменить. И дальше количество погромистов будет только увеличиваться. В школе будут экзамены по фулл стаку. И такая профессия как программист вообще исчезнет, как исчезла профессия писарь, когда всех обучили грамотности.
В условия кризиса погромисты вообще будут не нужны, так они не производят вообще ни чего полезного. Всю ойти можно отнести к индустрии развлечений, а когда кушать не чего не до развлечений.
Подумай анон на что ты еще можешь потратить годы своей жизни перед тем как вкатываться в ойти. Ойти плохо еще тем что оно затягивает. Когда не хер делать я пилю игры и это что то вроде развлечения. Сам сделал, сам поиграл, сам проиграл. но сейчас мне за 30 и нужно думать о деньгах а не о развлечениях.
Так и ты можешь попасть в эту ловушку анон.
Аноним 06/12/21 Пнд 15:31:50 #354 №2230898 
>>2230897
Заебали серить уже этой шизопастой.
Аноним 06/12/21 Пнд 15:39:46 #355 №2230910 
>>2230898
И в чем он не прав
Аноним 06/12/21 Пнд 15:41:37 #356 №2230912 
>>2230910
В том что он пиздабол
Аноним 06/12/21 Пнд 15:52:09 #357 №2230932 
>>2230912
Пруфай
Аноним 06/12/21 Пнд 15:54:48 #358 №2230936 
>>2230897
Паста не плохая, но тейк про
> Сейчас я зарабатываю 3400000 ржублей в месяц
это пиздец. Как можно было так обосраться с нулями? Ебанулся совсем? Кто в здравом уме будет это читать и проникаться тем, что "айти пузырь уже все", если чел пишет, что получает 3.5 ляма в месяц?
Аноним 06/12/21 Пнд 15:56:56 #359 №2230940 
>>2230936
Там в оригинале было 34к )
Долбоеб просто plain text перекопировал и вбросил сюда. Даже не читай потко сознания этого шизла
Аноним 06/12/21 Пнд 16:05:08 #360 №2230955 
>>2230897
> Сейчас я зарабатываю 3400000 ржублей в месяц
Очередной сеньиор с жиру бесится.
> Я завалил уже больше 50 интервью.
Так все же завалил?
> За 2 недели все вакансии на удаленную работу на Python кончились.
Ну найди не удаленную. Потом договоритсь. Раз ты такой распрекрасный хуй, то тебе пойдут на встречу.
> Легенду о дефиците кадров и высоких зарплатах раздувают сами ИТ конторы что бы вкатыши задемпинговали рынок и сбили цены на рабов.
Легенде уже сколько лет то. Она из тех времен когда программисты должны били быть умными. К счастью эта проблема давно решена. Теперь постепенно решается и проблема высоких зарплат. На большую контору хватит человек 5 нормальных опытных спецов, которые будут погонять стадо макак. Вот им и будут плотить 100500$
> Всю ойти можно отнести к индустрии развлечений
Вспомнил старый рассказ - "Папа сидел за компьютером и работал в игру лайнс".
> Почему этот тред здесь а не в пограмаче?
Потому что ты вниманияблядь?
> Когда не хер делать я пилю игры и это что то вроде развлечения.
Начни их подорвать. Может даже работу искать не придется.
Аноним 06/12/21 Пнд 16:05:47 #361 №2230956 
>>2230897
> Сейчас я зарабатываю 3400000 ржублей в месяц
Очередной сеньиор с жиру бесится.
> Я завалил уже больше 50 интервью.
Так все же завалил?
> За 2 недели все вакансии на удаленную работу на Python кончились.
Ну найди не удаленную. Потом договоритсь. Раз ты такой распрекрасный хуй, то тебе пойдут на встречу.
> Легенду о дефиците кадров и высоких зарплатах раздувают сами ИТ конторы что бы вкатыши задемпинговали рынок и сбили цены на рабов.
Легенде уже сколько лет то. Она из тех времен когда программисты должны били быть умными. К счастью эта проблема давно решена. Теперь постепенно решается и проблема высоких зарплат. На большую контору хватит человек 5 нормальных опытных спецов, которые будут погонять стадо макак. Вот им и будут плотить 100500$
> Всю ойти можно отнести к индустрии развлечений
Вспомнил старый рассказ - "Папа сидел за компьютером и работал в игру лайнс".
> Почему этот тред здесь а не в пограмаче?
Потому что ты вниманияблядь?
> Когда не хер делать я пилю игры и это что то вроде развлечения.
Начни их подорвать. Может даже работу искать не придется.
Аноним 06/12/21 Пнд 16:14:40 #362 №2230966 
>>2230793
Лучше делай это в докере, чтоб не засрать окружение.
Вообще, енв устарел, используй жсон
Аноним 06/12/21 Пнд 16:32:56 #363 №2230984 
>>2230966
> Лучше делай это в докере, чтоб не засрать окружение.
А вот и эксперты подъехали. Ты в курсе, что переменные окружения бывают разного уровня? И по дефолту все переменные окружения устанавливаются для сессии и видны только внутри нее и с ее завершением исчезают. Попробуй запустить скрипт, который ставит переменную окружения и дождаться завершения его работы, а потом запустить скрипт, который читает эту переменную. Угадай что произойдет?второй скрипт нихуя прочитать не сможет
> Вообще, енв устарел, используй жсон
Какой нахуй жсон? Ты о чем вообще?
Аноним 06/12/21 Пнд 16:34:38 #364 №2230987 
>>2230984
Они скоро через тикток деплоить будут.
Аноним 06/12/21 Пнд 16:48:52 #365 №2231005 
>>2230987
В голос
Аноним 06/12/21 Пнд 17:14:27 #366 №2231034 
>>2230987
Да, будем и потом вы будете это поддерживать. И что ты сделаешь? Напишешь гневный пост на подтираче?
Аноним 06/12/21 Пнд 18:08:50 #367 №2231084 
BS4 не может во взаимодействие со страницей? Мне нужно нажать на кнопку на сайте, а затем распарсить получившуюся страницу. Без Selenium не обойтись?
Аноним 06/12/21 Пнд 18:11:39 #368 №2231087 
>>2231084
В смысле не может? Ты совсем дурачок? Ты хтмл код передаешь в суп, как там джаваскрипт с запросами в бэк может работать?
Аноним 06/12/21 Пнд 18:12:59 #369 №2231089 
>>2231084
Ищи эти данные в контенте и забирай оттуда. Если нет, то они подгружаются. Повторяешь запрос у себя и забираешь готовое опять же.
Аноним 06/12/21 Пнд 18:16:16 #370 №2231095 
>>2231084
>>2230131
Когда вы блять уже научитесь пользоваться апишкой, а? bs4 какие-то нахуй, селениумы, на практиве минимум 90% ваших задач через запросы делаются
Аноним 06/12/21 Пнд 18:18:14 #371 №2231096 
j4gD4fw.jpg
>>2231095
Аноним 06/12/21 Пнд 18:50:16 #372 №2231116 
>>2231095
это у вас ГазМясМейлру данные россиян по api выдают, а в остальном бизнесе их ДОБЫВАЮТ
Аноним 06/12/21 Пнд 19:18:23 #373 №2231131 
>>2230984
> Ты в курсе, что переменные окружения бывают разного уровня?
Я конечно дико извиняюсь, но какое отношение ваш ответ имеет к
> Лучше делай это в докере, чтоб не засрать окружение.
Аноним 06/12/21 Пнд 19:26:54 #374 №2231137 
>>2231131
К тому, что засерки переменными окружения не будет
Аноним 07/12/21 Втр 00:03:53 #375 №2231334 
Есть алгоритмы фильтрации джсонов?
Я написал один рекурсивный. На вход ему идёт лист примерно следующего содержания [True [items, data, active]] - перебирать вложенные структуры (листв, дикты) и оставить только те, где active = True. Работает он вполне себе без каких-то задержек. Реализация через реджексы невозможна, либо будет очень дорогим, я пытался.
Уже заебался парсить ответы вручную, хотелось бы что-то универсальное. Схожих библиотек не нашёл.
Аноним 07/12/21 Втр 00:15:01 #376 №2231339 
9IXuSWBonD0.jpg
>>2231334
Примерно так выглядит
Аноним 07/12/21 Втр 00:26:17 #377 №2231349 
>>2231339
Данные лучше покажи. И текстом, а не пикчей.
Аноним 07/12/21 Втр 00:50:24 #378 №2231366 
>>2231349
Весь говнокод
https://pastebin.com/cZNiqb9U

В конце результат фильтрации при первом и втором проходе по двум условиям

В самом конце выводит нужный параметр
Аноним 07/12/21 Втр 04:38:34 #379 №2231394 
>>2231334
Что за хуйню я читаю?
Какая к хуям фильтрация джейсона?
Тебе дали встроенный модуль json что бы преобразовывать json из текста в питонячий объект и вертеть его как угодно. А потом им же преобразовывать его обратно в json.
Твоя задача это просто цикл с условием.
Аноним 07/12/21 Втр 07:33:59 #380 №2231404 
>>2231334
ну если тебе прям хочется быстро, есть jq .
https://pypi.org/project/jq/
Аноним 07/12/21 Втр 09:24:37 #381 №2231423 
https://pastebin.com/uZMsMa5N
Можно ли так генерировать список? Что то мне кажется, что за такое хуем по губам мне поводят.
Аноним 07/12/21 Втр 09:26:09 #382 №2231424 
>>2231423
a = [b for b in range(1, 1000001)]
Аноним 07/12/21 Втр 09:27:12 #383 №2231425 
>>2231424
Ебать я затупок нахуй, благодарю
Аноним 07/12/21 Втр 09:41:40 #384 №2231429 
Стикер
>>2231425
>>2231423
list(range(1,1000001))
пиздец
Аноним 07/12/21 Втр 10:00:07 #385 №2231437 
>>2231394
А если таких запросов 100-200? Будешь каждому личную функцию прописывать?
Аноним 07/12/21 Втр 10:02:14 #386 №2231441 
>>2231425
[*range(1, 1000001)]
list(range(1, 1000001))

>>2231424
мы вам перезвоним
Аноним 07/12/21 Втр 10:02:32 #387 №2231442 
>>2231423
Проще перечислить вещи за которые не поводят.
Пиздец, зачем это в языке, если какой-то хер в очках запретил им пользоваться
Аноним 07/12/21 Втр 10:03:00 #388 №2231443 
>>2231429
>list
Пиздец
Аноним 07/12/21 Втр 10:04:33 #389 №2231445 
>>2231424
>>2231429
>>2231441
Скобки круглые. В памяти весь список держать собрались? Вы чё, конченые?
Аноним 07/12/21 Втр 10:09:46 #390 №2231449 
>>2231445
Лишний генератор вокруг обычного range, который сам как генератор работает? Да ты сам недалеко ушел, я посмотрю.

Изначальный вопрос - генерация именно списка. Так-то создавать из ничего список, понятное дело, не всралось почти никогда, если только менять как-то хитрожопо его надо будет, в середине там например.
Аноним 07/12/21 Втр 10:47:23 #391 №2231484 
Хочу перекатиться в микросервисы со своего монолинтного джанго. Но совсем не имею о них представления. Какие статьи почитать, какой стек актуален?
Аноним 07/12/21 Втр 11:02:02 #392 №2231502 
>>2231437
Нахуя личную?
Ты описал проблему. Тебе дали решение. Если решение не подходит, это значит ты не правильно/не до конца описал проблему.
Аноним 07/12/21 Втр 11:59:29 #393 №2231544 
>>2231484
Дед, это ты? Тебя так приложили вчера, что решил таки перебраться?
Аноним 07/12/21 Втр 12:19:49 #394 №2231554 
Как при асинхронном мультипроцессинге узнать об окончании всех заданий, например, чтобы вызвать событие?
Аноним 07/12/21 Втр 12:56:43 #395 №2231580 
>>2231544
Шиз, ты чо рвёшься? Настолько задело то обсуждение, что везде уже "деды" мерещатся?
Аноним 07/12/21 Втр 14:01:15 #396 №2231626 
utah-teapot-cover-880x308.jpg
Анонэ, есть подробный структурированный гайд по развитию себя как специалиста в области python web development? Вот у нас есть несколько уровней: джун, миддл, сеньор, и типа god-level(прошаренный мастер способный создать что угодно используя данные технологии в определенных условиях). Существует ли где-то подробное современное(2020-21) описание какие знания, навыки, представления должны быть на каждом из этих уровней?
Аноним 07/12/21 Втр 14:46:22 #397 №2231664 
>>2231626
В одной галере ты можешь быть оценён на сеньора-помидора, а в другой твоих знаний хватит на уверенного мидла. Зачем тебе в грейдовку целиться? Просто познавай то, что тебе интересно и приносит денег
Ну а вообще в тырнетах куча всяких разных бесполезных роадмапов есть. Можешь их поизучать
Аноним 07/12/21 Втр 14:46:24 #398 №2231665 
>>2231626
Ты понимаешь, что если тебе даже для этого нужна инструкция, то это очень плохо?
Аноним 07/12/21 Втр 15:36:09 #399 №2231715 
>>2231626
Грейды это субъективная хуйня. да еще и дрочят их как хотят. Где то тебя запишут в мидлы, где в джун плюс.
Просто повышай свою квалификацию и навыки. Когда ты осознаешь, что умнее половины коллектива - проси прибавку к зп. ну или ищи новую работу. Так и происходит рост в айти.
Аноним 07/12/21 Втр 16:07:13 #400 №2231755 
За сколько можно освоить VS CODE? Задают ли вопросы про него на собесах?
Аноним 07/12/21 Втр 16:09:16 #401 №2231757 
>>2231755
Два года самостоятельно или полгода школы-интерната.
Аноним 07/12/21 Втр 16:26:22 #402 №2231776 
>>2231665

Не вижу в этом ничего крамольного. У каждого человека есть определенный уровень знаний, в айти есть разделения на классы по уровню знаний, навыков и опыта. Вот я и хотел прочитать, узнать, есть ли какие-то "дефолтные" технологии, знания, специфика отдельно для каждого уровня, которые являются актуальными в 2021 году.

а раз ты уже с самого начала человеку отвечаешь в пассивно-агрессивной форме, то это тебе нужно в своих комплексах загонах разобраться
Аноним 07/12/21 Втр 16:26:48 #403 №2231779 
>>2231554
https://pastebin.com/7y9M15GZ
Аноним 07/12/21 Втр 16:27:35 #404 №2231780 
>>2231664
>>2231715

Спасибо.
Аноним 07/12/21 Втр 16:28:33 #405 №2231781 
>>2231776
Нет никаких уровней знаний, оно всё вместе помаленьку растет, как и общий кругозор. А искать списки, вот выучу пункты с 1 по 10 и вот я мидол это полная хуйня, как по мне.
Аноним 07/12/21 Втр 16:30:59 #406 №2231783 
>>2231781
Опять же, что значит выучить? Раскурить до исходников и наработать практику или посмотреть видяшку на ютубе от Зумера Зумеркова и забыть на следующий день?
Это абстрактная бессмысленная хуита.
Аноним 07/12/21 Втр 16:33:08 #407 №2231787 
>>2231755
Это просто один из инструментов. Причем не все им пользуются, PyCharm объективно лучше пока что.
Максимум что могут спросить пользовался ли. если в конторе это обязательный инструмент, то один хуй возьмут просто скажут осваивай.
Аноним 07/12/21 Втр 16:38:09 #408 №2231793 
Как в flask-admin добавить урл, который бы не показывался в админке? Ну просто урл, в ответ что-то придет, что работает.
Аноним 07/12/21 Втр 17:30:54 #409 №2231856 
>>2231783
Если ты не понял мысль в посте, я объяснять ее не буду. Твой бред начинает надоедать.
Аноним 07/12/21 Втр 17:40:57 #410 №2231871 
>>2231856
Вообще, это правильно, надо завязывать с такой хуйней.
Это как долбоебы с брошурками млм - пояснить им ничего не пояснишь, только время тратить. Пусть идут к успеху.
Аноним 07/12/21 Втр 18:17:27 #411 №2231939 
16207459670610.jpg
>>2231776
Иерархия не сложилась. Кое-что вырисовывается, но мы тут не в армии. Нет званий.

Ты это хотел узнать?
Аноним 07/12/21 Втр 20:22:47 #412 №2232040 
>>2231779
спасиб, интересненько. Это получается моя программа должна работать внутри цикла while ?
Аноним 07/12/21 Втр 20:26:45 #413 №2232042 
>>2231626
Пока нет гос-стандартов к прогерам - нет и единых "дорожных карт" для обучения прогерским специальностям. Это ты в медицине или экономике можешь сказать "вот у нас опыт столетий, вот у нас научный консенсус, вот у нас бест практис от ведущих вузиков, и на основе всего этого мы можем сказать, что...". В программировании это не работает. Слишком много альтернативных инструментов под 1 задачу, слишком быстро все меняется.
Аноним 07/12/21 Втр 22:33:46 #414 №2232148 
>>2232042

Ну да, в общем-то ты прав.
Аноним 07/12/21 Втр 22:35:34 #415 №2232149 
>>2231757
В голос
>>2231755
Хули ты там собрался осваивать? Ты при переезде с хрома на лису тоже бы стал писать "за сколько можно освоить лису? задают ли по ней вопросы на собесах?"
>>2231776
> в айти есть разделения на классы по уровню знаний, навыков и опыта
Нету, это просто хуйня, чтобы показать насколько опытный чел им нужен. Я могу дать примерную расшифровку
джун => закрывает таски, в которых написано что, где и как нужно сделать
мидл => закрывает таски, в которых написано для чего их нужно сделать
сеньор => закрывает таски уровня "сделать заебись"
> Вот я и хотел прочитать, узнать, есть ли какие-то "дефолтные" технологии, знания, специфика отдельно для каждого уровня, которые являются актуальными в 2021 году.
Нету такого, тем более, что новые и актуальные технологии появляются слишком быстро, а половина кодовой базы все еще висит на какой-нибудь джанге 1.0 из 2010 года
Аноним 07/12/21 Втр 22:56:32 #416 №2232159 
>>2231484
https://youtu.be/9mZmc6a0tmM
Аноним 07/12/21 Втр 23:16:24 #417 №2232166 
>>2232149
>джун => закрывает таски, в которых написано что, где и как нужно сделать
>мидл => закрывает таски, в которых написано для чего их нужно сделать
>сеньор => закрывает таски уровня "сделать заебись"
Какая глупость
Аноним 07/12/21 Втр 23:18:19 #418 №2232168 
>>2232149
>закрывает таски уровня "сделать заебись"
Это я первые полгода так задачи делал, когда работал в битриксостудии
Аноним 07/12/21 Втр 23:20:51 #419 №2232170 
>>2232168
В похапе если не развалилось сразу, то уже заебись.
Аноним 07/12/21 Втр 23:32:28 #420 №2232172 
>>2232166
Бля, ебать ты меня аргументами приложил
>>2232168
Хуячить сайты на сиэмэсках это не совсем погромирование
Аноним 07/12/21 Втр 23:48:46 #421 №2232179 
>>2232172
>Бля, ебать ты меня аргументами приложил
А на этот бред не может быть аргументов. Делать заебись бизнес фичи без нормального описания таски невозможно, в любом случае придется переписывать, также невозможно не наплодив багов и костылей вносить правки в легаси без общения с человеком который на этом проекте работает долгое время. На тех. скиллы это никак не влияет.
Аноним 08/12/21 Срд 00:15:14 #422 №2232192 
>>2232179
> А на этот бред не может быть аргументов
Не может быть настолько, что ты их дальше самостоятельно приводишь
> Делать заебись бизнес фичи без нормального описания таски невозможно
Возможно, все бизнес фичи, которые придумал не погромист делают именно так. Если тебе дали задание "сделать забеись", а ты понимаешь, что можно сделать"заебись" только за год и "почти заебись" за неделю и идешь обсуждать это с бизнесом, то ты сеньор и ты получаешь 300к/наносек. Если ты это не понимаешь, то ты просто не сеньор и для тебя действительно такие задачи невозможны еще
> также невозможно не наплодив багов и костылей вносить правки в легаси без общения с человеком который на этом проекте работает долгое время. На тех. скиллы это никак не влияет.
Да, поэтому тебе нужно понять что, куда и как прикрутить, потом найти человека, который в этом разбирается и узнать у него все подводные, а потом делать. Именно это и отличает сеньора от ждуна. Именно поэтому на одну таску ждунана полноценную таску, а не сдвинуть кнопку влево на 10 пикселей приходится тратить пару часов сеньора на разбирательства того как и что нужно сделать, с какими технологиями и каких подводных избежать.
Аноним 08/12/21 Срд 00:30:55 #423 №2232197 
>>2232192
>идешь обсуждать это с бизнесом, то ты сеньор и ты получаешь 300к/наносек
Какое это отношение это имеет к тех. скиллам? На многих проектах практически невозможно отличить джуна от сеньора если нет задач по архитектуре и сложным решениям.
>приходится тратить пару часов сеньора на разбирательства того как и что нужно сделать, с какими технологиями и каких подводных избежать.
Ты походу на легаси не работал, о подводных камнях там сеньор не может знать и нужен человек который на этом говне греб дольше всех, иначе пизданет на проде дай боже. Куа кстати тоже не будет, обычная практика для сбера и вк например.
Аноним 08/12/21 Срд 00:40:59 #424 №2232199 
>>2232197
> Какое это отношение это имеет к тех. скиллам? На многих проектах практически невозможно отличить джуна от сеньора если нет задач по архитектуре и сложным решениям.
Прямое, эти навыки так же являются техскиллами, зачастую даже более важными. Погромисту платят 6-значную зп в разы, а то и в десятки раз превосходящую медиану по России не за красивые глаза, а за бабло, которое он приносит бизнесу. И это бабло в 90% случаев экономится на этапе перевода бизнес требований в технические требования
> Ты походу на легаси не работал, о подводных камнях там сеньор не может знать и нужен человек который на этом говне греб дольше всех, иначе пизданет на проде дай боже. Куа кстати тоже не будет, обычная практика для сбера и вк например.
Да все так, я про это и говорю, что тебе сказали сделать заебись, а ты понимаешь, что сначала надо пойти узнать обо всех подводных у знающих людей. За сеньора не нужно думать и беспокоится, что он забудет спросить о таких вещах или начнет тратить миллионы впустую на реализацию одной лишней кнопки. А за ждуном нужен глаз да глаз
Аноним 08/12/21 Срд 02:06:36 #425 №2232220 
>>2231787
>PyCharm объективно лучше пока что
Почему он тогда почти не встречается в туториалах на ютубе?
Аноним 08/12/21 Срд 02:24:03 #426 №2232226 
>>2232220
Вот это крупный калибр аргументов пошел
Аноним 08/12/21 Срд 03:21:17 #427 №2232231 
Есть ли какие-то хорошие курсы по django, желательно на английском?
Аноним 08/12/21 Срд 03:35:17 #428 №2232234 
>>2232231
Документация
Аноним 08/12/21 Срд 03:40:43 #429 №2232235 
>>2232040
Нет, while блокирует выполнение, пока не завершатся потоки. Твоя прога либо после него, в случае синхронного стиля, а если асинк, то там как хочешь крути, запихнув то, что я выше скинул в отдельную рутину.
Аноним 08/12/21 Срд 04:11:30 #430 №2232239 
>>2232220
Потому что это не зумерское говно, а инструмент для серьезной работы.
Аноним 08/12/21 Срд 05:11:41 #431 №2232244 
бля я забыл как на пистоне прогать. мне нужно посчитать в словаре и я пишу
d[key] = (d[key] if key in d else 0) + 1
Как это нормально сделать? Почему defaultdict deprecated? suuuuka
Аноним 08/12/21 Срд 06:02:50 #432 №2232246 
>>2232244
Ты забыл про существование гугла.
d[key] = d.get(key, 0) + 1
Аноним 08/12/21 Срд 06:41:02 #433 №2232249 
>>2232246
лолточно
спасибо
Аноним 08/12/21 Срд 10:40:10 #434 №2232278 
>>2232244
if key in dict:
----d[key] += 1
else:
----d[key] = 1
Аноним 08/12/21 Срд 10:41:07 #435 №2232279 
Такой вопрос, видимо, нубский. Нужно сделать программку на N-форм - Питон, Ткинтер. Вопрос в следующем - можно ли как-то сделать "шаблон", в который затем для формочки докидывать компоненты?
Аноним 08/12/21 Срд 10:42:47 #436 №2232280 
>программку на N-форм
Шо?
Аноним 08/12/21 Срд 10:44:42 #437 №2232282 
>>2232280
Нишо, бля. MDI-шка на Ткинтере, блять
Аноним 08/12/21 Срд 10:48:05 #438 №2232283 
>>2232282
Нахуя ты пишешь это на ткинтере? Бери pyqt и кайфуй. У ткинтеры беды со сложным функционалом
Аноним 08/12/21 Срд 10:52:48 #439 №2232284 
>>2232283
Я знаю, что на Qt проще пилить, но дело в том, что это типа курсач. А там хер знает, к кому он попадёт и додумаются ли там подготовить Qt.
Аноним 08/12/21 Срд 11:34:57 #440 №2232317 
Есть очередь asyncio.Queue как из нее вытащить сразу все элементы которые в ней есть (а если нет ничего то "заснуть" и ждать их появления"?
Аноним 08/12/21 Срд 14:46:16 #441 №2232465 
Снимок.JPG
Написал я этот сортировщик по книжке "Грокаем алгоритмы". И не работает нихуя. Он должен список этот снизу отсортировать от меньшего к большему. Но вместо этого просто выдаёт "[2]".
Что тут не так?
Аноним 08/12/21 Срд 15:01:23 #442 №2232474 
>>2232465
Пиздец, а базовый синтаксис питона изучить предварительно не хочешь?
Но ладно, я так и быть помогу. В selectionSort на последнюю строчку посмотри внимательно. И блять сделай названия функций и переменных нормальные, а не камэлкейс ебаный
Аноним 08/12/21 Срд 15:06:01 #443 №2232478 
>>2232465
У тебя return в цикле.
Аноним 08/12/21 Срд 15:07:02 #444 №2232479 
https://ideone.com/SJBKgL

Аналог setInterval из жс. Норм будут ебашить? Какие подводные?
Аноним 08/12/21 Срд 15:11:37 #445 №2232482 
>>2232479
Что это и для чего? Выглядит как какая-то хуйня и велосипед
Аноним 08/12/21 Срд 15:15:18 #446 №2232486 
>>2232482
Запускать задачу каждый час чтоб она подчищала таблицу в БД
Аноним 08/12/21 Срд 15:19:22 #447 №2232489 
>>2232486
Крон для слабаков? Или там appscheduler, celery, прочие говны?
Аноним 08/12/21 Срд 15:20:36 #448 №2232493 
>>2232489
Там малюсенький сервис, прикручивать celery видится как оверкилл
Аноним 08/12/21 Срд 15:22:12 #449 №2232495 
>>2232486
> Запускать задачу каждый час чтоб она подчищала таблицу в БД
Ну так и пишешь
def chistim_vilkoy(timeout):
----while True:
--------await asyncio.sleep(timeout)
--------await chistim_bd()
зачем это накостыливание какой-то безумной пародии на декоратор?
Аноним 08/12/21 Срд 15:23:07 #450 №2232496 
>>2232495
async def конечно же
Аноним 08/12/21 Срд 15:41:26 #451 №2232505 
image.png
Есть тут мастаки фастапи? В роутах сделал обработку запросов подобным образом - логика лежит в сторонних процедурах, в роуте мы ловим эксепшны и в зависимости от них возвращаем ответ. Но не покидает чувство что я накидал говна/бойлерплейта, как это лучше замутить?
Аноним 08/12/21 Срд 15:59:21 #452 №2232512 
>>2232505
У тебя все респонзы отличаются только полем reason. Запихни reason внутрь эксепшена, все 400 эксепшены отнаследуй от 1 класса там типа My400Exception и потом сделай так
except My400Exception as e:
----return JSONResponse(status_code=400, content={'reason': e.reason})
Аноним 08/12/21 Срд 16:53:34 #453 №2232552 
изображение2021-12-08165155.png
>>2224725 (OP)
Помогите вкатуну! в ньюфаг-треде глушняк пока и постоянный вайп от зеленых пидоров

Вроде тут где-то ссыль была на сайт с уроками для ньюфагов, где буквально первым же заданием было что-то вроде "введите в окошке print 'hello world' и поздравляем с первым вашим кодом".
Аноним 08/12/21 Срд 17:57:33 #454 №2232609 
>>2232505
Если у тебя except возвращает 200 код, то ты явно где то говна накидал.
Аноним 08/12/21 Срд 18:07:50 #455 №2232615 
Не совсем по питону.
Подскажите как в редисе сделать сообщение статуса pending?
Я хочу написать обработчик зависших сообщений, но хз как повесить сообщение
Аноним 08/12/21 Срд 19:00:35 #456 №2232667 
>>2232552
> Вроде тут где-то ссыль была на сайт с уроками для ньюфагов, где буквально первым же заданием было что-то вроде "введите в окошке print 'hello world' и поздравляем с первым вашим кодом".
Ну это буквально любая ссыль на сайт с уроками по питону
Аноним 08/12/21 Срд 19:41:10 #457 №2232683 
>>2232667
Ну нет, анонче. То, что ищу, как будто в шапке треда какого было. Типа давайте учиться с нуля вместе, вот для начала мы подготовили вам уроки. Там не факт, кстати, что питон был, может просто программирование для вкатунов.

Почему не сохранил - думал потом воспользуюсь, "куда из шапки денется", ведь народом Двача создано и размещено.
Аноним 08/12/21 Срд 19:44:01 #458 №2232685 
>>2232683
Это ты про уроки опа пхп треде наверно.
Аноним 08/12/21 Срд 20:16:10 #459 №2232696 
>>2232244
а можно через вложение инициализировать, если ключи известны заранее, я с defaultdict так наебался, там если что-то со статистикой мутишь тебе в любом случае понадобится полностью все хранить в памяти, laziness нахуй идет

https://pastebin.com/SpEEEgui
Аноним 08/12/21 Срд 20:23:42 #460 №2232702 
Шо почитать по Питону для продвинутых? Чтобы не объясняли 100-ый раз что такое tuple и чем отличается от list, а прям сразу про ООП загоняли. классные модули и про match ченить такое. Ненавижу Лутца, полный пиздец, с таким успехом можно С идти учить.
Аноним 08/12/21 Срд 21:15:42 #461 №2232729 
>>2232283
>>2232284
Так, ладно, суть не в этом, да и разобрался я, как запилить эти формы. Точнее, сделать не MDI, а вкладочками. Теперь вопрос в следующем - можно ли как-то вывод таблиц более... оптимизировать или для каждой таблицы придётся писать отдельно?
sageАноним 08/12/21 Срд 21:52:21 #462 №2232744 
>>2232683
Кстати, мб рил уроки из пхп треда. Но вообще нахуй оно нужно, любой гайд про основы синтаксиса это плюс-минус одно и тоже. Пока до работы с фреймворками не дойдешь, то изи будет в любом случае, а дальше в любом случае жопа
>>2232729
А что за "таблица"? Так как я не ебу что конкретно ты имеешь ввиду, то могу порекомендовать строителемкоторый паттерн это реализовать
Аноним 08/12/21 Срд 21:52:56 #463 №2232745 
>>2232744
>>2232683
>>2232729
Бля сажа приклеилась
Аноним 08/12/21 Срд 21:57:58 #464 №2232750 
http://pep8.ru/doc/dive-into-python-3/
Хули там нет ничего?
Индусские хакеры блочат русским шлёпам возможность вкатиться?
Аноним 08/12/21 Срд 22:05:49 #465 №2232756 
>>2232744
SQLite, которую нужно вывести в таблицу на форме
Аноним 08/12/21 Срд 22:09:15 #466 №2232763 
>>2232756
Берешь алхимию, описываешь таблицы классами, потом пишешь функцию, которая запихивает список объектов в таблицу. Делаешь запрос в склайт => получаешь список объектов ОРМ => передаешь их в функцию, которая заполняет данными таблицу => ???
Аноним 09/12/21 Чтв 10:23:51 #467 №2232959 
>>2232609
Про идемпотентные реквесты слыхал? Про ключ идемпонтентности?
Аноним 09/12/21 Чтв 11:01:39 #468 №2232982 
Пацаны, у кого такой же баг проявлялся?
https://github.com/microsoft/pylance-release/issues/1069
Обновил VSCODE и плагин обновил как microsoft рекомендует и F2 (rename symbol) перестал работать. По ссылке пишут что пофиксили, но на самом деле нет.

Аноним 09/12/21 Чтв 12:26:49 #469 №2233041 
>>2232552
бумп вопросу в адекват-треде


>>2232685
>>2232744
Спасибо, не, не то.

Сдается мне, что та ссыль на уроки на гитхаб куда-то вела. Уроки на русском, буквально на первой странице чуть не в первых же абзацах и было print hello world.
Аноним 09/12/21 Чтв 12:57:38 #470 №2233057 
>>2233041
Бери уроки опа (ток начальные) из пхп треда, да делай их на питоне. Основной синтаксис на паре простых задачек прогонишь, заодно гуглить научишься. Дальше только не ходи, на том что он про бек втирает многие пхпшники свернули не туда.
Аноним 09/12/21 Чтв 13:09:39 #471 №2233064 
>>2232959
Допустим слыхал. И как это оправдывает except?
Аноним 09/12/21 Чтв 13:18:44 #472 №2233067 
как реквест через shadowcocks сервер отправить?
Аноним 09/12/21 Чтв 13:22:49 #473 №2233074 
>>2233064
https://habr.com/ru/company/yandex/blog/442762/
Аноним 09/12/21 Чтв 14:44:19 #474 №2233161 
>>2233067
Что ты там через теневые члены собрался отправлять?
Аноним 09/12/21 Чтв 15:46:34 #475 №2233207 
>>2233074
Ну то что в яндексе все на костылях я и так знал. Но ты все еще не ответил на вопрос нахуя ты так далаеш? Я конечно вижу что ты уже вступил в секту за асинхронность и против всего плохого, но это уже просто новый уровень.
Я понимаю, об этом не говорят в модных курсах от популярных земерков. Но когда то не так давно за такое били по рукам. Генерировать исключения там где можно обойтись обычным if это хуево для производительности. А судя по имени некоторых твоих исключений это именно твой случай.
Аноним 09/12/21 Чтв 15:48:36 #476 №2233208 
>>2233207
>Генерировать исключения там где можно обойтись обычным if это хуево для производительности
Насколько? Если исключения вылетают не так часто то это лучше чем if
Аноним 09/12/21 Чтв 16:07:51 #477 №2233224 
>>2233074
Ты не понял. Нахуя использовать исключения для отдачи валидного ответа? Это тупо не логично, апи при этом может быть как идемпотентным, так и нет, это просто по коду пиздец, давай их вместо ифов юзать вообще, можно же. Хочешь отдать исключение - делай исключение. Хочешь отдать саксес - делай саксес. Хз че тут доносить еще можно и идемпотентность совсем не причем.
Аноним 09/12/21 Чтв 16:59:02 #478 №2233256 
>>2233208
Насколько?
В десятки/сотни/тысячи раз медленнее. В зависимости от генерируемого исключения.
> Если исключения вылетают не так часто то это лучше чем if
Они у тебя не вылетают. Судя по их названиям ты их сам генеришь. Т.е. вместо того, что бы просто проверить через if что id такой же, ты генерируешь объект исключения, который унаследован от базового и тянет за собой все говно для отладки ошибки. При том, что ошибки как таковой нет.
Аноним 09/12/21 Чтв 23:16:23 #479 №2233577 
>>2233067
> Shadowcocks
Проиграл
Аноним 10/12/21 Птн 00:05:35 #480 №2233628 
Анон, посоветуй, плёс, что по Docker можно почитать помимо документации?
Книжки какие, статьи?
Спасибо.
Аноним 10/12/21 Птн 01:26:30 #481 №2233658 
Чому питон такой пиздатый?
Аноним 10/12/21 Птн 02:17:28 #482 №2233667 
>>2233658
Да не то чтобы.
Аноним 10/12/21 Птн 05:19:45 #483 №2233677 
image.png
django

{ % load static % }
<!DOCTYPE html>


HTML


<html lang="en">
<head>

<title>Первый шаблон</title>
</head>
<body>
<t1 >Вот что у нас тут: {{P}}</t1>
<p>
{{langs.5}}
</p>
<link href="{ % static 'css/styles.css'% }" rel="stylesheet">
<img src="{ % static 'images/image.jpg' % }">

</body>

</html>


SETTINGS

STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

VIEVS

from django.http import HttpResponse
from firstapp import views
from django.contrib import admin
from django.shortcuts import render
from django.http import
from django.shortcuts import render_to_response
from django.template.context import RequestContext
def index(request):
return HttpResponse("Hello, world!")



def home(request):
langs=[ i
i for i in range(100)]
P="В Бразилии много-много диких обезьян"
data={
"P":P
"langs":langs
}
return render(request,"firstapp/home.html", context=data)

Файлы лежат как надо. Предполагаю, что я не подключил что-то, либо в настройках что-то забыл.
Почему не работает? Что может быть не так?
Аноним 10/12/21 Птн 06:00:44 #484 №2233683 
> Django
Аноним 10/12/21 Птн 09:38:23 #485 №2233715 
>>2233677
Через что запускаешь?
Аноним 10/12/21 Птн 10:43:44 #486 №2233752 
>>2233677
В urls что?
Аноним 10/12/21 Птн 11:03:43 #487 №2233771 
Безымянный.png
Помогите плз, я нихрена не могу понять уже в который раз, как это нужно сделать.
В общем, мне там для одного задания нужно чтобы мой проект можно было типа установить как зависимость, чтоб его можно было импортировать from project import func ну как на картинке в общем. Читал, что для этого нужно что-то написать в инит, но энивей нихера не работает. Что там нужно написать? Как это вообще называется операция, нигде про это нагуглить не могу. Я вот писал в нем по-разному, типа пытался импортировать в инит эту функцию или просто модуль, но всё равно пишет, что нет такого модуля в итоге. Как правильно сделать?
Аноним 10/12/21 Птн 11:11:28 #488 №2233776 
>>2233771
Как правильно сделать что?
Из твоего потока сознания нихуя не ясно.
Аноним 10/12/21 Птн 11:40:24 #489 №2233794 
>>2233776
Ну чтобы работало то что на пикче в двух словах.
Нужно чтоб я мог из любого модуля импортировать page_loader после его установки. Типа я делаю poetry build, устанавливаю дистрибутив и у меня теперь эта штука как бы установлена как зависимость и вот типа должно работать.
Аноним 10/12/21 Птн 11:42:06 #490 №2233797 
https://habr.com/ru/post/594601/

Джангопетухи обоссаны (снова)
An 10/12/21 Птн 12:03:30 #491 №2233824 
Объясните, почему данный код при вызове Third() выдаёт
second,first,third, а не first,second,third?




class First(object):
def __init__(self):
super(First, self).__init__()
print("first")

class Second(object):
def __init__(self):
super(Second, self).__init__()
print("second")

class Third(First, Second):
def __init__(self):
super(Third, self).__init__()
print("third")
Аноним 10/12/21 Птн 12:25:12 #492 №2233831 
>>2233794
https://packaging.python.org/en/latest/tutorials/packaging-projects/
Аноним 10/12/21 Птн 12:28:31 #493 №2233834 
>>2233797
Написано много, часть даже по делу. Часть просто доебы.
Мог бы потратить энергию затраченную на описанеи проблем на разработку своего фреймворка убийцы джанги. Ну или хотя бы пушануть свои идеи в джангу и причастится к разработке.
По сути очередное нытье.
Аноним 10/12/21 Птн 12:31:23 #494 №2233835 
>>2233752
from django.conf.urls import url
from django.contrib import admin
from django.urls import path, include
from firstapp import views

app_name = 'djpoligon'

urlpatterns = [
path('', views.index),
path(r'home.html', views.home),

]
Аноним 10/12/21 Птн 12:31:23 #495 №2233836 
>>2233834
>на разработку своего фреймворка убийцы джанги
Уже есть
fastapi
Аноним 10/12/21 Птн 12:33:24 #496 №2233837 
>>2233161
Теневой ДОМ, очевидно же.
Аноним 10/12/21 Птн 12:36:09 #497 №2233840 
>>2233837
У тебя большой?
Аноним 10/12/21 Птн 12:47:45 #498 №2233846 
>>2233824
Присылай код либо в виде картинки, либо в виде ссылки на какой нибудь онлайн компилятор. Что бы можно было видеть структуру.
У тебя все верно выполняется. В соответствии с написанным.
Сперва дергается super(First, self).__init__() потом super(Second, self).__init__()
Аноним 10/12/21 Птн 13:15:17 #499 №2233873 
image.png
Пацаны, приделал подобный способ связи с БД postgres из sqlalchemy.

В коде приложения буду импортировать функцию get_db_connection и через контекстный менеджер async with буду дергать коннекшн к базе. Вроде ниче, но я 1 раз создаю engine для связи с БД, это норм? Или все же его надо создавать на каждый коннекшн а потом дропать?
Noob question Аноним 10/12/21 Птн 13:17:27 #500 №2233878 
Модуль 1.jpg
Модуль 2.jpg
А тут ведь можно прям совсем тупые вопросы задавать, да?
Я на середине книги Byte of Python и дошел до модулей.
Столкнулся с проблемой при импортировании модуля:
1) написал маленький модуль, который вычисляет квадрат переменной "х".
2) Далее попробовал написать модуль, который вычислял бы сумму квадратов х и у, используя формулу квадрата из предыдущего модуля.
При попытке запустить второй модуль вылезает сообщение, что square не определена, хотя я ж её импортировал из предыдущего модуля вроде бы...
Другими словами, как в текущем модуле использовать функцию, определенную в предыдущем модуле?
Понимаю, что это наверное оч легко, но у меня опыт програмирования нулевой.
Аноним 10/12/21 Птн 13:21:09 #501 №2233886 
>>2233878
Ну у тебя ж регистр разный на 2м пике, ну ебана
Причем ставлю анус что у тебя вылезает не ImportError а NameError, что как бы намекает. Читай ошибки
Аноним 10/12/21 Птн 13:25:14 #502 №2233889 
>>2233878
from Squre import square
Аноним 10/12/21 Птн 13:25:40 #503 №2233890 
image.png
>>2233878
Юзай относительные импорты через точку в начале, почитай про них, там надо не усраться с parent package, внутри своего проекта импортить твои модули желательно только так

И пиши в пуйчарме что ли. Иде много где поможет, ворнинги подсветит и через ctrl+ЛКМ переведет к объявлению переменной
Аноним 10/12/21 Птн 13:33:25 #504 №2233898 
>>2233831
Ну чет я не увидел там про это. Но вроде заработало. Я импортировал функцию из модуля в ините.
Аноним 10/12/21 Птн 15:59:03 #505 №2233991 
>>2233824
Шёл бы ты мимо со воим копрокодом.
Аноним 10/12/21 Птн 16:32:11 #506 №2234026 
Всём привет, у меня такая хрень, с помощью данной функции

for x in raspisanie:
for y in x:
print(y,end = " ")
print()
Нужно вывести двумерный массив, то есть сейчас он мне выводит
Предмет о о о о о
Предмет1 о о о о о
А мне надо так:
Предмет Предмет1
о о
о о
о о
о о
о о
Как мне это сделать?
Аноним 10/12/21 Птн 16:40:17 #507 №2234037 
>>2234026
Не очень понял, но наверное надо не end=" ", а sep=" "
Аноним 10/12/21 Птн 16:44:41 #508 №2234044 
image.png
>>2234037
ну почти, мне надо чтобы в виде матрицы как раз, типо тут так:
русский
о
о
литра
о
о
и тп, мне надо чтобы на одном уровне
Аноним 10/12/21 Птн 16:46:07 #509 №2234049 
image.png
>>2234037
ну почти, мне надо чтобы в виде матрицы как раз, типо тут так:
русский
о
о
литра
о
о
и тп, мне надо чтобы на одном уровне>>2234037
типо предмет который уже есть это первый урок, а "о" это следующие какие-то уроки
Аноним 10/12/21 Птн 16:56:50 #510 №2234059 
>>2234049
Ну ты пишешь конечно, с литры капчуешь? Один принт печатает на одну строку, то есть если ты хочешь чтоб у тебя что-то на одном уровне было, нужно это в один принт запихать. Как массив-то выглядит?
Аноним 10/12/21 Птн 17:02:53 #511 №2234071 
>>2234059
Который raspisanie?
Аноним 10/12/21 Птн 17:03:51 #512 №2234075 
>>2234071
Ну да, а то не очень понимаю, че сделать надо.
Аноним 10/12/21 Птн 17:03:59 #513 №2234077 
>>2234059
raspisanie создаётся и заполняется циклами, которые берут значения из других массивов
Аноним 10/12/21 Птн 17:13:07 #514 №2234100 
image.png
>>2234075
типо вот весь код
Аноним 10/12/21 Птн 17:16:14 #515 №2234103 
>>2234075
str="Математика" не играет роли никакой в коде, была использована для проверки работы циклов заполнения
Аноним 10/12/21 Птн 17:44:26 #516 №2234132 
image.png
>>2233752
>>2233715
>>2233677
Вот данные отладки. Похоже, по какой-то причине кодировка путя слетает.
Аноним 10/12/21 Птн 17:51:48 #517 №2234141 
>>2234100
Ой блин, нихера не всасываю. Ну ты хоть проверил, расписание норм составляется? Типа print(raspisanie) перед распечаткой выглядит норм?
Аноним 10/12/21 Птн 17:54:30 #518 №2234144 
>>2234075
>>2234141
Ну дак я сразу же скрин кинул что выводит, только я sep обратно на end поменял как было
Аноним 10/12/21 Птн 17:56:20 #519 №2234146 
>>2234144
Ну так сам массив как выглядит? Че выведет print(raspisanie)
Аноним 10/12/21 Птн 17:58:55 #520 №2234148 
image.png
>>2234146
Аноним 10/12/21 Птн 18:02:16 #521 №2234151 
image.png
>>2234146
если именно print(raspisanie), то вот
Аноним 10/12/21 Птн 18:08:27 #522 №2234160 
школьникиебаные.PNG
>>2234148
>>2234151
школьники, съебали с борды, вы тут запрещены
Аноним 10/12/21 Птн 18:12:27 #523 №2234167 
>>2234151
Во, теперь видно.
Напиши
for i in zip(*raspisanie):
print(i)

Че будет?)
Аноним 10/12/21 Птн 18:13:38 #524 №2234170 
>>2234167
в каком месте программы?
Аноним 10/12/21 Птн 18:14:50 #525 №2234174 
>>2234170
Ну вместо твоей распечатки.
Аноним 10/12/21 Птн 18:16:22 #526 №2234179 
image.png
>>2234167
ну больше похоже на правду, спасибо
Аноним 10/12/21 Птн 18:17:17 #527 №2234182 
>>2234174
Но всё равно не совсем то, мне кажется
Аноним 10/12/21 Птн 18:34:34 #528 №2234207 
>>2234182
Ну тут уж хз, можешь ещё одним циклом пройтись по каждому i и там напечатать каждый элемент с end = " " чтоб было без скобочек и запятых, но в общем хз как чтоб прям не криво было в консоли. Думаю это сложно обычными средствами сделать.
Аноним 10/12/21 Птн 18:45:11 #529 №2234226 
>>2234132
Бля. Ты как это запускаешь? У тебя там что? гуникорн или рунсервер?
Опиши все что сделал и как. 400 ошибка может говорить о том. что ты пытаешься в прод, но не установил разрешенные хосты.
Аноним 10/12/21 Птн 18:51:41 #530 №2234234 
>>2234026
https://ideone.com/bqrTEY

Ну и хуйнёй ты маешься, конечно
Аноним 10/12/21 Птн 18:52:58 #531 №2234236 
>>2234234
ну задние такое у меня, программа, которая составит школьное расписание
Аноним 10/12/21 Птн 18:57:45 #532 №2234240 
>>2234236
Тебе скорее всего нужно использовать словарь типа {'Матеша': (0,0,0,0)} Так было бы удобнее
Аноним 10/12/21 Птн 19:02:44 #533 №2234241 
>>2234240
возможно
Аноним 10/12/21 Птн 19:26:30 #534 №2234279 
>>2234207
а как циклами убрать это можно?
Аноним 10/12/21 Птн 19:34:16 #535 №2234285 
>>2234279
print(' '.join(map(str, arr)))
Аноним 10/12/21 Птн 19:43:27 #536 №2234303 
>>2234279
Ну сейчас у тебя в каждом i кортеж (массив) из строчки, которая должна быть напечатана, можно пройтись ещё по каждому элементу в i и напечатать его.
Ну или просто вместо print(i) написать print(" ".join(i)). Не очень понял зачем map у чела выше.
Аноним 10/12/21 Птн 19:47:31 #537 №2234315 
>>2234303
> Не очень понял зачем map у чела выше
На всякий, если в кортеже не строки будут
Аноним 10/12/21 Птн 19:47:35 #538 №2234316 
ПЕРЕКАТ мучительный шаблон шапки похоже ВСЁ
>>2234309 (OP)
>>2234309 (OP)
>>2234309 (OP)
>>2234309 (OP)
>>2234309 (OP)
Аноним 10/12/21 Птн 19:47:36 #539 №2234317 
>>2234226
Я купил хостинг и закинул все на него. Он огородил возможность запускать из консоли, по какой-то причине. Так что я хз. Как найти ответ на твой вопрос?
Аноним 13/12/21 Пнд 13:51:34 #540 №2236522 
>>2227816
>cколько нужно девопсов чтобы вкрутить лампочку?
Это аппаратная проблема.
comments powered by Disqus

Отзывы и предложения