Этого треда уже нет.
Это копия, сохраненная 15 июля 2018 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
PYTHON PYTHON 1182179 В конец треда | Веб
F.A.Q. https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
Для кода https://repl.it/languages/python3 Не скидывайте сложные исходники в тред, у двоща ебанутое форматирование
Книги https://yadi.sk/d/tArKKuQu3Kejuq

В предыдущей серии >>1176187 (OP)
2 1182192
>>182179 (OP)
Напоминаю для вскодо-петуха, все возможности pycharm, которыми можно пользоваться сразу, без ебли с плагинами

1)полная инспекция любой либы
2)тонко настраиваемая подсветка на любой случай, включая проверку совместимости кода для разных версий питона
2)удобный дебагер и профайлер
3)вызов докстрингов по клику на любой функции
4)интеграция со всеми возможными системами контроля версий с удобным разрешением конфликтов
5)диаграммы для асинхронного кода
6)подключение к базе данных
7)Подсветка и автокомплит для шаблонизаторов фреймворков, да и вообще интеграция с фреймворками
8)Настройка конфигов для тестов c сохранением истории и вызовом прогона отдельного теста одним кликом
9)Плагины на любой вкус Ну ладно, это и в вскоде есть
10)Деплой на удаленный сервер
11)Интеграция с докером

Это то, чем я пользовался в последнее время, все из коробки
3 1182195
>>182179 (OP)
Что под "Brainfuck" на 4-ом пикрелейтеде нарисовано?
4 1182215
>>182195
Тумблёр рисователя
точка которая говорит "["
5 1182216
Зачем нужна свистопляска с разными интерпретаторами для несовместимых версий? Что мешало решить проблему несвоместимости дерективами в модуле\скрипте, что помечали бы, что этот вот скрипт\модуль написан на питоне 3, а этот на 2ом, и обрабатывать их соотвественно?
6 1182220
>>182216
Так и сделано тащемто, для джанги < 2.0 разная обработка для разных питонов. Но никто уже не хочет поддерживать говно мамонта, которому в 2020 обрубят поддержку.
А еще можешь через #! /usr/bin/python2|3 указывать, лол

Для проверки версии можешь использовать sys.version_info[0]
7 1182227
>>182220

>можешь через #! /usr/bin/python2|3


Это не деректива интерпретатора, а деректива шелла ОС, при чем не кроссплатформенная.

Директива это что-то вроде "use strict" из жс, когда интерпретатор переходит в режим несвоместимости с предыдущей версией. Или сам догадывается на основе нового синтаксиса. Но в конечном счете, интерпретатор в системе один единственный исполняющий и те и другие скрипты.
8 1182286
Я совсем нюфаг, хочу вкатиться в питон, в частности на начальном этапе в веб, мало что пока понимаю в целом, но поясните такой момент, я могу на django (wagtail, flask, e.t.c.) запилить сайт, со всякими свистоперделками, по типу примеров с codedrops, красивые мега меню, всякие слайдеры с тенями и зумами, там везде используется html + css + js, как я полагаю? https://tympanus.net/Blueprints/ZoomSlider/ например такое, чтоб плавно, красиво.
-u1BYki3qVjz5fPspgSwHJOrHjn0F6KErBQTyKuYmk4.png356 Кб, 345x768
9 1182296
>>182179 (OP)
Пиздим мемасы с реддита, I see?
10 1182310
>>182296
Утащил в forth-тред.
11 1182314
Господа, если тут кто опенсорсом занимается, а вы не пробовали собирать деньги на пивас с благодарных юзеров через какой-нибудь патреон?
12 1182318
>>182286
Усвой разницу между бекендом и фронтендом и вопрос ответит сам себя.
8Nc3CAL5XW5HT-fXr-kTdVCbsHfB38etlzk54IcIA4.jpg94 Кб, 500x597
13 1182319
>>182296
А то!
14 1182322
>>182286
Зачем Питон там, где справится HTML с братушками?
15 1182326
>>182322
В этом и вопрос, возможно ли одним html + css в целом сделать красивый сайт со свистоперделками? Я просто ориентируюсь на то что во всяких готовых вещах, на тутсе+, коддропе или кодканьоне к красивым шуткам идет js.
16 1182327
>>182318
Причем тут бэк и фронт, вопрос в другом
17 1182331
>>182327

>я могу на django (wagtail, flask, e.t.c.) запилить сайт, со всякими свистоперделками, красивые мега меню, всякие слайдеры с тенями и зумами



Перевожу:

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

18 1182333
>>182327
При том, что джанго и питон вообще - это бэкенд. А свистоперделки - это фронтенд.
19 1182335
>>182326

>возможно ли одним html + css в целом сделать красивый сайт со свистоперделками?


Ясен хуй, можно.
С щепоткой JS можно делать вот такую красоту:
https://runcloud.io
http://keithalva.com
4UsLi2EBE.jpg39 Кб, 805x458
20 1182351
О, о бекенде заговорили. У меня как раз по нему вопрос!
Вот наконец дошел в книге Лутца до cgi и сразу подумал: зачем тратить ресурсы на пробуждение\смерть одних и тех же cgi скриптов, да ещё и ебаться с сохранением состояний, когда можно сделать сам cgi сервером, ждущим запросы от клиента-веб_сервера. Оказалось, умные люди до меня изобрели FastCGI, который этим самым и является. Вопрос: зачем использовать cgi, когда можно делать fast cgi? В чем преимущества первого перед вторым, что их ещё пишут?
Flask и Django это штуки, которые помогают писать cgi скрипты, а именно: содержат кастомизируемые шаблоны-решения частых задач, и к созданию\настройке самого сервера никак не относятся?
Что такое Zope и PyJamas? Лутц о них говорил, я погуглил, но не понял вообще ничего.
21 1182357
>>182333
А как же cms на django и шаблонизатор? Он же тоже может во фронт, разве нет? Тогда такой момент, мне индус пилит фронт вместе с js перделками, как мне его подрубить к моему бэкенду на django заранее извиняюсь за тупые вопросы.
52d1b818afad38c0.jpg120 Кб, 1052x1045
22 1182407
>>182351
В питоне нет ни CGI, ни FastCGI. Есть WSGI который представляет из себя банальную функцию request → response, интерфейс которой расписан в соответствующем PEP. То есть питон как бы огораживается от проблемы менеджмента процессов и соединений, предоставляя это всяким uwsgi/gunicorn/mod_python/etc. Фреймворки собственно реализуют именно такой WSGI и формально не умеют сервить http из коробки. Есть там конечно всякие devservers, которые суть примитивнейшие реализации http протокола для wsgi со встроенной перезапускалкой, именно по этой причине их нельзя выпускать в продакшен. Особый разговор касается всяких aiohttp, которые в общем-то уже не WSGI (так как например вебсокеты несовместимы с WSGI), но это уже другая история.
23 1182408
>>182314
Нет, не пробовал. Это надо что-то ну очень популярное чтобы туда соваться. И желательно быть тяночкой. В целом это считается достаточно неэкологичной практикой, так как в твой репозиторий, если он уже достаточно популярен, коммитило уже много народу, а бабло забираешь единолично ты.
24 1182409
>>182408
А, ну ещё добавлю, просто открыть донатилку на пивас (прям так и написать), это не страшно. Но и рассчитывать на что-то особенное соответственно нельзя.
25 1182410
>>1182044
Зачем в 2к18 менять разрешение? Учитывая что нередки сетапы из нескольких мониторов и лучше там вообще ничего не шатать, не трогать, не дышать. Но на будущее используй finally блок с restore default.
26 1182411
>>1181713
Ну ты бы хоть отличительную фишечку расписал, а то совсем хуйня какая-то бесполезная, сделанная ради самой себя.
27 1182412
>>1181630

> This is implemented by calling the Standard C function system(), and has the same limitations.


Питон как бы говорит нам, что он тут не причём, это всё сишная стдлиба.
28 1182413
>>1181456
Там у тебя stdout открыт с кодировкой ASCII. Возможные решения это запускать питон с переменной окружения для замены этой кодировки, либо обновиться до 3.6 где по умолчанию юникод https://docs.python.org/3/whatsnew/3.6.html#pep-528-change-windows-console-encoding-to-utf-8
29 1182414
>>1181421
Это плохой вопрос для собеседования. Всё сильно зависит от устройства итератора. Лучше просто спрашивать какие могут возникнуть проблемы с таким кодом, не более.
30 1182416
>>1181421
Ну и как бы a = a x 2
31 1182434
>>182411
Там неплохая вики есть и там написано что к чему.
P.s. Надеюсь никто не думает, что это мой репозиторий
32 1182442
Посоветуйте компилятор для пистона в .exe файл.
33 1182444
>>182442
pyInstaller

И это блядь не конпелятор, а создатель exe-песочниц которые содержат в себе интерпретатор пистона, в который в свою очередь сразу хуярится твой скрипт.
Пистон - не компилируемый язык.
34 1182450
>>182444
А если самому делать такой SFX архив, то туда надо ложить?
36 1182459
>>182314
Пробовал на пивас через гитхаб собирать, бетховенами и paypal'ом, но чот как-то не очень вышло, а потом вообще этот зашквар убрал(просьбу, а не репу).
С учетом того, что он вполне себе посещаемый был, за неделю, в среднем, около 250 человек уникальных заходило.
P.s. Хотя может я просил неправильно, или еще что. За все время лишь однажды нашелся интересный персонаж, который мне в телегу стучался с требованием дать ему я.кошелек для перечисления благодарности.
14984595818460.jpg32 Кб, 527x423
37 1182465
Есть две папки.
Первая папка находится сразу на диске С.
Вторая папка находится на рабочем столе, который принадлежит диску С.
В каждой из папок лежат скрипт со строкой
labelTest.setPixmap(QtGui.QPixmap('favicon.png'))
и файл favicon.png

Внимание, вопрос:
Какого хуя скрипт из первой папки мне ПНГшку после выполнения скрипта, а скрипт из второй папки - нет?
Во втором случае показывает, но только если прописать полный путь до ПНГшки.

Это вообще как? Это законно?
38 1182468
>>182465
Рабочую директорию чекай, при выполнени
39 1182492
>>182414

>Всё сильно зависит от устройства итератора


Но там всё однозначно ведь. И это как раз вопрос на знание этих самых итераторов и генераторов.
40 1182635
Не могу запустить своего бота для телеги на линуксе. Как я понял, нужно открыть порты. Местный анон не знает, какие именно?
41 1182640
>>182635
А, лол, телегу же заблокировали почти все провайдеры. Поэтому он закономерно выдает ошибки ERROR - TeleBot: "ConnectTimeout occurred, args=(MaxRetryError("HTTPSConnectionPool(host='api.telegram.org', port=443): Max retries exceeded with url: .
Может анон подскажет, как это дело проксировать? Не хочу трогать свой vps
42 1182688
>>182640
Запустить бота на каком-то выделенном сервере.
43 1182689
>>182688
Это не удобно для отладки
44 1182708
>>182640
Ты тупой? Если во фреймворке, который ты используешь есть поддержка прокси, то впишу туда прокси. Если нет, то соси/переходи на другой фреймворк. Всё! Нахуя ты здесь об этом спрашиваешь?!
45 1182715
>>182179 (OP)
Как распараллелить на GPU и векторизовать все условия и циклы в этом алгоритме:
https://gist.github.com/bnlucas/5857478
Это алгоритм Миллера-Рабина для проверки чисел на простоту.
Нужно чтобы на GPU всё это работало или хотя-бы через multiprocessing на нескольких ядрах,
а то на одном ядре долго считает последовательные простые числа.

Могу также скомпилировать код на С/С++ через gcc, в итоге получаются exe-файл.
Как его подключить через питон - тоже не пойму.
Есть также компилятор для .cu-файлов, под названием nvcc, но он требует cl.exe,
а этот работает только с msvc, а его у меня нет.
Я думаю, что средствами самого Python можно как-то распараллелить py-файл,
а вот как - не знаю...
46 1182733
>>182640
Включай тогда vpn и садись в тюрьму.
47 1182749
>>182492
Нет, не однозначно. Модификация контейнера во время итерации по нему это чистой воды undefined behaviour.
Первый снег.mp48,7 Мб, mp4,
1280x720, 1:06
48 1182751
>>182351
Бамп вопросу!
>>182407

>В питоне нет ни CGI, ни FastCGI


Но Лутц говорит, что он там есть и посвящает этому больше 300 страниц. И загуглив 'cgi in python', я получу кучу ответов о том, как использовать его. Так что я не понимаю, о чем ты.
Так же не понимаю, что мешает мне сделать свой HTTP handler, который, наследуясь от http.server.BaseHTTPRequestHandler, будет иметь методы, имплементирующие обращения к FastCGI серверам.

>Есть WSGI


Погуглил. Ну так как я понял, это стандарт, который можно использовать. А можно и не использовать. Тот же Апач, насколько я понял, имеет mod_wsgi для этого стандарта, и mod_python для использования cgi скриптов.

>Фреймворки собственно реализуют именно такой WSGI и формально не умеют сервить http из коробки


То есть под первой фразой ты имел в виду, что в фреймоврках нет CGI? Или что? И что значит сервить http? Как я понял сервер в моем случае пока http.server.HTTPServer, в других Апач и прочие сам разбирает http запрос и решает, какой скрипт ему вызвать, и какие переменные туда передать.
49 1182754
>>182749

>undefined behaviour


И где он неопределен? Вопрос был про конкретные конкретные списки с конкретным методом и не зависит от реализации
50 1182756
Сап
Никак не могу разобраться с тестовым (т.к. с вебом и им подобным дела не имел). Задача: создать некое подобие твиттера, с фолловерами, опцией фоллоу анфоллоу и таймлайном "интересных" конкретному пользователю постов по запросу. По идее ничего сложного, и уже разобрался как собраться простенький чатик на сокетах и сделать логин, юзер айди и подобное. Но конкретно с этими опциями беда. И никак не могу нагуглить ни гайд, ни решение, ни подходящий фреймворк. Гугл выдает либо примеры совсем простых чатиков, либо всяких ботов, либо приложухи для взаимодействия с твиттер апи.
Нуждаюсь в помощи.
Помогут и советы, и линки на подобное, и даже советы как и где гуглить.
51 1182758
>>182756
Пошел нахуй. Если сам в тестовое не можешь, то эта работа просто не для тебя. А то и профессия вообще, кстати, - повод задуматься.

> гайд


Орнул, блять.
52 1182759
>>182756
Какая зп? Где именно? Уже опыт работы был?

Вообще ебош на фласке, у него куча модулей под это, или на aiohttp, что бы блокировки не было. Но из твоего условия непонятно, что конкретно тебе нужно, чатик (но ты вроде его нашел, судя по посту)? Выбор интересных новостей (это или просто выдавать самые лайкнутые посты за пару дней из фидленты или через интересы указанные в профиле)? Френды друзей (делается или примитивно через мени ту мени или умно, в виде графовой бд)?
53 1182760
Аноны, будет-ли смотреться грамотным и довольно разумным, если код из 80 строк в try? В Except будет выводиться ошибка:
print("Fuck man, you have the problem!: " Exception)
raise SystemExit
54 1182761
>>182760
Выглядит хуево, а что ты хочешь в этот блок завернуть?
55 1182762
>>182761
в try дохуя всего, и это все зависит от юзера. Много же долбоебов есть, которые инструкции не юзают.
Слушай, а ты случаем не знаешь как делают фишки как в линуксе? Типо /input: -h/ и выводится помощь.
56 1182763
>>182761
Но в тоже время я сделал отдельную функцию, которая кое как проверяет вводимые данные
тот же анон
57 1182765
>>182762
Если ты про вывод во время вызова скрипта, то сюда
https://docs.python.org/3/library/argparse.html

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


Если у тебя в одном модуле уже есть проверка корректности аргументов, то проверять данные второй раз бессмысленно, блок с ошибкой не будет вызван никогда
58 1182766
>>182759

>чатик


Что то вроде того, мессенджер с функционалом твиттера. Там все примитивно, все что то пишут. К каждому юзеру приделана кнопочка фоллоу/анфоллоу, и должна быть возможность вывести посты кого он зафолловил. В совсем идеальном мире можно еще лайки и графы, но тут хотя бы базовые условия соблюсти. Френдов нет, только айди самих юзеров и их фолловеров. Все бы легко, но из всего тестового только эта задача про это и по сути с вакансией общего она имеет только язык. Опыта до этого не было.

>>182758
Если я напишу тутор или кукбук тебе проще будет? Профессия веба да, определенно не для меня.
59 1182769
>>182766

> Френдов нет, только айди самих юзеров и их фолловеров


Какая разница между френдом и фалафелем?

>и уже разобрался как собраться простенький чатик на сокетах


Зачем этот человек трогает сокеты?

>создать некое подобие твиттера


Нужно создать логику всего это дерьма с кнопочками, или дизайн тоже на тебе весь?
60 1182770
>>182765
Спасибо огромное!
61 1182772
>>182769
Нет, только дизайн.
62 1182773
>>182772
Хай левел дизайн, логику то есть.
15142160918180.gif1,7 Мб, 350x300
63 1182775
>>182773

>Хай левел дизайн, логику то есть.


>дизайн


>логику

64 1182777
>>182775
Логику, я выбираю логику
65 1182809
>>182756
Хуяси тестовое, а не пойти ли им нахуй?
Кидай сюда оригинал тестового, ибо из твоих пояснений нихуя не ясно
66 1182811
>>182760
Оч хуево, нужно несколько эксептов, на разные виды ошибок.
Если так не можешь сделать - проебал логику
15043760340580.jpg91 Кб, 758x807
67 1182812
>>182809
Это у него не просто тестовое, а тестовое на джуна
68 1182813
>>182812
В чем разница?
изображение.png202 Кб, 480x504
69 1182816
Реквестируйте open source проекты для вкатывальщика.
Что бы и мозг не ломало и посильно было, и была возможность принести пользу.

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

Посоветовали как действенный способ изучения питона
С меня спасибо
70 1182818
>>182813
В том, что это задание на мидла, как минимум, да и то на пару недель кропотливой работы, если все грамотно делать
1) Чат на сокетах (из этого вытекает выбор грамотного хранилища для текста, как у того же тентакля)
2) Разработка графовой бд для фоловеров
3) Построение рекомендаций по интересам
И это минимум, который надо реализовать

За такое тестовое деньги брать надо
71 1182821
>>182812
Аааа, в край прихуели уже, и я так понимаю это ОДНО ИЗ заданий.
>>182813
Работодатель позволяет себе ебать джуна, особенно на первом месте работы, и в хвост и в гриву. Хз, может и дальше так, но на джунах ощутимей всего видно.

Кстати, это только в пост.совке так или это мировая практика?
72 1182827
>>182816
Я в прошлом треде кидал пример попенсорса, веб-фреймворка.
Никто тебе конкретной ссылки не даст, ибо их сотни и одновременно ни одного. Я б тебе посоветовал свой прожект писать, чем вникать в чужой говно-код
73 1182830
>>182827
да, я ведь сглупил и не уточнил.

клиент-серверное приложение было бы идеально.

Своё... я думаю свой клиент аки месседжер или точнее интерфейс для взаимодействия с протоколом наклепать на Python + Tkinter. Но опыта маловато, а что то попроще в голову не приходит
74 1182833
>>182751
Я тебе расписал положняк в экосистеме. Конечно ты можешь использовать CGI, FastCGI, ещё десяток всего разного. Но зачем, если есть родной заточенный именно под питон WSGI?

>что значит сервить http?


Ещё раз, WSGI handler это только обычная питонячая функция. Она ни сокеты не открывает, ни процесспулы не менеджит, ни даже http не парсит. Берёт готовый, распарсенный, скачанный полностью запрос, и выдаёт ответ. То есть это как бы такой интерфейс по разные стороны которого твоё веб-приложение с фреймворком и собственно менеджер этих процессов-сокетов-соединений-балансировщик.

Вот эти хреновины из стдлибы http.server, их всё равно никто не использует толком.

Я не знаю зачем там 300 страниц у Лутца посвящено этой ерунде.
15201702259100.jpg67 Кб, 640x635
76 1182835
>>182834

>второй питон


Я бы к тебе и не пошел
77 1182836
>>182835
И слава богу. Ты непрошибаемый. От тебя будут одни убытки.
78 1182838
>>182830
Отличная идея, только не tkinter бери, а qt5.
Ничего сверхсложного нет, распиши сам себе весь функционал, что хочешь, определи его фишку(отличие от других), разбей на подзадачи и приступай. Доки читай, угли,тут спрашивай(именно такая последовательность) и сделаешь + опыта наберешься.
Загляни в "идей анона тред", там недавно был реквест чатика, который можно было б поднимать на собственной ВПСке, создавая свой, независимый сервер + иметь возможность общаться с людьми на других серверах - отличная идея, как по мне, думаю была бы полезна и на практике.
79 1182839
>>182836
Надо будет на текущей работе сказать, что от меня одни убытки, а то держат зачем-то
80 1182846
>>182834
Бложики не являются истиной в последней инстанции. У того анона суть вопроса была именно в объяснении ошибки
Ну и да, автор не знает о том, что такое неожиданное поведение
In computer programming, undefined behavior (UB) is the result of executing computer code whose behavior is not prescribed by the language specification to which the code adheres, for the current state of the program. This happens when the translator of the source code makes certain assumptions, but these assumptions are not satisfied during execution.
81 1182847
>>182839
Так и скажи: «я — бестолковый демагог, разваливаю команду неконструктивными спорами, отсеиваю годных людей на собеседованиях идиотскими вопросами, считаю заведомо плохой код стандартным конкретным и не зависящим от реализации».
82 1182851
>>182847
Я не говорил, что тот код хороший, это проверка на знание языка, что бы не творить хуйню во время кодинга, понимание различия генераторов и итераторов, а так же реализацию протокола итерации нужно нужно знать. Неправильный ответ на тот вопрос показывает, что человек не знает язык
83 1182853
>>182846
Дело не в бложиках. Там понимаешь, в зависимости от реализации итератора списков код может сработать одинаково, а может по-разному. Такое лучше показывать сразу с результатом выполнения, а не просить выполнить в уме. Хуй его знает как оно сработает в pypy/jython/ironpython/etc.
000.png.png56 Кб, 1027x326
84 1182855
>>182847

>Так и скажи: «я — бестолковый демагог, разваливаю команду неконструктивными спорами, отсеиваю годных людей на собеседованиях идиотскими вопросами, считаю заведомо плохой код стандартным конкретным и не зависящим от реализации».


Ты просто ньюфаг и не понимаешь, что демагогия это весело, срачи и обоссывания - наша стихия. Иди греби.
86 1182858
>>182853
По дефолту используется cpython, если не сказано иначе. Это уже ты начинаешь маневрировать со всякими джайтонами, которые не используются в коммерческой разработке совсем. Так можно вообще половину вопросов по синтаксису завернуть, потому что в очередной устаревшей реализации оно не поддерживается. Итераторы описаны в pep, на который и опирается мой вопрос, все что сделано в васяноподелках не учитывпется
87 1182862
>>182856
Какая разница, что ты в своём классе написал? У меня там конкретный тип list
88 1182865
>>182858
Я считаю что это принципиально нужно не знать, так как >>182856
>>182862
Пиздец, посоны, байтоёбы в моём питоне. Ещё немного и гордиться начнут знанием наизусть всего сишного кода в интерпретаторе.
89 1182870
Самое забавное что это поведение в любой момент могут изменить. Вот прям завтра выкатят py3.7 с жёстким RuntimeError в таких случаях, и дрочеры обломаются со своими охуительными «знаниями».
90 1182873
>>182870
Ога, и совместимость нахуй поломают, я понимаю там смена мажорных версий, как с третьим питоном произошло, но с минорной хуй так прокатит
91 1182888
>>182873
Минорные версии тоже не очень-то совместимы друг с другом. Как пример https://docs.python.org/3/whatsnew/3.5.html#whatsnew-pep-479
92 1182914
>>182733
За vpn пользователю пока ничего не будет.
93 1182919
>>182749
Ващет вот этот >>182754 прав. Я тебе могу такой итератор написать, что его модификация, во время итерации будет что-то значить и будет описана в документации. Ты путаешь просто знание стандартных контейнеров и знание о "протоколах" итерации и т.д.
94 1182920
>>182919
Да нифига он не прав. Проверять знание о том что такое генератор компрехеншен нужно иначе. Конкретно поведение итераторов даже стандартных контейнеров ну очень мало кто знает наверняка, их реализация зачастую выбрана в угоду скорости, а не корректности, и полагаться на это в коде ну совсем нехорошая идея, он даже сам это признал.

>знание о "протоколах" итерации


Это совсем не о протоколах. Протокол везде один. Это именно реализация. Одна реализация в недрах cpython, другая вот >>182856, и она полностью совместима по протоколу со стандартной.
5fa62c3d1c2b28303ed7f9f2d3a49e3aa31f80c7.jpg284 Кб, 1145x966
95 1182927
А у меня нет гуя, и помимо этого еще не знаю как натянуть графен на простенькое приложение для поиска картинок на харде по тегам, эдакая https://gelbooru.com/index.php?page=post&s=list&tags=all, только локальная. Обычно если мне надо что-то нарисовать, то в дело идет jupyter, но для этой задачи получится как-то слишком костыльно.
Посоветуйте библиотеку для графена, а еще лучше набросайте как с ней будет выглядеть интерфес состоящий из таблицы картинок (или одной картинки после выбора) справа и поля для ввода поиска\добавления тегов вместе со списком всех (для конкретной картинки) тегов - слева. Как реализовать все остальное я знаю, мне нужна какая-то основа, от чего отталкиваться в мире за cli.
96 1182938
>>182927
Берёшь QT5 и гуглишь создание таблиц, ничего сложного там нет.
p.s. Ты случаем не >>1182415 ?
98 1182947
>>182865

>знанием наизусть всего сишного кода в интерпретаторе.


А что же, лучше его не знать и этим гордиться? Я чуть опоздал на бал, но сразу хотел тыкнуть в сорцы. Иногда полезно читать.
А именно вот это:
1. extend просто в лупе вызывает iternext, пока не нарвётся на NULL https://github.com/python/cpython/blob/master/Objects/listobject.c#L897
2. iternext листа вытаскивает элемент по индексу it_index, проверяет его входимость в sequence (каждый раз новая проверка!), а затем инкрементирует этот индекс.
https://github.com/python/cpython/blob/master/Objects/listobject.c#L3071
Делать как-то иначе смысла мало, потому что это будет лишь надстройкой над вот этим базовым поведением.

>Я считаю что это принципиально нужно не знать, так как <код>


>>182920

>Одна реализация в недрах cpython, другая вот >>182856,


Ну вообще-то он не изменял реализацию итератора как такового, просто в его коде итерация идёт уже по другому объекту, в данном случае по range'у, а не самому списку, который увеличивается.
Кстати, именно это же и происходит в первоначальном вопросе, где незацикленный вариант итерируется по новому, созданному в list comprehension'е списке, а не изначальному a, чем занимается генератор.
99 1182955
Если вы знали, что зашифрованный файл является кашей из нескольких кодировок, как бы вы пытались его расшифровать?
100 1182956
>>182947
Дело не в range, я могу так же итерировать в сишном коде: взять сначала длину и вслепую перебирать. То есть не сравнивать в каждой итерации текущий индекс с текущей длиной. Задача этого кода с итерацией только перебрать контейнер при условии что его никто не будет изменять, а если и будет, то чтобы сам интерпретатор не крешнулся. Больше гарантий особенно не даётся. К примеру dict при итерации выбрасывает исключение если его размер изменился. Можно например удалить и вставить, как бы оставляя размер словаря тем же, итератор не заметит, но результат итерации будет непредсказуем.

Так или иначе, такие приёмы можно заменить на что-то более понятное и предсказуемое, и лично я всегда палкой по пальцам буду бить за такое говно. Всё что требует разматывания кодовой лапши, прокручивания в голове, работает неинтуитивно, опирается на какие-то недокументированные особенности кода поддерживаемого не нами — это плохо и рано или поздно либо сломается, либо будет очень дорого переписать нормально чтобы к примеру перейти на новый питон.
101 1182960
>>182956

>такие приёмы можно заменить на что-то


Так об использовании подобного кода речи и не шло ведь, только о понимании, как он сработает.
Все кричат "не меняй список при обходе по нему!", но почему? Слепо слушать программистишек никогда не стоит, особенно с такими резкими заявлениями (уровня "goto is evil"). А тут вон наглядный пример, что может случиться. Как по мне, так очень даже полезно такое джуну давать (те, кто старше, и так в курсе). Разумеется, не как какой-то решающий вопрос на собеседовании и т.д. Очень частно же встречаются умники, которые норовят удалять элементы при обходе.
102 1182961
>>182956

>взять сначала длину и вслепую перебирать


А с чего бы интерпретатору делать предполагать, что объект не будет изменён? Идейно у итераторов как раз правильнее каждый раз проверять, мне кажется, потому что всё, что от него требуется, это выдавать "следующий" элемент, пока они не закончатся, а не пока не будет достигнут какой-то установленный ранее конечный пункт.
Ведь если тебе надо переложить яблоки из тазика в коробку, а брат подкладывает яблоки в тазик, ты же не остановишься, когда переложишь N яблок, находившихся так в первую секунд. Ну может быть ещё в морду брату дашь, чтобы кончились яблоки наконец.
103 1182963
>>182960

>о понимании, как он сработает


Опять возвращаемся к тому что я говорил:

>Такое лучше показывать сразу с результатом выполнения, а не просить выполнить в уме


>Всё сильно зависит от устройства итератора


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



>но почему


Потому что не предназначено оно для такого. Это реально уровня goto практика и даже хуже. Не проведя эксперимент наверняка не скажешь как оно поведёт себя. Да и опять же, завтра поменять могут.

>>182961
Ты какую-то недоочередь изобрёл. Я минут десять сейчас гуглил идеологию итераторов, так вот нигде вообще ничего идеологически не сказано насчёт случая модификации структуры во время итерации. Везде говорится про iterator invalidation, undefined behaviour, never do this!1

https://docs.python.org/3.6/tutorial/datastructures.html

>It is sometimes tempting to change a list while you are looping over it; however, it is often simpler and safer to create a new list instead.



Даже вот в официальной документации скупое never do this и ничего больше не сказано.

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

>All in all, this is always a trade-off between security (iterators remain always valid) and efficiency. Most of the time, the added security is not worth the efficiency price to pay for it.



То есть в общем случае итераторы реализованы хоть как-нибудь. И только если в доках явно написано что можно например append/extend/rotate/etc, то это можно применять, иначе лучше избегать всеми возможными способами, либо имплементить свои структуры данных со своими особенными итераторами.
105 1182982
>>182963
tl;dr: В общем, я считаю, что (у)знать это полезно, но как раз именно для того, чтобы почти не использовать в своём коде, но получив при этом порцию урины понимания внутренностей работы как питона, так и, эм, языков программирования в целом.

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


Не так эффективно, я считаю. Сначала всегда надо предоставлять возможность самому додуматься, а уж потом подсказаньки давать.

>Это реально уровня goto


Питонистам не привыкать, код cpython'а битком набит goto'шками.

>Везде говорится про iterator invalidation, undefined behaviour, never do this!1


>только если в доках явно написано


А разве где-то в доках питона такие тонкости пишут? Да и тут три с половиной типа мутабельных коллекций всего.
В плюсах вот, например, у std::list'а в append'е push_back пишут:

>No iterators or references are invalidated.


соответственно и работает как и питоний лист, тогда как у std::vector'а могут быть потрачены итераторы, если память перевыделять надо.

>не предназначено оно для такого


А что в твоём понимании "не предназначено"? Ведь работает, нигде запретов не было. Про запрет изменения словаря же, например, в PEP'е сказано ( https://www.python.org/dev/peps/pep-0234/ ).
Выходит, в плюсах можно, раз в доках есть? А в питоне в принципе ни про запрет, на про разрешение нет, относительно списков. Значит, можно? Ну там по дзену с прошением прощения, а не разрешения и всё такое.

>ничего идеологически не сказано насчёт случая модификации


А я не говорил конкретно про модификацию, я в принципе о назначении итераторов, отсутствие прямого упоминания модификаций в описании которых, на мой взгляд, как раз делает более логичным возможность добавлять элементы после начала итерации и дойти до них по ранее созданному итератору.
https://wiki.python.org/moin/Iterator

>An iterator is an object that implements next, which is expected to return the next element of the iterable object that returned it, and raise a StopIteration exception when no more elements are available.


Есть следующий элемент — выдаём его.

Другое дело, что могут быть иные ограничения, вроде способа хранения объекта в памяти, вроде тех же словарей или vector'ов, которые не дадут получить этот "интуитивный" исход. И количество вопросов в интернете поддерживают моё мнение, что люди хотят добавлять элементы во время итерации и удивляются, что итератор ломается, то есть работает не так, как им казалось (подсказывала интуиция, ведь доки никто не читает).

>often simpler


>скупое never do this


?
105 1182982
>>182963
tl;dr: В общем, я считаю, что (у)знать это полезно, но как раз именно для того, чтобы почти не использовать в своём коде, но получив при этом порцию урины понимания внутренностей работы как питона, так и, эм, языков программирования в целом.

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


Не так эффективно, я считаю. Сначала всегда надо предоставлять возможность самому додуматься, а уж потом подсказаньки давать.

>Это реально уровня goto


Питонистам не привыкать, код cpython'а битком набит goto'шками.

>Везде говорится про iterator invalidation, undefined behaviour, never do this!1


>только если в доках явно написано


А разве где-то в доках питона такие тонкости пишут? Да и тут три с половиной типа мутабельных коллекций всего.
В плюсах вот, например, у std::list'а в append'е push_back пишут:

>No iterators or references are invalidated.


соответственно и работает как и питоний лист, тогда как у std::vector'а могут быть потрачены итераторы, если память перевыделять надо.

>не предназначено оно для такого


А что в твоём понимании "не предназначено"? Ведь работает, нигде запретов не было. Про запрет изменения словаря же, например, в PEP'е сказано ( https://www.python.org/dev/peps/pep-0234/ ).
Выходит, в плюсах можно, раз в доках есть? А в питоне в принципе ни про запрет, на про разрешение нет, относительно списков. Значит, можно? Ну там по дзену с прошением прощения, а не разрешения и всё такое.

>ничего идеологически не сказано насчёт случая модификации


А я не говорил конкретно про модификацию, я в принципе о назначении итераторов, отсутствие прямого упоминания модификаций в описании которых, на мой взгляд, как раз делает более логичным возможность добавлять элементы после начала итерации и дойти до них по ранее созданному итератору.
https://wiki.python.org/moin/Iterator

>An iterator is an object that implements next, which is expected to return the next element of the iterable object that returned it, and raise a StopIteration exception when no more elements are available.


Есть следующий элемент — выдаём его.

Другое дело, что могут быть иные ограничения, вроде способа хранения объекта в памяти, вроде тех же словарей или vector'ов, которые не дадут получить этот "интуитивный" исход. И количество вопросов в интернете поддерживают моё мнение, что люди хотят добавлять элементы во время итерации и удивляются, что итератор ломается, то есть работает не так, как им казалось (подсказывала интуиция, ведь доки никто не читает).

>often simpler


>скупое never do this


?
106 1182994
>>182938
Нет, это не я, просто закон парных случаев. А разве QT-тян не слишком толстенькая? Я на линуксе, если что.
>>182943
Пост не читай, сразу отвечай!
107 1183001
>>182994

> Нет, это не я


Жаль, а то я хотел предложить сотрудничество.

> А разве QT-тян не слишком толстенькая?


Что ты имеешь против пухленьких тян?
Не имеет большого смысла ебаться с tkinter`ом, QT получше да и это будет отличным опытом и заделом на будущие pet- и не только проекты. Но конечно, хозяин - барин, бери что захочешь.
108 1183027
Мне кажется, или вопросы на Reddit интересней местных?
https://www.reddit.com/r/Python/comments/8geobo/copying_user_actions_from_one_selenium_driver_to/
Кстати, кто-нибудь делал ботов для игр и пытался на них заработать?
109 1183032
>>183027
Нахера жрать селениум, когда можно обмазаться bs4 и requests
110 1183050
>>183032
Если сайт полон жс'а может случиться так, что реквестами не обойдешься. Сам с таким сталкивался, когда парсер писал
111 1183052
>>183027
Такой себе вопрос, по-моему. Человек хочет из кода нажать на кнопочку, потом в коде перехватить это нажатие, и снова из кода нажать ещё раз для других драйверов? Почему сразу третий шаг-то ему не нравится? Или он там вручную нажимает в одном окне и хочет это всё в другие перенести?

>>183032
Потому что в браузерной игре будет дохуя всего происходить, включая кучу ЖСа и возможно websocket'ы? Твои парсилки тут вообще никак не помогут.
112 1183069
Суп сосач, есть одна борда. Action на ней это /post.php, с учётом, что как бы не изощрялся, нормально на эту страницу не перейти ни с какого-либо домена. Хочу автопостер через reauests.post(url, data={'body':'сам пост'}), но так он выдаёт ошибку 405: Not Allowed. Вероятно из-за неправильного action'а, ибо подключаюсь к самому треду. Как фиксить? Наверняка рассказал, как шизик, поэтому спрашивайте, если что-то непонятно.
113 1183073
>>183069
Пытался куки подключать, но и они не помогли.
Думаю вот как-нибудь через консоль браузерную затестить, чтобы убедиться в правильности или неправильности ключей и переменных, но в голову пока ничег оне приходит.
114 1183080
>>183069
смотри заголовки, которые отправляешь
115 1183082
>>183073
Открой вкладку сети в консоли браузера, скопируй запрос и отправь его curl'ом. Вполне возможно, что какой-нибудь referer имеется или ещё что такое.
116 1183088
>>183080
Если спроецировать на этот двачхк, то:
url = 'https://2ch.hk/pr/res/1182179.html' (М)
log = {'comment':'пост', 'name':'нейм''}
r = requests.put(url, data=log)
print(r.text)

Только тут, вместо /post.php, стоит /makaba/posting.fcgi
117 1183098
>>183082
На выхлопе: {redirect: "/test/res/2058.html#12563", noko: true, id: "12563"}
Сейчас попробую вырубить обработку перенаправлений, но чую, это не поможет.
118 1183109
>>183052

> Человек хочет из кода нажать на кнопочку


Ну там уже его маня-желания. Мне понроавился сам факт наличия самописного бота, задумываюсь над этим.
>>183032
Кхем-кхем, потому что не всё можно сделать реквестами и супом, в частности с JS ты проебёшься + у браузера функционал всё же шире и отладка проще. Гораздо проще к браузеру подрубить суп, при надобности, чем наоборот.
119 1183126
Посмотрел Network/Headers.
Как понял, при поступлении запроса из треда, его перенаправляют на бордалинк/post.php, но посты не идут, а я не знаю, что с этим дерьмом делать.
Screen Shot 2018-05-02 at 19.11.07.png97 Кб, 1528x509
120 1183129
>>183098
Что ты принёс? Вот пикрелейтед, потом постишь это в терминал и смотришь, что происходит.

>>183126
Ну ты либо даёшь ссылку на борду, либо решаешь всё сам, не засирая тред.

>>183109

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


Да тут каждый второй бота в телеграм пишет. element.click() через селениум не сильно лучше. Смотря что там за бот, конечно, может там АИ нагибающий всех.
121 1183131
Суп. нужен хелп:
написал небольшой скрипт на питоне 3.5 под win7 x64 (с использованием openpyxl, tkinter, os). Работает норм на семерке. На win8.1 скрипт работает, но неверно. В чем может быть проблема? Самому проверить, что происходит на 8ке нет возможности? Мб на 8-ке (проверял другой чел удаленно). Как я понял, на 8-ке не правильно срабатывает именно логика программы. Мб сталкивался кто с такой же проблемой ? Мб os на 8-ке по-другому работает ?
122 1183133
>>183129

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


Тут https://loli_fox.org/b/res/119792.html аналогично, как и на многих других бордах.

>пикретейтед


curl: (61) Unrecognized content encoding type. libcurl understands deflate, gzip content encodings.
123 1183153
>>183131
Попробуй поебстись с фризом скрипта. Pyinstaller - way to go.
124 1183167
>>182715
Я могу предположить что в первом случае можно использовать pycuda, но я с ним не работал.
125 1183207
Я совершенный ноль в ООП, подскажите, пожалуйста, почему большинство примеров для PyQt5 включают создание класса с дефайнами под ним?
Просто есть примеры с обыкновенными def Window(): и там все ясно, а потом внезапно переходят на мозговыносящие классы с self'ами в каждой второй строке.
Без них вообще никак? Зачем они вообще по факту нужны?
126 1183209
>>183207
Чтобы можно было класс красивая хуйня с двумя окошками наследовать, указывая, что в классе мемосики в первом окошке будет будет информация о мемасике, а в правом - сам мем, а в классе список Пынь левое окошко будет отвечать за срок и имя Пыни, а в правом будет анимированный виджет с динамикой экономики при этом пыни. При этом и мемосики и список Пынь будут иметь красивые статус бары сверху и снизу, и общие кнопки, так как наследуются от красивой хуйни с двумя окошками, которая эти статус бары и кнопки определяет. А может и нет, я хуй знает вообще.
15127282752720.gif1,8 Мб, 300x264
127 1183221
>>183209
Я честно пытался вникнуть во все это, а потом увидел это

>А может и нет, я хуй знает вообще

128 1183223
>>183129
Для телеги написать не проблема, там отличные доки, к библиотекам.
А тут вот для браузерной дрочильни. Сомневаюсь, что там нагиб какой-то, скорее гринд, но тем не менее.
129 1183229
>>183207

>Я совершенный ноль в ООП


>PyQt5


КУДА ВЫ БЛЯДЬ ВСЕ ЛЕЗЕТЕ НАХУЙ, ТО СОКЕТЫ, ТО КЛАССЫ, ТО ПУТЬ ФАЙЛА, НИХУЯ НЕ ЗНАЮТ БЛЯЛЯЯЯ
130 1183238
>>183229
Я лезу, чтобы научиться. Почему у тебя от этого так горит?
131 1183243
>>183238
Это основы, их нужно учить гораздо раньше, а не лезть в qt, не зная, что такое селфы и методы класса. 90%
тупейших вопросов в треде не задавалось бы, если хотя бы одну книжку по питоны ньюфаги осилили
132 1183247
>>182982
append таки да, сломать мне не удалось.
Но вот https://pastebin.com/vudX7c5g
133 1183303
>>183243
Я осилил "Автоматизацию" Свейгарта, и там не было классов. Я также нашел сайт с переводом Dive into Python, там сжато рассказывается, что такое классы, но я нихуя не понимаю. И в основном, нахуя они все-таки нужны.
И все-таки оригинальный вопрос был, можно ли обойтись без классов, работая с PyQt5. Если нет, буду пытаться дрочить их тогда хардово.
134 1183307
Кто-нибудь пользуется Spyder? Хочу поисследовать стандартную библиотеку. Скажем встаю на вызов функции print, нажимаю ctrl-g и ничего не происходит. Хотя со своими функциями всё нормально. Использую Debian, если это важно
135 1183319
>>183307

> spyder


Нагуглил одну хуйню. Кинь линк на документацию
136 1183321
>>183307
Ща попробовал тоже самое в PyCharm, и там тоже сорцов нет, открывается файл builtins.py, где в теле функций написано pass и всё.
Хотя щас появилась мысль, что эти стандартные функции реализованы в интерпретаторе, а он соответственно на каком-нибудь сишке написан?

Чё-то в джаве с этим всё просто и понятно, а тут хуй разберёшься
137 1183322
>>183319
Всё, чё-то я жёстко тупанул, смотри выше сообщение
138 1183327
Анон, подскажи:

Идея в том, что на экран выводится таблица, которая фильтруется по выбранному из списка параметрам, нужно перебрать все варианты выбора фильтров. Есть список из 10 переменных. Каждой присваивается значение, выбранное из дроп-листа.

Как определить, был ли уже элемент в списке, и если был, то не учитывать его?
139 1183333
>>183303
Там нехуй дрочить, но для начала выучи основыс 'укусом питона'.
ООП это хороший способ организации кода, и не просто так его юзают в КьюТэ и много где еще, в качестве стандарта.
141 1183397
>>183359

>but


Можно перевести как кроме.
142 1183398
>>183327
Я нифига не понял, но

>был ли уже элемент в списке


set/dict.
143 1183520
Анончики-питонисты, там на ХамблБандл продают Python-бандл: https://www.humblebundle.com. Есть там что годного? Если да, то будет ли полезен этот пак новичку-вкатывальщику?
144 1183573
поцаны, подскажите что в цикле писать чтоб считала гласные у слова.
Дано:
a='приветпривет сосиписосы'
c=a.split(' ')
glasn=['а','ы','е','о','и','ю','я','э','у']
glasn_res={}
count_glasn=0

Результат:{'приветпривет': [4], 'сосиписосы': [5]}
{
145 1183575
>>183520
Не нашел что-то
146 1183577
>>183520
Еще блинов с лопаты поешь
147 1183638
>>183573
Можно, конечно, элементарно проверять вхождение элементов строки в список гласных (for letter in string: ...), но интересно посмотреть, что скажут знающие аноны, наверняка есть a python way, через collections.Counter, например.
148 1183676
Подскажите, как правильно настроить планировщик для телеграм бота?
юзаю aiogram библиотеку.

Вот кусок хендлера, планировщик внизу
149 1183677
image.png84 Кб, 1149x301
150 1183752
Аноны, какого хуя библиотека могла отвалиться?
И как так странно, вроде уже есть, но импортироваться не хочет.
151 1183758
>>183752
Чёт лольнул. У тебя прямо там файл celery.py лежит, оно его импортирует.
152 1183805
>>183758
Блять, верно, проебался с дубликатом папки.
153 1183808
>>183573
Список гласных должен быть множеством, так проверка вхождения будет выполнятся за константное время
А дальше просто итерируешь слово и инкрементируешь счетчик
15088510462000.png297 Кб, 450x520
154 1183811
>>183808
Ах да, можешь еще сделать ебануто и вместо инкрементируемого счетчика сделать функцию с yield'ом и itertools.count, ну что бы объект счетчика каждый раз не создавался
155 1183817
>>183811
Или через counter, как предложил анон выше тоже можно

from collections import Counter

glasn={'а','ы','е','о','и','ю','я','э','у'}
my_string = input()
counter = Counter(my_string)
print(sum(counter for i in glasn))
156 1183818
>>183817
counter
fix
157 1183819
>>183818
Блядь, двощ съедает квадратные скобки и i
158 1183870
>>183333
На этом месте должны прибежать члены секты свидетелей ФП
159 1184001
>>183870
Но пока тихо.
Никогда не понимал этого холивара, как почитаешь их срачу, так ебануться можно, по всем топ-галеры плачут и ждут этих хероев.
13354572964209.jpg63 Кб, 600x558
160 1184030
>>183811
Бля эта пикча из треда про доминатора маршрутки. Как много воды утекло.
161 1184046
если я передаю в функцию имя списка, какая вообще разница есть ли звездочка в параметрах функции или нет?
image.png469 Кб, 1920x1080
162 1184067
>>182192
а для все остальных кому вкус говна нерпиятен, я сообщаю - у нас охуевшая обновка граждане
163 1184068
ну и да оп охуевшая анаконда блеадь, упиздил тред и устроил ад в шапке, минус тебе в карму гандон
164 1184069
>>184067
>>184068
Ну ты и мразь конечно. сам пользуюсь только вскодом, но ты вообще фанатик ебанутый
165 1184070
166 1184072
>>184046
Такая, что если аргумент указан со звёздочкой, то и передавать туда список тоже придётся со звёздочкой, распаковав его таким образом на отдельные аргументы. Вдобавок, ты не можешь иметь позиционные аргументы после звёздочки.

>>184067
Вам только завезли выделение колонк?! Или только выделение колёсиком новое и это типа так круто?
167 1184073
>>184072
Выделение колонок давно было
168 1184074
>>184072

>Вам только завезли выделение колонк?!


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

>выделение колёсиком


для пидоров, у всех нормальных людей думаю о здоровье и комфорте на мыши три кнопки
169 1184077
>>182751

>Но Лутц говорит



Ты бы еще в мануал по Fortran 69 посмотрел. Лутц устарел и без капитального обновления для туториала по Питону в f`{datetime.now()}` не годится

> что мешает мне сделать свой HTTP handler



Ничего не мешает. А можно еще на ассемблере побайтно строки парсить, тоже ничего не мешает.

> ты имел в виду, что в фреймоврках нет CGI?



Фреймворки, питон и CGI - вещи практически не взаимосвязанные. CGI - это стандарт такой, договоренность, что сервер будет вызывать любой исполняемый файл, которому на стандартный вход будет подаваться окружение оболочки в определенном формате, а все, что придет по стандартному выводу - будет отдано клиенту (то есть в браузер). Это все, весь хуй до копейки. Что конкретно будет исполняться - сервер это не волнует. Хоть баш, хоть питон. Технология старая, с массой проблем и на сегодня имеет только дидактическую ценность.

Ты бы лучше написал, что тебе надо добиться.
170 1184078
>>182858

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



Надо рассказать коммерческим разработчикам, а то они не в курсе. В 2005-2007 75% онлайн рекламы тебе показывал код на jython
171 1184079
>>184078

>2005-2007


>2018


Ну ты это, держи в курсе
172 1184081
>>183520
Нету. Они вообще охуевшие в последнее время, в прошлом бандле половина книг тупо опенсорсная и лежит бесплатно на гитхабах авторов. Скажи нет капитализму и посылай нахуй жадных пидарасов.
173 1184082
>>184079

Ты думаешь, кто-то переписал проект с доходностью в четверть лярда чисто потому, что немодно стало? Если тебе не приходится с ним работать на твоем апворке - это не значит, что никому не приходится, так что поаккуратнее с заявлениями.
174 1184083
>>184082
Пруфы будут на существующие проекты из 2007 с доходом в четверть миллиарда?
175 1184084
>>184083
Проекты на джайтоне
фикс
176 1184085
>>184084

Контора была куплена Гуглом. Это проект, в котором я лично работал, 95% jython.
177 1184086
>>184085
Какой год? Какая контора? Я допускаю, что в конце нулевых-самом начале десятых его юзали, но 8 лет прошло уже, и джайтон умер, к тому же
178 1184087
>>184086

Могу только сказать, что сейчас это часть DoubleClick Bid Manager. Больше по части названий и дат сказать ничего не могу, т.к. подписывал кипы nda, а на двачах гуглеры тусуются 100%. Могу рассказать общие детали реализации. Проект был активен еще буквально 2-3 года назад.

Умер джайтон или нет будет понятно если по релизу для 3.7. Если не будет, тогда да, скорее всего сдох. А так последний релиз был для 2.7.1, щас там только багфиксы выходят, достаточно регулярно.
179 1184089
>>184087
Ничоси, я посмотрел историю коммитов, выглядит живее многих. Хотя меня все таки смущает, что там только второй питон. Джайтон как легаси я понимаю, но новый проект и вопросы на собеседование по нему в 2018 это слишком. Хотя, если тройка выйдет, то может он снова популярность приобретет
180 1184129
>>184074

>щас вимоеб


Спалил, зараза.
181 1184138
>>184068
"Упиздить" у тебя тред - правильное решение. Сам же украл тред и испоганил шапку, а он вернул нормальный тред и шапку, жаль только нумерацию проебали.
Иди нахуй, болезненный, со своим ВСкодом и не устраивай срач.
182 1184146
>>184138

> жаль только нумерацию проебали


Треды никуда не сохраняются ведь, смысл в нумерации? Только если на цифру подрочить. Но она и так столько раз терялась, что это уже и не важно
image-4.png25 Кб, 642x461
183 1184190
Есть ли модуль в питоне, что бы так же красиво форматировать выводимые данные в консольке?
Скрин честно взят с БД треда
184 1184194
>>184077

>Фреймворки, питон и CGI - вещи практически


Я понял, что CGI это стандарт, но просто тот анон так написал, что я подумал, что всякие Джанги например помогают писать приложения по стандарту wsgi, а не cgi.

>Ты бы лучше написал, что тебе надо добиться.


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

Я сначала думал, что надо первую прочитать, про Джанго, но я так понимаю, она именно про написание тех самых скриптов-обработчиков-запросов по стандарту wsgi, cgi, я хз уже, а хотелось бы ещё что-то по разработке в общем: как развернуть apache\nginx да и что из двух стульев выбрать, как туда свой Пистон вставить, какую из сотен бд туда пристроить, как для той же MySQL есть ее mysql.connection и SQLAlchemy, и я не вижу между ними разницы. Я думаю вторая и третья книги про это, но они помечены как middle, а я даже не junior ещё, так что хз.

>>184190
Мне анон в позапрошлом треде вот это в лицо кинул: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
лол, мой скрин
185 1184195
>>184194
Да блять, ну что за хуйня. Зачем можно передвигать картинки в предпросмотре, если Двач все равно их расставит как захочет. Ещё и ctrl-c опять блять сука не прожался, который раз уже. Я вот эту ссылку хотел дать:
https://github.com/gregbanks/python-tabulate
186 1184197
>>182179 (OP)
Стоит ли учить вашу хуйню? Знаю c#, c++, так что сомневаюсь, что проекты на питоне получатся более охренеными, но а вдруг работодатель хз,конечно, я же накуй им не нужен ищет бого-питонов.
187 1184224
>>184197
стоит. овердохуя инструментов написано на питоне
порог входа не высок особенно с сишными скилами. Достаточно базового ООП и будешь мочь искать и применять и даже крафтить питонячие инструменты
188 1184287
Кто-нибудь работал с модулями selenium и splash? Я сейчас не могу сам проверить, т.к. на работе, но мне жутко интересно как они работают.
Мне надо обойти защиту от ддос на одном аниме сайте, вот пытаюсь подобрать инструменты. Не подскажешь, анон, с помощью этих модулей я смогу совершить задуманное?
Гуи на питоне 189 1184300
Чё думаем, почоны? Я вот ткинтер ебанул, хейня полная, пошёл дальше - ебанул киви, ну получше, но тоже чувствую ограничения, сейчас думаю пересесть на котлин или шарп, шо думаешь обо всём этом?
190 1184304
>>184300
А что даст переход на котлин и шарп? Что насчёт Qt, Gtk? Вообще что ты хочешь от тулкита кроме набора кнопочек с окошками?
191 1184305
>>184287
Не более чем браузер который можно заскриптовать. Так-то ддос можно и в браузере сделать же.
192 1184307
>>184304
ну вот и я о чём, я хз что есть в кт, но в киви ткинтере крове кнопочек и окошем мало чего есть, но ладно даже пусть так, я целый день ебался с ним чтобы подключить СУКА ФУНКЦИЮ которая так и не сработала. блять!
193 1184308
>>184197
Стоит. Работать скрипт будет медленно, но человекочасов на его разработку уйдёт несравнимо меньше.
194 1184309
>>184307
Везде будет так же. Что-то нестандартное нужно рисовать уже самому, компоненты кастомные делать, вот это всё.
195 1184310
>>184307
типо нахуй мне тратить время на еблю со всем этим если можно как нормальные люди запилить проект в андроид студии
196 1184312
>>184309
есть такое, и я не против дальше с ним работать, но устроено там всё как-то через жопу, документация вроде красивая и аккуратная, но какая-то неполная, непонятно как идёт наследование итд
197 1184313
>>184194
Технически ты можешь сделать cgi на основе wsgi. wsgi он как бы глубже в питоне сидит и не декларирует никакого межпроцессного взаимодействия, в отличие от cgi/fastcgi.

тот анон
198 1184315
И да, при этом cgi/fastcgi вообще никак не декларируют используемый язык, только это самое межпроцессное взаимодействие и протоколы расписанные по байтам. wsgi это только исключительно питон это питонячая функция банальная же со стандартизированной сигнатурой
199 1184316
>>184312
Бери что-нибудь популярнее. Tk/киви очень нишевые, ими пользуется три с половиной питониста на весь мир, поэтому и документацию некому писать. Это как раз тот случай когда github-stars-driven-development прям самое оно.
200 1184336
>>184316

>github-stars-driven-development


случай не единственный
>>184300
Думаем что питон и гуи это разного поля ягоды. Пушто графон рисуют хардверные инструменты которые жрут много кпу поэтому их надо компилировать. Рекомендую не елозить елдой об салому то есть не терять время на эту еботню в питоне а вкатываться в яву. это самый адекватный совет пушто ява из компилируемых языков ближе всего к питону
201 1184337
>>184336
...ну или котлин да... стильно модно молодежно
202 1184346
>>184336
Да нормальные гуи на питоне. Рисовать графон-то всё равно будет сишный код, который в этом тулките. Правда байндинги без знания сишечки понимать будет тяжеловато, далеко не ко всему они идиоматично питонизированы. Возможно ты и прав в общем-то..
203 1184363
>>184287
Со splash не работал,но вот селениум здесь большинство юзало.
Все делается просто и быстро, доки хорошие, примеров много, тут тебе тоже подскажут - дерзай
204 1184443
>>184336
Java близка к питону?Это ты тролишь так?Если хочется компиляции и при этом писать быстро и без ебли, то нужно юзать D, что я и делаю
206 1184505
тут есть те кто шарит во фласке?
207 1184506
>>184505
Спрашивай свои ответы
208 1184508
>>184506
насколько эту хрень рационально использовать?
209 1184512
>>182838
Почему не киев kivy?
210 1184529
>>184508
Для мелкопроектов, почему бы и нет? Когда джанги много, а с другими фреймворками ебаться нет желания.
Ну и как по мне - с него хорошо начинать, там нет такого избытка батареек и настроек, в которых можно потеряться, в отличии от джанги. Но это имхо.
>>184512
Можно и киви, выбор за тобой. Мне просто показалась документация киви какой-то странной и неполной. Я вот Toga решил обмазаться. Выбор инструментов широк - дерзай.
211 1184542
После прочтения Bite of Python, мои навыки можно оценивать будет как "Базовые знания Python"?
И зайдет ли она (судя по описанию ее, да) если у меня опыт уровня школьного программирования на Pascal?
212 1184545
>>184529
двач попрет?
213 1184557
>>184545
Если хочется прям поковырять все и вся- да.
Но для такого я б выбрал джангу, там готовые модули и даже движок вроде на гите есть.
214 1184563
>>184557
короче не серьезный фреймворк,чисто для ковыряния,эх
215 1184564
>>182179 (OP)
Подскажите как написать генератор кароче вот шоб было вот вот так
['a' , 'A' , 'b' , 'B', ... ,'y' , 'Y' , 'z' , 'Z']
сложна сука непанимаю как
216 1184568
>>184564
на клавиатуре
217 1184571
>>184568
На хуй пошёл пидар
218 1184573
в жопу джангу
219 1184576
>>184571
я не пидар
220 1184577
>>184576
тагда пошел на хуй на турал
221 1184578
>>184564
[letter for pair in zip(string.ascii_lowercase, string.ascii_uppercase) for letter in pair]
15181580905620.png23 Кб, 597x592
222 1184580
>>184578
a

>pair


на клавиатуре
223 1184584
>>184557
но реализуемо на нем?
Screenshot20180505161956.png105 Кб, 1376x808
224 1184611
Третий час бьюсь на новой убунте вот с этой проблемой.
Что делать, если не устанавливается фича, которая устанавливает другие фичи? P.S. Я совсем-совсем зеленый
225 1184612
>>184580
э-э, чего?
226 1184623
>>184612
а тупанул немножк
227 1184624
>>184612
что это за конструкция? Первый раз вижу
чому тогда [z for item in len(10)] не робит?
228 1184631
>>184584
На чем угодно реализуемо, вопрос в затратах на это.
229 1184634
Заранее извиняюсь за нубовопрос, но очень нужно знать.
Есть текстовый файл file.txt.
Его содержимое:

>Попробуй еще


>этих


>французских


>булок.



Два вопроса:
1) Можно ли средствами Питона удалить строку

>этих


?
2) Заменить строку

>французских


на

>британских


?
230 1184639
231 1184645
>>184624
[z for z in range(10)]?
232 1184646
>>184645
да я понял что там надо было range() и это конструкция мапинг листа, но все равно не понятно, но я пока забил на такой сложный мап у меня мозг сломался
233 1184657
>>184646
list comprehension это, гугли, очень часто используется.
234 1184682
>>184631
ну и какие затраты на фласк vs джанго?
235 1184703
>>184611
Попробуй:
$ apt-get (re?)install python3
$ pip3 install setuptools
236 1184726
>>184682
На фласке все ручками нужно будет делать, на джанге есть готовый движок.
Хочешь - пробуй, вникай, и на том и на том.
Мне больше нечего добавить, это уже разговор ниочем.
237 1184787
>>184726
бля,я вот перед выбором -джанго или пхп фреймворки
238 1184809
>>184787
Забавно
239 1184816
Анон, что такое [0]? Какую функцию выполняет этот элемент? К примеру:

>>> import pymorphy2


>>> morph = pymorphy2.MorphAnalyzer()


>>> p = morph.parse('стали')[0]


>>> p.tag


OpencorporaTag('VERB,perf,intr plur,past,indc')
240 1184821
>>184703
Спасибо огромное. Преодолел еще пару ошибок -- и все заработало
241 1184827
>>184816
type() и print()
sage 242 1184832
БЫСТРООПРОС
Какая книга вам больше всего помогла(понравилась) при изучении питона?
243 1184834
>>184816
Ты trall что-ли? Прямо на сайте либы всё расписано.

>Метод MorphAnalyzer.parse() возвращает один или несколько объектов типа Parse с информацией о том, как слово может быть разобрано. В приведенном примере слово “стали” может быть разобрано и как глагол (“они стали лучше справляться”), и как существительное (“кислородно-конверторный способ получения стали”). На основе одной лишь информации о том, как слово пишется, понять, какой разбор правильный, нельзя, поэтому анализатор может возвращать несколько вариантов разбора.


>Тег - это набор граммем, характеризующих данное слово. Например, тег 'VERB,perf,intr plur,past,indc' означает, что слово - глагол (VERB) совершенного вида (perf), непереходный (intr), множественного числа (plur), прошедшего времени (past), изъявительного наклонения (indc).

244 1184835
>>184832
Гугл, электронный вариант.
245 1184845
>>184834
В данном контексте, что выполняет [0] в коде.
Это же не массив
246 1184846
>>184832
Р. Лафоре+Саммерфилд+укус питона
247 1184847
>>184845

>Это же не массив


>>>type(morph.parse('стали'))


><class 'list'>


Не массив, да, но список.
248 1184848
>>184845
Ну случай если ты совсем нихуя не знаешь (а уже в pymorphy какой-то полез), то

>p = morph.parse('стали')[0]


делает то же самое, что и

>x = morph.parse('стали')


>p = x[0]

249 1184880
Лутц сложно идёт... есть что интереснее и эффективнее?
250 1184884
>>184508
Вполне рационально, что не так? Хороший выдержанный фреймворк, прошедший испытание временем. Про мелкоподелия не слушай, то что он называется микрофреймворк ещё не значит что его можно использовать только для микросайтов. Микро он потому что в нём нет к примеру встроенной ORM, и простейший работающий проект это один файл и пять строк кода.
251 1184886
>>184832
docs.python.org
Я не шучу. Правда я уже знал другие языки к тому моменту.
Понипостер 252 1184934
Есть kivy, есть приложение с кнопочками и другими вафлями, но изображение никак открыть не могу, действуя своими догадками или примерами из чужих исходников. Много где ссылаются на kv, но это необязательно.
Вот доки на этот виджет, но сам уже ничего не понимаю. https://kivy.org/docs/api-kivy.uix.image.html
253 1184948
>>184639
Но как? Подскажите, пожалуйста.
Понипостер 254 1184950
>>184948
Зачем?
Домашнее задание? Тогда нужно читать всякое разное и думать самому.
Читаешь в цикле каждую строку и сравниваешь с тем что нужно. Читай доки работы с файлами.
255 1184952
>>184884

> встроенной ORM


придеться на чистом пистоне писать?
256 1184953
>>184948
Дам пару подсказок:
1. Нельзя просто заменить что-то в середине текстового файла. Нужно его весь прочитать, а потом весь записать на диск.
2. "Удаления" подстроки можно добиться заменой её на пустую строку (т.е. "")
Функции замены подстрок легко нагуглишь.
257 1184956
>>184950
>>184953
Спасибо за наводку, я посмотрю, что можно сделать.
Просто я где-то читал, что нельзя заменить строку, не заменив ее тем же количеством символов. Это и отпугнуло.
Мне приходилось вручную вставлять в скрипт все строки файла для полной перезаписи. Что-то уровня:
with open(file.config, 'w') as doc:
doc.write('Я\n'
'ебу\n'
'собак.')
258 1184958
тут есть кто бросил пхп после долгого использования?
259 1184959
>>184956

>Просто я где-то читал, что нельзя заменить строку, не заменив ее тем же количеством символов.


Так и есть. Именно поэтому я и сказал, что ты перезаписываешь весь файл. Ты ведь не можешь замазать слово из двух букв в тетрадке и вписать туда "трактор", верно? Тот же принцип и в памяти на диске. Есть много нюансов, плюс файлы на диске не одним цельным куском часто идут и т.д., так что я про самый простой случай.
При замене подстрок в питоне, в принципе, происходит то же самое: он берёт твою изначальную строку и создаёт новую, заменив какое-то слово на другое. Фактически, ты не заменяешь слово, а создаёшь строку из "слова до заменяемого" + "новое слово" + "слова после заменяемого".
260 1184966
>>184959
Спасибо за разъяснение. Получается, работа у меня идет не с содержимым файла, а с временной его копией, которая потом перезаписывается в этот файл.
261 1184967
>>184934
Ну и зачем ссылку на доки дал?
1. Неси свой код, ибо в нем проблема и только в нем.
2. Юзай kv, это гораздо лучше чем километры питоновского кода и потом поддерживать/дополнять проще. Представь себе веб приложение, где ядро - питон, а KV - хтмл.
262 1184969
>>184958
Знакомый бросил, 27 лвл, но так дурачком и остался с ПХП вместо мозга, сейчас по модным языкам скачет и не может выбрать ничего
263 1184972
>>184958
Есть.
264 1184973
>>184952
Алхимию/пони/пиви/чтоугодно бери на выбор. Что значит чистый питон?
265 1184976
>>184972
почему перешел?
2018-05-06May0558-3840x1080.png21 Кб, 815x641
266 1184977
>>184967
Хм.. Сейчас попробовал без всего и сработало, хотя раньше что-то не так было, требовал аргументы.
Хочу вставить в проект просмотр картинок или отображение их на одном из layout'ов или всплывающее окно, то есть:
def image(self, instance):
убирает оба textinput'а, а на место их лепит картинку
deg build(self):
bt = Button(text='Image', on_press=image)

Стыдно, что не могу нормально объяснить, но могу куски своего кода прислать. Хотя надеюсь, и так будет понятно.

И ещё, после этого хотел заняться размещением этих картинок в кеше. Сейчас уже есть функция, которая скачивает, сохраняет в отдельной директории и показывает с помощью PIL.Image.show, но это слишком корявый костыль и работает не совсем так, как надо.
267 1184978
на какой сервер прикрутить джангу?
268 1184979
>>184978

>FAQ


>http://pythonanywhere.com/ - бесплатный и простой хостинг для джанги, например.

269 1184980
>>184979
а если без этого?
270 1184982
>>184976
Захотел. Совершенно не жалею.
271 1184993
>>184982
джангу юзаешь?
272 1184994
>>184979
я про апач и энжин икс
273 1185001
>>184993
Всё юзаю, джангу в том числе.
274 1185060
>>184880
И до чего ты дочитал у Лутца?
Из того что я знаю - у него наиболее разжевано всё.
275 1185087
>>185060
но подача мне не понравилась,да и воды дохуя льет
276 1185098
>>185087
У Лутца две книги. Learnign и Programming in Python 3. Вот вторая после книги с таким же названием, но Саммерфильда, нормально зашла.
277 1185156
>>185098
читал и ее,но только после укуса,иначе новичку тяжелее зайдет
278 1185193
>>185156
Ну тут дело такое, мне вот она в начале лучше зашла, а потом укусом питона шлифонул и всё.
279 1185211
Правильно-ли я понимаю, что между эти двумя объявлениями разница только в читаемости кода?
a = []
a = list()
Что по этому поводу говорит PEP8?
281 1185437
>>185420
А ты хорош, анон. Спасибо.
282 1185488
>>184564
list=[]
a=97
for i in range(26):
____list.append(chr(a))
____list.append(chr(a).upper)
____a+=1
283 1185517
>>184089

>но новый проект и вопросы на собеседование по нему в 2018 это слишком



А разве началось с вопросов на собеседования? Анон вроде интересовался, есть ли смысл его постигать, а постигать-то там и нехуй вообще: одна особенность насчет классов, определенных в жаве, как вызывать жава-код и как вызывать житоновский код из жавы. Это буквально один-два вечера, остальное - 100% питон, вплоть до побажного копирования стандартной библиотеки.

Новый проект - ну тут дело не в житоне совсем. Во всех проектах на статике наступает момент, когда четко вырисовывается часть проекта, где нужна гибкость и производительность (человеческая) динамики. В С\С++ это традиционно lua, в жаве житон очень хороший выбор. Бывает еще так, что проект на питоне упирается в производительность, когда уже горизонтально масштабироваться вроде некуда и пора думать, как выжимать больше попугаев из каждого инстанса. Переход на жвм очень хороший вариант.
284 1185518
>>184313

Блять, я понимаю, ты хотел помочь. Но все же не надо так.
285 1185519
>>184194

Ты вообще с питоном насколько хорошо знаком? Складывается впечатление, что тебе стоит получше освоить сам язык и основы предметки, а то у тебя даже понимание направления очень смутное. Твои пикрелейтеды: сетевая байтоебля, шаблоноебля уровня приложений, запросоебля и ее маршрутизация. Это все очень разные аспекты и каждый из них по отдельности достоин карьеры на всю жизнь. Может ты сначала поточнее определишься, что тебе надо?
286 1185520
>>184312
Просто тебе надо было читать документацию по tcl. В питоне просто привязки, считается, что ты уже знаешь tcl\tkinter.
287 1185521
>>184542

>После прочтения Bite of Python, мои навыки можно оценивать будет как "Базовые знания Python"?



Базовые - нет. Для базовых навыков надо пару лет практического использования.
288 1185523
>>184578

itertools.chain.from_iterable(zip(strings.ascii_lowercase, strings.ascii_uppercase))

забавно у нас flatMap называется
289 1185524
>>185523

>забавно у нас flatMap называется


У нас предводитель забавный. В какой-то момент работал unpacking в компрехеншнах, но выпилили, гады. Было б вообще красивенько:

>[*pair for pair in zip(ascii_uppercase, ascii_lowercase)].

290 1185525
>>185518
До сих пор не въезжаешь? Почитай что-нибудь базовое про операционные системы. Процессы, треды, сокеты, пайпы, сигналы, вот это всё.
291 1185527
>>185525

Тебе >>184313 по словам разобрать, или сам догадаешься, что wsgi - не твое, лол? Если пытаешься помочь, то хотя бы достоверные сведения сообщай.
292 1185529
>>185524

>работал unpacking в компрехеншнах



Всегда было интересно понять мотивацию по выпиливанию
293 1185554
>>185527
Разбери, очень интересно.
294 1185555
>>185529
Неопределённость к чему относится звёздочка же. К pair или ко всему for.
295 1185559
>>185555
Ящитаю, надо было просто отность к pair, а если хочется ко всему for — надо в скобки брать. Ну вот как генератор обязывают в скобки, если он не единственный аргумент

>(x for x in x, y)


>((x for x in x), y)


Могли бы и тут костылик вставить.
296 1185564
Каким хером можно удалить все вхождения символа в строке, но не трогать последний?
Самое элементарное - реплейсом снести и просто дописать в конец.
Тупой (w. Пахом, Галида).webm11,9 Мб, webm,
560x420, 4:52
297 1185567
Блять, как определить атрибут класса, который бы обращался к атрибут родительского класса?
Вот есть родительский класс:
class A:
....list_attr = ['b']
И я хочу унаследовать от него примерно так (но этот код не работает):
class B(A):
....list_attr = ['b'] + super().list_attr

Можно конечно например @property использовать:
....@property
....def list_attr(self):
........return ['b'] + super().list_attr
Но тогда list_attr будет доступен только у инстансов класса B, а не у самого класса.
298 1185576
>>185567
Давно не писал на змее, но вроде чтобы дочернему классу обратиться к родительскому ему нужен super(), а без создания экземпляра это никак не сделать.
299 1185582
>>185564
re.sub(r'a', 'b', "aaaaa", "aaaaa".count("a")-1)

>>185567
A.list_attr?
Можешь попробовать как-то накостылять через классовые методы и устанавливать значение в __init__ или __new__, но это фигня какая-то, лучше задачу свою опиши и найди другое решение.
Насколько я понимаю, на момент обработки питоном строки list_attr в классе B динамически ты никак к A обратиться не сможешь, потому что B ещё не является его сабклассом даже, потому как даже не существует (легко проверить: https://repl.it/repls/IndigoVioletZettabyte ). Ну а раз нет никакого рефернса к B, то и к его родителю, разумеется, можно только напрямую по имени класса.
300 1185583
>>185564

>>> last_index = text.rfind('d')


>>> print(''.join(['a' if char == 'd' and count !=last_index else char for count, char in enumerate(text)]))

301 1185586
>>185582
>>185583
Спасибо, попробуем.
302 1185638
Подскажите как работает допустим в фб функция когда ты на телефоне смотришь коменты и они автоматически обновляются?
Это через фаербейс нужно на телефон слать нотификации на каждый добавленный комент, или как ?
303 1185647
>>185638
скрипт по таймеру запрашиваетgj http новую информацию и рассовывает её на место на странице
304 1185650
>>185647
то есть клиенты шлют запросы на сервер раз в какое-то время?
Но на фейсбуке же например видно, если кто-то печатает, как это реализовывается?
305 1185652
>>185650
В Ruby on Rails это называется websockets, возможно, в других фреймворках так же.
306 1185653
>>185650
вебсокеты, скорее всего.

Можешь ещё про это почитать — https://en.wikipedia.org/wiki/Comet_(programming)
307 1185662
>>185652
>>185653
Спасибо, погуглю что это
308 1185664
>>185650
это называется long-pooling http requests. С приходом стандарта http 2.0 это стало возможным. Клиент устанавливает http соединение с сервером и сидит ждёт, как только кто-то начинает тайпать, сервер отдаёт клиенту ответ, что кто-то тайпает. КОнект обрывается. Клиент опять устанавливает соединение с сервером и сидит ждёт.
309 1185666
>>185519
Знаком по двум книгам, вот и спрашиваю, что читать следующим.

>сетевая байтоебля


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

>и каждый из них по отдельности достоин карьеры на всю жизнь


Это же все части веба, которые надо знать, чтобы вкатиться, не?
310 1185669
>>185666

>А мне говорили байтики передвигать туда-сюда - это Си.


ты путаешь байтики и битики. В особо запущенных случаях на питоне люди считают байты и складывают их в куски а потом сериализуют, правда я не знаю кто в 18-ом году этим еще занимается когда вокруг сплошное веб макакство.
Сурья-Ишитва.webm12,9 Мб, webm,
560x420, 6:30
311 1185671
>>185582

>A.list_attr?


Угу, так и сделал.
Не придумав никаких кейсов где могло бы понадобиться обращение к базовому классу через super().list_attr, когда можно тупо написать имя этого класса.
312 1185728
>>185671
Кейс в данном случае в принципе может быть только один: ты переименовываешь класс A, но не хочешь вручную потом менять все отсылки на него в дочернем. (Ну или меняешь класс, от которого наследуется B, что, в принципе, почти то же самое.)
1491342402.jpg39 Кб, 461x542
313 1185864
>>185669

> сериализация байтов

314 1185869
Привет, анон. Хочу написать простой скрапер для сайта, у которого нет API. Когда пытаюсь запросить страничку, выдает 503, при этом сайт работает. Можно ли как-то это обойти?
315 1185871
>>185869
Почитал ещё немного, зря сразу сюда написал. Сейчас попробую использовать юзер-агент.
316 1185874
Укус Питона - Думать на Языке Питон - Программируем на Питоне

Как соскочить на конкретную практику, а не только теорию и решение тривиальных задач по учебнику?
317 1185875
>>185874
Придумай себе задачу.
319 1185966
Да что ж за говно то, а. Я вроде не глупый человек, но вообще не могу понять ЧЯДНТ. Так зафейлить на ПЕРВОМ блджад шаге в программирование - это нечто.
В общем, я в тупике, выручайте. Неважно что я пишу - пишарм возвращает постоянно один и тот же результат с самой первой попробованной мною строчкой, даже если я её вообще удаляю! ВТФ, где логика, что происходит? Это я что-то упускаю, или просто глюк и пришло время переустанавливать шиндошс?
320 1185968
>>185966
Ну вон же он тебе пишет что запускает: config/scratches/scratch.py
Хули вы вообще лезете в этот пайчарм? Берите блокнот, cmd и по-честному делайте как вам рассказывают во всяких длинных интродакшенах. Это блеать как взять станок с циркулярной пилой чтобы отрезать себе хлебушка.
321 1185969
>>185968
Вот дерьмо, спасибо! Понятия не имею почему он именно его запускал когда у меня единственный проект открыт был.

>Хули вы вообще лезете в этот пайчарм


Ну как же, советуют профессионалы ведь! Сразу осваиваться в профессиональной среде смолоду.
322 1185974
>>185060
я до классов дошёл, это пиздец если честно
Я прочитал все но нихуя не понял, говорить про классы и никаких классов не показывать бред сука
Подскажите как можно выучить путина не по лулзу, пожалуйста
323 1185975
>>185488
Это не генератор вроде как, я имелл ввиду вот эта -
alphabet, uphabet = [chr(x) for x in range(97,122+1)], [chr(x) for x in range(65, 90)]
print([letter for pair in zip(alphabet, uphabet) for letter in pair])
NyashavmashineRoskomnadzora.gif182 Кб, 640x360
324 1185981
Ищу крепких мидлов, синьоров, воннаби лидов, себе на замену. Конторка хорошая, люди приветливые, адекватные, зп среднерыночная, удалёночка либо офис мск. Придётся поработать, со свободным графиком туговато, но есть шанс проявить себя и построить процессы в компании касающиеся питонов (систему грейдов да-да, пересмотр зарплат абсолютно прозрачен, стандарты кода, etc). Отличная возможность выточить из себя лида/уверенного синиора. Говнокода ещё не нажили, заказчик известная в айти сфере компания, пилим им микросервисы. Писечка absolutely.anonymod$BusANUSyana]JdexPUNCTUMrE(tu
325 1185983
Насколько Лутц актуален? Если не актуален, подкиньте альтернативу.
326 1185985
>>182192
Для всего этого в emacs есть команда.
327 1186001
Какую лицензию посоветуете для моего инновационного скриптеца? Что если совсем без лицензии?
328 1186002
>>186001
Что скрипт умеет хоть?
329 1186005
>>186002
1 монитоинг памяти, особенно инновационные параметры zram
2 функционал earlyoom, c инновационной фичей: реакцией на реальную долю zram в оперативе
Снимок экрана в 2018-05-08 14-19-43.png88 Кб, 1366x768
330 1186006
>>186002
сырой вид пока
Снимок экрана в 2018-05-08 14-29-15.png149 Кб, 1366x768
331 1186010
>>186002
ах да, еще он умеет жрать память с регулируемыми скорость, объемом, энтропией для иссследования реакции линукса на дефицит памяти
332 1186012
>>186005
>>186006
>>186010
Так для кого это сделано было?
333 1186013
>>186012
Сам пользуюсь и тебе советую. Что тут непонятного?
334 1186015
>>186012
Swap в zRam: тонкости работы

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

Я разрабатываю memdler, обработчик нехватки памяти. Это набор скриптов на Python 3, включающий в себя:
- oom-trigger, скрипт для уменьшения количества доступной памяти, для изучения поведения системы в условиях OOM.
- monitor, прога для мониторинга размеров доступной памяти, особенно параметров zram.
Уникальна тем, что мониторит реальную степень сжатия, выдает реальный профит и реальную долю зрам в памяти.
- killer, аналог программы earlyoom. Отличие киллера в том, что сначала killer пытается корректо завершить процесс с высшим oom_score с помощью SIGTERM, и только при безуспешности последнего посылает SIGKILL. Также отличие киллера в том, что он реагирует на реальную долю zram в памяти.
- zram, скпипт монтирования свопов.
- clener, очиститель tmpfs от крупных файлов.

Киллер-фича мемдлера, на мой взгляд - это возможности работы со zram.
Только мемдлер мониторит реальную долю зрам, и только мемдлер реагирует на критическое увеличение этой доли.

Скорее всего вам не нужен мемдлер, если вам не нужен zram.

В чем, собственно, проблема? Зачем мне зрам и мемдлер?
Проблемы две:
1. памяти много не бывает, и zram - отличное решение для храниения свопа в сжатом виде, щажения диска.
Плюсы зрам: сжатие tmpfs (zswap этого не делает), полное отсутствие напряга диска для хранения свопа.

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

2. Поведение системы при критическом снижении доступной памяти и невозможности выделить память для приложений. Может запуститься OOM killer, но это происходит не всегда. Запросто может произойти так, что система просто зависнет на много минут. В отсутствие zram с этим легко справляется earlyoom - демон на Си, превентивно убивающй процесс с наибольшим oom_score. Но при использовании zram всплывает одна проблема - данные, хранимые в zram, могут иметь разную энтропию, и при наполнении zram данными с высокой энтропией возможна ситуация, когда устройство zram заполняет критическую долю памяти (до 94% MemTotal). Earlyoom же реагирует только на значения MemAvailable и SwapFree, и не реагирует на долю зрам в памяти, что может привести к зависаниям и запуску ядерного OOM killer. Memdler способен решить эти проблемы и может реагировать также (помимо MemAvailable и SwapFree) на долю зрам в памяти.
334 1186015
>>186012
Swap в zRam: тонкости работы

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

Я разрабатываю memdler, обработчик нехватки памяти. Это набор скриптов на Python 3, включающий в себя:
- oom-trigger, скрипт для уменьшения количества доступной памяти, для изучения поведения системы в условиях OOM.
- monitor, прога для мониторинга размеров доступной памяти, особенно параметров zram.
Уникальна тем, что мониторит реальную степень сжатия, выдает реальный профит и реальную долю зрам в памяти.
- killer, аналог программы earlyoom. Отличие киллера в том, что сначала killer пытается корректо завершить процесс с высшим oom_score с помощью SIGTERM, и только при безуспешности последнего посылает SIGKILL. Также отличие киллера в том, что он реагирует на реальную долю zram в памяти.
- zram, скпипт монтирования свопов.
- clener, очиститель tmpfs от крупных файлов.

Киллер-фича мемдлера, на мой взгляд - это возможности работы со zram.
Только мемдлер мониторит реальную долю зрам, и только мемдлер реагирует на критическое увеличение этой доли.

Скорее всего вам не нужен мемдлер, если вам не нужен zram.

В чем, собственно, проблема? Зачем мне зрам и мемдлер?
Проблемы две:
1. памяти много не бывает, и zram - отличное решение для храниения свопа в сжатом виде, щажения диска.
Плюсы зрам: сжатие tmpfs (zswap этого не делает), полное отсутствие напряга диска для хранения свопа.

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

2. Поведение системы при критическом снижении доступной памяти и невозможности выделить память для приложений. Может запуститься OOM killer, но это происходит не всегда. Запросто может произойти так, что система просто зависнет на много минут. В отсутствие zram с этим легко справляется earlyoom - демон на Си, превентивно убивающй процесс с наибольшим oom_score. Но при использовании zram всплывает одна проблема - данные, хранимые в zram, могут иметь разную энтропию, и при наполнении zram данными с высокой энтропией возможна ситуация, когда устройство zram заполняет критическую долю памяти (до 94% MemTotal). Earlyoom же реагирует только на значения MemAvailable и SwapFree, и не реагирует на долю зрам в памяти, что может привести к зависаниям и запуску ядерного OOM killer. Memdler способен решить эти проблемы и может реагировать также (помимо MemAvailable и SwapFree) на долю зрам в памяти.
335 1186016
>>186001
Ты можешь выпустить его без лицензии и всё будет окей ровно до момента принятия первого пулреквеста. А так попсовый выбор это MIT либо (L)GPL. Но есть ещё сотня всяких особенно изъёбистых лицензий наподобие Apache, которые по сути те же MIT/GPL только с какими-то дополнительными, более правильными™ условиями. Лично я везде MIT леплю где это возможно.
336 1186018
>>186016
Спасибо.
337 1186032
>>185968

>Хули вы вообще лезете в этот пайчарм? Берите блокнот, cmd


Хули вы вообще лезите во все эти ножи? Берите камень поострее и режьте им хлеб.

>>185974
Может тебе пока рано ещё. Я так в 8 классе решил в С++ вкатиться после прочтения 1 книги по Паскалю лол., и на объяснении классов выкатился нахуй.
338 1186039
>>186032

>Берите камень поострее и режьте им хлеб.


Таки да. Чтобы потом не задавать вопросов почему палец отрезало.
339 1186064
Как полностью очистить RAM от следов твоего скрипта? Манипуляции с gc не помогали.
340 1186073
Господа, читаю Луца "Изучаем Пайтон 4-е издание".
Сейчас остановился на второй части 120 страниц из 1200, ебануться. Пока читал первую, который я во многом знал с ютубчика, все ок было, начали читать вторую часть. Сука, я не могу, какая-то вода вперемешку с какими-то профессиональными жаргонизмами. Он точно норм? Такое ощущение, что тип тупо ради бабок это говно написал, типа "Глядите чего накатал! Покупайте.". Помоги анон, может я конченный. Я типа двигаюсь, но пиздец медленно. Прокрастинация заебала
341 1186082
>>186073
перекатывайся в официальный доки Питона. Тот же вводный туториал. Луц не для тебя. Что ты их него вообще хочешь узнать? Нахуй вы его читаете воще?
342 1186083
>>186082
В шапке ньюфаг треда в помощи по питону его советуют. Так доки на ингрише, я на ингрише не осилю. Может сначала "Укус питона" навернуть?
343 1186084
>>186082
Да все, хочу Пайтон обуздать и зарабатывать.
344 1186085
>>186083

>я на ингрише не осилю


Это не правильный подход. Придется осилить.
345 1186086
>>186084
Бля вот серъёзно; половиной что есть в книге ты пользоваться не будешь. У питона переизбыток всякой полезной хуйни. Как правило знанием 10 процентов любого современного языка ты уже сможешь работать джуном. Главное хватка. Потом по пути сам решишь в какую сторону надо копать. И копать надо по официальным докам. Я бы на твоём месте лучше сосредоточился для на чала на операционно системе и учился уже на практических задачах.
346 1186094
>>186086

>операционно системе


О какой операционной системе, поясни пожалуйста.
За совет спасибо, воодушевил. Прям человеческое тебе, братишка.
Я плох в ингрише, думаю мере изучения программирования сам мне поддастся.
348 1186100
>>186094
Я тебе советую поставить Убунту очень приятная хуебень и начать разбираться в файловой системе, директориях, как работают интрпретаторы, возможно капнуть немного C. Вот для этого книга на русском может помочь. А книги и туториалы по програмированию надо читать только на инглише.
349 1186104
>>186064
Ребутнуться?
350 1186107
>>186100
Я уже на Линуксе, тут вроде все понятно.
351 1186113
>>186100

>А книги и туториалы по програмированию надо читать только на инглише.


лол, напомнило элитистов из фотача: "Кто смнимает не на лейку, или как минимум на фуллфрейм - все холопы и говно!", или даже бояр из анимеча: "кто смотрит не в оригинальной озвучке - чернь и гниль! И сабы отключите тоже, или не труЪ!" Вот так же и ты тут прямо сейчас.
Если поставленной цели проще достичь читая литературу на родном языке и в привычной ОС - нет необходимости изъёбываться и ломать себя полностью. Конечно, то, что в 2018 не знать английского - это себя не уважать, это не отменяет, но для конкретной цели: научиться кодить на пытоне это не является условием. Как и линупсы.
352 1186116
>>186113
Не, с линуксом рили дельный совет, здесь намного проще и удобнее + понятнее о чем пишут + пригодится 100%. Энивэй я перекатился заранее. Он же не говорит отказаться от старой оси.
353 1186124
>>186104
В том то и дело, что до ребута.
354 1186139
Есть модуль для создания виртуальных дисков? Прям как в virtualbox, что бы отдельный контейнер с файлами.
355 1186165
А можно в джанге орм писать какое-то подобие IF.
Ситуация такая, есть поле гендер у модели пост, значение у него условно для всех, для мужчин и для женщин ('all', 'male', 'female')
Есть текущий юзер с полом, нужно написать такой filter чтобы в случае с 'all' все пользователи могли видеть, но в случае если там 'male' 'female' только пользователи определенного пола

Циклом for долго перебирать
356 1186182
>>186165
можно выучить sql нормально и использовать алхимию или peewee
357 1186183
>>186182

> в джанге

358 1186188
>>186165
Q-object
359 1186261
Питоняши, как понять какую зарплату я могу уверенно просить в нормальной конторе, которую не проведешь? Описания резюме на хх не несут много информации. А у меня микроскопический опыт собеседований, и я живу в маленьком городе.

Допустим, у меня есть продакшн опыт с джангой, пет-проекты на рест-фреймворке. Знаю модный фичи пистона - декораторы-йелды, функтулсы, коллекшнс. Пишу тесты с mock. ABC не знаю, руки не дошли. Могу написать какой-нибудь микро-проект типа телеграм-бот+постгрес+рестфреймворк и все в докерах. Селери-реббит знаю на уровне хелловордолв.

За сколько бы вы взяли такого кодера? (допустим, в СПБ)

Допустим, я еще научюсь писать тесты с фиктсурами для постгреса на pytest и освою сам pytest (до этого писал всегда на unittest) - это в ближайших планах. Сколько тогда я буду столить?
360 1186291
>>186261
1000-1500$ в зависимости от уровня конторы.
361 1186297
>>186139
KVM + API
362 1186312
ВКАТИЛСЯ В ДЖАНГУ
@
ВЫКАТЫВАЮСЬ СПУСТЯ 5 ДНЕЙ ОФИГЕВАЯ
363 1186333
>>186261
Не слушай эту зелень >>186291

То что ты перечислил интепесно, а как у тебя со знанием стандарта языка? Pep-8, который. Что с алгоритмизацией? Как с фронт-эндом дела? Знание библиотек плюс, но маленький.

Имел опыт работы уже? Плюсом будет, если проходил стажировки+участие в митапах. Огромным плбсом будет работа в команде и работа над аналогичными проектами по профилю конторы, куда придешь устраиваться.

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

Ищ твоего багажа не совсем понятно, что ты за кодер откровенно говоря. Имхо, даже на минимум не тянешь.
364 1186335
>>186312
Зря-зря
365 1186337
>>186335
перегруженная система
366 1186344
>>186337
Поверь, лучше тебе её всё-таки освоить. Per aspera ad astra.
367 1186347
>>186344
буду дрочить лаварел
недоумение.png187 Кб, 451x392
368 1186349
Хочу сделать парсер пикч из вк, но не знаю как. Получается только с сохранением их на хард и последующим открытием файла и загрузки его на сервер вк. Хочу миновать это. Есть идеи, анонче?
369 1186361
>>186333
Что-то ты мне сам зелененьким кажешься, братишка.

>Pep-8


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

>Как с фронт-эндом дела


Зачем он нужен бекендщику если в 2к18 у нас буквально десятки вариантов фронтенд-стеков? И вероятность того, что 2 наугад взятые питониста знают одинаковый фронтенд равна нулю? Я даже не гворю о том, что во-первых Rest API, во вторых экономически эффективнее иметь отдельную команду dedicated фронтендеров.

>на работу можешь не рассчитывать


Ты не поверишь, я нашел работу в бекенде прислав в резюме лабы по алгоритмам из универа.
370 1186377
>>186349
Добавь деталей. Ты хочешь получить все пикчи и сразу же отправлять себе в лс или как?
371 1186382
>>186377
Нет, по одной.
372 1186399
>>186349
Кстати, анон, можешь мне объяснить чому пик 1 работает, а пик 2 - нет?
374 1186405
джанго умеет в вебсокеты?
375 1186409
>>186404
задам тупой вопрос-он проще или круче чем то?
376 1186410
>>186405
Копай в сторону Django Channels
377 1186411
>>186361

> Я не представляю себе человека, которому нужно знать пеп8 в 2к18, когда есть линтеры и автоформатеры. Впоть до того, что дженкинс может пулреквест нахуй послать.



Спрашивают до сих пор.

> >Как с фронт-эндом дела


> Зачем он нужен бекендщику если в 2к18 у нас буквально десятки вариантов фронтенд-стеков? И вероятность того, что 2 наугад взятые питониста знают одинаковый фронтенд равна нулю? Я даже не гворю о том, что во-первых Rest API, во вторых экономически эффективнее иметь отдельную команду dedicated фронтендеров.



Пистон кодер чистый бекэнд? ))

> >на работу можешь не рассчитывать


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



тот спрашивал со своим веб-макак стартер пак как ему вкатится, по себе не суди остальных
378 1186415
>>186409
Ты конечно же имел ввиде laravel. Этот фреймворк на рнр, если что. Ты пишешь в пистон треде. Это как будучи водителем теслы спрашивать у чухана на запорожце про преимущества его дьявольской повозки на теслой.
379 1186423
>>186415
вы считаете что у вас тесла?
380 1186428
Раз уж речь про зарплаты зашла, за сколько бы вы меня взяли
Стаж - 1 год
Знаю пистон, django, flask, aiohttp, postgresql, redis, rabbitmq, docker, ansible и немного chef и nginx
Со всем этим непосредственно работал, в конторе каждый немного девопс был ибо настраивать и деплоить сервер некому, кроме как самим программистам. JS пока в процессе изучения, фронтовику требовались только экшены, а она уже сама ними ангуляром игралась, так что с фронтом пока особо не работал.
381 1186432
>>186423
Битая, крашеная, с пробегом по России.
382 1186435
>>186428
Обычный джун.
383 1186436
>>186435
А какие навыки добавить нужно, что бы уже-не-джун?
384 1186438
>>186436
Турбо Паскаль.
385 1186439
>>186435
Хотя бы Strong Junior?
А что сюда нужно прибавить чтобы был мидлом?
386 1186440
>>186439

>Strong Junior


Деревянный джун
Бронзовый джун
Серебренный джун
Золотой джун
Платиновый джун
Алмазный джун
387 1186441
Нормально ли так делать? Внутри каждой функции, или методе создавать сессию sqlalchemy, делать запросы, иногда коммитить через try/except?
388 1186443
>>186440
Легендарный Золотой Огненный Джун Высокого качества +5
389 1186450
390 1186454
>>186399
Какие ошибки выдает? С чего ты взял, работает или нет?
391 1186457
>>186436
Опыт. Работа в команде. По маленьку вкатываться в архитектуру. Помогать джунам. Руководство оценит и станишь миддлом.
392 1186458
>>186439
Нет такого определения. Джун он и в африке джун. Следующая стадия вот >>186457
393 1186460
>>186458

>Работа в команде. По маленьку вкатываться в архитектуру. Помогать джунам


Последний месяц этим занимаюсь
>>186428-анон
394 1186475
>>186382
Юзай VK API, получай ссылку/etc на фотку и через апи посылаешь себе сообщение в лс, не?
395 1186480
>>186460
Красава, если в компании народ часто двигается, то мидл не за горами.
396 1186481
Полу-Оффтоп:
В Ren`py ООП можно юзать?
397 1186482
>>186480
Это я скорее раньше подвинусь, лол
Сейчас в миллионнике-мухосранске сижу, зп 30к, через пол года в дс'ы собираюсь
398 1186484
>>186454

>Какие ошибки выдает?


Сервер вк не видит загружаемую пикчу.

>С чего ты взял, работает или нет?


вк или видит пикчу или не видит.
399 1186521
>>186482
Открою тайну, но в ДС з/п будет не на много больше. Это все пидеж про 300кк/нс, если ты еще не понял. Даже в ДС джун получает 35-40.
400 1186542
>>186481
Нет конечно. Ренпай для петухов же, для девочек ебаных и гей-шлюх, какое ООП ещё.
1.jpg12 Кб, 222x78
401 1186544
Почему если я вызываю класс с виджетом из другого класса с виджетом - приложение падает? Как организовать переключение двух окон с передачей некоторых данных в одну сторону и с удалением их при переходе обратно?
402 1186628

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


https://pythonworld.ru/osnovy/pep-8-rukovodstvo-po-napisaniyu-koda-na-python.html

Я нихуя не понял, на каком языке комментировать, если мой en level A2, а код читать потенциально люди из разных стран?
403 1186650
>>186628
Если твой код потенциально будет читать хоть один нерусский, то пишешь на английском. А так как хочешь пиши. И вообще всем до пизды, от проекта зависит язык комментариев. Там уже в гайдлайнах устанавливают.
404 1186664
>>186521
Ну не сказал бы, открыл hh, там питонисты от 1 года получают в среднем от 70к, это как минимум в два раза выше, чем сейчас + переезд из моего скучного задымленного мухосранска в нормальный город
405 1186682
>>186664
Эта провинциальная наивность)) мальчик, тебе со старта никто не даст таких денег в ДС. ХХ сайт наёбка. Даже если и пригласят на вью нет, не принласят, инфа 100, реально озвученной з/п ты будешь весьма не рад. Поверь мне коренному жителю ДС. Рынок порешал, вкатывальщиков много - работы мало, демпингуют все.
406 1186694
>>186650

>2к18


>Не быть удаленкобогом


https://hh.ru/vacancy/25730626?query=Python
407 1186713
>>186297
Какой то пиздец. Разве нельзя сделать закрытое файловое хранилище? Мол, что бы оно маунтилось как диск.
песя.png276 Кб, 591x420
408 1186725
>>186349
Блять, ребята, ну помогите, ну ебаные ваши рты! Работа стоит блять, ничего не могу сделать.
409 1186735
в Б сказали,что пистон говно,которое нинужно
410 1186738
>>186735
и почему же они так сказали?
411 1186742
>>186738
Вангую такие аргументы
1) Скорость - хотя часть библиотек написана на с\с++, да и в вебе бутылочное горлышко далеко не скорость языка
2) Простота изучения - бомбаж яп-нердов, который дрочили плюсы всю жизнь и не могут принять, что можно просто начать взять и кодить. Хотя для более глубокого понимания того, как работает язык и написания библиотек нужно знать сишку, если доживаешь до уровня гуру, то непременно приходишь к этому
Обычно такие причины ненависти именно к пистону, тут я не беру то, что он интрепретируемый и прочие вечные срачи
412 1186744
>>186713
Ну это альтернатива виртуалбокса по линуксами и у нее есть апи.
Распиши подробней для чего тебе это и как будешь юзать, может подскажем что.
413 1186748
>>186725

> парсер ИЗ вк


> сохранение на диск и загрузка НА сервер вк


Ты уверен?
В чем проблема?
414 1186756
>>186748
В том, что я не могу миновать этап сохранения на диск. Хочу что бы из временной памяти сразу загружалось обратно на сервер.
415 1186760
>>186756
Если сервер твой - просто создай рамдиск и иди нахуй.
Если не твой - то сразу второй пункт.
416 1186761
>>186760

>твой


ВК.
417 1186768
>>186761
А, так ты умственно отсталый.
Сервер где будет исполнятся парсер, идиотик.
418 1186790
>>186738
потому что маня язык
419 1186792
>>186542

>Ренпай для петухов же, для девочек ебаных и гей-шлюх, какое ООП ещё.


Но ведь ООП тоже для петухов, девочек ебаных и гей-шлюх. Выходит что можно.
420 1186795
>>186411

>Пистон кодер чистый бекэнд? ))


Что не так? Можно вообще вне веб-говна работать.
421 1186804
>>186756
Два варианта:
tempFile
base64
В каком-то виде да хранить придется
422 1186868
>>186795
Очень смелое заявление. Назови какой-нибудь проект с бекэндом на питоне. Везде джанга/фласк и вообще фуллстэк. Чистый бекэнд кодер на пистоне миф.
423 1186874
>>186744
Простое, закрытое хранилище файлов, как флешка. Подключается к компьютеру, как диск, и работать с файлами только на нем. Который, под конец, можно "извлечь".
424 1186878
>>186735
Лол, ты веришь анонсам из /b ???
425 1186882
>>186874
Создай виртуальную машину, добавь в нее виртуальный , на физическом диске она будет как набор файлов или 1 файл зависит от типа. В виртуальной коробке vdi/vmdk файл. В вм создай шару на этом виртуальном диске и подключись к диску из хостовой системы.

Короче, в виртуалку установи сперму, проще всего потому что, добавь нужного объёма виртуальный диск и расшарь диск. Из своей рабочей системы (хостовой) подключайся к шаре и работай.
426 1186884
>>186756

>Хочу что бы из временной памяти


stringIO
427 1186889
Пацаны накиньте чего почитать по устройству CPython с т.з. работы с памятью. И про GIL, зойчем он нужен.
428 1186895
>>186868

>Везде джанга/фласк


>чистый бекэнд кодер на пистоне миф


Что значит ЧИСТЫЙ БЕКЕНД? Нельзя что ли библиотеками\фрейморками пользоваться? Если ты на фронт только жсоны через рест шлешь, то это уже не чистый бекенд? Бред какой-то
429 1186900
>>186878
а здесь только почитатели?
430 1186902
>>186895
Я же русским языком написал, что кругом требуются фуллстэк. Нахуй ты перевираешь мною сказанное? Я нигде не говорил, что фреймворки/библиотеки отправляющие запросы фронту не есть бекэнд. Это бекэнд, но это такой бекэнд, что такого кодера никто держать не будет, ибо очень уж мало у него работы будет откровенно говоря. Отсюда и требуют фуллстэк.
431 1186905
>>186902
Лолбля, ну я сейчас на чистом беке сижу, с фронтом только такое взаимодействие

>а фронт только жсоны через рест шлешь

432 1186907
>>186902

>то бекэнд, но это такой бекэнд, что такого кодера никто держать не будет, ибо очень уж мало у него работы будет откровенно говоря


И да, это значит, что контора говно и делает только хуйню фентифлюшками на жс, с минимальной полезной нагрузкой, ну или ты диван
433 1186910
>>186905
Ну вот расскажи как твой день проходит. Пожтапно, ты целый день хочешь сказать что-то пишешь? Ты больше времени на курение доков читаешь к очередному методу твоего фреймворка. Либо ты целыми днями только и создаешь проекты для заказчика и поэтому у тебя мног ораьоты на бекэнде. Иначе ты просто зелень. Я не понимаю, что целыми днями можно делакють на бекэнде.
434 1186913
>>186907
Ничем не подтвержденный пиздеж. Что целыми днями в 1 проекте построенном на фреймворках и шаблонизаторах можно пилить?!

Там работы на несколько недель максимум при самом нагруженном варианте.

И кто будет держать штат и фронтэндов и бекэндов? На фронте как правило веб макаки/дизайнеры, на бекэнде фуллстек кодеры.
435 1186916
>>186882
Так средствами питона же. Плюс нужно все автоматизировать.
436 1186917
>>186910
А с чего ты взял, что сайт на джанге это вообще вся логика? Как будто чего-то другого не может быть
Вот у нас продукт с микросервисной архитектуру решили запилить и приложение для обработки контента (в подробности особо вдаваться не буду, ибо nda). Джанга нужна только для обработки\показа данных клиенту. Поскольку архитектура микросервисная нужно написать универсальные декораторы для них, что бы они бы валидировали и передавали данные друг другу через rabbitmq, а так же проверяли каждую задачу на успешность выполнения и срали всем этим в логи и базу. Нужен граббер, что бы обрабатывать контент, который получается по фтп. Вытаскивает мету, проверяет корректность, двигает по папкам, заносит их в бд. Агрегатор статистики по работе с этим контентом, который хитрым образом собирает ее из редиса и выдает пользователю, согласно указанным параметрам. А еще там есть парсеры, которые юзают расширенные requests, selenium и bs4 в связи со спецификой проекта, ансибл для возможности деплоя этих сервисов на разные сервера, ебучая монга. Да и сама джанга содержит +10 приложений, которые тоже нужно дорабатывать и поддерживать, т.к. данные разные и отдавать их нужно много, да еще и бизнес логика.
В команде 5 человек на беке и 2 на фронте, да пачка тестеров, так что иди ты нахуй со своим онли фулстеком.

>>186913

>Ничем не подтвержденный пиздеж.


Твой пиздеж на счет онли фулстека тоже ничем не подтвержден, ты или диван или макака ебучая, которая магазины\визитки делает
437 1186919
>>186916
Ты не в состоянии набрать в гугле virtualbox python? https://download.virtualbox.org/virtualbox/SDKRef.pdf
438 1186921
>>186910

бля да дохуя всего, вы чё ебанулись? Вы наверно не работали на продукте, когда постоянно чё-то надо делать. Из-за этого очень ценятся грамотные бекендеры, которые могут делать масштабируемую архитектуру. Плюс тесты
439 1186925
>>186917

> со спецификой проекта



Ну вот с этого и стоило начинать. Это единичные случаи. Это как срм под себя писать. Это конечно тебе огромный плюс, что с таким проектом связан, приличный стек технологий. Интересная работа, но это исключение.

По второму, у меня и веб-проекты аггрегаторы были, и визитки, и срм в очень крупной компании писал для внутреннего использования. Была пара проектов, когда писали на бекэнде связку с ffmpeg, чтобы можно было из браузера контент нарезать, тогда то и окунулся с головой в фуллстек технологий. Будучи уже 5 лет как вкатившимся в питон. И как то дальше пошло поехало, что тесно связан со связкой js(asm/angular/vue)/python(jango/flask) ну ищипотка bootstrap.
440 1186926
>>186921
Бекэнд и тест. Збс. Ты программист-QA, лiл
441 1186928
>>186910

>Ну вот расскажи как твой день проходит. Пожтапно, ты целый день хочешь сказать что-то пишешь?



Пришел на работу.
Получил задание на рефакторинг модуля для работы с неким АПИ (например контакта), написанного полтора года назад человеком ушедшим в яндекс.
Половину дня просто читаю код.
Вторую полоовину дня допокрываю тестами то что начну переписывать завтра, чтобы исключить возможность обосраться.
Перед уходом смотрю вместе с коллегой на мой старый SQL код, который выдает данные за 15 секунд а хочется чтобы за 10 и обсуждаем как его соптимизировать.

Доволен?
442 1186931
>>186928
Ну блядь ты же не кодер, а QA. Еще к бекэнду себя причесляешь.
443 1186934
>>186931
Ну это же совсем жир. Нахуй ты такое постишь? С тобой же только прокрастинаторы будут разговаривать которым совсем делать нехуй.
444 1186943
>>186868

>Назови какой-нибудь проект с бекэндом на питоне.


https://github.com/mistio/mist-ce

Регулярно присылают вакансии по каким-то saas, клаудам сам таким сейчас занимаюсь, мессенжерам, блокчейнам, разработке апи, в некоторых предложениях на бек даже сами уточняют что без фронтенда. Но когда ищешь вакансии на каком-нибудь хх, то да, печально все.
445 1186945
>>186943
Где твое резюме лежит? Как они тебя находят?
446 1186968
>>186945
Есть только пустая страничка на линкедине, туда и приходит большинство предложений. Некоторые пишут на рабочую почту которая светится в гитхабе.
447 1186978
>Объекты-файлы – это основной интерфейс между программным кодом на язы-
ке Python и внешними файлами на компьютере. Файлы являются одним из
базовых типов, но они представляют собой нечто необычное, поскольку для
файлов отсутствует возможность создания объектов в виде литералов. Вместо
этого, чтобы создать объект файла, необходимо вызвать встроенную функцию
open, передав ей имя внешнего файла и строку режима доступа к файлу. На-
пример, чтобы создать файл для вывода данных, вместе с именем файла функ-
ции необходимо передать строку режима ‘w’:

Ребят, читаю Луца, охуеваю, расшифровываю не код его информацией, а его информацию, кодом и комментариями к нему. Это какой-то пиздец. Посоветуйте какой-нибудь интерактивный вариант изучения, но чтобы не проебать важную инфу. Может забить на эту книгу и тупа по кругу пару раз прогнать пару ютуберов с пайтоном, мне как нюфане приглянулись Хауди Хо и Гоша Дударь. Ну или какую-нибудь другую книгу, только не на ингрише, я в нем плох low intermediate. Помогите, короче, как вы вкатывались в первый язык?
448 1186981
>>186968
Антош, а что у тебя такого на гите и как профиль оформлен, что к тебе с гита пишут?
Мне за все время лиль дважды писали именно с гита.
Профиль у меня вроде как полный комитов, есть 3 джанго-прожекта, с оформленным описанием и реально работающие + пара небольших оберток-библиотек с парочкой звезд. Но хуй там.
450 1187028
>>186919
И разве там можно будет обойтись без установки ОС, что бы была просто директория с файлами?
451 1187037
>>187028
Создай vmdk диск. Дрисятка умеет его мапить, как и прыщи. Как создать диск гугли, ничего сложного в этом нет.
452 1187112
>>187037
Если не хочешь кидаться линками, то подскажи:
- Этот диск - единичный файл, так?
- Маппинг возможен на семерке?
- При аварийном выключении компьютера диск самостоятельно отключается?
453 1187113
>>187112
Пошёл на хуй, сразь ёбаная, заебал уже. Изи сам инфу, я ебал тебя и всех твоих близких в рот, хуесос ты тупорылый. Сам найдешь в гугле инфу.
454 1187114
>>187113
Хотя бы по клавишам нужным научись попадать, а потом рот раскрывай (^:
456 1187132
>>186994
Ммм, ну это многое объясняет, я тут и рядом не стоял, неплохо.
457 1187137
>>187132
Да это очень грамотно. Видно как чувак стратегически развил свой гитхаб в два захода всего за год. Нашёл дырку и заполнил её своей либкой.
458 1187155
>>187137
А ну собственно вот блять. лол
https://github.com/orsinium/notes/blob/master/ru/notes/github_trends.md
459 1187163
>>187155
Объясните, с чего вы рофлите, что не так? И что это за штука такая вообще? Что за 'дистанция между последовательностями'?
texa1c72e6b29d22f2286b197b083df6d83.gif.png2 Кб, 198x17
460 1187173
Питонач, как лучше решить это уравнение? Через срезы? Или есть более оптимальный вариант?
461 1187238
>>187155
Вот как, чот ну его нахуй, это нужно на фриланс/работу забить и сидеть гит в порядок приводить, оооох. Ещё и эмблемки рисовать.
462 1187258
>>187238
Ну собственно да. Хуярь в творческий отпуск. Я сейчас в таком нахожусь. И могу сказать что это довольно охуенное время. Можно двачевать целый день а можно с утра встать выпить кофейку, похуячить часик. Потом 8 часов подвачевать :]
463 1187282
>>187258

> Хуярь в творческий отпуск


Ох хуй знает когда такой получится, пока завал по полной и даже на работе хз когда смогу вырваться и отложить всё.
Но как только, так сразу начну приводить всё в порядок, авось какая годная идея для библы появится как раз.
Пока голова полна лишь идеями для мобильных приложений/сервисов, которые нужно хуярить долго и хз как рекламировать/раскручивать.
464 1187290
>>187173
Во-первых, здесь нет правой части, так что это не уравнение.
Во-вторых, что значит "решить". В предположении, что правая часть равна нулю, а x_i \in \mathbb{R}, решением будет \mathbb{R}^{n-1}-мерное многообразие в \mathbb{R}^{n}.

В общем, сформулируй точнее, что тебе надо.
465 1187301
>>187290
Задаёшь массив данных и считаешь по вышеприведённой формуле.
466 1187311
>>187301
Блджад, это называется написать функцию, а не "решить уравнение".
Заметь, что сумма индексов каждого слагаемого одинакова, и попробуй написать однострочную функцию.
467 1187322
>>187311
Спасибо.
469 1187570
>>186440
!!JUNIOR!!
470 1187613
471 1187641
Сап, Антоны.
Хочу написать собственный торрент клиент, но так как зелен не могу обозначить необходимые задачи для реализации. Знающие сеньоры, подскажите пожалуйста какое-нибудь чтиво, либо как правильно сегментировать задачу. Какие библиотеки с работой с bittorrent протоколом есть. Заранее благодарю.
472 1187780
>>186804

>В каком-то виде да хранить придется


Но почему? Я не понимаю.
473 1187784
>>187780
stringIO, все будет через оперативку пропускаться, но я так и не понял, чем тебе сохранение на диск через темп папки\файлы не нравится
>>187641
Самое главное, что требуется в работе программиста, это умение гуглить
https://google.gik-team.com/?q=python+torrent+client
Сразу же по ссылке несколько торрент-клиентов, несколько вопросов на стак оверфлоу, со всеми ответами, которые тебе нужны
474 1187854
>>187780
Потому что ты не можешь сказать контакту "скачай-ка мне оттуда пикчу сам", не работает так интернет.

Я, если честно, так и не понял, что именно тебе нужно сделать (говоришь про парсинг, но при этом почему-то загружаешь в вк картинки), но теоретически ты можешь сделать так:

>image_resp = urllib.request.urlopen(image_url)


>requests.post("upload_url, files={"photo": (filename, image_resp)})


И тогда при отправке данных post'ом они пойдут прямиком из источника через твой компьютер.

>>186399
Проблема в тебе, оба варианта должны работать одинаково. Ищи опечатки или ещё что.
475 1187866
>>187780
Алсо, под "в каком-то виде" имелось в виду в принципе иметь у себя на компьютере эту информацию. Будь то на диске, в оперативке или же где-то в буферах. Наверное, я не он.
476 1187880
>>187866
Всё верно.
Я - он
477 1187884
Существует ли возможность имея массив байтов восстановить файл (произвольный)? задача по стеганографии с контейнером bmp, умею скрывать только текст и изображения
478 1187886
>>187884
Записать эти байты последовательно на диск и радоваться? Что значит "восстановить"?
479 1187890
>>187886
Извлечь файл из контейнера
480 1187894
>>187854

>Проблема в тебе, оба варианта должны работать одинаково. Ищи опечатки или ещё что.


Мне тоже кажется что должно работать. Но какого-то хуя нет. Сам попробуй.
481 1187896
>>187894
упд
Короче во втором случае надо было дополнительно сковерить открытое в строку, с помошью станадарного str(). Кто бы мог подумать, да?
482 1187898
>>187894

>Сам попробуй.


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

>f = open(...)


>print(f.read())


>request.post(files=(f)


(Второй раз f.read() — внутри post'а — выдаст 0 байт.
483 1187899
>>187884
Что значит произвольный? Файл разбросан по всему контейнеру?
Энивей, отвечая на вопрос: существует.
Достаточно набросать парсер стандарта BMP и всё то, что не описывается стандартом записать на диск. Результатом и будет этот самый загадочный произвольный файл.
484 1187901
>>187896

>Короче во втором случае


Ещё раз говорю: оба случая идентичны. В одном ты записал в локальную переменную значение этого файлового объекта, а в другом сразу в функци передал. Больше разницы нет и не может быть, уж тем более какие-то str. Ты что в str-то взял, file, что ли?
485 1187902
>>187899

>Что значит произвольный?


видимо не очень понятно выразился, имел ввиду что программа должна уметь записывать в контейнер любой файл, независимо от формата
проблема вот в чем - я знаю, как перевести файл в массив байт, но не знаю, как сделать обратное
486 1187904
>>187902
Массив байт и есть файл.

>видимо не очень понятно выразился


Ну хоть это понимаешь.
487 1187908
>>187901

>пик 1


Так это работает.

>пик 2


Так нет.
3.PNG11 Кб, 811x104
488 1187910
>>187908
Еще веселее то, что вот так оно тоже не работает.
489 1187912
>>187902
>>187904
Чет в голос, что ты там переводишь в массив байт? Массив байт в массив байт что-ли?
Как выразился оратор выше: массив байт и есть файл.
Ещё можно было бы понять, если бы ты текстовый файл переводил в массив байт, но как ты можешь работать с картинкой не_в_режиме_массива_байт?
490 1187915
>>187908
>>187910
Мда. Ты понимаешь, что таким образом ты передаёшь не картинку, а "<_io.BufferedReader name='oppa.jpg'>"? Дословно, именно этот текст ты передаёшь.
491 1187916
>>187915
Конечно.
Но, блять, оно правда работает я тебе мамой клянусь.
Все что я тут показываю со своими картиночками - чистая правда.
492 1187917
>>187910

> img = str(img)


Господи, за что?
493 1187918
>>187916
ой, ладно, вас уже не исправить, пойду спать лучше.
не унывай, бро.jpg37 Кб, 462x469
494 1187919
>>187918
Сладких конечно, но я надеюсь ты вернешься еще. Ты тут единственный адекваша. :3 остальных я мамину маму рот ебал
495 1188021
Что я делаю не так?
Сайт с азадачками кодворс.
496 1188027
>>188021
1) не сортируешь
2) Не понимаешь как работают list\generator comprehension. Твой if будет выполнятся всегда.
497 1188029
>>188027

>generator


Я понял что не сортирую, а как правильно то?
Где почитать про этот синтаксический сахарок?
498 1188035
>>188029
Все нашел решение.
499 1188048
Хочу вкатиться в веб девелопмент на Python. Сейчас я бэкэнд пишу на PHP. У меня вопрос, как писать на Python в стиле PHP: получать POST или GET, потом делать запрос в базу и возвращать реквест?

Начал курить Django, там что-то убер много всего, у меня совсем простой юзкейс: есть парсер, он пишет в бд, пользователь делает запрос, получает результат, сюда прицеплять полновесный MVC фреймворк не комильфо.
500 1188049
>>188048
Бери фласк.
501 1188050
>>188049
Бери врот.
502 1188052
>>188049
Там можно делать так?

$conn = mysqli_connect($servername, $username, $password, $dbname);
$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);
echo $result;
mysqli_close($conn);
503 1188053
504 1188073
Можно как-то вызвать диалоговое окно с картинкой используя pyqt5? Типа идет основной поток приложения, mainwindow так сказать, и тут в процессе нужна капча допустим, выскакивает окно отдельный класс captcha() с картинкой (собственно капча), поле ввода и кнопка. После ввода и нажатия кнопки текст перекидывается назад в основной класс main и пишется в какой-нибудь self.capthca. Что-то вроде self.captcha = Captcha(img). Или если не диалог, то как замутить остановку основного потока и ожидание ответа от другого класса? У меня получается вызвать второе окно, всё там обработать, но основное окно после инициализации окна продолжает работать.
505 1188077
>>188052
Можно, но зачем? Бери ОРМ, sqlalchemy например.
sage 507 1188139
>>188087

>pm


Пошел нахуй
508 1188155
>>188139
А у меня hk не работает, например, так что я благодарен ему. А при ссылке на ОП-пост в строке адреса остётся #123123123, что меня бесит и приходится всё равно вручную редактировать потом адрес и перезагружать.
509 1188169
>>188139
ПИРИКАТ ЖИ НУ
ПЕРЕКАТЫВАЙСЯ СУКА
510 1188223
>>188139

>2018


>Не знать про зеркала

511 1192817
>>186978
Автоматизация рутинных задач Свейгарта, базарю.
Основы основ, и все предельно понятно для полного нуля в погроммировании.
512 1195916
Здравствуйте, имею код
import facebook
access_token = ""
fb = facebook.GraphAPI(access_token)

fb.put_wall_post("This s")

Как сделать тоже самое, но на страницу группы?
wat.png38 Кб, 679x345
513 1213193
>>182179 (OP)
Почему так?
514 1213220
>>213193
Спроси себя, что есть 0.2 и 0.1, юный падаван.
Тред утонул или удален.
Это копия, сохраненная 15 июля 2018 года.

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

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