Двач.hk не отвечает.
Вы видите копию треда, сохраненную 3 февраля 2017 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
16 Кб, 600x360
Python Thread Perekoter !JLHGEtxGTk #916061 В конец треда | Веб
Шапка: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat

Прочитай шапку перед тем, как задать вопрос!
916893919812920753
PEREKOT Perekoter !JLHGEtxGTk #2 #916063
Прошлый тред >>909635 (OP)
69 Кб, 604x417
#3 #916068


Срочно нужна помощь пайтониста.

Мы сидим тут : https://2ch.pm/b/res/144922772.html (М)

Пытаемся программой Лазанья узнать пароль от другой учетки вин7. Скачали питон и все остальное, но что-то не робит лазанья как надо - возможно, проблема в кодировке или еще что-то. У нас там питон-кун, но он не эксперт. Придите помогите, пожалуйста.
916074916084
36 Кб, 620x419
#4 #916069
И сразу же говорю чтобы ёбаные вкатывальщики ишли нахуй. Нехуй лезть со своими вопросами вроде "как написать функцию додавания", "вкатываюсь в питон, помогити погуглить", "что надо знать чтобы батрачить за 1$/час"
916078
#5 #916074
>>916068

> Пытаемся программой Лазанья узнать пароль от другой учетки вин7. Скачали питон и все остальное, но что-то не робит лазанья как надо - возможно, проблема в кодировке или еще что-то. У нас там питон-кун, но он не эксперт. Придите помогите, пожалуйста.



Тред закрывается но если итт кто-то хочет помочь - отзовитесь, очень прошу. Скину всю необходимую инфу.
#6 #916076
А есть перевод книги sicp по питону?
916191
#7 #916078
>>916069
Но ведь всем похуй на тебя и на то, что ты говоришь:((
#8 #916082
есть такая структура
module_a
__init__.py
script.py
module_b
__init__.py

в module_b/__init__.py есть переменная NAME = 'TestModule'
как из script.py получить NAME?

пробую так:
import importlib
m = importlib.import_module('module_b')
'NAME' in m.__dict__ # False

как до нее достучаться?
916091
#9 #916084
>>916068
>>916068

> Пытаемся программой Лазанья узнать пароль от другой учетки вин7. Скачали питон и все остальное, но что-то не робит лазанья как надо - возможно, проблема в кодировке или еще что-то. У нас там питон-кун, но он не эксперт. Придите помогите, пожалуйста.



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

Собсно проблема вот: unicodedecodeerror: 'ascii' codec can't decode byte 0xc0 in position 0: ordinal not in range <128>

Может есть какой-то простой способ, как это убрать, чтоб laZagne работало нормально?
916087916187917382
#10 #916087
>>916084
Если тебе лень решать эту проблему, можешь в линуксе запустить этот скрипт, ибо это спермопроблема.
916089
#11 #916089
>>916087
Я на винде лол. И я не прогер.
Мне просто нужно с помощью laZagne найти пароль от учетки бляди, которая мне пересрала всю жизнь, и прочитать ее вк.
916092916128916130
#12 #916091
>>916082
import module_b
#13 #916092
>>916089
Ты уже меня утомил, тебе же объяснили в каком направлении искать информацию, если ты не хочешь сам решить проблему, предложили вариант где этой проблемы нет, хуйли тебе еще надо? Хочешь чтобы кто-то за тебя все сделал? Не охуел ли ты часом? Иди и делай сам, если тебе это надо.
916093916128916130
#14 #916093
>>916092
я дохуя чего гуглил и ничего не помогает епт.
916095
12 Кб, 671x245
#15 #916095
>>916093
собсно вот как она выглядит
916096916239
#16 #916096
>>916095
Насколько я понимаю, это из-за того, что или логин, или пароль - кириллицей. Но как исправить, понять не могу. :(
#17 #916128
>>916092
>>916089
Как же вы доебали уже с вашими псевдоуникальными охуенным проблемами. Учиться на чужих ошибках никто предлагал?
Никто кроме тебя в данном случае в данной ситуации не виноват. Бабы вообще никогда не меняются, они одинаковы всю жизнь ебаного человечества. Но ты можешь врубиться хотя бы в элементарное - если человек приносит в твою жизнь проблемы и только проблемы, от него чего-то реально иного ждать не стоит. Аутотренинги тут не помогут. Ситуация не изменится. Этот человек так и дальше будет тебе приносить проблемы всё больше и больше этих проблем, пока всё вокруг не перекосоёбит.
Просто задавай себе вопросы - что в твою жизнь приносит вошедший в неё человек. Много ли ты теряешь находясь рядом с ним. Если ты теряешь намного больше чем получаешь - нахуй.
Единственный косяк в данном рассуждении, получится так что только враги приносят нам меньше всего проблем и больше плюсов, каким бы это странным не показалось.
916129916194
#18 #916129
>>916128
неплохо
#19 #916130
>>916089
>>916092
Просто задавай вопрос. Что тебе приносит тян кроме ёбли. Если ответ - нихуя, либо ты только тратишь - то проблема именно в тебе, а не тян. Тян делают так, пока им это кто-то позволяет. Не позволяй себе быть тем кого бесконечно жрут без какой-либо отдачи.
#20 #916141
Вы че тут совсем охуели.
#21 #916156
Здравствуйте
#22 #916187
>>916084
Если вместе с питоном у тебя поставился IDLE, то запускай скрипт через него, там кодировко-проблем нет. Или качай и запускай в PyCharm.
916194916209
156 Кб, 880x1157
#23 #916191
>>916076
Бамп.
917688
#24 #916194
>>916187
Спасибо, попробую осмыслить, что ты написал.

А что "скрипт"? Я запускаю программу laZagne. Или это и есть "скрипт"? Или скрипт - питоновский файл программы, который я запускаю из cmd?

Алсо, анону, который обещал вечером помочь - большое спасибо. Чтоб я не создавал тред, можешь мне написать на drakered12[СОБАКА]yandex[точка]ru ?

>>916128
Так все это ясно, анон. Я собсно и ухожу. Прямо сегодня съезжаю на новую хату. Я не буду цепляться за человека, которого я любил и который меня так жестко наебал и использовал. Ничего мне не принесла кроме горя.
916197917680
#25 #916197
>>916194
Скрипт - это файл с расширением .py. В твоём случае, как я понял, это lazagne.py
916205
#26 #916205
>>916197
Понял. Сейчас гляну, что можно с этим сделать.
#27 #916209
>>916187
При клике правой кнопкой на скрипт есть опция "Edit with IDLE".

Там через Run запускается, но как команды писать, не понимаю. В cmd я писал python lazagne.py all и мне выводило там прогу в инфе.

Тут такое не прокатывает.
916211
#28 #916211
>>916209
там инфу в проге*

фикс

Если же я ввожу те же команды в IDLE, то мне пишет "SyntaxError: invalid syntax"
#29 #916221
В PyCharm вообще запускаться не хочет.

В окне с настройками перед запуском говорит "Error: Please select a valid Python interpreter"
916223
#30 #916223
>>916221
Поставь в настройках путь к питону:
File - Settings - Project: Interpreter и там укажи путь к python.exe
Как в IDLE передать аргументы командной строки я хз, в пайчарме тоже. Первое, что приходит в голову это запустить в cmd что-то вроде:
IDLE "путь к lazagne.py" all
В таком случае тебе нужно найти где лежит исполняемый файл IDLE и открыть там терминал (Shift + ПКМ -> Open command line here)
916224916228
#31 #916224
>>916223
Хотя щас посмотрел в пичарме, там вроде просто:
Run - Edit Configurations...
И там в поле Script parameters просто напиши all
916230916239
#32 #916228
>>916223
"IDLE не является внутренней или внешней командой, исполняемой программой или пакетным файлом."

Насчет pyCharm - вроде настроил, но лазанью теперь запускать она вообще не хочет, лол....
916231
#33 #916230
>>916224
Щас попробую перезапустить пайчарм и снова запустить прогу.
#34 #916231
>>916228

>"IDLE не является внутренней или внешней командой, исполняемой программой или пакетным файлом."


Потому что нужно точно указать имя файла, т.е. не idle, а idle.bat, например(или idle.pyw, не знаю какое у него разрешение). Напиши в консоли dir, оно выведет список файлов в папке и там посмотри
#35 #916239
>>916224
сделал вот это. Выдает ту же ошибку, что и ранее -> >>916095
916245916248
#36 #916245
>>916239
Хуй знает, мне пайчарм всегда помогал с кодировками, правда у меня и питон 3 (можешь, кстати его попробовать ещё). Так же попробуй, например, вместо all поставить browsers
916254
#37 #916248
>>916239
А вообще зачем тебе питон? Гугл говорит, что этот лазагн можно и без него:
https://github.com/AlessandroZ/LaZagne
916254916256
#38 #916251
Нид хелп, джангомакаки!

Собственно есть форма: http://pastebin.com/LLgCS6AP и есть проблема, в представление, которое эту форму обрабатывает, в request нету ни 'usr' ни 'pwd'. В чём проблема ?
916255916368
#39 #916254
>>916245
Лазагне с 2 питоном работает.
>>916248
Нука щас глянем.
#40 #916255
>>916251
Так делаешь?
usr = request.POST.get('usr', None)
916260
#41 #916256
>>916248
Не понимаю, где там версия без Питона?
916263
#42 #916260
>>916255
Да. Я думаю, что проблема в описании формы, так-как в запросе есть только csrf_token.
916266
#44 #916266
>>916260
Ну, сложно что-то советовать потому, что я твой код не видел. Но я вижу, что ты форму сам рисуешь, а не с помощью {{ form }}. Попробуй еще изменить id полей на id="id_usr" и id="id_pwd", потому что именно так Джанга их именует, когда генерирует форму сама.
916271916368
#45 #916271
>>916266
Замена id не помогла. Значит буду описывать форму, просто пока только с модельной формой работал, а код на примере основан. Спасибо за помощь!
916275
#46 #916275
>>916271
Покажи код вьюхи.
916278
#48 #916288
>>916278

> if sys_user is not None and sys.user.is_active:


Полагаю, точка лишняя.

if sys_user and sys_user.is_active:
916291916293
#49 #916291
>>916288
Точка лишняя, да. Но дело явно не в этом, post запрос пустой.
#50 #916293
>>916288
Описал форму, передаю через {{ form }} Запрос идет нормально. Остановлюсь на этом варианте. Еще раз спасибо!
#51 #916294
>>916278
Не проще ли было бы использовать стандартное джанговское представление для логина? Зачем тебе тогда вооще джанго, если ты сам все пишешь с нуля?
Оно подключается парой строк https://simpleisbetterthancomplex.com/tutorial/2016/06/27/how-to-use-djangos-built-in-login-system.html

И не называй функции так __method_name__ - такие имена использует сам питон для своих дел. Если хочешь функцию для внутреннего ипользования, то добавь одно подчеркивание в начале имени - _login
916297
#52 #916297
>>916294

> Зачем ?


Затем, что я учусь. Дальше, по мере продвижения, я буду использовать новые возможности django, сейчас же пишу по урокам.
916308
#53 #916303
Если я с помощью pickle запишу состояние класса, а потом изменю его метод __setstate__, то при загрузки ранее сохранённого класс экземпляр класса десериализируется под старым __setstate__ или под новым?
#54 #916308
>>916297
Какие-то странные у тебя уроки, судя по стилю твоего кода. Или ты на чем-то писал до питона?
916310
#55 #916310
>>916308
Писал на Си.
#56 #916368
>>916251
>>916266
ебать вы наркоманы!

>><input type="text" class="form-control input-sm" id="usr">


где name="usr" сука!?
#57 #916444
Аноны, читаю книгу Лутца и он там толдычит про два метода форматирования строк с помощью оператора % и с помощью метода format, а второй мне как-то не подуше пиздец как. В конце заголовка пишет что к версиям python 3.+ первый метод собираются выпилить. Такая тенденция прослеживается, или все пиздеж? Стоит ли учить format?
916465
#58 #916446
Няша, тебя в гугле забанили?
#59 #916465
>>916444
PANDAS!
354 Кб, 1032x729
#60 #916518
Аноны, есть один скрейпер:
- нужные данные он сохраняет все нужные данные в postgreSQL через джанговский orm
- у него также есть список готовых url, который постоянно дополняется, и по которым он больше не ходит
- пока что список хранился как shelve - самое простое, что пришло в голову

Что меня беспокоит:
1) скрипт крутится на виртуалке с линуксом - из виндовс фал не открывается
2) хранить таким образом данные кажется не очень правильным
3) скрейперов может быть несколько - не хочется каждый из них привязывать к джанговской базе

Что хотелось бы:
1) Способ хранить все в одном файле
2) Который можно открыть в любой системе
3) Без особых проблем с настройкой/использованием

Пока что смотрю на SQLite (из коробки поддержка питоном), но охуеваю от всяких оберток типа SQLAlchemy. Опыта работы с базами нет.
#61 #916527
>>916518

>скрейпер


Я так понял парсер?

>через джанговский orm


На джанго? Есть же scrapy/grab

> 1) Способ хранить все в одном файле


> 2) Который можно открыть в любой системе


> 3) Без особых проблем с настройкой/использованием


CSV, если у тебя не сотни миллионов строк. Можешь выгружать его в любые популярные базы данных или открывать в екселе.
917607
#62 #916632
>>916518
Scrapy попробуй. Очень просто и удобно, плюс можно выгрузить в облако одной строчкой в консоли. Хранить можешь в csv, как анон выше советует, или в json lines каком-то.
917607
#63 #916634
>>916518
Как использовать джанго ОРМ вне views и прочих файлов проекта? Через get_wsgi_application?
916658917607
#64 #916658
>>916634
import os
import sys
import django
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_app.settings')
django.setup()
это если файл с этим содержимым лежит в корне проекта, т.е рядом с manage.py если нет то нужно указать другой sys.path
916743
32 Кб, 316x310
#65 #916672
>>916518
ты же уже используешь субд, зачем еще что то?)
#66 #916743
>>916658
А у меня так:

import os
from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "app_name.settings")
application = get_wsgi_application()

Что правильне интересно.
916762
#67 #916762
>>916743

>from django.core.wsgi import get_wsgi_application


хз, я из оффдоков взял https://docs.djangoproject.com/en/1.10/topics/settings/#calling-django-setup-is-required-for-standalone-django-usage
45 Кб, 640x363
#68 #916893
>>916061 (OP)
Питунисты, тему для диплома посоветуете?
916933
#69 #916933
>>916893
Создание асинхронного имейджборда с использованием сверхбыстрого асинхронного key-value хранилища.
#70 #916947
>>916518

Смотришь правильно, SQLite идеально зайдет для описанных тобой кейсов. Если непонятно с SQLAlchemy почитай:

https://www.fullstackpython.com/object-relational-mappers-orms.html

статьи, типа вышеуказанной. Кроме основ, там же найдешь упоминания о других ORM.

Базу предлагаю переконвертировать в два шага.

1. Сначала через какой-нибудь gui (navicat) для постргесса конвертируешь каждую таблицу в отдельный csv файл.

2. Далее, через sqlite browser создаешь базу данных и импортируешь csv файлы. Все.

Осталось написать одну строчку с указанием пути к бд и еще одну строчку с именем таблицы для ассоциированной модели.

Поехавших, которые рекомендуют работать в csv не слушай, они тебе не друзья.
#71 #916966
>>916947

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


Аргументируй.
917309
#72 #916987
>>916518
>>916947

Как я понял, он эту бд с джангой использует.
Там можно просто 'python manage.py dumdata app_name.ModelName --indent 4 > fixtures.json'

Потом, в файле настроек подключаешь Sqlite бд и делаешь 'python manage.py loaddata fixtures.json'.

https://docs.djangoproject.com/en/1.10/ref/django-admin/#dumpdata
#73 #917088
Анонче, как в питоне сделать наложение одной картинки на другую с заданной прозрачностью?
С пикчами вообще не работал в нем.
917102
#74 #917102
>>917088
PIL/Pillow
#75 #917145
Что посоветуете чтобы прикрутить к торнаде кеширование с помощью редиса. Желайтельно что-то максимально удобное как в джанге, но рассмотрю все варианты
#76 #917211
Есть ли кто нибудь, кто используется python для решения тех или иных задач в civil engineering?
917278
#77 #917278
>>917211
если ты о строительстве, то пилил давно корешу прогу для расчетов вентиляции
#78 #917309
>>916966

Тоже самое, что и трусы через голову одевать, csv rfc написан не для быстрых и комплексных CRUD операций, он для тети Маши из соседнего отдела, чтобы могла работать с понятным ей представлением.
917323
#79 #917323
>>917309
Ну так там вроде не

> быстрых и комплексных CRUD операций


а просто дамп результатов.
#80 #917382
>>916084
Разница в версиях питона, ты наверняка запускаешь на третьем питоне, а программа написана на втором, поэтому качай 2.7.
917384
#81 #917384
>>917382
Второй у него питон, но он всё равно уже куда-то слился.
917386
#82 #917385
>>916947
Спрашивает нихуя не понимающий: а почему нельзя это в dict держать в памяти и потом сериализовать в json или в pickle? (без наезда, просто интересно)
917403
#83 #917386
>>917384
Ну ладно.
R Кстати никто не учит?
#84 #917403
>>917385
Посмотрел как бы ты держал в памяти несколько миллионов строк
917410917418
#85 #917410
>>917403
a = ['test string %d' % x for x in range(5000000)] — 400 МБ всего требуется для этих пяти миллионов строк.

мимопоказал
917418917453
#86 #917418
>>917403
>>917410
А SQLite разве не в памяти всё равно держит? Или он это компактнее как-то хранит?
917421
#87 #917421
>>917418
Смотря в какой. Обычно во внешей, то есть на диске, а в памяти только индексы и кэш, но при желании можно хранить в ОЗУ всё. Хотя, честно сказать, я не знаю, как конкретно SQLite работает, потому что настоящие СУБД использовал, поэтому в ОЗУ он может вообще ничего не хранить и на каждый чих дергать диск.
917424
#88 #917424
>>917421
Окей, спасибо. Кажется настало время разобратсья с базами данных
#89 #917453
>>917410
А если будет 50 таких столбцов?
Показал тебе за щёку
917458917746
#90 #917458
>>917453
Анон вскукарекнул про несколько миллионов — я дал ему несколько миллионов. Остальные виляния жопой меня не интересуют.
917464
#91 #917464
>>917458
Wake up, you obosralsya
917471
#92 #917471
>>917464
Вот ты долбоеб, честное слово. Ты же понимаешь, что я не предлагаю всё в памяти держать. Просто в юношестве байтоёблей занимался и прекрасно понимаю, что «несколько миллионов строк» в памяти держать как раз проблем никаких нет. А несколько десятков миллионов — это уже другой вопрос.

Собственно, это действительно уже другой вопрос и обосрался на ровном месте тут ты. Не понимаю только, зачем.
917474
#93 #917474
>>917471
Федя, раз ты имел работу только со строками длиной в 20 символов и не более, то мне тебя жаль, байтоёб хуев.
#94 #917497
bump
398 Кб, 707x1000
#95 #917607
>>916527

>Я так понял парсер?


да

>На джанго? Есть же scrapy/grab


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

>CSV


а хранение в таком формате говнокодингом не считается? наряду с моим shelve методом
>>916632
Да у меня совсем простенький, обошелся без scrapy да и не пробовал его никогда
>>916634
у меня так
http://pastebin.com/fWiku3N7
>>916947
Спасибо за статью, попробую Alchemy/Pony. Конвертировать/fixture в моем случае не нужно, как выше писал - постгре для данных с парсера и для сайта, а для служебной инфы со скрейперов хотелось что-то что не будет говнокодом, простое в использовании и доступе, но с возможностью расширения функциональности - т.е. SQLite с оберткой попробую.

Аноны, еще вопрос: простые сайты хостить доводилось, а вот с питоном/бд - в первый раз.
Как искать хостинг или как это вообще называется с такой комплектацией под него?
Т.е. нужно выложить сайт на джанге с PostgreSQL и возможностью удаленно запускать парсеры/свои скрипты на питоне.
917610917612
#96 #917610
>>917607
Посмотри на pythonanywhere. Там вроде джанги всякие можно легко хостить.
917619
#97 #917612
>>917607

>а хранение в таком формате говнокодингом не считается?


Ты так и не сказал, что за данные и в каком объеме? Это просто список урлов или может база со связанными таблицами? И для чего тебе их оттуда забирать? Куда-то перенести надо, просто бекап или ты их как-то обрабатывать собрался?

>наряду с моим shelve методом


А вот про это я не понял, нахуя тебе такие извращения?
917619
#98 #917619
>>917610
Смотрел,там ничего про Postgre не написано, да и хочется для начала мнение анона послушать
>>917612
сейчас у меня в shelve хранится словарь вида
site_name: [links_parsed]
каждый запуск парсер запрашивает ссылки с сайта, если ссылка уже есть в links_parsed - он ее пропускает, вот и все функции
но мне это кажется плохой практикой + планирую добавить детали уровня даты и кол-ва объектов, полученных с каждой страницы - тут уже хранить все в shelve уже совсем не радует
>>917612
в питон вкатился недавно, ничего лучше пока не знаю
917625917627
#99 #917625
>>917619
сука несколько часов к ряду читаю твой бред ебучий! ты сука бесишь еблан! у тебя есть БАЗА, ДЕБИЛ ТЫ ЕБУЧИЙ, ДАННЫХ, СУКА ДАУН, POSTRESQL! ПИДОР ТЫ СУКА ЗАГУДРОНЕННЫЙ! ИДИ ТЫ НАХУЙ СО СВОИМИ SQLITE, CSV И ПРОЧЕЕ SHELVE СВОЕ ВЫСРАННОЕ ЗАБЕРИ НАХУЙ ОЛЕНЬ!
sage #100 #917627
>>917619

>сейчас у меня в shelve хранится словарь вида


>site_name: [links_parsed]


Так сохраняй в базу через джанговскую орм, создай модель. Или можешь ради интереса попробовать Redis или MongoDB.
Дампай в JSON/CSV. Правда, ты так и не объяснил нахуй оно тебе надо.
А для парсинга погугли grab, он не сложный и если для тебя это будет плюсом, есть свежая документация на русском.
#101 #917633
Где Selenium может быть применим с пользой и в больших количествах?
917634917636
#102 #917634
>>917633
Тестирование вебсайтов.
917637
sage #103 #917636
>>917633
Тестирование, в основном. Ну или из личного опыта, например парсинг хитровыебанных сайтов с защитой от парсеров, мне один раз пригодилось. И один раз знакомому за пиво написал простенького бота для одной браузерки.
917639
#104 #917637
>>917634
Блядь, да это даже не самое очевидное, это - его главное применение. Может, где-нибудь еще?
#105 #917639
>>917636
О, кстати о браузерках, это же ведь вполне реально с селениумом, да?
917642
sage #106 #917642
>>917639
Вполне, если там не флеш.
917643
#107 #917643
>>917642
Хорошо, спасибо. Как то не продумал эту тему с браузерками.
ACCount, неужели это ты?
917645
#108 #917645
>>917643

>ACCount, неужели это ты?


Нет.
917654
#109 #917654
>>917645
Эх, обознался.
#110 #917680
>>916194
Косяк в том что ты любил не человека а его образ в себе
#111 #917688
>>916191
Посмотри лекции MIT 6.00x (например на edX), там, наверное, есть субтитры на русском.
#112 #917698
пиздец! это пиздец!! как писать тесты ебучие в django? вот есть модель, у нее есть метод check_slug(self), этот метод бессмысленно использовать вне метода save(self...), и вот как написать на check_slug тест? мне что надо импортировать класс модели, переопределить save() и там поймать вызов check_slug!!!?!?!
или вот, django приложение при старте собирает и проверяет инфу о своих модулях (некие переменные в __init__.py каждого модуля) и как мне протестировать функцию проверки этой инфы, если в тест django поступает уже стартанувшая, а я уже поехавший блять от этих тестов?
917704
#113 #917704
>>917698

>у нее есть метод check_slug(self), этот метод бессмысленно использовать вне метода save(self...)


Что значит, бессмысленно? В нем используются приватные аттрибуты модели?
Ну так сделай модель с нужными аттрибутами и вызывай на ней check_slug.

>проверяет инфу о своих модулях (некие переменные в __init__.py каждого модуля) и как мне протестировать функцию


Импортируешь переменные из модулей, засовываешь в функцию? Сложно сказать без примеров кода.
918179
#114 #917746
>>917453
О, ты из таких типов людей, которые всегда ко всем придираются, которые будут до последнего пытаться доказать, что человек не прав, даже если он прав.
176 Кб, 1538x839
#115 #917812
Просто интересно, я сделал совсем плохо? Что-то мне подсказывает, что да. И еще может кто подскажет, от чего зависит скорость исполнения кода? Насколько важна оптимизация в ООП. Где про это почитать? Спасибо.
917816917823917828
#116 #917816
>>917812
Можно все гораздо короче сделать, используй метод replace у строки.
5 Кб, 461x124
#117 #917823
>>917812
Изучай стандартную библиотеку.
#119 #918029
Given a string, return a new string made of every other char starting with the first, so "Hello" yields "Hlo".
Анончи,что они от меня хотят?
918053918898
#120 #918053
>>918029
Нечетные буквы
918061
#121 #918061
>>918053
спасибки:3
97 Кб, 599x900
#122 #918125
Джангоны, ай нид хелп.
http://ideone.com/VApjic - мой models.py
По задумке должен при сохранении генерировать из тэгов article_title, но выдает ошибку: ValueError: Article objects need to have a primary key value before you can access their tags.
Гугл не помог.
Подскажите что делать?
918129918131
#123 #918129
>>918125
Или вообще подскажите что гуглить и смотреть, нужна генерация article_title из tags
sage #124 #918131
>>918125
Пиздец ты тупой, ты же обращаешься к айдишнику if not self.id который появится только после сохранения объекта. Тебе же данга ясно выплевывает эксепшен.
918336
#125 #918179
>>917704
упрощенно вот что есть http://pastebin.com/rM5TrsTA
только модель FlatBuy определена совсем в другом приложении - модуле, а при старте декоратор CatalogItem собирает все модули-приложения с их моделями и регистрирует в REGISTRY попутно проверяя что там у этих модулей в __init__.py. то есть работает декоратор до старта главного приложения.
а вот что в тестах http://pastebin.com/3LNMAnwN
в def __init__() ли def setUp ли - неважно, main_app уже загружено и я не знаю как протестировать CatalogItem.register() или другие функции из CatalogItem которы проверяют данные из __init__.py загружаемых модулей.
#126 #918183
>>918179
есть еще django.setup() - ее можно попробовать протестировать но я не знаю как, например вот runtests.py который тесты запускает http://pastebin.com/1gxg4uVC вот в нем setup() вызывается и инициализированную джангу уже скармливает тестам.
#127 #918187
>>918179

>>то есть работает декоратор до старта главного приложения


то есть работает декоратор во время старта главного приложения, но до завершения старта всего проекта
#128 #918201
>>918179
В смысле, ты не знаешь как методы классов вызывать или что? http://pastebin.com/Mad8b1vE
918203
#129 #918203
>>918201
да не, CatalogItem.registry() хочу тестировать, которая уже вызывалась и уже собрала данные по модулям к моменту теста, то есть мне нужно протестировать инициализацию проекта по сути, а я не знаю как
#130 #918335
Кун 23 лвл, работаю java программистом полгода. В последнее время стали давать задачи по написанию скриптов для автоматизации тестирования, писать сказали на python. Собственно, пиздец как понравился этот язык, и думаю на него перейти, как на основной (изучить более глубоко), но пугает, что основная масса вакансии в моем 700к мухосранске - веб макака (Django + ДЖС, КСССССС, АШТМЛ и прочая поебень). Вопрос - как с работай в ДС или ДС2 на python? Много ли норм вакансий, а не всякий фулстак веб? Не поймите не правильно, на бэкэнде поработал бы, но фронт терпеть не могу.
918391918398
#131 #918336
>>918131
Ох лол, я и правда тупой. Надо было это делать после сохранения записи. Спасибо, ананас.
918367
#132 #918367
>>918336
Новичкам в джанге как я.
В случае если надо что-то сделать перед или после сохранения модели есть такая штука signals. Гуглите django signals.
#133 #918391
#134 #918398
>>918335
За почти три года работы в аутсорсе (Минск), видел проектов пять на джанге и фласке и два десктопных проекта - один на PyGTK, другой на PyQt и даже с машинным обучением. Не думаю, что это репрезентативная выборка, потому что сотрудники реагировали с удивлением - ого, десктоп на питоне.

В этом есть какой-то баланс. Я на красивом питоне занят в фулл-стек вебе, а рядом плюсовики делают что-то охуенное, но зато на, в общем-то, кошмарном для меня С++03.
918402918543
#135 #918402
>>918398
Ах да, из предложений работы, которые приходили на линкедин - всё веб. Веб плюс большая нагрузка, веб плюс статистический анализ, просто веб. Из моего опыта, совсем без js css html может быть сложно найти себе место под солнцем.
3962 Кб, Webm
#136 #918533
#137 #918543
>>918398
Хочу перекатиться из дотнета в питончик, какие подводные? Что по джанге почитать, чтобы сойти за мидла? Фласк смотрел - какая-то хуйня микрофреймворк
918555918898
#138 #918555
>>918543

> какие подводные?


Вакансий меньше

>Что по джанге почитать, чтобы сойти за мидла?


https://docs.djangoproject.com/en/1.10/
918636
#139 #918571
Питоны, пробую в скрапи. Поясните за rules - почему выводит только урлы из start_urls и не желает дальше идти?
http://pastebin.com/qZTJbptk
918593918826
#140 #918593
>>918571
http://www.express.com/
Хуйли не пускает?
#141 #918607
>>918179
Тестируй CatalogItem.register_module и CatalogItem.register_item, остальная ебола там тривиальна.
Как конкретно тестировать - зависит от кода этих методов.
#142 #918636
>>918555
зачем мне твои доки на джангу, там описание фреймворка и пара примеров на коленке. Мне нужны бест практис.
918639918641
#143 #918639
>>918636
Говна тебе навернуть нужно, дебил.
918641918750
#144 #918641
>>918636
Ту скуп оф джанго, сразу на миддла вытянешь. А вообще, он прав >>918639
46 Кб, 1030x554
#145 #918652
Двачик,выручай!
918655918719918898
#146 #918655
>>918652

return (2 in nums) or (3 in nums)
918660919044
#147 #918660
>>918655
Сапасибки,анончик:3Но почему мой пример не работает?
918665918666918668
17 Кб, 291x300
#148 #918665
>>918660
Потому что ты тупой дегенерат.
Никогда больше ничего не погромируй сука!
918668918670
#149 #918666
>>918660
Смотри внимательно, в случае 4,3 первой приходит 4, функция возвращает фалс. У тебя логика работ не правильная, просто с тестом повезло.
918668918669
#150 #918668
>>918660
Не слушай >>918666-петуха, вот правильный ответ >>918665
918670
#151 #918669
>>918666
Разве for i in nums не должен проверить все значения массива прежде чем выдать результат?
#152 #918670
>>918665
>>918668
Чего злой то такой?В it всем места хватит.
918673
#153 #918673
>>918670
Хватит, вот только потом, сука, приходится ебаться с кодом, написанным такими ебанатами.
918677
#154 #918677
>>918673
Ты прямо сразу Страуструпом стал, как только интерпритатор установил, да?
918678
#155 #918678
>>918677
Нет, но по крайней мере с такими дебильными вопросами сюда не бегал и говно не коммитил, ибо тимлид контролировал и тыкал в косяки.
918690
#156 #918690
>>918678
Представь, что у него тим-лид - это ты, и тыкай его в косяки. Никто не заставляет тебя выдавать в качестве ответа готовый код. Просто укажи на ошибку и все.
Не все учились в тепличных условиях, в команде с опытными программистами. Заходить в тред, где в основном спрашивают нубские вопросы и кидать говном в нубов - нехорошо.
918691
#157 #918691
>>918690

>кидать говном в нубов - нехорошо.


Я сюда самоутверждаться хожу вообще-то.
#158 #918719
>>918652
else не нужен
ты в первой же итерации цикла возвращаешь ответ, не надо так
101 Кб, 1920x673
#159 #918739
Аноны, как сделать наложение вотермарки на пикчу?
Что за хуйня вылетает?
918759918780
#160 #918750
>>918639
Навернул тебе за щеку.
47 Кб, 546x550
#161 #918753
Sup.

Как протестить отдельный метод в коде? Пишу скрипт, который экспортит названия песен из Google Music плэйлиста и выкачивает их из вк. Так вот, хочу отладить только метод, который начинает считывать названия песен из .txt файла, но каждый раз приходится выполнять экспорт плейлиста в .txt файл.
#162 #918759
>>918739
Пикчи приложи.
918763918764
#163 #918763
#165 #918774
Посоветуйте виртуальный хостинг
918778918890918892
#166 #918778
>>918774
Посоветую пойти в гугл.
#167 #918780
>>918739
Помохите с вопросом
918783
#168 #918783
>>918780
Блядь, тебе в гугл лень слазить или ты просто тупой? Первая же ссылка по ошибке тебе поможет решить проблему, нахуй ты сюда пишешь, не понимаю.
918784
#169 #918784
>>918783
Вот зачем ты кукарекаешь вот это все?
Я спрашиваю у людей, а не у тебя, шакал.
918785
#170 #918785
>>918784
Ну и продолжай сосать хуй, дебил блядь. Один хрен, с таким подходом, ты обречен на сосание хуйцов по-жизни, ибо самостоятельно решать свои проблемы не можешь.
#171 #918789
>>918753
Нихуя не понятно. Метод класса или что? Пример кода приложи.
918802
sage #172 #918802
>>918789

> приложи


Приложил тебя. Проверяй.
919048
#173 #918805
>>918753

> Как протестить отдельный метод в коде?


Берешь отдельно метод и тестишь. Что сложного то?
48 Кб, 1155x581
#174 #918814
Ну чому не робит то,анончики?
sage #175 #918819
>>918814
Ты пробуешь засунуть в один символ больше одного символа, кроме того у тебя ретурн происходит на первой же итерации (при обработке первого символа). А еще - ты немного глупый тестер с Киева.

Создавай новую строку и в нее джойнь символі. Или однострочником захуячь через редюс, или что там в том питоне у вас.
918825
#176 #918823
>>918814
Потому, что ты дебил.
#177 #918825
>>918819
Что у всех погромистов привычка код на словах объяснять?
но я с питера:с
918877
#178 #918826
>>918571
Может ты не от того паука пронаследовался.
#179 #918827
>>918814
тому що перший же ретурн ПРЕРЫВАЕТ сука цикл, потому что выходит из функции

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

потом yield пользоваться научишься
1421 Кб, 2856x2896
sage #180 #918828
>>918814
Проорал с этого детектора.

> А еще - ты немного глупый тестер с Киева.


"немного глупый тестер с Киева" - это я. А ты, случаем, не тот пидор, который меня забанил в конфе?
15 Кб, 701x219
#181 #918831
Всегда мне помогаете,антоши,люблю вас!Но можно ли решить эту задачку через str.count и как?
919200
#182 #918838
>>918814
def doubleChar(customStr):
newStr = ''
for i in customStr:
newStr += i * 2
return newStr
918843919047
38 Кб, 1225x620
#183 #918843
>>918838
Побольше бы таких как ты,анон:3
918855918859
#184 #918855
>>918843
Только ты ничему не учишься.
56 Кб, 645x773
#185 #918859
42 Кб, 600x450
#186 #918877
>>918825

>питера

#187 #918890
>>918774
тысячи их и все одинаковые.
Шоб бесплатно - хероку
Шоб не сильно платно - Диджитал Оушен
Шоб счета выставлять по стране и ндс компенсировать - мастерхост.ру
#188 #918892
>>918774
pythonanywhere
468 Кб, 2560x1600
#189 #918898
>>918543
>>918652
>>918814
>>918029

В очередной раз посылаю нахуй вкатывальщиков. Программирование - не ваше. Сьебали отсюда.
#190 #918901
Поясните, на чем можно кодить под ведро на ведре? Из более-менее адекватного нарыл this: https://kylelk.github.io/html-examples/androidhelper.html
918916918928919016
#191 #918916
>>918901
Хуета это все. Хочешь кодить под ведро, учи джава.
918928
#192 #918928
>>918901
https://kivy.org Вот, можно юзер интерфейсы быдлокодить. Только нахуя с питоном извращаться? Если только по-быстрому какой нибудь прототип приложения для себя сварганить. А так этот >>918916
правильно говорит учи яву.
#193 #919016
>>918901

>на чем можно кодить под ведро


На джаве.
#194 #919044
>>918655
Но тут два прохода по массиву!

>>918753
Берёшь и комментируешь функцию, сохраняющую всё в тхт. Или отдельную тестовую функцию создаёшь, которая и вызывает только то, что нужно. В чём проблема-то твоя вообще?
919049
#195 #919047
>>918838
Ты крыса, надо было ему варик с yield написать чтобы у него мозг взорвался.
А хотя у него мозга нету же OH, SHI~~~
#196 #919048
>>918802
Нахуй пошел, еблан.
Метод ему потестить, охуеть. Письку свою подергай лучше.
#197 #919049
>>919044
Дважды прошелся по массивам твоей мамки.
#198 #919051
Поясните за asyncio, в частности aiohttp. Почему он лучше синхроных фреймворков, почему внутри той же джанги нельзя просто использовать асинхронные функции.
И вообще, где есть понятное изложение async/await синтаксиса?
919086919235
#199 #919086
>>919051

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


Я думаю что можно, но ты должен сам заботится о безопасности чтения/записи всех расшаренных объектов, а это достаточно заебно и надо четко понимать как эта вся хуйня работает и все равно где-нибудь что-нибудь проебешь и оно выстрелит вплоть до внезапной смерти интерпретатора.
919159
#200 #919089
>>918753

Для своёго юнит-теста подготовь фикстуру и стабай метод который отвечает за возврат данных в txt.
#201 #919159
>>919086

> о безопасности чтения/записи всех расшаренных объектов


Хуй знает как сделана джанга, но если там треды и примитивы синхронизации типа локов/семафоров, то достаточно просто заменить их на асинхронные аналоги. Но, да, если бы всё было так просто, то это давно бы уже сделали.
919253
65 Кб, 554x768
#202 #919191
Пишу загрузчик файлов по типу download master'a. На вход поступает список ссылок, он всё это выкачивает. Подскажите, как проверить размер файла перед загрузкой и, если файл уже есть на диске, то сравнить размер загружаемого файла с размером файла на диске и, если размеры разные, то докачать, если нет, то скипнуть?

Сам метод: http://pastebin.com/nFRnCwjH
919194
#203 #919194
>>919191
Мимопроходил и увидел твой вопрос. Не знаю, как в ваших питонах это делается, но размер файла можно получить из заголовка ответа сервера, если он его передаёт, конечно же.
919198
#204 #919198
>>919194
И правда. Сам уже нагуглил.

import urllib2
f = urllib2.urlopen("http://your-url")
size= f.headers["Content-Length"]
print size
919203
#205 #919200
>>918831
регекспом решай
#206 #919203
>>919198
есть мнение, что урлопен скчивает фаел, делай HEAD-запрос через requests
919208919226
#207 #919208
>>919203
Немного переделал метод http://pastebin.com/b3thTwCN

Но теперь не могу придумать, куда впихнуть этот запрос проверки размера файла перед скачкой. Вначале проверяется существует ли файл, а потом идет закачка. Как можно впихнуть две проверки сразу типа, если файл существует, то сравнить еще размеры существующего с тем, что закачивается, а потом, если совпадают, то скипать, если нет, то перекачивать?
919226
#208 #919226
>>919203
Скачивать будет .read() у возвращённого urlopen'ом объекта, насколько я знаю.

>>919208

>Как можно впихнуть две проверки


Берёшь и впихиваешь их без задней мысли, убирая ненужный else - http://pastebin.com/0iAHyATP (код, естественно, чуть переписать, вставив нужные названия функций, файла и т.д.)
919252
#209 #919235
>>919051

>>Почему он лучше синхроных фреймворков


потому что не блокирует IO и это не критерий лучше\хуже
и asyncio и aiohttp не являются фреймворками

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


можно

>>И вообще, где есть понятное изложение async/await синтаксиса?


миллиарды статей уже понаписано, выбирай любой туториал
919320
#210 #919252
>>919226

> Берёшь и впихиваешь их без задней мысли


Он начинает перекачивать файл, даже если он уже скачан до конца почему-то. Такая же хуйня и через requests.

http://pastebin.com/QDVMFMfa
919255
#211 #919253
>>919159

>Хуй знает как сделана джанга


В этом вся и проблема.
7 Кб, 490x144
#212 #919255
>>919252
Наверное, проблема в том, что отображение размера файла идёт в разных величинах. Можно как-то привести к одному?
919261
#213 #919261
>>919255
Привёл просто значения к интовым и завелось. Но теперь, если файл перекачивается, то надо выводить сообщение о том, что он перекачивается, а у меня в любом случае пишет, что он пропускается.

if int(r.headers['Content-Length']) == int(os.path.getsize(i + ".mp3"))
919376
#214 #919279
Господа питонисты, подскажите как на третьем питоне собрать приложение, а-ля ехешник, чтобы на любой машине без интерпретатора запускалась?
919285919286
#215 #919281
Чот я совсем запутался.

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

http://pastebin.com/is2tQz7p
919289
#216 #919285
>>919279
Любой упаковщик питона в exe, да, именно так и гуглить.
Весить будет как слон потому что будет бонусом содержать в себе еще и питон со всеми библиотеками окружения - ну и хуй с ним, пусть весит как хочет.
#217 #919286
>>919279
pyinstaller
#218 #919289
>>919281
Бля, в консоли нормально работает, а в коде - нет.

https://repl.it/FUPN/0

Пишет:

> TypeError: translate() takes exactly one argument (2 given)

919299
#219 #919299
>>919289

> translate() takes exactly one argument


item = str(item).translate(None, ''.join(chars_to_replace))
Хуй знает почему, но элементы со списка не считались строчными. Такой костыль(?) помог.
#220 #919302
Заранее извиняюсь если вопрос тупой...
Как сделать простенькое web app, которое запускается НЕ из командной строки, вряд ли " заказчик"(это учебное приложение) будет активировать виртуальное окружение в терминале и запускать сервер на локалке.
Или смотреть в сторону EXEшников?
919316919318
#221 #919315
Как эти два метода можно объединить в один, чтобы не было вызова одного метода в другом?

http://pastebin.com/zghkcsVf
919355919371919376
#222 #919316
>>919302
развернуть свое веб приложение, которое, естественно запускается из командной строки, на веб сервере. варианта два: развернуть веб сервер с приложением на своем компе и прокинуть 80 порт, на твоем домашнем маршрутизаторе, на твое машину; развернуть в интернет.
919343
#223 #919318
>>919302
Самое простое и правильное - делаешь web app и размещаешь его на каком-нибудь-хостинге. Есть бесплатные типа heroku и pythonanywhere. Или у "заказчика" интернета нет?

Наверное можно создать .bat файл и прописать в нем строчки для запуска сервера приложения. Но нужно позаботиться о зависимостях. Или отправлять зависимости вместе с проектом, или сделать так, чтобы они устанавливались по клику на .bat файле.

web2py что-то такое умеет, кажется. http://web2py.com/books/default/chapter/29/14#How-to-distribute-your-applications-as-binaries

Или гугли какие-нибудь упаковщики в exe.
919343
#224 #919320
>>919235
Ну 3 книги по конкурентному программированию на пайтон я нашел. 2014 2014 2015. Все до появления async-синтаксиса и стало быть устарели. Везде елды и декораторы. Кроме того, мой английский меня тут уже не спасает. Презентеры на ютабе больше заморачиваются вставлять тупые гиковские шутки чем излагать материал и заниматься своим картавым голосом. Статьи посвящены созданию конкретных вещей, предполагают уже хорошее знание модуля и чаще всего представляют из себя водопад кода с мелкими щипотками комментариев.
#225 #919339
Обмазываться сырыми скл-запросами вместо полноценного функционала ОРМ - это слишком говнокод? А то мне так просто гораздо удобнее.
#226 #919341
>>919339
Абстракции для того и придумали чтоб удобнее было. Если тебе удобнее без них то это странно. Если пишешь для себя и тебе реально проще то чому ни. Но если бы мне например пришлось за кем-то модифицировать/дописывать запросы, меня бы сильно это выбесило.
919344
#227 #919343
>>919316
>>919318
Спасибо за ответы.
Хочу пояснить зачем мне это нужно. Пытаюсь осваивать upwork (громко сказано, я там даже не зарегистрирован), пока по силам только парсеры. Просто читаю объявления и пытаюсь прикинуть как это сделать(через пару часов начну писать)...
Так вот, в одном из объявлений описывается простой парсер сайта с вакансиями, который принимает список локаций + ключевое слово, на выходе csv файл с характеристиками подходящих вакансий. В общем, там условия "WEB APP or desktop app" и я подумал, возможно, есть какие-то общие требования по оформлению web app парсеров.
Извиняюсь за сумбурность и многословность.
919352
#228 #919344
>>919341
я пишу учебный проект соло. Когда его будут оценивать, у них слишком бомбанет?
919345919351
#229 #919345
>>919344
Хз я не знаком с образовательными учреждениями и процессом.
#230 #919350
>>919339
ОРМ подходит для коротких\мелких изменений. Типа взять пользователя по айди, что-то с ним сделать, вызвать объект из релетейтед таблички, и с ним что-то сделать, потыкать методы прикрепленные к ОРМ, инфлейтить, дефлейтить пароли например, или параметры.

если в реальности нужно вытянуть какую-нибудь хитровыебанную статистику, или иметь оптимизированный запрос, то нужно юзать sql.
недавно читал статью что можно поиметь анальную жопу с orm который в django, так как когда оно раздуется до больших размеров, то может в особом случае иметь запрос с "NOT IN (стопицот айдишников)", что будет иметь анальную боль.

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

В реальности мы на собеседованиях спрашиваем и по SQL, и по ORM(как в других местах я хз).
#231 #919351
>>919344
Никак не бомбанет, есть вероятность что они и сами ОРМ не знают, а SQL видели только на картинках в интернете.
#232 #919352
>>919343
Я не знаком со спецификой заказчиков на биржах и насколько они знакомы с запуском скриптов которые заказывают. Но в пайтон хорошим тоном является создание пакета со своим setup.py requirements.py и Procfile и runtime.txt. С таким комплектом его будет просто развернуть локально или на сервере, вместе с зависимостями. От заказчика в таком случае требуется только интерпретатор и минимальные способности. Большинство проектов публикуются именно так.
919353919399
#233 #919353
#234 #919355
#235 #919371
>>919315
Нахуя? для этого методы и придумали, чтобы разделять логику, и вызывать методы из других методов, если хочешь чтобы первый не могли вызвать из другого объекта, сделай его приватным.

другой вопрос я не понимаю зачем тебе там глобал переменная, и рав инпуты. их можно выделить в отдельные атрибуты и методы
919376919431
#236 #919373
Привет, анон. Есть одна качалка картинок с досок. Написал синхронно - заебись, работает. Переписал на aiohttp - работает в 7 раз быстрее. Чего конкретно асинхронный код не ждёт для такого прироста скорости? Я ведь реквестирую картиночку, получаю её, сбрасываю на диск. Этот алгоритм выглядит не так при асинхронном подходе?
919383919386
#237 #919376
>>919371
Есть подозрение, что он немного дурачок и имел в виду строчки 25 и 26, где одна и та же функция два раза подряд вызывается.

>>919315
Даже если ты не имел в виду строчки 25 и 26, все равно сделай так:

>token = get_..._token(playlist)


>if token: return token


>else: ...


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

>>919261

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


Ну так выводи, кто тебе мешает?
919431
#238 #919383
>>919373
при асинхроном, он не ждет когда ты скачаешь картинку. Нужно понимать что борда работает тоже ассинхронно, и может выдовать тебе картиночки нон стоп, А на установить соедение, сделать запрос, получить картинку, положить картинку, на все это нужно время.

кажеться что вроде хуйно 300ms-500ms. А на деле в 7 раз быстрее.

и вообще я твой вопрос не понял.
919393
#239 #919386
>>919373
Он отправляет все запросы "одновременно". Соответсвенно, на 10 картинок в синхронном коде нужно ждать 10 раз, пока сервер откликнется на запрос и начнёт высылать данные. В асинхронном, хотя на каждую картинку нужно ждать ответ то же время, ожидание это происходит "параллельно", то есть для тебя это время равно ожиданию запроса на одну картинку. Если в двух словах.
919393919407
#240 #919393
>>919386
>>919383
Ебать, дебилы малолетние, глупые.
#241 #919399
>>919352
что за Profile?
919403
#242 #919403
>>919399
Перечитай внимательней и загугли. Список команд для экзекуции в рамках проекта.
919419
#243 #919407
>>919386
т.е. я устанавливаю соединение, реквестирую картинку, затем "замораживаю" выполнение и отправляю все остальные реквесты, так? Затем приходит ивент, мол, сервер готов отдать картинку и задача пихается в ивент луп?
919432
#244 #919419
>>919403
кто эти команды выполняет?
в РАБИ у меня foreman - его что ли ставить придется?
919423
#245 #919423
>>919419
Да никто не выполняет. Это обычный файл с листингом команд чтобы запустить проект. используется в девопс платформах, и локально. Удобно когда проект состоит из многих частей на разных технологиях.
#246 #919431
>>919376
Под объединением я имел ввиду из двух методов сделать один и короче, если это возможно.

>>919371

> вызывать методы из других методов


То есть, это нормально? Я думал, что это считается плохой практикой и методы должны быть независимы друг от друга.
919761
#247 #919432
>>919407
ты эта, парсерописака, сделай блять файл async_makaka.py в нем сделай две функции обычных, в них напиши принт('эээ') потом time.sleep(5) и запусти.
потом сделай две корутины по тому же принципу и запусти.
и ты как бы просветлеешь.
919570
#248 #919452
Хелпаните,плиз!
http://rextester.com/XYOA35844
919460
#249 #919455
Анончики,вычисляю площадь по Герону.Найдите ошибку плиз.
P_trian=a+b+c
S_trian=math.sqrt((P_trian/2)((P_trian/2)-a)((P_trian/2)-b)*((P_trian/2)-c))
919458
#250 #919458
>>919455
P_trian=a+b+c
S_trian=math.sqrt((P_trian/2)((P_trian/2)-a)((P_trian/2)-b)*
((P_trian/2)-c))
Знаки умножения чому то отклеились.
919459
#251 #919459
>>919458
И снова!За шо,Двач?!
#252 #919460
919463
#253 #919463
>>919460
Но ты ведь ничего не сделал.
919464
#254 #919464
>>919463
не ту ссылку блять, что за сайт ебанутый... вот http://rextester.com/SZGD83635
919465
1 Кб, 101x77
#255 #919465
>>919464
тоже хуйня какая то.
919466
#256 #919466
>>919465
епта. ты у себя запусти на кампухтаре
919468
12 Кб, 482x204
#257 #919468
>>919466
умник хуев,так и скажи что не знаешь.
919469
#258 #919469
>>919468
ай ты долбоеб... убери скобки второпитоновый ты дегенерат
919473919474
#259 #919473
>>919469

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


А что плохого?
919477919478
#260 #919474
>>919469
так бы сразу,няш:3
#261 #919477
>>919473
ничего, но если еще и дегенерат, то не оч как то
2 Кб, 209x46
#262 #919478
>>919473
ток не понял чего ты тут сделал.Можешь объяснить?
919480919515
#263 #919480
>>919478
прошелся по х с нулевой позиции до конца, с шагом 2 и вывел для каждого шага текущую позицию и позицию+1
Почему программа постоянно выполняет только else ? Аналимус #265 #919529
def season(x):

winter = (12,1,2)
spring = (3,4,5)
summer = (6,7,8)
autumn = (9,10,11)

if x == winter[0:3]:
print('Now is Winter!')
else:
print('Something is wrong !(')

season(2)
919530919531
#266 #919530
>>919529
Потому что индексация начинается с нуля [0:2]
#267 #919531
>>919529
Ты хочешь сравнить x с последним элементом кортежа winter или что? Тогда лучше winter[2]

12 - 1 - 2
919532919534
#268 #919532
>>919531
12 - 1 - 2 <- элементы
0 -- 1 - 2 <- индексы
#269 #919534
>>919531
если x равно одному из чисел кортежа, то программа выводит время года, x - это месяц
919599
#270 #919536
Мб кто знает, где норм за async/await написано?
919544
61 Кб, 670x836
#272 #919545
Анон,
вот есть код типа http://pastebin.com/0KcmYdU9

Почему импортированная функция не видит ни модулей, ни переменных основного? Ладно еще модулей, но константы почему не видит-то?
919549919556919629
#273 #919549
>>919545
так это не работает в wow_much_useful_functions.py CONSTANT доступна только в текущем файле
#274 #919556
>>919545
у меня result из основного и не работает - name 'CONSTANT' is not defined, т.е. функция из импортированного модуля не видит переменные основного
#275 #919570
>>919432
Ебать и правда прозрел. От души, дружище
#276 #919593
Месяц в питоне и кароч вопрос - что нужно знать просто на зябись? Какие основы?
Сейчас читаю Лутца и у него дохуя воды, но что самое странное это то что в других книгах не было всяких lambda и прочих фишек. Есть ещё какие нибудь книги где описаны все важные хуйни (лутц пиздец как не нравится).
Читал уже эти:
Майкл Доусон - Программируем на Python
AByteofPythonRussian
919714919741920127
#277 #919599
>>919534
if x in winter
920080
#278 #919628
>>919339
Смотря для чего.
919718
#279 #919629
>>919545
А с какого хуя она должна их видеть?

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

И разницы между модулями и константами никакой нет в данном контексте - и то и другое объекты из другого namespace.
919632
#280 #919632
>>919629
уже прочитал про globals, которые нихуя не globals. Это еще можно понять, даже полезно.
Но что-то хуево от такого сценария: у меня уже загружен datetime к примеру, а импорту похуй - у него свой модуль будет, в своем неймспейсе, со своими шлюхами.
Хм, а если я сделаю что-то уровня
mymodule.datetime = datetime?
ну оче не хочется с десяток модулей два раза грузить
919639919640919646
#281 #919639
>>919632
Модули кешируются. Сделай модуль mymodule.py с одной print() строкой и заимпорть его миллион раз из разных мест. Затем посмотри, сколько строк принт написал.
#282 #919640
>>919632
Алсо,

>def foo(arg = CONSTANT)


дефолтное значение arg'у присваивается на стадии загрузки файла. Никакого CONSTANT в твоём случае вообще не существует на тот момент, даже если бы у импортируемого модуля был доступ к переменным импортирующего. Но это ебанутый способ какой-то ты выбрал, и слава богу, что он не работает, а то пытающийся понять твой код потом повесился бы. Вынеси константы в отдельный файл и импортируй его везде, где надо.
#283 #919646
>>919632

>Хм, а если я сделаю что-то уровня


>mymodule.datetime = datetime?


Ну сделай, хуле. Раз ты не понимаешь сути модулей, то кто ж тебе запретит.

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

Более правильный вариант "для себя" все расшаренные объекты описывать в отдельном модуле и подключать его везде где они нужны, хотя это тоже не совсем труъ и нормально прокатывает как раз только для "констант", т.к. обязательно будет путаница с инициализацией и обновлением значений объектов из этого модуля если он подключается в разных местах.
#284 #919648
Собрал exeшник pyinstalleroм, дык он сука при запуске кроме основного окна открывает ещё и DOSовское. В него пишутся все действия после нажатий кнопок, вызовы функций итд. И вот это DOSовское окно прям напрягает и действует на нервы.
Pythonы, есть варианты избавиться от этого окна или скрыть его как то, мож к pyinstallerу ключи какие нужны?
919652919769
#285 #919652
919658
#286 #919658
>>919652

>-w, --windowed, --noconsole



Чувак, ты охуенен. Спасибо!
919769
#287 #919714
>>919593

>в других книгах не было всяких lambda и прочих фишек


Ты походу тупой или прикалываешься. Почитай Донцову
920075
#288 #919718
>>919628
Для всего. Не хочу пользоваться SQL Alchemy, а просто пишу голые запросы.
919743
#289 #919721
>>919339
Говно еще то, заебешься лапшу разруливать.
не нравится алхимия - попробуй peewee orm, легкая и удобная
#290 #919741
>>919593
Ну lambda, ну и что?
Я еще понимаю когда yield не понимают.
920075
#291 #919743
>>919718
Для всего не пойдет.
Если у тебя не больше пяти разных функций, в которых прописаны тексты SQL запросов, то нормально, если больше, то полная хуйня получается.
#292 #919761
>>919431

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



Обычно пишут, что лучше разбивать большие функции и методы на много мелких. Которые можно потом использовать отдельно(это скорее побочка, чем результат, разделения функций на более мелкие).

Когда мы разделяем их на много мелких, читать код проще.

Разумееться часто бывает что есть входная функция, или метод интерфейса, которую нельзя сделать универсальной и независимой, и это нормально. Главное чтобы она умещалась на 1 экран.
919773
#293 #919769
>>919648
>>919658
Бля, ты писал эту простыню вместо того чтобы загуглить?
#294 #919771
ебать у меня только что пригорело от множественного наследия.. сука должен быть оказывается один базовый класс в таком случае. ЗАЧЕМ блять!!??!?!??! ведь и так все классы наследуются от object
#295 #919773
>>919761

>побочка


>Разумееться


>умещалась на 1 экран


Икспиртиза уровня /pr
42 Кб, 600x600
#296 #919808
Суп.

Я отдаю джейсон во вьюхе:

(json.dumps({
'privet': obj.privet,
'kakdela': [
{
'key': obj2.hello,
'value': obj2.world
}
]
}))

Есть две модели, сначала я отдаю данные из первой модели (obj), потом из второй (obj2). И если из второй модели объектов больше одного или меньше одного (ну ноль, то есть), то всё валится. Если же один - всё работает. Я не правильно составил конструкцию? Или какой-то фор нужно всунуть в джейсон? Я уже охуел тут принтить это говно в консоль
919848919864
36 Кб, 666x283
78 Кб, 1336x426
#297 #919812
>>916061 (OP)

Дошел до классов на codecademy и понял, что не все понимаю. Может кто объяснит о классах в Питоне и в принципе. Почему класс принимает (object). Что такое __init__ , что такое (self) , что они делают. Я практически не вижу разницу между классом и функцией. читал в мануала, но это помогло не очень сильно, буду благодарен, если кто-то разбирается и поможет с пониманием этого
919866919868919913
#298 #919848
>>919808
Какая ошибка-то?
919855
#299 #919855
>>919848
UnboundLocalError: local variable 'obj2' referenced before assignment

То есть объявлена переменная неправильно. Гуглил, делал её ГЛОБАЛ. После этого на первую переменную такой же ерор. Её глобал. Такой ТРАБЛШУТИНГ не особо к чему приводил. Да и вообще, как так случаеться, что с одним значением работает, а с 0 или 1+ - не объявлена переменная?
919862919872
#300 #919862
>>919855
Это значит, что ты обращаешься к переменной obj2, но она еще не объявлена. Покажи код.
919889
#301 #919864
>>919808
Это джанго? Как из модели селектишь? Нахуй ты код без форматирования скинул?
#302 #919866
>>919812
g: ООП
919946
#303 #919868
>>919812
__init__ конструктор класса, вызывается по имени класса при создании экземпляра класса.

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

Класс это полноценный объект с процедурой инициализации через конструктор и механизмом наследования, экземпляр объекта класса создается явно и хранится все время выполнения программы (ну или до явного уничтожения)

Функция это в принципе подмножество класса, экземпляр функции как объекта можно рассматривать как существующий только во время ее выполнения.
#304 #919872
>>919855
Очевидная процедурная ошибка у тебя где-то при заполнении этих самых значений.
919889
#305 #919882
Кто работал с модулем telebot? pyTelegramBotAPI
Как сохранить к себе пикчу, которую кидает пользователь в твоего бота? По-моему, это делается как-то через id картинки...
хелп
#306 #919889
>>919862
В том-то и дело, что она объявлена и с одним объектом работает, если его нету или 1+ - то не работает.

>>919862
http://pastebin.com/rSw9jESA

>>919872
То есть проблема в модели?
919897
#307 #919897
>>919889
А ты уверен, что у тебя эксепшн не вылезает? Использовать переменные, объявленные внутри try/except блока, вне его, до добра не доведёт.
919899
#308 #919899
>>919897
Хм. И правда. Проебал я, что .гет() забирает только один объект. Спасибо
#309 #919913
>>919812
Классы это очень просто. Относись к ним как к стелажу для хранения информации с функцией станочка.

Есть класс
Пацан(обыкновенный):
Имя
Погремуха
Лет

ПацанПопрынай:
..Если мелочь-звенит:
....Ретерн мажорчик
Иначе
Ретерн лох

ПацанНормальный(списокЧуханов):
..Если пацан в списке чуханов:
....ретерн фалс
..елс ретерн тру

Ну и тд
919946
394 Кб, 700x517
#310 #919926
theme.py

[CODE]COLOR_1 = "карасик"
themeStr = """COLOR_1: """ + COLOR_1 + """ // main color"""[/CODE]

app.py
[CODE]import theme
theme.COLOR_1 = "уточка"
print(theme.themeStr)[/CODE]

Вывод консоли:
$ python3 app.py
COLOR_1: карасик // main color


Как изменить переменную COLOR_1 в строке themeStr в файле app.py?
Нужно получить уточку, а выходит только карасик.
919928
#311 #919928
>>919926
Значение в themeStr записывает в момент импорта theme.py. Дальнейшие изменения COLOR_1 никак на themeStr уже не влияют.
Сделай themeStr функцией, например, тогда будет норм. Однако, переменная капсом предполагает, что это константа, так что что-то ты тут не так делаешь.
919935
#312 #919935
>>919928
Спасибо
#313 #919946
>>919866
>>919913
Спасибо, но не понятно.
>>919913
Тоже не понятно, но вот из-за таких людей мне нравится изучать что-то новое, если говоришь, что просто значит это просто, пойду читать.
919960
XOR #315 #920060
Вот такая вот функция типа XOR шифрование должно получиться, но выдает ошибку:TypeError: unsupported operand type(s) for ^: 'str' and 'str'
Я вроде бы перевел bin'ом. Че не так ?(

[CODE]def binor(st,key):

st = str(st).encode()
fg = int.from_bytes(st,'big')
binr = bin(fg)

key = str(key).encode()
kfg = int.from_bytes(key, 'big')
kbinr = bin(kfg)

xr = binr^kbinr

print(xr)

binor('hello','world')[/CODE]
920082920083
#316 #920075
>>919741
>>919714
Вы тупые чтоль? Говорю что в тех книгах не было многой хуйни которая была у лутца, но книга лутца мне не нравится. В пизду вас.
920081
#317 #920080
>>919599
Помогло)) Спасибо,дядя
#318 #920081
>>920075
Читай окунание в питон, для кого пасту писали, бля.
920286
#319 #920082
920088
#320 #920083
>>920060
Совсем лалка что ли? ''.join(map(lambda a,b: ord(a) ^ ord(b), str1, str2))
920084920088
#321 #920084
>>920083
Каст в chr забыл, ну да похуй
#322 #920088
>>920082
Что за ord()? Куда применять ?
>>920083
А это что за магия ?
Вообще нихуя не пояснили (
У меня просто binr и kbinr читаются как str, а какого хуя стр если я делал из них bin
920095
#323 #920095
>>920088
Что по-твоему должна сделать функция bin?
Сиди и дрочи те два комментария и https://docs.python.org/3/library/functions.html до просветления.
920101920112
#324 #920101
>>920095
bin , как по мне, должна переводить циферки в двоичный код, который я потом мучаю с XOR и получаю шифр
#325 #920112
>>920095
я так понял что bin() - строка, а как мне тогда посчитать битовыми операциями это всё дело ?
920202
#326 #920118
Анон, дай совет.

В общем, я тут заинтересовался играми-кликерами, которые многопользовательские.

Мне вот стало интересно, как сервера справляются с нагрузками? Какие хитрости есть? Может подкинете каких-нибудь статей, примеров или расскажете про свой опыт.

Спасибо.
920121
#327 #920121
>>920118
Но они же на клиенте всё считают, разве нет?
920123920137
#328 #920123
>>920121
Если предположить, что так, то как они защищаются от банальных накруток? Ведь нужно передать данные на хранение.
920140
#329 #920127
>>919593
читни think python
лямбда-функции это как запись на полях тетрадки - шоб быстро тыры-пыры и в продакшн, для всяких простых хуйовин которым не нужно пояснение и для сложных если ебёт три строчки лишние писать
#330 #920137
>>920121
На хуенте, пездене тваей жопы.
#331 #920140
>>920123
Никак. Зачем? Это же не мморпг. В том же куки-кликере даже ачивки на читы и использование автоматических кликеров (с большой частотой) есть.
920144
#332 #920144
>>920140

>Никак. Зачем?


Ну как это. Маструбация на рейтинг в общем списке и все такое.

Окей, пойдем дальше. Многие, может быть, помнят Agar.io. Тут с читами сложнее, но игра обменивается координатами и размерами клетки в реальном времени. Есть идеи?
920147
#333 #920147
>>920144

>Маструбация на рейтинг в общем списке и все такое.


Ну если есть общие списки, по просто ловят тех, кто слишком часто кликает или внезапно получает кучу очков, вызывает функции какие-то и т.д., и убирают их из таблицы, если хотят.

>Есть идеи?


Ну, вебсокеты, например. Или в чём вопрос вообще?
920153
7 Кб, 500x500
2 Кб, 498x503
#334 #920150
Анончики, почему при попытке открыть изображение (пик 1) мой треугольник превращается в пик 2? нихуя не понимаю

from PIL import Image
img = Image.open('путь к треугольнику')
img.show() --- и получается второй пик. втф?
920183
#335 #920153
>>920147

>в чем вопрос вообще?


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

1. Понятное дело, что каждое событие отправлять очень плохая идея. (Сам себя задудосишь). Другими словами нужно отправлять какой-то поток данных, которые потом можно без проблем преобразовать, сохранить в быстрое хранилище, а потом пересчитать и пиздать дать неверным.

2. Как паковать данные? Слать json просто, но объект может стать слишком жирным и все такое.

3. И сколько выдержит соединений не очень дорогой сервер?
920157920159
#336 #920157
>>920153
1. Про лоадбадансеры не слышал, дебил?
2. msgpack
3. Что ты имеешь в виду под таким сервером? В 2к17 заведено держать кластер микросерверов на хайлоаде.
#337 #920159
>>920153
и вообще, пиздируй в /web/ c такими вопросами
#338 #920177
Посоны, выручайте. Не появляется менюха на форме. Не пойму, где косяк (inb4 "В ДНК")
920178
#339 #920178
920256920684
#340 #920183
>>920150
двач по прежнему не умеет трифорс
#341 #920198
>>919960
Спасибо, теперь я все понял.
#342 #920202
>>920112
Тебе уже написали - ord(). Каждый символ строки переводишь ордом в число, ксоришь с символом другой строки и объединяешь результат. Что-то вроде:
b''.join( map(lambda a,b: bin( ord(a) ^ ord(b) ), str, key)
#343 #920239
DJango, extra() внутри которого sql возвращающий два значения (id, name), как мне добавить именно два поля, а не одно?
920284
#344 #920256
>>920178
Эммм.. И таки щито, никто не в курсе?
#345 #920284
>>920239
for value in (id, name):
#346 #920286
>>920081

>окунание в питон


Звучит как "Сантехника для чайников"
#347 #920345
Питоны! Быстронубский вопрос!
Нужно прочитать файл и сделать из него массив. как правильнее:

f = open('bullshit.txt', 'r')
arr = f.read().split(' ')
f.close()

или просто:

arr = open('bullshit.txt', 'r').read().split(' ')

То есть, в смысле, не подвиснет ли во втором случае файл в сраном лимбо, отжирая память и нихуя не делая?
920363920365
#348 #920363
>>920345

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



его сборщик мусора соберет, когда он станет нинужен

или в конце скрипта все освободится

хочешь делать по понятиям, делай так:
with open('azaza.txt','r') as data_file:
____array=data_file.read().split(' ')
920383
#349 #920365
>>920345
Через ридлайн и последующее разделение не проще?
920379920383
#350 #920379
>>920365
в данном случае однохуйственно, так как весь файл один стринг (тестовое задание, хули).
но в целом, как я понял, если иметь дело с маленькими файлами и простыми скриптами, можно ебашить ванлайнерами и не ебать мозги, но если что-то тяжелое парсить, то лучше создавать инстанс, и после того как распарсил - закрывать?
920383
#351 #920383
>>920365
Видимо нет. Он прочитал все из файла и разбил на слова - все в одну строку. readline() возвращает одну строку за раз. То есть,ему нужно итерироваться по фалу, чтобы все строки добавить. Типа 'for line in file'. Есть еще readlines(), который создает список всех строк, но это не то, что ему нужно, как я понимаю.

>>920379
Просто делай, как делают все нормальные пацаны >>920363 В этом случае файл закроется сам после того, как выполнится код в блоке with.
920391920411
#352 #920391
>>920383

>Просто делай, как делают все нормальные пацаны


Окей. потестил, работает. Пойду читать читать про with (дяденьки, я не настоящий питонщик, я просто своей тянке помогаю домашку делать, зная о питоне приблизительно то, что нагуглил за 10 минут).
920416920421
#353 #920411
>>920383
Ну да, по строчке и так пробежать по файлу
#354 #920416
>>920391
Где учится твоя тянка? Просто интересно, в каком вузе (школе?) питон преподают.
920419
#355 #920419
>>920416
Она биолог, и это магистратура. Биоинформатика очень на питон завязана.
920426
55 Кб, 340x270
#356 #920421
>>920391

> я просто своей тянке помогаю домашку делать


> своей тянке


пиздец
#357 #920426
>>920419
О, звучит круто. Ну так а чем конекретно они там занимаются на биоинформатике и для чего питон используют? Название вузика ты не скажешь, да? Знаю, что в ВШЭ есть анализ данных в биологии или что-то такое. Что еще, МГУ?
920443
#358 #920443
>>920426

>Ну так а чем конекретно они там занимаются на биоинформатике и для чего питон используют?



Биолгия сейчас дошла до того, что там блядь сплошное моделирование и бигдата.
Отсеквенировал геном и сиди парси до охуения.
Ну, то есть начала у тебя есть риды, которые разрозненные обрывки ДНК, разной длинны, которые нужно собрать в полный геном.
А потом ты собрал, и сидишь над пятикилометровым стрингом вида "ACCTGGGGTTTAAACCTTTAAAAGGAAGG" и тебе из этой хуйни нужно набигдатить какую-нибудь полезную инфу.
питон там используется больше как вспомогательная херь, как я понял. Ну то есть все эти сборшики генома и парсеры, эксплореры давно есть, но они срут просто чуть менее бигдатой. И вот бедные девочки-лаборатки, которые пришли учится про зверюшек, сидят и пытаются всосать питон чтобы парсить бигдату и несколько охуевают от такого нежданчика.
А еще есть молекулярная динамика, но это уже больше к биохимии. Но там такая ж хуйня. Только еще и с эмуляцими недельными на мейнфреймах. Питоном там вроде тоже конфигурируют эту эмуляцию. Не до конца уверен.

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

>>920426

>Название вузика ты не скажешь, да?


Чего ж не сказать, КФУ.
920451
#359 #920451
>>920443
Спасибо, анончик, стало ясней.
920587
#360 #920505
Сап питонач, есть один логфайл... и его надо парсить с отсечением набора паттернов, что посоветуете на этот счет?
920515
577 Кб, 631x475
#361 #920515
104 Кб, 1296x799
#362 #920569
Сап, програмач.
Запилил скрепт на путоне для скачивания файлов из тредов.
Жрёт json, а на выходе файлы из шебем-рак-тредов.
Покритикуйте, что в нём улучшить?
920574920680921297
#363 #920574
>>920569
Переделай под асинхронщину.
19 Кб, 891x234
#364 #920579
Анон, добавил Foreign key к модели и старые объекты перестали отображаться в админке, что может быть?
920594
#365 #920587
>>920451
кстати, если интересно с примерами:

>Sometimes statistics on nucleotide sequences are limited to X-fold degenerated codons. The following code provides some functions to solve this problem, by generating a subsequence.


http://biopython.org/wiki/Degenerated_Codons
920596
#366 #920594
>>920579
Скорее всего при миграции вместо указания default-значения ты их просто ебнул
920600
#367 #920596
>>920587
Спасибо, погляжу.
176 Кб, 670x1008
#368 #920600
>>920594
да, просило дефолт - указал 0 или что-то такое.

> просто ебнул


в каком смысле? они из-за неправильной связи так работают/отображаются? есть способ пофиксить?
бтв, в модели стоит blank=True, что ставить дефолтным в поле, чтобы связей не было(т.е. не было related объектов)?
920605920621
#369 #920605
>>920600
Просто предположение, потому что я не в курсе как там у тебя все устроено.. Но, если ты добавил ForeignKey на автора поста, то, взможно, ты видишь только посты созданные текущим залогиненным пользователем?
920619
#370 #920619
>>920605
Нет, там линк на изображение

> bg_img = models.ForeignKey('Image', related_name='background_for', blank=True)

920642
#371 #920621
>>920600
Открой файл миграции да посмотри, и саму бд открой, она не касается, просто пяток табличек
#372 #920638
Програмачеры, кто где работает?
Планирую вкатываться на вакансию: "Джуниор-фласк-круд клепатель", что скажете? Как грамотно подготовится к собеседованию?
#373 #920642
>>920619
Зайди в шелл и проверь на месте ли твои объекты.
python manage.py shell
from your_app.models import Post
p = Post.objects.all()
p.count()

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

> bg_img = models.ForeignKey('Image', related_name='background_for', blank=True)


blank=True влияет на то, будет ли поле обязательным в формах. Чтобы разрешить пустые значения в бд, тебе стоит писать null=True http://stackoverflow.com/a/8609425/5201699
#374 #920643
>>920638
Жру говно на апворке. Насчет собеседований и фласка ничего не смогу подсказать, к сожалению.
920648
sage #375 #920648
>>920643

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



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

Какая ставка у тебя, сколько долляриев в месяц в среднем имеешь?
920653
#376 #920653
>>920648

> через пару лет тоже вкачусь


Правильное решение. Лучше нормально прокачайся, а потом уже иди во фриланс или просто удаленку.

>Какая ставка у тебя, сколько долляриев в месяц в среднем имеешь?


Мелкие фиксед-прайс проекты в основном беру. Нифига не зарабатываю, практически - стыдно сказать даже. Тоже похуярю в офис, скорее всего. Или в супермаркет. Или дворником..
#377 #920657
>>920638
Работаю бизнес девелопмент консультантом в сфере добычи полезных ископаемых и тяжелой промышленности, лол.
Стаж питона 2 года, всего программлю уже больше половины жизни - 15 лет считай.
920693
#378 #920680
>>920569
Кинь на Pastebin я поковыряю потом отпешусь тут.
#379 #920684
>>920178
Я не верю, что тут никто не понимает в QT... Аспада, может всё же найдётся пряморукий QT-господин, который глянет мой код и укажет мне, слабоумному, где же у меня косяк?

Что ж я там не так сделал, что менюха не отображается?
920686920754
#380 #920686
>>920684

>где же у меня косяк?



>использовать Qt


this
920688
#381 #920688
>>920686
Окей, предложи другой вариант, на чём делать форму? При том, что там mdi и будет дохера всего, куча панелек, кнопок и диалоговых окон?
#382 #920693
>>920657
Для каких задач используешь питон?
920769
#383 #920703
>>920638
на апворке, 20 даллларав в час минус 10 проц. Хочу больше, т.к. биллю не каждень
920752
#384 #920752
>>920703
минус 20% же, не?
920779
#385 #920753
>>916061 (OP)
Как реверснуть строчку в Питоне?

Здесь же, подходит ли Питон, как язык для начинающего?
мимо_новичек_хуила
920756
#386 #920754
>>920684
Да ты охуел руками формы херачить?! Думаешь кто-то будет твой высер читать?
#388 #920765
>>920756
Двачую.
Нюфаги совсем охуели, нет бы какую реальную мозголомку принести.
#389 #920769
>>920693
Веб-девелоп обычно, я вяленько пилю сервисы на джанго под каждого клиента и в целом документооборот, ну и сайты-визитки на все случаи жизни, всякая ебала типа конвертора списка фамилий-сроков-названий семинаров в pdf для печати с фирменной подложечкой.
Ну и PANDAS конечно, обожаю его <3
920773920780
#390 #920773
>>920769

>Ну и PANDAS конечно, обожаю его <3


А, так это ты тут частенько реплаишь "PANDAS" к разным постам? :)
920875
#391 #920779
>>920752
там зависит от потраченных клиентов на тебя денег
у меня уже больше 1000, так что 10 процентов
#392 #920780
>>920769

>всякая ебала типа конвертора списка фамилий-сроков-названий семинаров в pdf


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

920806920875
64 Кб, 918x371
#393 #920782
Какое то ебанутое условие, можете пояснить, что от меня хотят?
#394 #920783
>>920782
Хотят чтобы ты приседал на бутылку, чего непонятного
#395 #920790
>>920782
Типа корзину нужно запилить с товарами? ( не силен ни в анг., ни в /pr)
#396 #920794
>>920782
ввод: количество маленьких бутылок, количество больших бутылок
вывод: сколько бабла можно с них поднять = $0.10колво_маленьких+$0.25колво_больших
вывод со знаком даллара и с двумя цифрами после запятой
920795920799
#397 #920795
>>920794
умножение сожралось:
= $0.10 x колво_маленьких + $0.25 x колво_больших
#398 #920797
>>920782
За каждую литровую (или меньше) бутылку выплачивать 10 центов. За больше чем литровую - 25 центов. Пользователь вводит количество бутылок каждого типа. И должен получить в ответ сумму которую выдадут за здачу этих бутылок. Ответ нужно форматировать таким образом чтобы там всегда был значек $ и два знака в дробной части.
920799
#399 #920799
>>920794
>>920797
Спасибо анон, разобрался.
#400 #920805
Парни кто-что знает о конторе 42coffeecup?
Набирают питонщиков постоянно на удаленку после прохождения теста, кто-то работал, пробовал делать тестовое?
920809921356
#401 #920806
>>920780
Это примерно как оператор клининговых систем.
920875
#402 #920809
>>920805
Впервые слышу. Попробуй, потом расскажешь че там.
920816920821
#403 #920816
>>920809
Нихуя он не расскажет. Забьет хуй.
#404 #920821
>>920809
я вкатывальщик, там нужно как внутреннее так и енд2енд тестирование, которое я не знаю, думаю через неделю (может меньше) возьму тестовое, оно там автоматическое через джаббер-бот.
921318
8 Кб, 407x134
#405 #920830
Анончи,помогите сделать шифр Цезаря.Посмотрел я на примеры в интернетиках ваших,но там какая непонятная хуйня с ASII.ЧЯДНТ?
#406 #920833
>>920782
Откуда задача?
920922
#407 #920834
>>920830
Ты даун. Почитай нормально про алгоритм, сделай на бумажке, а потом уже код пиши.
920836
#408 #920836
>>920834
а ты тогда тут нахуя сидишь,няш?
920839
#409 #920839
>>920836
Если у тебя будут вопросы по питону - спрашивай.
920840
#410 #920840
920841
#411 #920841
>>920840
>>920840
И где тут вопрос по питону?
920842
#412 #920842
>>920841
там где знак ворпроса,глупенький:3
920844
55 Кб, 1576x815
#413 #920843
920847920848
#414 #920844
>>920842
На него уже ответили.
#415 #920845
>>920830
"Твоя мамка шлюха".map(c ⇒ (c + 3).toChar).mkString
920847920848920850
#416 #920846
Котаны, какой минимум нужно знать для успешного собеседования на джуна?
Хочу заводить трактор с ебаной жопосрани, но пока хз стоит ли
#417 #920847
>>920843
>>920845
с пояснением,анончи,плиз
920849920857
#418 #920848
>>920843
>>920845
"".join((chr(ord(c) + 3) for c in "Твоя мамка шлюха")
920850
#419 #920849
>>920847
Что конкретно тебе не ясно?
920855
#420 #920850
>>920845
>>920848
Это неправильно конечно же.
920856
#421 #920855
>>920849
вот 9 строка,что ты там в квадратных скобках понаписал?12 строка,resuls.append?13 строка,return.join?
920858920867
#422 #920856
>>920850
С хуёв ли?
920859
#423 #920857
>>920847
для каждого символа открытого текста:
____находим его индекс (порядковый номер) в алфавите
____прибавляем к этому числу 3 по модулю 26 (длина алфавита)
____букву по этому индексу добавляем в результирующую строку
#424 #920858
>>920855
То есть ты не знаешь базовых конструкций языка?
920861
#425 #920859
>>920856
строку "azaza" своей функцией зашифруй и посмотри на результат
920864
#426 #920861
>>920858
иначе я бы тут не сидел
#427 #920864
>>920859
result: String = d}d}d
res0: String = azaza
920869
#428 #920867
>>920855
9 строка это

>____находим его индекс (порядковый номер) в алфавите


>____прибавляем к этому числу 3 по модулю 26 (длина алфавита)


>____букву по этому индексу добавляем в результирующую строку



три в одном

12 строка - к списку символов шифротекста добавляем тот, что только что получили

13 строка - из списка делаем строку

можно делать и так:
result=''
for character in cleartext:
____ciphertext_char=...
____result = result + ciphertext_char

но это не вполне грамотно с учетом устройства питоноских строк (они неизменяемы, иммутабельны, поэтому на ровном месте будет квадратичная сложность)
#429 #920869
>>920864

>}


Ну и откуда } в алфавите-то? Почитай про шифр Цезаря короче.
920874
#430 #920874
>>920869
Но ASCII, UTF-8 это полноценные алфавиты.
920887
#431 #920875
>>920773
Неа, но я с ним солидарен.
>>920780
>>920806
Очевидно же, что айтишная составляющая не главное, и в первую очередь я занимаюсь консультированием и другими вещами по моему профилю работы, в обратном случае я бы обозвался каким-нибудь штатным сисадмино-программёром. Айтишная же составляющая не является требованием, но существенно упрощает жизнь и мне, и подрячикам, и заказчикам, а с учётом того что опыт у меня есть - это короче моя фишка за которую меня ещё больше ценят.
41 Кб, 1167x452
#432 #920881
Что то пошло не так.
920903
#433 #920887
>>920874
С сдвигом на 975 получается русек. Лол.
result: String = ащаща
res0: String = azaza
#434 #920903
>>920881
4 строка
for charcter in text:
920907
#435 #920907
>>920903
спасибки:3
920918
#436 #920918
>>920907
успехов, антош
98 Кб, 1272x801
#437 #920920
Спасибки вам,анончики,люблю вас всех!
920921920939
197 Кб, 800x696
#438 #920921
>>920920

> python2


> winxp

920923
#439 #920922
>>920833
Из книжки. Ничего интересного. Просто 170 задачек и около 150 ответов. Больше ничего там нету. Всю инфу ищу сам.
#440 #920923
>>920921
еще только ретро порно смотрю.
920929
#441 #920929
>>920923
Это совершенно другое.
#442 #920935
Хочу начать ковырять джанго. Сайты никогда не делал. Можно ли мне будет прикрутить сайт на гитхаб? Видел что люди делают там свои странички. Вопрос тупой мб
920938920948921051
#443 #920938
>>920935
Да, вопрос тупой. На Гитхабе статика.
921009
#444 #920939
>>920920
кто умничка? ты умничка!
#445 #920948
>>920935
На гитхаб разве что можно разместить JS приложение которое будет общаться с Django.
В любом случае понадобится хостинг с python.
921009921051
#446 #920994
Программач-помогач, какой комбинацией клавиш активируются сниппеты в Djaneiro?
921020
#447 #921009
>>920938
>>920948
Нахуя тогда нужна эта гитхабовская функция?
921017921039
#448 #921017
>>921009
Хостить документацию.
#449 #921020
>>920994
набираешь, например, "tag" или "if" и жмешь Tab
https://github.com/squ1b3r/Djaneiro#snippets-for-django-templates тут список сниппетов.
#450 #921036
>>920638

> Как грамотно подготовится к собеседованию?


посмотри гейпорно и научись делать минет
я так вкатился
#451 #921039
>>921009
Визитки, портфолио для очкастых гиков.
921051
#452 #921051
>>921039
Сейчас узнал, что можно блог хостить с помощью jekyll и еще свои доменные имена использовать для сайтов. По моему, это охуенно вообще.

>>920948
Или можно разместить JS приложение вообще без питона. А для хранения данных использовать browser storage или как оно там называется. Игру 2048 помните? Тоже хостилась на гитхабе и нормально же работала, даже результат запоминала.

>>920935
Пока учишься используй встроенный сервер разработки. Потом задеплоишь на бесплатные heroku или pythonanywhere. Там, кстати, прямо из гитхаба сможешь клонировать репозиторий и запустить - это не сложно.
395 Кб, 1000x1390
#453 #921105
Помогите перевести короткий готовый рабочий код на питоне в ООП (ну вот надо) и добавить юнит-тесты.
У меня есть комиксы и девочки.
tmp0)I1337ANUSyand>{mexPUNCTUMr:Xcu
921114
#454 #921114
>>921105
Давай ссылку на репу, сделаю.
921118
#455 #921118
>>921114
Напиши, пожалуйста, на почту.
#456 #921166
Чуваки кто-нибудь слышал о компании iFree? Набирают жуниоров без опыта, мэйби кто ходил собеседоваться? Спасибо
#457 #921215
Парни, как такую парашу http://weboob.org/, себе на джанго проект въебать
мне было бы достаточно boobank и boobill
Спасибо за ответ, ребятишки
#458 #921217
#459 #921237
>>921215
Написать враппер.
921359
#460 #921259
Перекатываюсь из соседнего треда.

Слышали про фреймворк Фабрик? Хорошо на нём деплоить или собирать что-то?
#461 #921297
>>920569
спасиб за пасскод)
922018
#462 #921318
>>920821
чота бот оффлайн, как ты тестовое у него взял?
921379
#463 #921356
>>920805
Погугли какую-нибудь информацию про них. Вот, например https://jobs.dou.ua/companies/42-coffee-cups/reviews/
#464 #921359
>>921237
подробнее плес расскажи, я не понимаю, что я именно должен пиздануть из устновщика пакета, что подключить это к сайту, вот например именно boobank
#465 #921363
Привет!

С большим вынужденным перерывом я дописал свой архивач и научил его асинхронно грузить картинки. Сейчас все это неплохо работает через Django ORM на одном Heroku dyno через honcho. Я поставил на ночь автопопулейтинг тредов из /b/ и сейчас весьма заметно что при все большем наполнении базы, Postgres обрабатывает запросы на получение задач все медленнее и медленнее.

В связи с чем появилась идея крутить задания внутри Celery, а результаты писать в Postgres.
Примерная цепь: отправляется форма с урлом -- создается таска в конце очереди(результат не хранится, а записывается в Postgres) -- таска выполняется и заново становится в очередь если тред активен -- цикл повторяется.

Хочу спросить у тех кто работает с Celery и in-RAM брокерами (вопрос конкретно про Redis) - насколько страшно то что целери не чистит за собой? Я нашел единственный бесплатный вариант Redis, где дается 30МБ(!) объема и хочу грубо прикинуть стоит ли игра свеч или же SQL будет более уместный. Как быстро мегабайты будут расходоваться учитывая что таска представляет простую функцию и ничего не хранит? Расчет идет на то что активные треды будут равнозначно заменяться умершими и будет баланс, но как быть если заданий станет больше чем стореджа? Флашить базу с определенными интервалами?
921374921402
#466 #921374
>>921363
Показывай схему БД, индексы и запрос на получение заданий. Ты не должен по-хорошему никаких проседаний производительности видеть до первого миллиона записей как минимум.
921389
#467 #921376
>>921215
бамп
парни подскажите плес, я уже совсем заебался
#468 #921379
>>921318
он не может быть офлайн
5 Кб, 480x57
#469 #921387
Анончи,перешел с pycharm professional на comunity,но теперь он перестал видеть интерпритатор.Помогите,плиз!
921402
177 Кб, 1366x741
293 Кб, 1366x742
#470 #921389
>>921374
Пикрелейтед модель, запрос на очередь для ворера и БД.
Сами треды хранятся в pickle ячейке в виде класса и пишутся/читаются через pickle.dumps/loads. С django-picklefield не получается нормальная десериализация.
921397921463
#471 #921397
Ну и вдогонку. Не могу сказать что получение задания через QuerySet прямо dead-slow, но подразумевается довольно быстрое наполнение базы и не знаю как будет дальше. В принципе, это не критично, т.к воркер работает отдельно от веба и сайту не мешает. Но нужно учитывать что тред должен быть проиндексирован до смерти хотя бы раз и время тут важно.

Может есть хаки по оптимизации базы? Слышал что-то про поля с индексированием, чтобы искать по ним шустрее. Или может еще альтернативы.

Хотя на самом деле мне просто хочется попрактиковаться с Celery, ибо надо же когда-то начинать.

>>921389
921463
80 Кб, 1054x666
#472 #921402
>>921387
Что мешает самому выбрать место, где он лежит?
Вангую через libastral, у тебя windows, которая для разработки совершенно не подходит.
>>921363

> бесплатный вариант Redis, где дается 30МБ


Ебать копейки. 30 мегабайт для кеша в памяти это вообще ничто, особенно для пайтона на сервере.
Вопроса вообще не увидел, спрашивай конкретнее что нужно. Пишешь через жопу.
921403
#473 #921403
>>921402
Ну то и спрашиваю, смогу ли я в 30Мб уложить очередь из обработчиков урлов или нет. Если нет, то можно ли еще как-то оптимизировать извлечение активных заданий.
921407
#474 #921407
>>921215
Не понял, они перегоняют html в qt виджеты для десктопного приложения на qt? Выглядит годно, особенно для тяжелых засраных лишниими css испражнениями сайтов по типу feedly.
Если это работает так, как я подумал, надо будет не работе клиент для слака прикрутить. А то это говно умудрилось одной вкладкой отожрать один раз 700мб с хуем.
Бери и въёбывай. Тут врят ли кто про это вообще слышал раньше.
>>921403

> смогу ли я в 30Мб уложить очередь из обработчиков урлов


Если поебаться и чистить вовремя может и сможешь, но нахуй это надо?
Я вообще не пользовался celery, потому что cron на работе нам было более чем достаточно, а уж тем более у нас никто в проект не стал тащить django ибо слишком уж тяжёлая и неповоротливая хреновина даже на xeon-ах хетцнеровских.

Если у тебя жесткие ограничения по ресурсам, я бы вообще пайтон не брал для разработки, а ограничился бы nginx + lua.
921409
#475 #921409
>>921407
У меня приоритет в простоте разработки, потому что я не занимаюсь ей профессионально и кроме питона пока ничего не знаю. А кроме джанги полнофункционального каркаса с админкой и прочим не увидел. Если собирать из микрофреймворка то джанго в итоге и выйдет наверное. nginx и так отдает статику.
Ну в общем ответ я получил, спасибо что разъяснил.
#476 #921445
Какую тему поставить, что бы pycharm был, как codeacademy?
921452
63 Кб, 573x1024
53 Кб, 460x613
#478 #921456
>>921452
спасибо
#479 #921463
>>921389

> ThreadDb


Странный нейминг. Ты описываешь модель, её лучше назвать Thread.

> thread_url


> pickle


Используешь БД как блокнот. Впрочем, в данном случае оно должно бы быть быстрее, чем если бы нормально делал.

> for one in ...objects.filter(...):


Здесь ты запрашиваешь ВСЕ треды, которые можно бы обновить. Может быть достаточно жирно, если у тебя давно ничего не обновлялось и разом ты запросишь 100к записей. Надо слайсить и сортировать по времени последнего обновления. Однако, в твоем случае это ещё не создает проблем. Не могу поверить, что на таком объеме данных ты можешь на глазок хотя бы приметить проседание какое-то.

>>921397

> Слышал что-то про поля с индексированием


Ну можешь индексы повесить на thread_status (переименуй атрибуты, кстати, и выкинь нахуй префиксы «thread_»). db_index=True добавь в описание поля и миграции примени. Но, опять же, с твоим крохотным объемом данных не должно ничего быть заметно. Там Heroku ваш код не на калькуляторах крутит?

> Celery


Совсем не представляю, как это может что-то ускорить здесь. Если ты собираешься список URL в очереди держать, то тебе всё ещё нужно будет получать время от времени данные из БД и нужно будет ещё их в БД обновлять, что, кстати, с поиском по строковому URL будет несколько медленнее, чем сейчас. Если ты собираешься в памяти хранить целиком объекты-треды, то я, блядь, вообще не представляю всё равно, что оно может ускорить, ведь ты всё ещё будешь читать очередь из БД время от времени и вместо питоньей переменной складывать её в Redis. Очереди, мягко говоря, не для такой хуйни существуют.
921477921490
#480 #921466
pygame параша?
921479
#481 #921477
>>921463
Thread это класс из вроппера двача. Не хочу таких пересечений. Оба импорта встречаются в воркере.

url является основным полем, которое записывается напрямую из формы добавления треда. Доска и номер берутся из него регекспом для создания класса треда и сортировке по доске и номеру в админке.

Треды запрашиваются только живые (либо уже индексировавшиеся, либо новые). Как еще узнать есть ли новые посты/имаги если не сравнивать актуальные данные с базой? Мертвые треды не трогаются.

>Там Heroku ваш код не на калькуляторах крутит?


Одно ядро не знаю чего, 512 RAM. На одно дино спавнится сразу и воркер и веб через honcho.

>db_index=True


Да, точняк, это оно.

>с твоим крохотным объемом данных


Тестовый объем, популейт делался только тредами с нулевой при условии >100 постов (сурово протестить загрузку имаг) в течении ночи с перерывом 20мин.

Да, ты прав, очереди в общем для реалтайма.

Спасибо что расписал :) Приятно читать.
921505
#482 #921479
>>921466
Да, но кое-что да умеет
#483 #921483
#484 #921490
>>921463

>Надо слайсить и сортировать по времени последнего обновления.


Это тащемта и привлекает в кью-модулях. Там приоритеты есть и можно сразу несколько процессов спавнить, и быть уверенным что они не возьмут одно и то же задание.
#485 #921505
>>921477

> Thread это класс из вроппера двача


Тем не менее, неймспейсы у них разные. К своей модели будешь обращаться как к models.Thread, например. Сейчас твоё название сущность отражает некорректно.

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


Ничего не понял, но это какое-то месиво. Ты дублируешь данные в БД, это неправильно в общем случае.

> Как еще узнать есть ли новые посты/имаги если не сравнивать актуальные данные с базой?


Нормализовать отношения. Например, как-то так (я не проверял, под рукой своей машины нет, но общая суть должна быть ясна): http://pastebin.ubuntu.com/23886672/

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

А пока что у тебя блокнот какой-то.
921511921515
#486 #921511
>>921505

>Тем не менее, неймспейсы у них разные


А я обычно делаю from models import Class. Плохой путь?
В админке автоименование все равно ни к черту, приходится исправлять все метами.

>Ничего не понял, но это какое-то месиво. Ты дублируешь данные в БД, это неправильно в общем случае.


Класс Thread инициализируется по доске и номеру. А пользователь добавляет URL. Единственное, можно и правда во вьюхе парсить эти данные через re и сразу создавать инстанс модели заполняя доску и тред, и не записывая URL. Это очевидно, ты мне действительно открыл глаза.

>http://pastebin.ubuntu.com/23886672/


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

Сейчас хотел сделать на коленке профайлинг пишармом, но понял что не выйдет профилировать одно соединение а не весь runserver луп :) Беглый гугл однако дал подборку сторонних либ.
#487 #921515
>>921505
Ах да, забыл спросить. Полагаю ты в профессии. С моими скудными навыками можно пытаться в джуниора на удаленку или фриланс или стоит продолжать совершенствоваться сидя на дошираках?
921521
#488 #921521
>>921515
Я бы сначала обмазался навыками администрирования локалхоста, чтобы без анальных ограничений делать нормальные приложения. Далее посмотрел бы резюме и вакансии на HH по интересующему направлению и потыкал все обозначенные там технологии. И всё, можно вкатываться, в принципе, потихоньку.

> удаленку


Удаленка без скиллов никому не нужна.
921524
#489 #921524
>>921521
С администрированием нет проблем, просто хочется нормально работающие приложения делать, чтобы дома гроб с пропеллерами не стоял :) Я способен локально развернуть сервисы. С другой стороны, я понимаю, что если выложить на гитхабу такие костыли то потенциальным работодателям не понять что все сделано так "странно" из-за желания изъебнуться на шару.
В вакансиях по вебдеву обычно джанго указан, при этом не совсем ясно какой уровень они хотят, это может быть и обсосаный миллионы раз недоблог, а может и суперинтерактивный сайт с HTTP2, Channels и написанием собственной мидльвари. До второго явно еще далеко. Но зато подсуетился изучить простые фронтенд либы, что в перспективе может значить фуллстэк.
#490 #921544
Подкиньте идею для новичка. Не хочу эти ваши борды. А ещё желательно чтобы эту хуйню я мог улучшать при прокачке скилов.
921564
#491 #921564
>>921544
есть мп3 на диске? сделай прогу для закачки на плеер. что бы в винампе, например, сделать плейлист (отсортированный руками) yoba_playlist_to_player.rm3u, загрузить его в твою прогу, указав директорию куда копировать треки, а прога бы взяла и скопировала на плеер. попутно пусть нормализует названия убрав всякую чушь из названий файлов и титлов типа: 22--supertraxxx--new_year_VASYANEDITION
делал на паскале (дельфи) студентом.
921566
#492 #921566
>>921564
Кстати хорошая идея. Я вот хочу себе будильник написать
921569
#493 #921569
>>921566
идея еще и тем хороша что по моему в dive into python кажется в редакции для 2го питона, как раз возня с мп3шками, будет на что опереться, да и вообще "погружение" - единственная книга которую вообще можно советовать имхо.
921574
#494 #921574
>>921569
Чего, Флюент пайтон тоже ничего.

http://shop.oreilly.com/product/0636920032519.do

Но её как раз хорошо после "первой книги и небольшого опыта какого-нибудь проэкта накатывать, имхо
30 Кб, 695x320
#495 #921680
Анончи,все сделал правильно или можно кодец улучшить?
#496 #921685
Антоши, вот есть библиотека Qt/Tkinter и т.д., всё это для создания GUI.
Но вот если мне не нравятся формочки которые там есть и я хочу сделать что-то своё, оригинальное, к примеру нарисую йобо-изображение и при нажатии на разные его части должны будут происходить соответствующие действия(как ни странно). Это вообще реализуемо в питоне? В каком направлении мне себя пихнуть?
p.s. Слышал что в QT что-то подобное реализовать можно(правда с С++).
p.p.s. Если же пистон не смогёт такое, на какой ЯП посмотреть для этого?
1 Кб, 312x35
#497 #921689
>>921680
Ну хуй знает.
921691
#498 #921691
>>921689
ну это слишком просто
921692923607
13 Кб, 555x337
#499 #921692
921696
#500 #921696
>>921692
мог просто сказать:"краткость сестра таланта",а не этот дзен-хуен постить
#501 #921701
Анончики, посоветуйте учебник для вкатывания в Django с практическими примерами
921703
#502 #921703
>>921701
Django by example
PEREKOT Perekoter !JLHGEtxGTk #503 #921707
ПЕРЕКОТ в тред >>921705 (OP)
#504 #921739
>>921680
зачем ты делаешь i.replace, если i потом не используешь?

алсо можно сделать через list comprehension
#505 #921775
>>921680

> Анончи,все сделал правильно или можно кодец улучшить?


Это же пример из книги.
921777
#506 #921777
>>921775
Если это пример из книги, то эту книгу лучше сжечь.
921790
#507 #921790
>>921777
поддерживаю
#508 #922018
>>921297
Обращайся))))00))0)
Долбоёба кусок
Нид хелп блядь #509 #922364
Хочу запустить вот эту программу:
https://forum.dracos-linux.org/topic/lounge/thread/109/
Ни на винде ни на линухе не запускается, выдает ошибку. Попробуйте кто нить
#510 #922379
работаю 3 месяца джуном. каждый день спрашиваю синьора как сделать то, как это. вопросы всегда по существу и после того, как погуглил. это ведь нормально? а то он вроде помогает всегда, но как будто хочет, чтоб я от него отъебался (всегда вежливо спрашиваю, не сильно ли он занят)
922383
#511 #922383
>>922379
Это нормально. Продолжай тратить его время на свое обучение. Используй этого пидора.
#512 #922411
Сап.

Есть пара вопросов:
1. Какой клауд-сервис лучше использовать для того, чтобы запустить на нём пару ботов на питоне?
2. Как сделать так, чтобы GET запрос делался в коде каждый час и возвращал новую ссылку, если она есть, например? (хочу сделать оповещалку о новом треде на одной из досок)
922412
#513 #922412
>>922411
2) после каждого часа сохраняй список url всех тредов. при последующем обновлении сравни списки. вернёшь все новые url.
922413
#514 #922413
>>922412

> 2) после каждого часа сохраняй список url всех тредов. при последующем обновлении сравни списки. вернёшь все новые url.


Я имел ввиду, если у меня есть бот, которого можно дёргать по командам, но я еще хочу, чтобы бот срал оповещениями о новых тредах. Как это заставить работать асинхронно?
922434
#515 #922434
>>922413
тогда не знаю
#516 #923145
Анон, я дупел. Подскажи, как сделать так чтобы при регистрации нового юзера автоматом создавалась модель профиля связанная с ним onetoonefield'ом?

И еще, вот есть в джанге cbv. Они типа такие крутые, удобные (наверное, я в них сам путаюсь пока зелень). Можно наверное когда-нибудь забыть про обвчные вьюхи по старинке? В какой книжке можно покурить подобные архитектурно-построительные вопросы на тему "какой вариант костыля использовать?" Django By Example только что дочитал, надо еще чего-нибудь покурить.
34 Кб, 424x298
#517 #923607
>>921691

>ну это слишком просто



Так лучше?

мимокрокодил, нихуя не знаю про питон.
923713
#518 #923713
>>923607
Хуйней какой-то страдаете тут.
923802
63 Кб, 355x510
#519 #923802
>>923713
Не, ну просили ж сложнее!
я по началу вообще сделал, что инпут разбивается на массив, а потом их него удаляются лишние энтити, но это выглядело уж как-то всем уебски. Плюс я особенностей питона нихуя не знаю. что за три минуты нагуглил, то и заебашил.

Но вообще да, я люблю иногда играться, порождая наиболее индуский и черезжопный код, на незнакомых языках. А потом рефакторить в сторону еще большей ебанутости и неэффективности. Какие-то тонкости языка так очень всплывают. например вот хитровыебанный синтаксис join в питоне.
Блядь, кто вообще придумал применять метод к СЕПАРАТОРУ? Зачем вообще?
923829
#520 #923829
>>923802
Чувак, я про эту херню с join недавно целую статью читал. Если кратко, то с таким join ты можешь например сделать так:
','.join(str(i) for i in range(10))
Если бы сепаратор был не в начале, то генератор бы выглядел по-уебански.
И вообще если тебе вообще не нравится делать так, то можешь написать str.join(' ', some_iterable)
923842
#521 #923842
>>923829
ну, не знаю, ломать конвенции заради каки-то обскурных удобств?
но по мне, так ','.join() выглядит как уебанство в первую очередь. Но опять же, нихуя не знаю питон, чтобы понять, насколько это оправдано внутри его философии.
924014924583
#522 #924011
>>921680
Ну ты наворотил тут. Можно же str.translate заюзать. Ну или генератор запилить: ''.join(i for i in text if i not in vowels)
#523 #924014
>>923842
Меня вполне убедил пример с генератором. Ты же не будешь писать вот так (str(i) for i in some_terable).join(', ')
924241
#524 #924241
>>924014

> Ты же не будешь писать вот так (str(i) for i in some_terable).join(', ')


На самом деле, так зачастую в языках и делается. Итерируемые типы получают метод join в интерфейс. Хотя питоновский синтаксис мне нравится больше. Более в духе утиной типизации, что ли. Хочешь джойниться? Подавай итерируемое значение, которое выдает строки.

Немного ссылок.
Гвидо ван Россум дает добро на метод str.join, 1999 год, холст, масло:
https://mail.python.org/pipermail/python-dev/1999-June/095436.html
Пользователи сети интернет выясняют, как же так вышло:
http://stackoverflow.com/questions/493819/python-join-why-is-it-string-joinlist-instead-of-list-joinstring
924567
52 Кб, 363x397
#525 #924257
Так, снова я тут домашкой для своей тянки-биолога.
Задача: дается инпут, текстовой файл, в файле два лайна: отрезок ДНК и длинна k.
Задача, найти и посчитать все к-меры. Грубо говоря, нужно двигать по строке окно длинны k и смотреть, сколько раз данная последовательность встречается в строке.
например: seq = "ACCTTG", k = 3 => {ACC:1, CCT:1, CTT:1, TTG:1}
Чот мне кажется я хуйню какую-то написал.
Пример инпута: http://pastebin.com/WRxjwZRP
924275924279924288
#526 #924275
>>924257
Пошел нахуй, бабораб
#527 #924279
>>924257
В целом хорошо.
Замечания:
1. input не стоит использовать в качестве названия аргумента. Это имя файла или путь к файлу, пусть и называется соответствующе. И вообще, стоило бы разделить получение данных и их обработку в разные функции.

2. Счетчику k-меров стоит быть типа collections.defaultdict(int), а не простым dict. В первом случае тело цикла сокращается до простого

kmers_count[sequence[...]] += 1

3. Не вижу на скриншоте тестов. Вычисления индексов выглядят сложно, проверь, все ли k-меры имеют длину k.

Не думаю, что это можно сильно улучшить без хардового использования itertools.
924288
94 Кб, 530x651
#528 #924288
>>924257
ага. я еще и наебался. это только половина задания. там нужно вернуть строку с самыми частыми к-мерами. Но вот тут я пошел в разнос. Вот это уже полная стыдоба и полный быдлокод. два цикла подряд на один объект это явный признак пиздеца.
Видимо нужна какя-то библиотека.

>>924279

>3. все ли k-меры имеют длину k.


да, но это в принципе и не важно. Мне нужно, как оказалось. найти только самые частые. если они будут короче, они будут уникальные так или иначе (хотя и неаккуратно.
924290924589924603
#529 #924290
>>924288

>>>CGCCAACCTCCGG CAACCTCCGGCTT GCCAACCTCCGGC CCAACCTCCGGCT TCGCCAACCTCCG AACCTCCGGCTTT

924295
#530 #924295
>>924290
БЛЯДЬ. длинна 13. Я мудак. Лол
924304
#531 #924304
>>924295
ладно, вот правильный(но омегахуевый!) код: http://pastebin.com/ai7y1PxR

там есть ненужный иф для дебага. но он не выстреливает, значит все ок с длинной.
924318
#532 #924318
924326
#533 #924326
>>924318
ага! спасибо, познавательно! Я его куда-то в эту сторону и начал рефакторить, только знания языка не хватает, конечно.

Только не нихуя не пони что происходит в строке 17. Которая
most_freq = (kmer for kmer, freq in kmers.iteritems() if freq == max_freq)

Это кстати не важно (нахуй дебаг в рабочем коде), но в десятой строке я с дуру захардкодил значение k (и у тебя так и осталось).
924350
#534 #924350
>>924326

>Только не нихуя не пони что происходит в строке 17


Так, кажись допер!
"Берем (ключ) из пары (ключ, значение) из объекта my_dict.iteritems() если [значение нам подходит]". Так?
#535 #924567
>>924241
На стековерфлоу вполне логичные поинты приведены. За ссылки спасибо
924591
#536 #924583
>>923842

>так ','.join() выглядит как уебанство в первую очередь.


поддерживаю
в этом смысле РАБИ больше нарвится, но там магия и манкипатчинг везде
#537 #924589
>>924288

>freqent



алсо используй itertools (n-window, гугли как зделоть) и collections.Counter
924629
#538 #924591
>>924567

>поинты


то есть ты понимаешь изначальный консерн
68 Кб, 1676x797
#539 #924603
>>924288
462631
924629
#540 #924629
>>924603
Ага. но вот такой вопрос. Гипотетически, подобные скрипты могут пережевывать десятки мегабайт даты, и цикл с четвертой строки будет крутится ДОЛГО. вот не будет ли он каждый цикл пересчитывать этот рейндж? я в своем говнокоде его для того и вынес в переменную.

>>924589

>>freqent


лол да. я когда рефакторил - поправил. но да, немного потупил в стек, когда он мне выдал андефайнед.
924641924644
#541 #924641
>>924629

>вот не будет ли он каждый цикл пересчитывать этот рейндж?


нет
при больших гигабайтных данных думать стоит о памяти, здесь вместо создания k-подстрок они генерируются лениво (исп. функция-генератор)

если еще хардкорнее оптимизировать, то можно с диска читать кусками
#542 #924644
>>924629

>десятки мегабайт даты


это ни о чем, если грамотно кодить (т.е. на ровном месте квадратную сложность не делоть)
#543 #924698
Такой вопрос. На сайте есть комнаты с чатами. Есть ли возможность как-то собирать с них инфу не через парсинг, а через подключение к ним аки к вебсокету, чтобы потом асинхронно получать апдейты? Если да, то куда копать в плане реализации?
924749
#544 #924749
>>924698
только если чат на вебсокетах
если нет - периодический поллинг
924814
#545 #924814
>>924749
А как проверить, есть ли коннект через вебсокеты или нет?
924873
#546 #924873
>>924814
исходники фронтенда посмотри
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 3 февраля 2017 года.

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

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