Этого треда уже нет.
Это копия, сохраненная 11 августа 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
227 Кб, 828x548
Python Thread #795005 В конец треда | Веб
Шапка: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat
Код вбрасывать в тред через https://ideone.com/
Прошлый: >>790365 (OP)
120 Кб, 1920x1200
#2 #795043
В чем заключается автоматизация тестирования в питоне?
#3 #795069
>>795043
чтобы тестирование проходило в автоматическом режиме.
>>795074
#4 #795074
>>795069
Еба, ты умный.

Это что - чтобы тесты сами под новые функции писались? Или имеется в виду запустить nosetests и все?
>>795097
#5 #795083
>>795005 (OP)
Короче, переписал свой http-сервер на asyncio. Как теперь проверить сколько он продержится под нагрузкой? Какие подводные камни следует выследить?
#6 #795091
>>795083
Ну теперь пиши асинхронный долбитель асинхронных http-серверов.
>>795102
#7 #795097
>>795074
Да позвони и спроси, долбоеб. Скорей всего такой же полоумный долбак писал так что норм, найдете с ним общий язык.
>>795103
#8 #795102
>>795091
Вот блядь. Пошел писать.
#9 #795103
>>795097
Ты что такой агрессивный? Таким не место в питонотредах. Тут царит любовь, терпение и взаимопонимание. Я же думал, что в силу своей юности я не знал некоторых аспектов вокруг питона и под фразой "автоматизация тестирования" подразумевалось что-то конкретное.
>>795120
#10 #795104
>>795005 (OP)
Перекатился к вам из строгой типизации. Как вы вообще программируете без автоподставления в ide? Мне вот чет сложно. Всегда документация открыта чтоли?
#11 #795108
>>795104
Да хз, как-то проблем особых нет.
#12 #795116
>>795104

> Перекатился к вам из строгой типизации.


А у нас тогда какая? заебали уже статическую и строгую путать
#13 #795120
>>795103

> Таким не место в питонотредах. Тут царит любовь


Пошёл нахуй отсюда!
#14 #795122
>>795116
int/float
жёлтый колобок.png
#15 #795127
Как блядь правильно организовывать директории и поддиректории и импортировать оттуда это всё?

Есть папка site, в папке site есть папка src. В каждой папке есть пустой __init__.py. В папке src один из файлов импортирует в себя другие, если его запускать как мейн - то всё заебись. Когда же я делаю другой мейн в папке site и, импортируя нужно барахло как import src.barahlo, то интерпретатор начинает материться на импорты в мейн файле из src. Что за хуета и как все сделать пиздато?
352 Кб, 1600x1261
#16 #795204
Питоначеры, недавно спрашивал в подобном треде, как свараганить многопоточность, чтоб легко, быстро и без смс. Знающие господа открыли для меня модуль multiprocessing и pool -ы в частности. Теперь захотелось результаты работы этих потоков передавать в другую функцию, причем чтоб обрабатывались они строго в порядке очереди короче нужен мастеркласс по queue. Сенкс заранее.
#17 #795223
Сейчас изучаю Джанго, наткнулся на микрофреймворк флакс. Собственно вопрос стоит ли его изучать или лучше забить?
>>795226
#18 #795225
>>795204
g: async pipeline python
#19 #795226
>>795223
фласк > джанго
#20 #795246
Ебаный виндовс, блять. И линукс дома не поставишь - все мультимедиа по пизде, блять.
#21 #795249
Вообщем немного разобрался, но не знаю как пофиксить такой трабл.

В джанге есть джве модели. Родительская (не абстрактная) и дочерняя от нее. Есть ссылка по ForeignKey один ко многим с родительской на дочернюю.

При сохранении родительской модели из формы внезапно сохраняется и экземпляр дочерней модели с тем же id. Параметр ForeignKey почему-то передается как новый инстанс дочерней модели, хотя последняя не указана в форме. Это должна быть просто ссылка на id. ). Через админку все нормально, создается отдельно родительская. Как пофиксить?
>>795303
#22 #795268
>>795204

> мастеркласс по queue


put — положить, get — взять. неблогодори
#23 #795274
>>795246
Битчез донт ноу абаут май виртуалбох
#24 #795289
>>795104

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


Пиздос, а вот и современное поколение. По памяти, Маня.
>>795335
#25 #795303
>>795249

Да еще это поле с ForeignKey я не добавляю в форму через шаблон, а передаю его значение через kwargs из url. Если вставляю поле в шаблон, то при ручном выборе все работает.
>>795510
45 Кб, 1008x691
#26 #795313
>>794865
Не знаю кто отвечал на мой пост в предыдущем треде, но в любом случае спасибо, стало лучше. Сегодня перепишу своё говно.
#27 #795327
скажите, по возможностям для web'а питон похож на пхп? Какие у него плюшки, что стоит из этих двух выбрать именно питон? И второй вопрос (вообще нубский): с установской на сервер питона никаких сложностей нет? Просто поставил и запускай свой *.py?
>>795346
#28 #795335
>>795289
И не говори, бро. Я-то в советские времена ооо... на перфокартах кодил, какие времена были...
>>795246
Поставь OpenBSD, раз линукс нельзя.
>>795104
Ты о чем? vim + jedi, дополняет, документацию показывает, только что хуй не сосет.
>>795116

>А у нас тогда какая?


Да походу никакой, если сравнение инта с булем может вернуть положительный результат, а строки являются массивами из строк (лолшто?).
#29 #795338
>>795116

>Да походу никакой


Не никакой, а динамическая. Я кстати тоже поначалу после С++ и C# жутко плевался, а потом ничего, приработался. Просто как-то сидишь и кодишь без задней мысли. Правда проекты все у меня очень простые.
Гораздо тяжелей я воспринимал невозможность передачи в функцию указателя или ссылки на переменную чтобы в последствии ее изменить, а не копировать.
>>795345>>795349
100 Кб, 1120x943
#30 #795345
>>795338
Хотя добавлю, что мне больше нравится статическая типизация, просто потому что я вкатывался в кодинг начиная с С++ и это уже не исправить.
Следует отметить, что в питоне перегруженные операции для сравнения разных типов работают чётко и все документированно, это тебе не обезьяний пхп где:
Слабая типизация(всмысле, тихая автоматическая конверсия между строками/числами/всем остальным) настолько сложная, что она не стоит того, сколько бы усилий начинающего программиста она не сохраняла.

Ну и плюс инфернальный пиздец с пикрелейтед конечно.
>>795351>>795468
#31 #795346
>>795327

Оставайся на похапе.
#32 #795349
>>795338

>Не никакой, а динамическая.


Ну да. Есть всего один тип (объект). Безтиповый лямбда-калькулус короч.

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


Но это костыль из C/C++, в питоне можно хотя бы кортежи возвращать же и деструктуринг есть.
#33 #795351
>>795345

>мне больше нравится статическая типизация


Будто бывает другая.
Кстати, гайз, поясните за тайп-хинты в питоне. Оно типа в рантайме чекает? Или выводит (насколько это возможно)? Расставил их в коде, но при передаче значений с неверным типом ничего не происходит.
>>795664
#34 #795381
Господа, прошу помощи! Смотрите, у нас есть LDAP. Нам надо удалить пользователя из группы. Это делается вызовом функции ldap.modify с набором определенных параметров как в коде тут: http://pastebin.com/3qhXAySk

Как мы видим, первым аргументом мы отправляем distinguishedName группы, а вторым отправляем желаемую операцию в кортеже с массивом DN'ов пользователей или просто со строкой.

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

Посмотрите своим профессиональным взглядом, как от такого поведения лучше всего обезопаситься? Я перед вызовом функции каждый раз делаю if len(dn_array) != 1, но может у вас есть более лучшие идеи?
#35 #795412
Нужно сохранить объект перед выходом из программы. Использую shelve. В классе сделал следующее:
https://ideone.com/OA3glw

Импортирую модуль со своим классом в интерпретатор. Когда вызываю del(object), все работает нормально. Но когда использую exit() или Ctrl-D, получаю следующее:

File "/usr/lib/python3.4/shelve.py", line 239, in open
File "/usr/lib/python3.4/shelve.py", line 222, in __init__
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2222, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 2155, in _find_spec
TypeError: 'NoneType' object is not iterable

Почему такое может происходить?
>>795537
#36 #795454
>>795246
Маня не умеет разбивать диски?
#37 #795461
>>795204
Да, смотри класс Queue.
#38 #795468
>>795345
Лол, как же я обосрался с 3 4 и 5 строки с конца. Боже, какой пиздец. Хорошо что я съебал из конторы где меня пытались это говно заставить учить, не испортил хотя мозга этим говном. Особенно про оператор индекса к любой переменной понравилось: ЗАЧЕМ, нет вот просто ЗАЧЕМ?
>>795544
#39 #795478
Аноны, есть тут Джанго фрилансеры? Расскажите мне про то, как идут дела, сколько денег, с кем работаете?
Какого типа проекты попадаются?
>>796237
1193 Кб, 1920x1280
#40 #795483
Анон, подскажи ньюфагу в какую сторону копать.
Надо кроулер, чтобы по наименованию гуглил, заходил на сайты с товаром и кидал цены и ссылку в табличку.
Про парсеры с сайта, хтмл разметку уже прочитал.
Как реализовать запрос в гугль и прокликивание всех сайтов, может, готовые решения есть?
>>795487>>795501
#41 #795487
>>795483
Ты че, дебил? Иди гугл api читай.
#42 #795493
Кто какой color scheme пользуется?
>>795504
#43 #795501
>>795483
1. Гугл тебя забанит после сотого запроса.
2. Для обхода по собираемым ссылкам существует scrapy.
>>795503
#44 #795503
>>795501

>1. Гугл тебя забанит после сотого запроса.


Это можно как-то обойти?
Временные промежутки ставить, к примеру, как в для wget делается?
>>795505
#45 #795504
>>795493
Той, с которой удобно.
#46 #795505
>>795503
Есть, но это слишком сложно.
>>795513
#47 #795510
>>795303

Все разобрался, я слепошарый долбаеб.
33 Кб, 758x365
27 Кб, 744x354
#48 #795513
>>795505
Правильно ли я понял, что поисковикивсе? ограничивают доступ именно к поисковому апи?
Хотя тут, на второй пикче вон чего написано. И как различить в данном случае, моя программа коммерческая или нет.

Поясните по хардкору.

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


>Теперь настал черед сразу нескольких поисковых API. Уже 15 февраля посторонним будет заблокирован доступ к Google Patent Search API, Google News Search API, Google Blog Search API, Google Video Search API и Google Image Search API.


>Иными словами, Google запрещает владельцам сторонних сайтов использовать свои наработки для организации поиска по патентам, фирменному новостному агрегатору, блогам, видео и картинкам, соответственно. В качестве единственной замены этим продуктам предлагается Google Custom Search API .


http://pr-cy.ru/news/p/5338
>>795514>>795619
#49 #795514
>>795513

Просто много макак стало писать парсеры-хуярсеры, кликкеры-хуиккеры.
#50 #795537
>>795412
Я все понял. shelf.open() вызывает shelf.__init__. В нем вызывается import dbm. И судя по всему, интерпретатор считает, что нехуй вызывать import во время сбоки мусора. Или что-то вроде этого.
32 Кб, 1030x330
#51 #795544
>>795468

>Особенно про оператор индекса к любой переменной понравилось: ЗАЧЕМ, нет вот просто ЗАЧЕМ?


Спроси у Гвидо.
>>795576
#52 #795555
пацаны, в книге этой вашей джанго бай экзампл, антуан пишет, мол, линукс это заебись.

Но вот я прочитал чуток и все что он пишет я и на винде сделал без всяких глюков и какой-то жопной боли.
Ну на винде же тоже работает бля, линукс все равно учить? Я конечно не против линукса, но ведь и на винде работает.
>>795562
#53 #795562
>>795555
Если ты собираешься хеллоуворлды на ванильной джанге у себя на локалхосте гонять, то конечно и винда сойдет.
>>795563
#54 #795563
>>795562
А если не хелоуворды? В чем там принципиальное отличие, что использование винды делает невозможным?
>>795579
#55 #795564
Вот слышал там в 10 винду завезли встроенную убунту, неужели это никак не поможет?
>>795575
#56 #795575
>>795564
Все просто:
Есть Unix, есть питон, и одно и второе придерживается примерно одинаковых принципов типа одна функция выполняет только что-то одно, одна программа делает только что-то одно, но делает это хорошо. В юниксе питон смотрится природно.
В винде нет. Ты охуеешь еще pil ставить.
Я не против того что тебе лениво вникать в юник, но не вникая ты теряешь больше чем можешь получить. Если в итоге консоль тебя будет тяготить - ну видимо юниксы и питон это не твое, ничего страшного сейчас валом всяких интересных штук. Но попробовать я бы все же рекомендовал , и не в виртуалочках, а накатить какой-нибудь elementary OS ( что бы не слепнуть от убожества убунты но так же быстро искать ответы) в дуалбут и похуярить там.
>>795577>>795580
#57 #795576
#58 #795577
>>795575
Так если в 10 винду завезли убунту, значит там питон будет уютно смотреться.
#59 #795579
>>795563
Ниебически простая установка/настройка управление сервисами бд и прочим, много батареек/серверного софта либо linux-only, либо со статусом "ну мы на винде запустили, вродь работает но хуй знает... в продакшен лучше не совать".
Ну и тебя же никто не заставляет ОС менять, есть куча вариантов с виртуализацией.

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


Очень сложным, не невозможным.
#60 #795580
>>795575
Двачую этого, поставил арч и уже на 2 года забыл о всех сперма проблемах.
>>795581
79 Кб, 800x800
#61 #795581
>>795580

> арч

#62 #795619
>>795513
Ты даже и проксями не обойдешь, т.к. 90% вероятность, что они забанены. Добро пожаловать в реальный мир, где за услуги надо платить.
#63 #795663
>>795083
юзай какой-нибудь load-benchmark типа ab или вот помоднявей:
https://github.com/rakyll/boom
#64 #795664
>>795351
Типизация опциональна, прямо в языке не проверяется, нужно юзать линтер mypy: http://mypy-lang.org/
Мб там уже подкатились всякие плагины под саблайм/вим, которые умеют в работу с ним, а так можно поставить как step в каком-нибудь Jenkins'е
#65 #795693
Анон, подкинь идею пет-проекта на джанге для <b>ПОРТФОЛИО</b> чтоб джуном вкатиться. И книжку по джанге намба ван фор фаст старт, на твое усмотрение. Пожалуйста.
>>795709
#66 #795709
>>795693

>книжку


держи >>792464
#67 #795714
>>795083
>>795005 (OP)
У меня еще одна проблема, связанная со чтением пользовательского запроса в asyncio. Хедер оно читает вменяемо, а вот всё что после одиночного \r\n - т.е. POST-запросы - не хочет, зависает. До этого использовал такой код, контент просто не читался:
data = b''
while True:
--try:
----line = yield from reader.readline()
----data = data + line
----if line == b'\r\n':
------break
--except:
----break
Теперь поменял условие на "if not line", оно же просто зависает. Не совсем понимаю, в чем дело.
#68 #795717
>>795714
aiohttp
>>795741
#69 #795726
И так, ребятки
Сейчас я буду писать онлайн-резюме на 1 человека на джанго и заёбывать вас вопросами

Что мы имеем?
Нужно написать выводилку резюме на одного человека с возможностью добавления мест работы (остальное сделаю по аналогии)

Что уже есть:
models.py
class Person(models.Model):
..name = models.CharField(max_length=30)
..lastname = models.CharField(max_length=30)
..mail = models.EmailField()

class Experience(Person):
..ref = models.ForeignKey(Person, related_name='work')
..position = models.CharField(max_length=30)
..fromtime = models.DateField()
..totime = models.DateField()
..description = models.TextField()

admin.py
from .models import *
admin.site.register(Person)
admin.site.register(Experience)

urls.py
urlpatterns = [
..url(r'^$', views.index, name='index'),
]

views.py
def index(request):
..template = loader.get_template('cv.html')
..context = {
....'person': Person.objects.all(),
....'expirience': Experience.objects.all().order_by('-fromtime'),
..}
..return HttpResponse(template.render(context, request))

Где я не прав?
#69 #795726
И так, ребятки
Сейчас я буду писать онлайн-резюме на 1 человека на джанго и заёбывать вас вопросами

Что мы имеем?
Нужно написать выводилку резюме на одного человека с возможностью добавления мест работы (остальное сделаю по аналогии)

Что уже есть:
models.py
class Person(models.Model):
..name = models.CharField(max_length=30)
..lastname = models.CharField(max_length=30)
..mail = models.EmailField()

class Experience(Person):
..ref = models.ForeignKey(Person, related_name='work')
..position = models.CharField(max_length=30)
..fromtime = models.DateField()
..totime = models.DateField()
..description = models.TextField()

admin.py
from .models import *
admin.site.register(Person)
admin.site.register(Experience)

urls.py
urlpatterns = [
..url(r'^$', views.index, name='index'),
]

views.py
def index(request):
..template = loader.get_template('cv.html')
..context = {
....'person': Person.objects.all(),
....'expirience': Experience.objects.all().order_by('-fromtime'),
..}
..return HttpResponse(template.render(context, request))

Где я не прав?
>>795744
#70 #795741
>>795717
Так не интересно. Мне интересно написание своего велосипеда сервера, чем использование готового.
>>796464
#71 #795744
>>795726
При добавлении нового Person через админку получается такая срань:

>OperationalError at /admin/cv/person/add/


>no such table: cv_person



Но я не понимаю где и нахуя оно должно вообще быть
>>795747>>795748
#72 #795747
>>795744
база данных разумеется создана через python manage.py migrate
так же создан суперюзер

других манипуляций с бд я не совершал
#73 #795748
>>795744

ДБ синхронизировал?
>>795753
#74 #795753
>>795748

>makemigrations


>No changes detected



>migrate


>No migrations to apply.

>>795755>>795758
#75 #795755
>>795753

Но таблицы-то нет.
#76 #795758
>>795753
Пробуй manage.py makemigrations cv

Ты свое приложение в INSTALLED_APPS добавил?
>>795761
#77 #795761
>>795758

>manage.py makemigrations cv


О, заработало, спасибо
Не знаю чего оно так, вроде ж добавляло.
97 Кб, 980x1338
#78 #795768
Добавление персоны прошло успешно, осталось конечно поколдовать над полями отображаемыми в админке, но это уже мелочи

Теперь, уважаемые знатоки, внимание на экран
Вот что происходит при попытке создать Experience, то бишь место работы.
Зачем оно предлагает вбивать нового человека?
Если в rel выбрать уже созданного васяна - не меняется ровным счётом ничего.
>>795775>>795799
#79 #795775
>>795768
Если указать relation между моделями Person и Experience не как models.ForeingKey? Но как иначе?
#80 #795791
Пока знатаки думают над решением этой непростой задачи, обнаружилась ещё одна проблема!

При
views.py
def index(request):
..template = loader.get_template('cv.html')
..context = {
....'person': Person.objects.all(),
....'expirience': Experience.objects.all().order_by('-fromtime'),
..}
..return HttpResponse(template.render(context, request))

и cv.html
<html>
<head>
<title>{{ person.name }}{{ person.lastname }} - CV</title>
</head>
<body>
<h1>{{ person.name }}{{ person.lastname }} - CV</h1>
<ul>
..<li>{{ person.phone }}</li>
..<li>{{ person.skype }}</li>
..<li>{{ person.mail }}</li>
..<li>{{ person.website }}</li>
</ul>
....

не выводится ничего касаемо объекта.
даже 'person': Person.objects.all().filter(id=1) (id 1 как я понимаю так величает его джанго) не помогает
#80 #795791
Пока знатаки думают над решением этой непростой задачи, обнаружилась ещё одна проблема!

При
views.py
def index(request):
..template = loader.get_template('cv.html')
..context = {
....'person': Person.objects.all(),
....'expirience': Experience.objects.all().order_by('-fromtime'),
..}
..return HttpResponse(template.render(context, request))

и cv.html
<html>
<head>
<title>{{ person.name }}{{ person.lastname }} - CV</title>
</head>
<body>
<h1>{{ person.name }}{{ person.lastname }} - CV</h1>
<ul>
..<li>{{ person.phone }}</li>
..<li>{{ person.skype }}</li>
..<li>{{ person.mail }}</li>
..<li>{{ person.website }}</li>
</ul>
....

не выводится ничего касаемо объекта.
даже 'person': Person.objects.all().filter(id=1) (id 1 как я понимаю так величает его джанго) не помогает
>>795796
#81 #795796
>>795791
Отмена, ребят, решил с помощью
'person': Person.objects.first(),

очень чудно что он предусмотрен
#82 #795799
>>795768

Модель Person точно такая же как и раньше?

class Person(models.Model):
..name = models.CharField(max_length=30)
..lastname = models.CharField(max_length=30)
..mail = models.EmailField()

Больше ничего не добавлял?
#83 #795805
Ну я старался в тред чуть упрощённую модель кидать, и кажется сам себя наебал в итоге
Вот как они выглядят в оригинале
class Person(models.Model):
..name = models.CharField(max_length=30)
..lastname = models.CharField(max_length=30)
..mail = models.EmailField()
..phone = models.CharField(max_length=10)
..skype = models.CharField(max_length=30)
..website = models.URLField()

class Experience(Person):
..ref = models.ForeignKey(Person, related_name='work')
..position = models.CharField(max_length=30)
..company = models.CharField(max_length=30)
..fromtime = models.DateField()
..totime = models.DateField()
..description = models.TextField()
>>795812
#84 #795812
>>795805
попробуй что-то типа:

admin.py

from .models import *
from django.contrib import admin

class PersonAdmin(admin.ModelAdmin):
pass
admin.site.register(Person, PersonAdmin)

class ExperienceAdmin(admin.ModelAdmin):
pass
admin.site.register(Experience, ExperienceAdmin)
>>795814>>795820
#85 #795814
>>795812
отступы перед pass нужны
>>795820
#86 #795820
>>795812
>>795814
Сделал, по прежнему вбивать предлагает и юзера вместе с экспириенсом
>>795823
#87 #795823
>>795820
Я что-то понять не могу, что конкретно у тебя не работает?
>>795825>>795827
#88 #795825
>>795823
У него две модели отображаются на одной странице в админке. Ему нужно, чтобы отображалась только Experience.
71 Кб, 980x1131
#89 #795827
>>795823
На данный момент оно предлагает заполнять Experience вместе с Person
>>795831
#90 #795831
>>795827
На гитхабе есть?
>>795834
#91 #795834
>>795831
Нету, только оффлайн.
Вбросить и на гитхаб?
>>795836
#92 #795836
>>795834
Давай, на сосаче не удобно, пока есть время поковырять.
>>795849
#94 #795850
>>795849
Через пару минут займусь.
>>795862
#95 #795862
>>795850
Хах) Вот твоя ошибка
class Experience(Person):
Вместо
class Experience(models.Model):
Зачем ты указал родительский класс?
>>795866
#96 #795866
>>795862
Вот блин. Действительно.
Спасибо большое!
>>795867
#97 #795867
>>795866
Еще мб с чем есть вопросы? Я тоже python/django в свободное время тыкаю.
>>795871
#98 #795871
>>795867
Ну смотри что я ещё хочу в эту фигню запихнуть:
Что бы объекты класса Person нельзя было создавать больше одного, дабы никого не смущать раз уж тут многопользовательность не нужна.

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

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

Было бы здорово у тебя попросить почту что бы иногда спрашивать какие-нибудь вопросы, но хз.
Если есть желание - отпишись на mojLrsANUSopen3'3mailboxPUNCTUMor]1}g
>>795892
#99 #795892
>>795871
Отписался
11 Кб, 170x296
#100 #795896
Почему в Пайтоне такой красивый синтаксис, такая хорошая стандартная библиотека и такая уёбищная реализация?
#101 #795897
>>795896
А где лучше?
247 Кб, 1866x770
#102 #795912
Ребята, мамкин ксакеп снова в треде, взгляните пожалуста на скелет проги, о которой говорил в этом >>795204 посте.
Если совсем на пальцах, запускается демон, ждущий сообщений в очереди -> запускается пул процессов сканирующих список подсетей и пуляющих результат в очередь -> в очередь пуляется флаг завершения сканирования -> хэппи-энд.
Правильно ли я понял логику работы queue и pool, в верном ли направлении иду? inb4 Не в верном, тебе нахуй.
https://ideone.com/lJoXjn
#103 #795918
>>795896
>>795897
Сосачую вопрос.
33 Кб, 400x214
#104 #795924
>>795926
#105 #795926
>>795924
Теплое с мягким не сравнивай.
#106 #795930
Если у меня есть программа-демон, которая собирает и пишет данные в базу данных, как мне из другой программы организовать с ней общение?
>>795931
#107 #795931
>>795930
Просто суть в том, что база данных - это кеш, и у запрашивающей программы есть критерий, по которому можно определить, что данные в кеше устарели и их надо обновить.
>>795932
#108 #795932
>>795931
Хотя можно просто программой забирать данные из кеша, и если они старые - скачать новые. Но вопрос - что делать, если вдруг и программа, и демон будут одновременно писать в базу данных? sqlite3 если что.
>>795967
#109 #795967
>>795932

>одновременно писать в базу данных


>sqlite3


ИМПОСИБРУ!
#110 #795990
трендж из шапки умер, внесу сюда.

Сап, Питонач.

Работал долго аналитиком, а сейчас занимаюсь какой-то айтишной ерундой в одной большой компании. Устал себя превозмогать и хочу заново вкатиться в аналитика. Посерфил вакансии, в основном хотят знание героя этого треда и R. Не подскажешь, анон, где можно найти кучу больших данных для анализа? И было бы очень здорово узнать, есть ли тут те, кто занимается тем же и может подсказать неплохую либу для питона или какой-нибудь фрейворк для более детального и оптимизированного анализа.
#111 #796098
Что надо учить проме Питона и Джанги? Хорошая ли идея: отложить Питон и изучить html+css, чтобы фриланчить?
>>796112>>796123
#112 #796112
>>796098
Ты определись чем заниматься собрался фронтэндом или бэкэндом.
>>796117
#113 #796117
>>796112
Мне нравится Питон, но я еще хотел бы красивости, кнопочки, и т.д. Думаю, сесть на два стула. Говорят, HTML и CSS не долго учить
#114 #796123
>>796098
Если больше склоняешься к бэкенду, то делай упор на питон и джангу.
Но начальные знания hml, css, javascript, jquery, git будут очень полезны.
Зайди на апворк, например, и посмотри какие скиллы нужны вдобавок к джанге.
Часто попадаются проекты, где надо уметь что-то из вышеперечисленного + еще ссаный ангуляр жс.

Ну и уметь разворачивать проект - AWS, heroku
и всякое такое
>>796150
#115 #796147
>>795897

Хаскель?
>>796243
#116 #796150
>>796123

А что вообще за дроч пошел на JS фраемворки? Там зоопарк уже целый. jquery скоро все?
>>796160
#117 #796160
>>796150
А я вот не знаю. Похоже, жаваскриптеры каждый день какой-то новый фреймворк выпускают.
jquery наверное никуда не денется - не будешь ведь целый фреймворк юзать, если тебе надо всего-лишь DOM'ом поманипулировать или, например, аякс запросы попосылать.
#118 #796175
>>795043
Вот смотри, есть большой сайт. В нем куча функций. Внедряют новую фичу. На сайте может что-то поехать и поползти. У тебя есть вариант сесть и самому все проверить. На 60-ой кнопке ты уйдешь на двач и начнешь аутировать. Либо пишешь программу, она сама лезет на сайт и делает все тесты. Сама проходит регистрацию, заполняет формы, заливает картинки. То есть проверяет все функции сайта. После каждого теста она пишет отчет. Причем прогу нельзя делать на try except, как раз когда она крешнится - это будет показателем проблемы на сайте.
#119 #796237
>>795478.
фрилансить не удается, сразу на зарплату забирают работать в офисе.
#120 #796241
Для тех кто сомневается насчет питона, почитайте комменты о новом С++ В питоне мы не знаем таких проблем https://habrahabr.ru/company/yandex/blog/304510/
>>799688
#121 #796243
>>796147
Объявлена неделя хаскель или я что-то пропустил?
>>796250>>796253
#122 #796250
>>796243
Она тут всегда.
>>795896
Двачую, вот в Brainfuck отличная реализация
>>796465
#123 #796253
>>796243

Количество монад увеличилось в вашем коде увеличилось в двое.
#124 #796317
Аноны, у меня скрипт и файл лежит в одной директории
В коде написано:

>fid = open(iris_proc.data,"r")


>oid = open(iris_proc.data,"w")


И еще

>iris = np.loadtxt('iris_proc.data',delimiter=',')


Ругается на последнюю строку, ошибка
FileNotFoundError: [Errno 2] No such file or directory: "iris_proc.data"
>>796356
#125 #796335
На что питон тут ругается?
Написано >np.random.shuffle(order)
Но это со второго питона, чем в третьем заменить?
>>796340>>796356
#126 #796340
>>796335
нампи разве уже на третьем есть?
>>796341
#127 #796341
>>796340
Да хуй знает, почему Numpy не должно быть?
>>796356
#128 #796356
>>796341
>>796335
>>796317
А все нормально, кстати, посоны, что у питона за хуйня, когда он начинает на рандомную правильную хуйню ругаться? То ему не нравится, как переменная инициализируется, то еще что-нибудь
>>796361
#129 #796361
>>796356
Вот смотрите, что ему не нравится, блядь?

>iris = iris[order,:]


>SyntaxError: invalid syntax


Ему что, название переменной не нравится? Раньше он не ругался
>>796364
#130 #796364
>>796361
Ему запятая не нравится, а выше у тебя iris_proc.data было без кавычек. Перестань в глаза ебаться и будет все ок. Добра тебе.
>>796366
#131 #796366
>>796364
Нет, магия в том, что если поставить order как list

>order = (list(range(np.shape(iris)[0])))


То все норма, ебанутый питон
#132 #796374
Пиздец, что делать, если у меня при написании кода на питоне получается все та же лапша и однострочники длиной в жизнь, как на цепепе или фортране?
>>796383>>796444
#133 #796379
Где найти хорошего человека, который будет со мной за идею делать один интересный проект?
>>796383>>796397
#134 #796383
>>796374
Ну пиши одна функция на одно действие, и делов.
Упорись литературой что бы подпривыкнуть, валом же годных книг по питону.
Однострочники не нужны.
>>796379
Найдёшь - и мне им поделись. Я даже бабла отсыпать буду, правда в пределах 10-13 тыс руб в месяц.
>>796387
#135 #796387
>>796383
Нужен какой-нибудь школьник без опыта, типа меня же.
>>796388>>796397
#136 #796388
>>796387
Я бы мог, но согласился за 10-13к в месяц
>>796390>>796392
#137 #796390
>>796388
Денег нет, но ты держись.
>>796395
#138 #796392
>>796388

На еду хватит.
>>796395
#139 #796395
>>796392
>>796390
Не, поцоны, я на джанге кое-как пытаюсь выкручиваться на 20к, заказов нихуя нету, уже 3 месяц пытаюсь.
>>796399
#140 #796397
>>796379
>>796387
Если НУБЯРА подходит, то я мог бы попробовать помочь, на пистоне я уже года 3-4 пишу разные шкриптики, но не хватает мотивации заняться изучением в плотную. Проект в какой области?
>>796400
#141 #796399
>>796395
Мне и Джанго надо. Ты можешь со мной бесплатно поработать. Потом правда твой модуль будет в реальном коммерческом проекте, а ты будешь ни с чем с опытом. А если серьезно, то где взять такого? Не будь у меня кучи дел, сам бы был рад такой возможности.
>>796402
#142 #796400
>>796397
Оставь телеграм. Какой лвл?
>>796408
#143 #796402
>>796399
Да я и в Numpy могу.
Но за идею работать - извини, я на апворке заебался, у всех нормальных ребят по косарю долларов зарплаты, а у меня 300-350
>>796403
#144 #796403
>>796402
Ты работаешь, тебе все это не интересно.
>>796406
#145 #796406
>>796403
Да только 3 месяц же, может в течении года увеличится еще, а может и уменьшится.
Деньги в любом случае нужны, мне интересны другие технологии в программировании, но там работы не найдешь, а если и найдешь, то даже до 300 баксов не дотянешь.
Или требуют совсем гиков.
>>796411
#146 #796408
>>796400
MrRak
Я так понял тебе по джанге нужно? ну я нихуя не делал на ней, опять же мотивации нет(, смотрел видосы, в принципе, наверно на день могу говноблог слепить. Но только если тебе нужен челик для СОВМЕСТНОЙ работы, а не делать самому для тебя.
>>796410
#147 #796410
>>796408
лвл >25
#148 #796411
>>796406
А мне что посоветуешь? Самому пердолиться, наверно так и получится.
>>796413
#149 #796413
>>796411
Да найми какого-нибудь дебила, вроде меня на фрилансе.
Тебе что конкретно сделать то надо? Может это шаблонная хуета.
#150 #796416
Я и забыл про фриланс.
#151 #796429
30 мб для базы данных на sqlite - это нормально? Она не будет тупить-тормозить?
#152 #796444
>>796374
А если хочешь работать, то соблюдай PEP-8, никаких однострочников.
>>796467
#153 #796464
>>795741
>>795714
Разобрался, короче. Сначала я читаю хедер, потом вычленяю из него Content-Length, и если он больше нуля (или вообще есть) - то читаю соответственное количество байтов еще и поверх.
>>797476
1036 Кб, Webm
#154 #796465
>>795897
Да везде. JS работает быстрее в разы за счет V8, ванильная Lua тоже быстрее, а если LuaJIT - то вообще на порядки. Мне вообще сложно назвать современный язык программирования, который работал медленнее Пайтона в стандартной реализации.

>>796250
Вембрелейтед.
>>796590
#155 #796467
>>796444
хули его соблюдать то блять
пучарм это говно из коробки делает
#156 #796478
>>795990
Поддвачну реквест
>>796555
#157 #796542
>>795990
Kaggle же
#158 #796555
>>795990
>>796478

> работал аналитиком


> не знает, где взять данных

#159 #796578
Вопрос по джанго:

class User(models.Model):
..name=models.CharField(...)

class Result(models.Model):
..user = models.ForeingKey(User, default=....)

как мне ставить в Result default значение первого юзера?
>>796582
#160 #796582
>>796578
DEFAULT_USER = 1
class Result(models.Model):
..user = models.ForeingKey(User, default=DEFAULT_USER)
>>796587
#161 #796587
>>796582
А через что-нибудь типа User.objects.first ?
Что бы не так костыльно
>>796591
#162 #796590
>>796465

> JS работает быстрее в разы за счет V8, ванильная Lua тоже быстрее, а если LuaJIT - то вообще на порядки.


Гугли pypy, pyston, cython.
Вопрос только, нах тебе скорость в питоне?
Я иногда специально делаю способом который работает чуть медленнее, но легче читается/воспринимается, и мне срать на проигрыш в доли секунд.
#163 #796591
>>796587
Ну так попробуй:

def get_first():
....return User.objects.first()

class Result(models.Model):
..user = models.ForeingKey(User, default=get_first)
>>796600
#164 #796600
>>796591
Спасибо
#165 #796605
>>795043
Обмазывать тестами все, что есть и в какой-нибудь ci системе запускать при деплое автоматически. Для веба selenium, для бекэнда какой-нибудь unittest
#166 #796629
Хлопчики, а посоветуйте как сделать так, что бы в БД мог быть только один экземпляр класа
Ну вот
class User
и надо что бы user был только один, что бы никто не впиздячил второго

создать что-то типа:
class OnlyOne(model.Model):
..pass

class User(model.Model):
..onlyone = model.OneToOneField(OnlyOne) ?

может чего есть более аккуратное?
>>796634>>796651
#167 #796633
Какой самый простой способ добавить многоязычность в джанго?
>>796643
#168 #796634
>>796629
Просто запрети добавлять новых юзеров в админке.
>>796638
#169 #796638
>>796634
Ну мне не юзеры нужны, а свой класс. Как для своего класса запретить?
>>796953
#170 #796643
>>796633
Стандартные возможности: https://docs.djangoproject.com/ja/1.9/topics/i18n/translation/
Помечаешь в коде и шаблонах все строки, которые нужно перевести. Генерируешь для этих строк файлы перевода на нужные языки. Переводишь. Готово!
Для того, чтобы рулить переводами есть удобное приложение http://django-rosetta.readthedocs.io/en/latest/

Если нужна возможность добавлять контент в админке на нескольких языках, то для этого есть годное приложение http://django-modeltranslation.readthedocs.io/en/latest/
>>796704
#171 #796651
>>796629
можно попытаться делать так, как этот чувак советует: http://stackoverflow.com/questions/2106823/limit-a-single-record-in-model-for-django-app/8094563#8094563
>>796701
#172 #796701
>>796651
An easy way is to use the setting's name as the primary key in the settings table. There can't be more of one record with the same primary key, so that will allow both Django and the database to guarantee integrity.

честно тебе скажу - прочитал уже раз 10 и так и не понял что он имеет ввиду
>>796705
67 Кб, 478x353
#173 #796704
>>796643
Большое спасибо тебе
#174 #796705
>>796701
я не про тот ответ, который отмечен правильным, а про тот, что ниже.
добавить has_add_permission, в которой проверять кол-во обектов в таблице. Если больше 0, то запрещать добавление. Должно сработать
class MyModel(models.Model):
....onefield = models.CharField('The field', max_length=100)

class MyModelAdmin(admin.ModelAdmin):
....def has_add_permission(self, request):
....# if there's already an entry, do not allow adding
........count = MyModel.objects.all().count()
........if count == 0:
............return True

........return False
>>796706
#175 #796706
>>796705

>has_add_permission


оно джанговский метод встроенный какой-то, или его и в админку как-то нужно будет пихать хитро?
>>796709
#177 #796710
>>796709
ага, вот теперь понял
Спасибо огромное!
>>796713
#178 #796713
>>796710
И да, вместо MyModel.objects.all().count() наверное можно MyModel.objects.count() - all() тут не нужен.
#179 #796757
Как сократить этот код http://pastebin.com/QrDYSy3Z в пистон вее? Это два метода класса, различие по сути в одной строчке. Я мог бы распихать все что до и все что после в две разные функции, но я что-то слышал про декораторы, хотя и не понимаю, как их сюда прихуячить.
>>796760>>796789
#180 #796760
>>796757
Пока переделал так:
http://pastebin.com/AuQZmbAi
#181 #796777
Аноны, помогите разобраться с этим ебучим циклом
Что он делает?

>for i in range(lastPoint):



> inputs[i,:] = PNoz[i:i+tk:t,2]


> targets = PNoz[i+t(k+1),2]


Я понимаю, что он повторяет все столько раз, сколько у нас значение lastPoint, я знаю, что обозначает и t и k
Но чему конкретно будет равно inputs и targets?
#182 #796780
>>796777
И да, PNoz - это массив с 4 столбцами и 2855 рядами, он был объявлен до этого
#183 #796784
>>796777

>inputs[i,:]


А это было объявлено, как

>inputs = np.zeros((lastPoint,k))


>targets = np.zeros((lastPoint,1))


Перед циклом
>>796837
#184 #796789
>>796757
Через контект менеджер удобнее всего. Можно любой блок кода обернуть. Можно через декоратор, но тогда ты только функции так оборачивать сможешь.
http://pastebin.com/sf1Pryds
>>796792
#185 #796792
>>796789
Как же заебись, спасибо!
77 Кб, 516x528
#186 #796796
Может кому пригодиться
#187 #796802
>>796796
в чем наебалово?
>>796823
#188 #796804
>>796796

>пригодиться


Пошёл нахуй отсюда.
>>796823
#189 #796807
>>796796
эх, жалко у меня резюме нет
>>796823
#190 #796823
>>796802
Не вижу наебалова.
>>796804
Извини
>>796807
Просто напиши им, сказали же нубов берут. Собеседование пройдешь где тебя спросят что такое with и что означает http 403 по скайпу.
>>796830
2 Кб, 277x33
#191 #796825
Питон теперь лисп!
>>797232
#192 #796830
>>796823

> по скайпу


оу. у меня, на самом деле, еще и разговорный английский никакой.
а вообще, вакансия конечно интересная. может и напишу им. спасибо.
#193 #796837
>>796784
>>796777
Аноны, так что значит эта хуйня?

> inputs[i,:] = PNoz[i:i+tk:t,2]


Никак не могу вникнуть, мы в i строк массива добавляем значение PNoz?
Но в PNoz 2855 элементов, а в i максимальное значение будет 2847
>>796860
#194 #796860
>>796837
я в numpy не секу, но предположу, что:

Мы пишем в i-ую строку массива index.

i:i+tk:t - это вроде бы indexing.
i - начальный индекс
i+tk - конечный
t - шаг.

Вот с офсайта пример:

>>> x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])


>>> x[1:7:2]


array([1, 3, 5])

То есть, мы берем второй столбец массива PNoz и добавляем из него элементы (не все) в массив inputs

inputs = np.zeros((lastPoint,k)) и targets = np.zeros((lastPoint,1)) - массивы с нулями. в первом lastPoint строк и k столбцов, во втором - 1 столбец.

А ты запускал этот код вообще? Напихай туда принтов и посмотри, что происходит. Только возьми массив PNoz поменьше.
>>796868>>796885
#195 #796868
>>796860

>Мы пишем в i-ую строку массива index.


Массива inputs, конечно же. опечатался
#196 #796885
>>796860
Да это ебучая наркомания, запускал

>print (PNoz[0:0+tk:t,2])


>print (PNoz[2846:2846+tk:t,2])


Равны первому и последнему элементу inputs
Это на самом деле прогнозирование, где t - насколько далеки точки друг от друга Равно 2 и сколько точек нам надо k = 3
#197 #796897
Кто там говорил, что на петоне лучше всего программировать, сидя на линуксе? Это же полный пиздец. У Убунты из коробки идет 3.4, а красноглазики в один голос вопят, что обновлять очень нежелательно, ведь распидорасит какие-то системные функции.
Но тогда вопрос - как, блядь, не просто установить 3.5, но и прикрутить pip к консоли? Всяческие выкрутасы типа pip3 упорно ссылаются на 3.4.
После удобств винды все это выглядит жесточайшим пердолингом. python3.5 -m pip install modulename - слишком длинно. Не говоря уже о дополнительных сношениях, чтобы запускать скрипты именно через 3.5
#198 #796900
>>796897

>слишком длинно


алиасы
#199 #796901
>>796897
есть гента, ты можешь установить сколь твоей душе угодно версий питона, удачи.
>>796902
#200 #796902
>>796901
А как там решается проблема, какая версия дефолтная? В винде достаточно поставить цифру в PY_PYTHON.
#201 #796904
>>796897

> как, блядь, не просто установить 3.5


pyenv

> python3.5 -m pip install modulename - слишком длинно


Ой, иди нахуй.
>>796911
#202 #796906
Как на винде установить PyLab? Numpy установлен
#203 #796911
>>796904

>Ой, иди нахуй.


Только посмотрите, адепту python way НЕПРИЯТНА, что кто-то предпочитает писать вполовину меньше букв, если это возможно.
>>797170>>797174
#204 #796913
>>796897
Используй virtualenv. Мжно создать окружение с той версией интерпретатора питона, какой захочешь. Плюс, не засираешь систему своими пакетами голобально. Можешь насоздавать окружений для разных проектов с разными версиями питона и разными версиями одного и тех же пакетов, например и все у тебя будет заебись.
#205 #796953
>>796638
Просто сделай расширению модель юзера.
#206 #796967
Сосач, выручай. Пишу скрипт, скачивающий музыку из вк, если ее нет в заданной директории. Все работает, но только с английскими треками. Как заставить python сохранить русское название?
file = open('кирилица','wb') - выбивает ошибку
#207 #796968
Сосач, выручай. Пишу скрипт, скачивающий музыку из вк, если ее нет в заданной директории. Все работает, но только с английскими треками. Как заставить python сохранить русское название?
file = open('кирилица','wb') - выбивает ошибку
>>796970
#208 #796969
Сосач, выручай. Пишу скрипт, скачивающий музыку из вк, если ее нет в заданной директории. Все работает, но только с английскими треками. Как заставить python сохранить русское название?
file = open('кирилица','wb') - выбивает ошибку
>>796970>>796977
#209 #796970
>>796967
>>796968
>>796969
Сука, извиняюсь.
#210 #796976
>>796967
Ты дурак или куда? Как ты добрался до взаимодействия с api, но про ебаный encoding = utf-8 не знаешь?
text_file = open("analize.txt", "w",encoding='utf-8')
>>796978>>796994
#211 #796977
>>796969
Кодировку в начале скрипта прописывал?
Используешь API или скрапаешь?
>>796994
#212 #796978
>>796976
А, я твой вопрос не так понял. С кириллицей питон вообще не дружит, у меня была учетка на кириллице, из-за этого у меня ни одна команда через коншоль не работала, в PATH мое имя отображалась, как сломавшаяся кодировка.
#213 #796984
>>796897
В 16.04 питон 3.5 из коробки.
#214 #796994
>>796976
Это бинарный файл, с ним такое не прокатывает.
ValueError: binary mode doesn't take an encoding argument
>>796977
API, не прописывал, потом поставил utf-8 и не помогло
#215 #797128
Анон, а в чем ты работаешь с Питоном/Джангой?
Если есть юзеры vim'а, то скиньте мастхэв аддонов.
начинающийвимоблядок
>>797135>>797156
#216 #797135
>>797128
кстати удвою реквест

от себя порекомендовать могу разве что в http://vimgolf.com/ погонять и a byte of vim
>>797372
#217 #797156
>>797128
sublime text 3
Стоит юзать только его, не гонись за крутостью мужиков, работающих в пердольке. Они так с 90-х привыкли.
#218 #797162
>>796967
Версия пейсона?
>>797371
#219 #797170
>>796911
Пердёжь в лужьу
#220 #797174
>>796911
Ну всё просто - пиши как тебе нравится, конечно, раз живём. Но будь готов нести ответственность за свой выбор, например когда вакансию отдадут другому более понятному кандидату.
>>797225
#221 #797225
>>797174
Угу, прям посмотрят на мой комп и как я там удобно все под себя настраиваю - и сразу отдадут. Иди нахуй, пердолик.
>>797256
#222 #797232
>>796825
почему ? одна анониманая функция в другой и все.
>>797235
#223 #797235
>>797232
Он про (лямбда..)
#224 #797256
>>797225
Ты дибил? Это специально зделали чтобы не зависеть от системных алиасов, это благо, нахуй.
>>797266
#225 #797266
>>797256
То есть, я не должен избавить себя от повышенной вероятности опечаток и 100500 ввода одного и того же текста, потому что это жестко вшитый костыль, изменение которого пидорасит все, ты хотел сказать?
Нахуя мне 3.4, если мне нужен только 3.5? Какого хуя я вообще должен зависеть от ненужного 3.4?
#226 #797269
>>797266
Это уже не говоря о том, что я должен помнить, какая именно версия 3 питона мне нужна, ибо если напишу по привычке и таториалам или просто забуду - все улетит в нахуй не нужный 3.4.
>>797277
#227 #797270
>>797266
Да сделай себе блядский алиас и перестань ныть.
>>797280
#228 #797277
>>797266
Просто ты макака и не можешь автоматизировать установку нужной версии пифона и нужных библиотек.
3.4 нужен системным утилитам, дибил, они на них завязаны. 3.4 нужен если гвида решит 3.5 зделать обратно несовместимым.
>>797269
Конечно должен, блядь. Ты же когда в си пишешь указываешь стандарт компилятору.
>>797282
#229 #797280
>>797270

>перестань ныть


ЧСВшному говну не нравится, что его маняфантазии оспаривают.
#230 #797282
>>797277
Еще раз говорю, мне похуй, что там нужно системе. Мне - не нужен. Я им пользоваться не собираюсь.
>>797302
#231 #797302
>>797282
Ну, ясно, соси тогда. Всё просто.
#232 #797371
#233 #797372
>>797135
двачую, тоже перекатываюсь на vim. Правда хз, как им можно нормально пользоваться на обычный de, вот в тайловых - да, я могу понять.
>>797381
#234 #797381
Ссылочка по настройке Vim для Django
https://code.djangoproject.com/wiki/UsingVimWithDjango
Ссылочка на всеми любимое исчерпывающе подробное https://www.fullstackpython.com/vim.html

дрисня на хабре непроверенной полезности:
https://habrahabr.ru/post/224979/
https://habrahabr.ru/post/196550/

Просто о vim книжечка на 70 страниц
http://rus-linux.net/MyLDP/BOOKS/Vim/prosto-o-vim.pdf

>>797372
так же как и в тайловых. смысл то мышь реже тягать.
#235 #797385
Судари, такая вот хуйня:
Нахожусь в командировке, есть ноутбук Lenovo E31-70 новый, но дерьмовый
Любимое Ubuntu я на него накатил конечно, но Chromium 10-15 вкладок + Pycharm дают практически всегда гарантированне слайд-шоу.

Вариантов собственно два:
1. накатить ещё ram / ssd но это платно
2. или заменить чем-то pycharm или cromium менее прожорливым.

Вот пока меня не окончательно доебало всё до варианта 1, хочу попробовать 2.
И так, чем заменить хромиум менее прожорливым? Может и вместо pycharm'а чего появилось с удобным автокомплитом/подсказочками и без java-машины?
inb4 emacs
>>797388
#236 #797388
>>797385
Лол, собери себе арч+i3wm, которой будет кушать 100 метров на старте и не имей проблем.
>>797389>>797391
#237 #797389
>>797388
Собрать-то не проблема, но этим же ещё пользоваться потом надо
#238 #797391
>>797388
Я сам не то что бы гуру линуксов, или питона, или ещё чего-угодно. Убунту я люблю за то что вбиваю возникший вопрос в гугл и 100% получу нужный ответ.
С арчем дебианом и тд всё сложнее
>>797394>>797396
#239 #797394
>>797391
Можешь хотя бы ради интереса попробовать, мне лично намного удобнее. Смысл в том, чтобы слезть с unity, он жрет очень много. Хотя бы на xubuntu перекатись.
>>797395
#240 #797395
>>797394
а, так я и так на xfce сижу
>>797398
#241 #797396
>>797391
На самом деле у арча очень хорошая вики.

Использую арч+i3wm. Кушает на старте немного, но хром реально прожорливый - 4 Гб ОЗУ не хватает. Но альтернатив не вижу.

В качестве редактора - Sublime text 3 жрет уж точно поменьше, чем pycharm
>>797397>>797438
#242 #797397
>>797396
А чем Сублайм обмазать для автокомплитов удобных и может быть поиску по встроенной/вписанной в py-файлы документации?
>>797403
#243 #797398
>>797395
Ну все, дальше только тайл и минимальный сборки. На самом деле арч не сложный, обожаю pacman - лучшее пакетный менеджер.
Pycharm обязательный атрибут? Sumbile или vim будут намного выгоднее в плане прожорливости.
>>797438
#244 #797403
>>797397
я автокомплитом не пользуюсь, но вроде есть пакеты. вот тут глянь https://realpython.com/blog/python/setting-up-sublime-text-3-for-full-stack-python-development/#customizing-sublime-text-3
>>797438
#245 #797407
Двачую. Установил арч и забыл про него. Работает хорошо, пакеты всегда свежие.
#246 #797433
http://www.openvim.com/
потешное хоть и слишком быстрое для меня-аутиста
>>797611
#247 #797438
>>797396
>>797398
Ну может попробую как-нибудь.
Я чуть ссу какие-то манипуляции с компом делать сейчас - комп то один, а ежели флешка загрузочная запишется с ошибкой я понятия не имею где мне её переписывать.
Да я давно хотел угореть по vim и i3, задротства во мне должно хватить - в конце-концов мои любимые игры это DF и Cataclysm DDA, так что как мне кажется и к таким вещам как полностью ручное управление я предрасположен.

>>797403
Стесняюсь спросить ты помнишь все приблуды джанго наизусть? Просто мне без предложений после точечки класса / объекта и тд и подсветки сверху что писать в скобочках будет как-то очень грустно и гуглить заебусь.

Но спасибо большое, ребята
>>797441
#248 #797441
>>797438

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


Ну, помню то, что чаще всего иcпользую. А если что-то забыл, то лезу в документацию. Помнить всё наизусть - это же пиздануться можно! Да и не нужно.
#249 #797459
ищу работу джуном. готов много работать. vk/cayley
>>797467
#250 #797467
>>797459
В чем вообще смысл брать на работу джуна? Так ли велика от него выгода?
>>797470
#251 #797470
>>797467
Можно слепить из него нормального работника.
>>797472
#252 #797472
>>797470
Но что мешает найти нормального работника из коробки?
К тому же, как это относится к удаленке?
>>797477
27 Кб, 256x229
#253 #797476
>>796464
>>795714
>>795005 (OP)
Короче, я дописал роутинг и выложил свой фреймворк с типа асинхронным веб-сервером на гитхаб. Обосрите меня немного, что ли, или подскажите чего годного:
https://github.com/SweetPalma/Perver
>>797585>>797591
#254 #797477
>>797472
любой работе обучают на работе. они не берутся из ниоткуда.
#255 #797486
Сап зеканы! Есть ли какое-нибудь нормальное dependency management в питоне? Я имею ввиду per-project, как в rust'e есть карго, в джаве мавен, в похапэ композер. А в питоне только pip который устанавливает все глобально, зашквар же.
>>797487
#256 #797487
>>797486
virtualenv + pip
#257 #797585
>>797476
1. Перепиши ридми. Много лишнего говна. Сделай как у всех Features/Reasons/Installation/Usage/etc. А не как сейчас — набор охуительных историй.
2. > from hashlib import sha1 as hash
Нахуя это as hash? hash — это зарезервированное имя в builtins https://docs.python.org/3/library/functions.html?highlight=hash#hash
Также как и map
3. pep8. 4 пробела, нахуя 8?! Нахуя две строки между методами класса?
4. Нахуя столько бесполезных комментариев?
5. Делать новый фреймворк и использовать @asyncio.coroutine и yield from полное говноедство. Делай сразу async/await/async with/async for, покажи что ты модный.
6. > path = path.endswith('/') and path[:-1] or path

> error_text = number in error and error[number] or 'Unknown Error'


Избегай подобного говна как бы соблазн не был велик.
7. Вместо except: break делай with contextlib.suppress(Exception).
8. > log.error(format_exc())
log.exception("text")
9. > def route(self, path):

> def callback(func):


Да ты охуел?! Кичишься асинхронным сервером и не даёшь пользователю асинхронности. Какие, нахуй, коллбеки, используй async def и чтобы у пользователя была асинхронная функция.
10. В декоратора должно быть functools.wraps(f) чтобы метаданные не проебались.
11. > os.system('pause')
$ pause
pause: command not found
12. > del handler
Нахуя? Пусть сборщик ебётся.
13. https://github.com/SweetPalma/Perver/blob/master/perver.py#L551
Нахуя return?

Короче, говно полное.
#257 #797585
>>797476
1. Перепиши ридми. Много лишнего говна. Сделай как у всех Features/Reasons/Installation/Usage/etc. А не как сейчас — набор охуительных историй.
2. > from hashlib import sha1 as hash
Нахуя это as hash? hash — это зарезервированное имя в builtins https://docs.python.org/3/library/functions.html?highlight=hash#hash
Также как и map
3. pep8. 4 пробела, нахуя 8?! Нахуя две строки между методами класса?
4. Нахуя столько бесполезных комментариев?
5. Делать новый фреймворк и использовать @asyncio.coroutine и yield from полное говноедство. Делай сразу async/await/async with/async for, покажи что ты модный.
6. > path = path.endswith('/') and path[:-1] or path

> error_text = number in error and error[number] or 'Unknown Error'


Избегай подобного говна как бы соблазн не был велик.
7. Вместо except: break делай with contextlib.suppress(Exception).
8. > log.error(format_exc())
log.exception("text")
9. > def route(self, path):

> def callback(func):


Да ты охуел?! Кичишься асинхронным сервером и не даёшь пользователю асинхронности. Какие, нахуй, коллбеки, используй async def и чтобы у пользователя была асинхронная функция.
10. В декоратора должно быть functools.wraps(f) чтобы метаданные не проебались.
11. > os.system('pause')
$ pause
pause: command not found
12. > del handler
Нахуя? Пусть сборщик ебётся.
13. https://github.com/SweetPalma/Perver/blob/master/perver.py#L551
Нахуя return?

Короче, говно полное.
>>797613>>797675
91 Кб, 365x275
#258 #797591
>>797476
Бля, да ты ещё сам себе звезду поставил.
>>797675
#259 #797594
Хлопчики, конечно офтоп ещё какой но блин мне больше не с кем поделиться радостью.
На сраном lenovo e31-70 втулил i3wm и пичарм с хромом залетали просто
Мне конечно неудобно пок а, но блин ни озу ни покупать, ни ссд ставить - ничего не надо.
Я так понимаю косячность основная была в дровах видеокарты от интел, для которой собственно дров и не было как-то
>>797617>>797647
#260 #797611
>>797433
Бля, ну и говнище.
#261 #797613
>>797585
Хорошо, сейчас гляну.
#262 #797617
>>797594
Красава. К i3wm привыкнешь, я думаю. Я теперь когда пытаюсь вернуться на какое-нибудь DE, просто охуеваю от того, как все медленно и/или неудобно.
#263 #797647
>>797594
Я все никак не могу привыкнуть к пичарму. Несмотря на х64, 8 гиг оперативы и i5 - эта штука просто нереально тормозит на старте, открывается несколько минут, что очень бесит. Быстрее отрыть стандартный Idle и поправить что надо.
46 Кб, 465x723
#264 #797675
>>797591
И? Если хочешь, можешь исправить это недоразумение - и влепить свою звёздочку вместо моей.

>>797585

> Да ты охуел?! Кичишься асинхронным сервером и не даёшь пользователю асинхронности. Какие, нахуй, коллбеки, используй async def и чтобы у пользователя была асинхронная функция.


Самое обидное - есть там асинхронность, только что проверил через asyncio.sleep, просто в корутину оно заворачивается только в respond_script. Впрочем, переписал для наглядности.

> Делать новый фреймворк и использовать @asyncio.coroutine и yield from полное говноедство. Делай сразу async/await/async with/async for, покажи что ты модный.


Опять же таки - нахуя? Кому показывать-то, ёпта? Пусть лучше будет обратная совместимость с 3.4, чем ГРОБ ГРОБ КОВОРКИНГ СМУЗИ с новыми ненужными операторами.

> Перепиши ридми. Много лишнего говна. Сделай как у всех Features/Reasons/Installation/Usage/etc.


Ты о чем вообще? У меня в ридми только это и есть. А если ты о референсе, то примеры из него я убирать не буду, может, их лучше в отдельный файл вынести?

> pep8. 4 пробела, нахуя 8


У меня там вообще табуляция, я не ебу как средство просмотра гитхаба их отображает.

Остальное исправил, спасибо.
>>797686
377 Кб, 1024x768
#265 #797684
Поясните за обработку ошибок при работе с интернетом.
Вот допустим у меня есть скрипт, который отправляет разные запросы к разным ресурсам в интернете. Но интернет такая штука, что что-то может пойти не так и ресурс окажется недоступен, значит всегда нужно планировать обработку ошибок. Я не хочу размазывать конструкции try exception по всему коду и пишу функцию, через которую проходят все запросы и в которой есть обработчит ошибок. И вот тут начинается засада, поскольку в зависимости от запрашиваемого ресурса ошибка может быть как критической для работы скрипта, так и несущественной. Получается решение обрабатывать все ошибки в одной функции было неверным? Для примера, скрипт заходит на страницу с ссылками на закачку, собирает ссылки, переходит по каждой из ссылок, собирает информацию о файле, качает файл. Если какой-то файл будет недоступен, то его можно пропустить. Если страница с ссылками недоступна, то нужно остановить скрипт. Если вместо страницы с инфой о файле появилась заглушка, то нужно перейти к следующему файлу, а не пытаться собирать инфу и качать файл. Как-то так.
>>797841>>797847
#266 #797686
>>797675

> и влепить свою звёздочку вместо моей


Уволь.

> совместимость с 3.4


> с новыми ненужными операторами


Кому нужна совместимость с 3.4? Это же не 2.7. 3.4 прошла и её забыли.

> Ты о чем вообще?


Я об этом например

>Download this into your working directory. Dont forget, you need Python 3.4 or newer. Done, you're ready to go.


> P.S. If your browser doesn't download it, simply displaying a text file - press on that link with right mouse button and choose "Save As".



> У меня там вообще табуляция


Ну, тогда вообще пиздец. Сжечь нахуй.
>>797690>>797702
#267 #797690
>>797686
И операторы ненужные, вооще охуеть. Это, блядь, грааль по сравнению с yield from.
11 Кб, 500x500
#268 #797702
>>797686

> Уволь.


Как хочешь.

> Ну, тогда вообще пиздец. Сжечь нахуй.


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

> Кому нужна совместимость с 3.4? Это же не 2.7. 3.4 прошла и её забыли.


> И операторы ненужные, вооще охуеть. Это, блядь, грааль по сравнению с yield from.


Может ты и прав касательно этого. Подумаю на досуге.

> Я об этом например


>>Download this into your working directory. Dont forget, you need Python 3.4 or newer. Done, you're ready to go.


>> P.S. If your browser doesn't download it, simply displaying a text file - press on that link with right mouse button and choose "Save As".


Придирка ради придирки. Если в reStructuredText можно было бы дать ссылку с атрибутом "download" - я бы так и сделал, а так - извиняй, что потревожил твои эстетические чувства.
>>797709>>797714
#269 #797709
>>797702

> Придирка ради придирки


Вовсе нет. Напиши просто Grab yoba.py и всё.
>>797717
#270 #797714
>>797702

> Пэпом не запрещено


Он вообще не запрещает ничего. Это рекомендации. https://www.python.org/dev/peps/pep-0008/#indentation
>>797717
#271 #797717
>>797709

> Напиши просто Grab yoba.py и всё.


Не совсем понял, что ты имеешь в виду.

>>797714
Конечно же, это рекомендации, но там так и сказано - лучше используйте четыре пробела вместо табов. Но если хотите табы и так изначально задумано - то пишите табами, только не смешивайте их с пробелами. Я так и делаю.
>>797720>>797722
#272 #797720
>>797717

> Не совсем понял, что ты имеешь в виду.


Вместо ссылок и инструкций как качать с гитхаба просто напиши. Grab yoba.py (где yoba.py файл с твоим фреймворком).
#273 #797722
>>797717

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


Где ты там такое прочитал?
>>797732>>797734
#275 #797734
>>797722
https://www.python.org/dev/peps/pep-0008/#tabs-or-spaces

> Spaces are the preferred indentation method.


> Tabs should be used solely to remain consistent with code that is already indented with tabs.


Я вообще не понимаю любителей пробелов. Ширину отступов в табах можно настроить, в пробелах - нет.
>>797745
#276 #797745
>>797734
Там же написано, что табы должны использоваться только в случаях, если уже есть код, который написан с табами. Если ты пишешь с нуля, то используй пробелы.
>>797755
#277 #797755
>>797745
А мог бы код писать вместо устраивания вечного срача "Tabs VS Spaces".
>>797775
#278 #797773
Нужна красивая IDE. Что посоветуете?
#279 #797775
>>797755
А ты мог бы английский учить, чтобы понимать, что пишут.
>>798049
#280 #797796
>>797773
Блять. Лучше pycharm ничего для питона не существует.
>>797797
#281 #797797
>>797796
Она платная
>>797888
#282 #797810
Хелп! Как в PyCharm отключить всплывающие окна с подзкасками при написании кода?
31 Кб, 650x550
#283 #797824
Ну и как обновить этот pip
>>797878
#284 #797836
Вы тут спрашивали про хороший игровой 3D движок под питон. Оказывается давно есть это https://www.youtube.com/watch?v=CG4C7PZAqDQ
>>797919
#285 #797838
>>797848
233 Кб, 884x1400
#286 #797841
>>797684
Может кто-нибудь все же ответит?
>>798044
#288 #797848
>>797838
На Sublime похож. Можно в нём скрывать рамку окна? типо с Названием файла и _х
>>797850
#289 #797850
>>797848
да, можно
#290 #797855
>>797847
Что это за дерьмо? Утки какие-то, бжад! Чем это должно мне помочь?
#291 #797878
>>797824
Внизу же и написано
>>797883
#292 #797883
>>797878
Не помогло. Та же фигня происходит
>>797891
#293 #797888
>>797797
Есть community edition. И бесплатно на торрентах.
#294 #797891
>>797883
От администратора запускай, написано же.
>>797904
#295 #797892
Блин, ребята, я всё понимаю что и программёром быть лучше чем сварщиком, и питон выучить не семь пядей во лбу иметь надо, но блин начните тупо с английского языка. Базарю, обучение ускорит в десятки раз. Всего один сраный спикинг-клаб в неделю и какой-нибудь хендбук коих миллионы каждый день по пол часа.
>>797912>>797933
#296 #797904
>>797891
Спасибо
#297 #797912
>>797892
Не завидую тем, кто хочет в кодинг без знания английского. У самого Intermediate с нятяжкой
#298 #797919
>>797836
Вот тут как скомпилировать игру в exe. Невероятно просто! https://www.youtube.com/watch?v=fkZclKubSfk
#299 #797933
>>797892

> пол часа


Тебе стоит начать с русского.
>>797950
#300 #797950
>>798031
#301 #797957
>>797773
sublime text 3 + плагины, все остальное конская хуйня
>>798030
#302 #798030
>>797957
Это не иде.
>>798038
#303 #798031
>>797950
А стоило бы.
#304 #798038
>>798030
Что тебе нужно от IDE, что невозможно в саблайме?
>>798040
#305 #798040
>>798038
Я не >>797773, просто сделал замечание. В ide есть рефакторинг, мощные проверки кода, типа как в рантайме, интроспекция (или как там оно, когда пишешь yoba. и тебе вылезает подсказки с методами и свойствами).
>>798050
#306 #798044
>>797841
тебе просто нужна функция get().
держи!
async def get(self, url, post_data, method='GET', connector=None):
with (await self.semaphore):
with aiohttp.Timeout(self.http_timeout):
if connector:
session = aiohttp.ClientSession(headers=self.headers, connector=connector)
else:
session = aiohttp.ClientSession(headers=self.headers)
with session:
try:
data = None
if method.lower() == 'get':
response = await session.request('get', url)
else:
response = await session.request('post', url, data=post_data)
if response:
if response.status == 200:
data = await response.read()
await response.release()
else:
await response.release()
raise RequestException(response.reason, response.status, '')
return data
except Exception as e:
raise RequestException(repr(str(e)), None, traceback.format_exc())
#306 #798044
>>797841
тебе просто нужна функция get().
держи!
async def get(self, url, post_data, method='GET', connector=None):
with (await self.semaphore):
with aiohttp.Timeout(self.http_timeout):
if connector:
session = aiohttp.ClientSession(headers=self.headers, connector=connector)
else:
session = aiohttp.ClientSession(headers=self.headers)
with session:
try:
data = None
if method.lower() == 'get':
response = await session.request('get', url)
else:
response = await session.request('post', url, data=post_data)
if response:
if response.status == 200:
data = await response.read()
await response.release()
else:
await response.release()
raise RequestException(response.reason, response.status, '')
return data
except Exception as e:
raise RequestException(repr(str(e)), None, traceback.format_exc())
>>798055
#307 #798049
>>797775
Посыпаю голову пеплом. Прочитал indented как inteded, ты был прав, только сейчас заметил. Хотя табы на пробелы менять не буду всё равно.
>>798273
#308 #798050
>>798040
Ради бога. Мощные проверки кода в питоне невозможны в принципе, рефакторинг есть, автодополнения и подсказки есть. Трассировка и профилировка возможны внутренними средствами питоне, приблуды к гиту тоже есть.
>>798275
#309 #798055
>>798044
Спасибо, конечно. Но как-то малость монструозно, тем более что я использую либу requests, которя по идее занимается всей этой хуитой с сессиями и таймаутами под капотом. И питон у меня 2.7
Моя проблема в том, что мой код у меня работает, но я сомневаюсь, что он будет работать всегда и везде, и я нихуя не зняю как повысить его надежнотсь и стоит ли этим заморачиваться.
>>798063
#310 #798063
>>798055
все и везде будет работать, не ссы)
функция get дает либо результат, либо исключение, исходя из этого ты реализуешь бизнес логику своего приложения. больше функция гет нихуя делать не должна.
>>798064
#311 #798064
>>798063
зочем троллишь бр0
>>798068
#312 #798068
>>798064
да я не троллю! просто проще надо делать, стремиться к атомарности архитектуры.
>>798071
#313 #798071
>>798068
вот хороший образчик, достойный подражания:
https://ru.wikipedia.org/wiki/Философия_UNIX
«Философия UNIX гласит:
Пишите программы, которые делают что-то одно и делают это хорошо.
#314 #798090
Есть кто шарит в asyncio? Нужен кеш который чистится по таймауту без тредиков. Что-то типа редиса с его expire.
>>798112>>798131
#316 #798131
>>798090
ну, или сам можешь наподобие такого... http://pastebin.com/AGYBeLiE
>>798486
#317 #798213
Что за новое модное async и всякие with с ним, нахуя это нужно?
>>798246
#318 #798217
Что труЪ? сигналы или переопределение метода save?
#319 #798242
Ребята, а вот делаю я в admin.py класс свой
туда пишу что-то типа:
list_display = ['title', 'text']

Ну оно мне разумеется весь текст и выдаёт прямо в админке на странице данной модели
Как бы мне сделать что бы выдавало например 500 символов?
Можно конечно сделать метод типа
def short_text(self):
..return self.text[:500]
или как-то так, и пихать в админку это тегом
Но мне кажется может есть чего встроенное для этого?
>>798243
#320 #798243
>>798242
Ну вот для шаблонов есть что-то типа
{{ model.text|truncatewords:3 }}

А для админики ничего такого нету?
>>798244
#321 #798244
>>798243
Пиши метод в модель и пихай в list_display, все нормально.
>>798247
#323 #798247
>>798244
Спасибо!
#324 #798251
Как добавить в админку свой фильтр?
Фильтр уровня
def not_published(self):
..if not self.published_date:
....return what?
>>798263
#325 #798261
Есть фласк и я хочу сделать сайт-одностраничку, где в формочку что-то вводишь, после сабмита под формочкой строятся какие-то таблицы с данными и введенные в поля формочки данные сохраняются. Как это реализуется? Пока у меня есть это: http://pastebin.com/gXg14QPh , где layout - это главная страничка и там внизу есть блок для контента. Сейчас у меня страничка перезагружается и все поля формочки сбрасываются. Было бы круто, если бы не только введеные данные оставались, но и страница не перезагружалась.
>>798262>>798265
#326 #798262
>>798261
*а content расширяет layout
#327 #798263
#328 #798265
>>798261
без js не обойтись, создай новую вьюху с роутом например /ajax/, на странице по клику на сабмит собери данные формы и отправь аяксом на /ajax/, но не отправляй форму обычным способом.
>>798276
#329 #798273
>>798049
Ну ты просто бунтарь. съебался нахуй отсюда
>>798372
#330 #798275
>>798050
Ты не понял. Если я напишу свой Yoba класс, сделаю инстанс a = Yoba(a, b, c), а потом напишу в каком-то месте a., то в ide вылезет подсказка с методами класса и т.д. не думаю, что сублим так умеет.
>>798280
#331 #798276
>>798265
Грустно, я пока с джаваскриптом не имел дело. Спасибо!
>>798281
#332 #798280
>>798275
Anaconda может.
>>798283
#333 #798281
>>798276
но иначе внатури никак, это следствие stateless природы интернет.
#334 #798283
>>798280
Анаконда? Это же пакетный менеджер. Я про редакторы/ide.
>>798285
#335 #798285
>>798283
он наверное имел в виду плагин для саблайма http://damnwidget.github.io/anaconda/IDE/
>>798316
#336 #798316
>>798285
Хм, наверное. Попробую https://atom.io/packages/autocomplete-python
2 Кб, 930x49
#337 #798329
Как в атоме убрать тайтл-бар? Типо эту штуку
#338 #798372
>>798273

> съебался нахуй отсюда


Ты чё, охуел?
>>798535>>798540
#339 #798374
Как лучше записывать в логи и обрабатывать эксепшены, так http://pastebin.com/zEp3vNvQ или так http://pastebin.com/HLsrUnjG или есть какой-то более лучший вариант?
>>798483
#340 #798440
Как питон считывает данные с файла .txt? Можно сделать чтобы он счытвал и формировал например список?
И можно ли сделать, чтобы считывал по ключу? То есть сделать из файлика .txt микро базу данных? Я вот придумал только перебор по строкам - мол если строка начинается с ключа, то дальше определенные данные идут.
#341 #798450
Накатил плагин для запуска скриптов в Atom. Кириллица заменяется на знаки вопроса. Кодировка utf8. Хелп
>>798465
#343 #798461
>>798440

>Можно сделать чтобы он счытвал и формировал например список?


>И можно ли сделать, чтобы считывал по ключу? То есть сделать из файлика .txt микро базу данных?


Да запросто, язык же полный по тьюрингу, что хочешь то и делай.

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


Ну так и надо, только я регэкспы использовал. Регэкспом разбираешь строку, находишь в каждой ключ и значение. Ну или если регэксп ничего не нашел, то выводишь ошибку.
#344 #798465
>>798450
спермопробелмы
>>798480
#345 #798480
>>798465
На линухе не пробовал. Я пока не хочу осваивать пердолинг
>>798484>>798487
#346 #798483
#347 #798484
>>798480
уебите ему!
#348 #798486
>>798112
Заебусь сериализовывать/десериализовывать.

>>798131
хуета какаето...сорри=(

Нужно что-то типа этого http://pastebin.com/ub1pyhT0

Тут редис юзается как внешний таймер что челик уже закончил свою сессию и пора подчищать память. Мне бы чтоб этот таймер был внутрях и не заебывать редис, и так сука нагружен.
>>798499
#349 #798487
>>798480
Я хуй знаю, купи Rapsberry Pi и гоняй по ssh тогда
Питон без линукса и есть пердолинг
#350 #798499
>>798486
ну и в чем проблема то? сделай таймер.
#351 #798506
name = open('ai_names.txt','r')
name_list =[name.split(",")]

Почему не работает?
>>798512
#352 #798512
>>798506
про чтение забыл.
Но вот при формировании листа сплитом, у меня еще в конце выскакивает "/n" от перехода на новую строку, ее как-то убрать можно?
>>798538
#353 #798525
А почему так нельзя сделать?
name_list =(f.read).split(",")
>>798530
#354 #798530
>>798525
Может потому что метод read не является строкой?
>>798569>>798571
#355 #798534
>>798440
Может shelve?
#356 #798535
>>798372
Ебало своё закрыл, чтобы тебя не видно было.
>>798540
#357 #798538
>>798512
file.read().splitlines()
85 Кб, 717x325
#358 #798540
>>798372
>>798535
Узпокойтесь
#359 #798569
>>798530
Но я же не к методу применяю сплит, а к тому что он возвращает.
Вот так работает.

name = f.read()
name_list =name.split(",")
>>798571
#360 #798571
>>798569 >>798530
Точно, скобочки забыл после read
>>798572
#361 #798572
>>798571
А я уже хотел что-нибудь плохое про тебя написать.
14 Кб, 444x239
#362 #798596
Через консоль всё норм, а тут такая фигня
>>798622
51 Кб, 683x340
9 Кб, 912x125
#363 #798612
Парни, выручайте. Чайник, учу питон по книге Саммерфилда. На куске тестировании куска текста с релейтед1 наткнулся на релейтед2. ЧЯДНТ? Система - win10.
>>798629
133 Кб, 174x191
#364 #798622
>>798628
#365 #798627
Вопрос по ImagField Django:

project/settings.py
....
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')

app/models.py
class OmgImage(model.Model):
..image = model.ImageField(upload_to='image/')

app/templates/image.html
<img src="media/{{ app.image }}" />

Возвращает url картинки типа http://127.0.0.1:8000/media/image/file.jpg - т.е. совершенно правильную, file.jpg и лежит в /media/image/
Но картинку не выводит, при попытке открыть изображение в новой вкладке выдаёт Page not found (404)

Чего так? где я обосрался?
>>798633
#366 #798628
>>798622
Блин, нинад. У меня коулрофобия =(
#367 #798629
>>798612
Поговаривают, что у ван на винде терминал говно. http://stackoverflow.com/a/14284404/5201699
>>798630>>798636
#368 #798630
>>798629
у вас
#369 #798631
напомните, как сделать так , чтобы в строке были заменяемые символы?
"string string %d stirng" чтобы % заменялся на другое значение?
>>798635
#370 #798633
>>798627
в урл паттернах вот так сделай:
https://docs.djangoproject.com/en/1.9/howto/static-files/#serving-files-uploaded-by-a-user-during-development
возмжно, в этом проблема.
>>798676
#371 #798635
>>798631
не уверен, что правильно тебя понял, но возможно так?
'some {0} string'.format(s)
>>798640
#372 #798636
>>798629
Свечку за тебя поставлю. Спасибо.
#373 #798638
Может кто встречал, гайд по созданию бложика или другого говна на джанге, только не как обычно, две странички без нехуя, дальше сами гуглите, а полноценный сайт с всем что нужно, по сути готовый проект.
>>798641
#374 #798640
>>798635
Да, оно!
#375 #798641
>>798638
django by example
но ты охуеешь его читать если до этого опыта с джангой не имел особо
#376 #798658
final_ai = final_ai + " " + "и" + " "

Что можно использовать вместо уродливых " " пробелов ?
#377 #798659
>>798658
Зачем ты складываешь константные стринги?
>>798668
#378 #798660
>>798658
final_ai = final_ai + " и "
?
>>798668
#379 #798668
>>798659
Почему константные, если переменные.
>>798660
Без пробелов следующие имена сольются просто.
>>798685
#380 #798676
>>798633
спасибо большое, друг.
сделал и ещё ебался, а всё почему? потому что блядь нахуй я проебался с
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, '/media/')
сука главное ж в вопросе правильно написал а в проекте этот ебучий слеш.
>>798686
#381 #798685
>>798658
>>798668
Ты что-то делаешь неправильно. Что ты вообще сделать хочешь? Если у тебя есть список слов, то на нём можно сделать " и ".join(список), например.
#382 #798686
>>798676
и я не обратил внимание. по идее ведь слеши вообще не нужны. должно быть:
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
>>798688
#383 #798688
>>798686
Да наверное

алсоу написал лисопедик что бы проще было деплоить
app/urls.py
if settings.DEBUG:
..urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
>>798699
#384 #798699
>>798688

>if settings.DEBUG:


Думаю, можешь убрать это, потому что эта функция и так работает только при DEBUG=True
#385 #798839
Всё равно ебала какая-то с картинками этими
показываются только если писать <img src="media/"{{ app.img }} />

как при таком раскладе их скармливать в sorl-thumbnail
типа:
{% load thumbnail %}
{% thumbnail app.img "350" as im %}
..<img src="{{ im.url }}" />
{% endthumbnail %}
я не понимаю решительно
>>799025
#386 #798948
Есть одна функция класса, которая очень долго выполняется.
Есть прога с фласком, один из роутов запускает функцию.
Как из браузера запрашивать состояние работы функции (например атрибуты класса) во время её работы? Как запустить в фоне и дальше слушать клиента?
Думал использовать для этого celery. Добавлять таск с функцией, но я всё так же не знаю как клиент может запросить что-то кроме ready().
>>798950
#387 #798950
>>798948
Скорее всего тебе нужен AJAX.
#388 #798964
помогите с задачей
http://pastebin.com/cjMXDvFq
>>798969
#389 #798969
>>798964
спасибо решил
#390 #799007
Где можно посмотреть архивачи тредов?
21 Кб, 1098x373
3 Кб, 406x391
#391 #799014
Не могу допереть до того что от меня хотят в одном задании из книги ThinkPython, задача на пикретейлед. Вот код функции circle
https://ideone.com/zRKxJh
На втором пикретейлед результат ее выполнения.
Не могу догнать что за стековая диаграмма.
>>799040
#392 #799025
>>798839
<img src="{{ app.img.url }}" /> так работает?

>как при таком раскладе их скармливать


Вроде бы у тебя все правильно там написано.
Если {{ app.img }} передан в шаблон, то должно работать.

Можешь еще попробовать сделать вот так:
{% thumbnail app.img.url "350" as im %}
>>799032
#393 #799032
>>799025
В том и беда что чего-то не хочет os.system.join'иться "media/" к app.img

app.img дает путь image/file.jpg и без вот этой приставки медиа/ не показывает ничего понятное дело.
>>799050
#394 #799040
>>799014
Стековая диаграмма - это когда ты сам вбиваешь себе значения и на каждом этапе выполнения скрипта замеряешь результат

for x in range(0,4):
..x *= x

Стековая диаграмма тут будет типа
1 - 1
2 - 4
3 - 9
4 - 16
Можешь прямо графиком вместо черепашки рисовать, смысл всего этого что бы ты точно понял что программа делает в ту или иную единицу времени в том или ином куске кода
>>799267
#395 #799042
Ньюфаг вкатился. Есть задача - спарсить страницу. Страница представляет собой js-скрипт, в котором сначала задаются пустые массивы, а потом через .push заполняются словарями ключ-значение. Как раз данные из этих словарей и принадлежность их конкретному массиву мне и нужны, чтобы объеденить их (Слить нулевыые элементы каждого массива в один словарь и запихнуть в итоговый массив нулевым элементом, первые элементы слить и запихнуть в итоговый первым etc)
С одной стороны можно конечно поебаться час с регулярками и выдрать нужные данные, но хотелось бы знать, есть ли более простые и надежные способы?
>>799062
#396 #799047
На убунте, запускаю скрипт через консоль
python: can't open file 'test.py': [Errno 2] No such file or directory
Как пофиксить? PATH на винде, а тут как?
>>799051
#397 #799050
>>799032
Ну я хз тогда. Проверь еще раз все пути, которые в настройках прописал.
Еще {{ MEDIA_URL }} в шаблоне попробуй как-то использовать. Не забудь добавить строчку в context_processors в настройках, как сказано в документации: https://docs.djangoproject.com/en/1.9/ref/settings/#std:setting-MEDIA_URL

Если ничего не получится, то выложи на гихаб или просто сюда архивом кинь я попытаюсь помочь.
#398 #799051
>>799047
Ты не в той папке. Проверь внимательнее.
>>799099
43 Кб, 650x268
#399 #799058
Просто Кольт Питон passing by, неначто смотреть
#400 #799062
>>799042
Ладно, нашел про eval. Буду копать.
>>799133
#401 #799088
Аноны я мамкин неосилятор.Читаю щас марка лутца изучаем питон.Но пока что то я не очень усваиваю откуда узнать слова которые можно писать в коде.Если я пробую что то написать то все время сраный invalid syntax.Это нормально?Или просто стоит дойти до программирования? Я так понял что у меня вся хуйня в синтаксисе но я вроде его вкурил и понял.
>>799091
#402 #799091
>>799088
Приведи конкретные примеры.
>>799096
#403 #799096
>>799091
Ну допустим я хотел сделать это
run hello.py пробовал также вот так
run <hello.py>
>>799101
#404 #799099
>>799051
А куда сохранять чтоб работало
#405 #799101
>>799096
Попробуй так:
python hello.py
>>799160
#406 #799133
>>799062
Будешь eval-ом js выполнять?
>>799157
#407 #799157
>>799133

Вот это лол.
#408 #799160
>>799101
Пробовал это.Но я понял в чем трабл.У меня на андроиде интерпритатор для 2.0 питошки.Щас скачал для 3.0 заработало
#409 #799162
>>799160
Ты не мог бы писать в тредик о своих успехах? Меня заинтересовал твой подход.
#410 #799177
>>799160

>2.0


Это уже пушка.
#411 #799185
>>799160
Ловите наркомана!
#412 #799192
Как в командной строке убунту не указывать путь к скритку, а только писать имя? Типо python script.py
>>799198
#413 #799198
>>799192
Попробуй добавить директорию, в которой находится скрипт, в переменную окружения PYTHONPATH.
>>799201
#414 #799201
>>799198
Через PATH=$PATH: ?
#415 #799223
Вопросы от нубаса по вебу.

Вот я прикрутил к какой-то логике фласк, нарисовал страничку с wtforms, все вроде как работает (формочка принимает данные, страница перезагружается и рисуются таблички). Есть два НО - 1) мне таки хочется AJAX, чтобы страница не перезагружалась, а таблички достраивались снизу 2) мне нужна возможность обрабатывать больше одного запроса от разных клиентов параллельно, у фласка с этим беда, как я понял.

Собственно, что делать?

Я ведь правильно понимаю, что нужно послать нахуй все эти втформсы и фласки, установить какой-нибудь апач, сделать так, чтобы на запросы извне он показывал страничку с жаваскриптом, жаваскрипт передавал сообщения от клиента к логике через апач, потом логика передает сообщения через апач к жаваскрипту и он всё рисует? Или я что-то усложняю и можно как-то проще?
>>799234
#416 #799234
>>799223

>мне таки хочется AJAX


Сделай AJAX

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


Просто используй вместо встроенного во Flask сервера нормальный WSGI сервер, который умеет в параллельные запросы. http://flask.pocoo.org/docs/0.11/deploying/
>>799236
#417 #799236
>>799234

> Сделай AJAX


Пока не очень понимаю, как его дружить с фласком.
>>799263
#418 #799238
Напомните, аноны, какая версия питона используется в Kali Linux 2016.1?
#419 #799263
>>799236
Блядь, мне уже не нужен AJAX, всего-то нужно было почитать документацию втформс.
17 Кб, 365x116
#420 #799267
>>799040
Спасибо за развернутый ответ, но ты был не прав. Гугление на русском ничего не давало, но за-то когда попробовал инглишь нашел кучу объяснений того что от меня хотели.
http://www.openbookproject.net/thinkcs/python/english2e/ch03.html#stack-diagrams
>>799273>>799289
#421 #799273
>>799267
Ну и что самое главное, под словом нарисовать - автор походу имел - нарисовать в графическом редакторе или рукой на листе. А не накодить нечто выводящее диаграмму(на данный момент в книге не давали знаний достаточных для такой задачи). Вот уж где искажение восприятия. Спустя сутки только допер что просьба нарисовать, не обязательно должна относится к программированию.
>>799283
#422 #799283
>>799273
В самом задании же написано, что можно использовать функцию print.
>>799289
#423 #799289
>>799283
И как с помощью функции принт вывести такую >>799267 диаграмму программы?
>>799295>>799297
#424 #799295
>>799289
print('chant1 ---> {}'.format(chant1))
И так все необходимые переменные.
#425 #799297
>>799289
Там дальше такое будет. Правда без цвета и красивостей а
-------------
| типо так |
-------------
#426 #799324
Как с питона на двач постить?
>>799325>>799728
#427 #799325
>>799324
Смешное?
>>799328>>799329
#428 #799328
>>799325
Просто текст. Теперь пытаюсь с помощью requests, но застрял на вытаскивание id капчи из json.
#429 #799329
>>799325
Хм, а это неплохая идея. Можно заделать нейросеть с базой шуток (1000 мемасов и 100 паст) и настроить автоматическую генерацию нового и сразу постить на двощ.
#430 #799331
>>799329
срать прямо на двач, wait oh shi~
#431 #799335
>>799329

Поздравляю, ты изобрел вайпалку.
>>799336
#432 #799336
>>799335
Поясните мне почему str.join() некорректно работает?

https://ideone.com/lUjVFz

При этом отличие проявляется только для строк из одного символа.

https://ideone.com/UmiSL5
Вот тут уже нормально всё
>>799436
#433 #799345
Запускаю прогу с помощью os.system она пишет в stdout строку. Как её сохранить?
>>799347
#434 #799347
>>799345
Например переопределить stdout.
>>799353
#435 #799350
>>799348

>.ga


ну уж нет, сладенький
#436 #799353
>>799347
как? покажи пример. К примера я делаю os.system('echo test'). Он выведет test в stdout. Как его теперь прочитать?
>>799356
#437 #799356
>>799353
блин да python foo.py > python bar.py
>>799358>>799362
#438 #799358
>>799356
и вот держи в догонку традиционный способ
http://www.saltycrane.com/blog/2009/10/how-capture-stdout-in-real-time-python/
#439 #799362
>>799356
Я в программу надо это вписать.
>>799440
#440 #799375

> https://2ch.hk/makaba/makaba.fcgi?board=pr&thread=795005&json=1&2chapthca_id=159ef9c614cdbd254a3c88db56a04eec95ed53c4db25ef088cb291873e577ee5&captcha_type=2chapthca&2chapthca_value=245041&task=post&comment=test (М)



Делаю вот так. Капчу каждый раз новую вожу. Но он всегда пишет {"message":"Нет прав доступа или вам нужно перелогинится","message_title":"Ошибка"} Что за хуйня? Как починить?
>>799380
#441 #799380
>>799375
Порядок параетров имеет значение? Просто в программе я писал их не так.
>>799388
#442 #799388
>>799380

> p = {'json':'1','task':'post','board':'pr','thread':'795005','comment':'test','captcha_type':'2chapthca','2chapthca_id':cap,'2chapthca_value':sol}


> r = requests.post('https://2ch.hk/makaba/makaba.fcgi',params=p) (М)


Вот так пишу. А он не работает. Помогите.
>>799395
#443 #799395
>>799388
Блять. Слово капча не так нписал. Теперь исправил, но он всё равно не равботает
#444 #799436
>>799336
str.join работает корректно.
>>799448
37 Кб, 138x172
#445 #799440
>>799362

> Я в программу надо это вписать

>>799442
#446 #799442
>>799440
Мне. Но уже не надо. Разобрался без этого. Теперь у меня requests.post сломался.
#447 #799448
>>799436
То есть односимвольную строку оно не соединяет с разделителем никак и никогда?
>>799467>>799894
#448 #799467
>>799448

> Return a string which is the concatenation of the strings in the iterable

#449 #799472
test
>>799475
#450 #799475
>>799472
аааблять получилось. ненавижу макаку меняет апи как только начинаются месячные. надо было posting.fcgi писать а не makaba.fcgi
#451 #799480
test
>>799481
#452 #799481
>>799480
А картинку как прикрепить?
>>799530
#453 #799502
Кек, таки смог высрать apk после сношений с pyqtdeploy. И какое счастье - это говно радостно крашнулось при запуске, толком даже не заработав.
Огромный минус, я даже хз, в чем причина - logcat выдает какие-то коды ошибок и места, но они вообще не имеют отношения к моему коду. У меня есть целый 1 недопиленный таториал, который (какое совпадение!) тоже оканчивается до появление работоспособного приложения.
И вряд ли вообще когда-то это будет пригодится для сборки apk - автор совершенно не заинтересован в Андроиде, это даже видно по тому, сколько лишней, ломающей компиляцию статических библиотек херни включается через pyqtdeplycli.
Это не альтернатива buildozerу совершенно. Проблемы отладки совершенно не стоят результата. Документация раскрывает отношения с ведром чуть менее, чем никак, а спросить негде - никто ничего не знает, даже сам Phil.
>>799504
#454 #799504
>>799502
А я тебе говорил.
#455 #799509
И так, где хранить состояние воркера в фласке? То есть, есть два воркера, второй должен иметь доступ в любое время к состоянию первого. Как сделоть?
#456 #799530
>>799481
Бамп. Как в двач апи отравляьб картинки?
#457 #799545
>>799542
А впихнуть её впараметр image как? Это же картинку надо в строку превратить. Как?
#458 #799557
Чо питон такой сложный? По-моему С++ намного проще. А тут они заклинания какие-то - тут пиши, там не пишит, тут скобка, там хуебка.
>>799572>>800164
#459 #799561
Как список с числами преобразовать в список со строками?
>>799567>>799597
72 Кб, 400x448
#460 #799566
test
#461 #799567
>>799561
Попробуй map(str, [1,2,3])
>>799597
#462 #799569
>>799559
Ахуеть. Получилось. Спасибо. Я думал в специальный параметр у двачапи нужно что-то вписать.
98 Кб, 247x248
#463 #799572
>>799557

> С++ намного проще

>>799688
#464 #799597
>>799567
list(map(str, [1,2,3])) если Python3

>>799561
или так:
num_list = [1, 2, 3]
[str(x) for x in num_list]
382 Кб, 570x380
#465 #799621
Привет, программач.
Нужно написать скрипт на втором пайтоне.
Словарь почему-то сортируется по алфавиту.

create_json = {
"id": json_id,
"number": json_number,
"committer_name": json_committer_name,
"committer_email": json_committer_email
}

print create_json

Получаем:
{"committer_email": "grand.xavier@gmail.com", "committer_name": "Xavier Grand", "id": 17369213, "number": "9.3"}

Как этого избежать?
>>799696>>799704
#467 #799696
>>799621
Элементы словаря не имеют порядка. Тебе нужно сортировать по ключам или их значениям?
Делай create_json.keys() или create_json.values(). А к ним уже применяй .sort()
>>799835
#468 #799704
>>799621
Или так.
create_json.items().sort()
>>799708
#469 #799708
>>799704

>create_json.items().sort()


Хуйню спорол, к dictitems нельзя применить.
>>799713>>799715
#470 #799713
>>799708
Но во втором петона .items() возвращает обычный словарь, к нему можно. В третьем нельзя.
#471 #799715
>>799708
import collections
d = {2:3, 1:89, 4:5, 3:0}
od = collections.OrderedDict(sorted(d.items()))
#473 #799723
>>799329
А есть идея ещё гениальнее. Можно сделать свою борду, и для каждого раздела создать собственный скрипт с нейросетью, для каждой из которых подобрать подходящий разделу набор шаблонов. В итоге можно будет создать свой личный двач и аутировать в полном одиночестве.
>>799725>>799766
#474 #799725
>>799723
Я серьезно подумываю над этим. Уже почти запилил себе скайп бота, с которым разговариваю. Лучше 99% собеседников. Лучше просто стены.
#475 #799728
>>799324
from 2ch import post
from memes import ded_s_sobakoi
post(ded_s_sobakoi())
>>800169
#476 #799766
>>799723
А я вот думаю про нейросеть которая превращает любую пасту в пасту про срущего батю.
#477 #799835
>>799696
мне вообще никак сортировать не нужно. как раз в том и проблема, что оно автоматически отсортировало по алфавиту, хотя я этого нигде не указывал.
>>799836>>799863
#478 #799836
>>799835
Зачем тебе словарь тогда? Храни список пар(tuple), например.
>>799838
#479 #799838
>>799836
Немного жопой читал. Но тогда зачем тебе json с сохранением порядка?
>>799840
#480 #799840
>>799838
Удобства ради. Если читать самому файл, то так намного удобнее и, при розростании словаря, логичнее.
А вообще задание у меня по учёбе такое.
А json в пайтоне всегда автоматически сортируется?
>>799841>>799842
#481 #799841
>>799840
Да ничего там не сортируется. Словари не сохраняют порядок элементов.
>>799842
#482 #799842
>>799840
>>799841
Используй collections.OrderedDict, если прям печет.
#483 #799863
>>799835
Тебе просто повезло. Запусти еще раз - и порядок скорее всего будет иным. Да и не похуй ли - кто это увидит? Для вывода в нужном тебе порядке вставляй значения в шаблон строки. Или слеивай строку из кусков, между которыми значения из словаря.
#484 #799894
>>799448
Что ты там хочешь в односимвольной строке соединять? Разделитель ставится между элементами итерабла.
#485 #799937
сап. у меня есть много байт-строк в базе со спец символами типа '\xe1'. я пытаюсь записать всё это в csv файл.
получаю 'ascii' codec can't encode character u'\xe1', когда пытаюсь достать нужную строку из обьекта.
проблема, похоже в том, что я не могу понять енкодинг/декодинг и что вообще происходит.

https://ideone.com/jVbL04

спец символы только в report.name
>>799940>>799987
#486 #799940
>>799937
report.name.decode('utf8') что показывает?
>>799942
#487 #799942
>>799940

>.decode('utf8')


та же ошибка.
#488 #799954
k = map(lambda x:str(x),n)
Хули не работает?
k получается не список, а ссылка на map объект по такому-то адресу
>>799956>>799962
#489 #799956
>>799954
l = list(map...)
#490 #799962
>>799954
k = [str(x) for x in n]
#491 #799976
ААААА ... помагите!
unexpected EOF while parsing
Ошибка появилась после удаления нескольких последних строк кода. А если я в последней строки пишу print ("xx") то уже пишет, что инвалид синтаксист и показывает на этот принт.
>>799981
#492 #799981
>>799976
Убрал функцию из print , ошибка исчезла.
#493 #799987
>>799937
дописал sys.setdefaultencoding('UTF8')
и всё норм теперь
#494 #800016
В питоне есть решение для встраиваемых sql баз (sqlite). Есть решение для встраиваемых hash-value хранилищ (shelve). А есть ли для документных/json баз? С поиском по значениям полей, ну вы понели.
>>800034>>800095
#495 #800034
>>800016
Поищи по слову embedded
Можешь заодно тут глянуть
http://nosql-database.org/
#496 #800095
>>800016
Если ты няшный, то pyejdb. А так pylucene.
#497 #800148
Змеены, у меня вопрос не по питону, а по алгоритмам.
Я тут понял, что нужно почитать что-то по алгоритмам. Какую книгу лучше всего прочитать (выбирал, чтобы без матана):
1.Лафоре (объясняется на примерах с Явой)
2.Кормен.Введение в алгоритмы

У лафоре вроде бы понятнее (я так глянул по страничкам, нормально разжевано), но там яваговно. У Кормена все на примерах псевдокода и нельзя потыкать палочкой аплеты, которые показывают сортировки и т.д. На какой стул садиться?
>>800153
#498 #800153
>>800148
по твоему пистону можешь это глянуть
http://interactivepython.org/runestone/static/pythonds/index.html
>>800163>>800176
#499 #800162
хлопчики, а как мне форму вставить в хтмл? я что-то всё забыл

app/models.py
class Feedback(models.Model):
..name = models.CharField(max_length=250)
..email = models.EmailField(max_length=250)
..message = models.TextField(blank=True)
..added = models.DateTimeField(auto_now_add=True)

app/views.py
def index(request):
..template = loader.get_template('index.html')
..form = FeedbackForm()
..context = {
....'person': Person.objects.first(),
....'feedback': ????
..}
..return HttpResponse(template.render(context, request))

templates/index.html
<div>
<form method="post">
..{{ form.as_p }}
..{% csrf_token %}
.. <button type="submit">Save</button>
</form>
</div>
#499 #800162
хлопчики, а как мне форму вставить в хтмл? я что-то всё забыл

app/models.py
class Feedback(models.Model):
..name = models.CharField(max_length=250)
..email = models.EmailField(max_length=250)
..message = models.TextField(blank=True)
..added = models.DateTimeField(auto_now_add=True)

app/views.py
def index(request):
..template = loader.get_template('index.html')
..form = FeedbackForm()
..context = {
....'person': Person.objects.first(),
....'feedback': ????
..}
..return HttpResponse(template.render(context, request))

templates/index.html
<div>
<form method="post">
..{{ form.as_p }}
..{% csrf_token %}
.. <button type="submit">Save</button>
</form>
</div>
#500 #800163
>>800153
на русском на
http://aliev.me/runestone
>>800176
#501 #800164
>>799557
карина.СЛОЖНА.txt
#502 #800169
>>799728
from 2ch import post
from universal_answers import lol
post(lol)
#503 #800176
>>800163
>>800153
Кайф имею, спасибо большое.
#504 #800229
Ононы, реально ли мне сделать совсем приватную пееменную в классе, или для таких целей придется писать модуль на c++?
>>800248>>800323
#505 #800248
>>800229
Как будто в C++ что-то по другом, лол.
#506 #800280
Ребят я начинающий программист, начал вашего обуздывать вашего ужа.
Только я до сих пор не понимаю что в конечным итоге я должен с ним делать? Какие задачи выполнять? Куда я иду?
>>800312
#507 #800312
>>800280

А нахуй ты тогда ужа мучаешь, если не знаешь?
>>800314
#508 #800314
>>800312
мне нравится складывать циферки
#509 #800323
>>800229
Зачем тебе совсем приватная, если сорцы все доступны?
честным людям нечего скрывать
#510 #800386
Пишу оболочку для скрипта, которым пользуются из командной строки. как его корректно запустить с аргументами из своего модуля?
>>800416>>800477
#511 #800395
Посоны, а правда, что этот тред читают даже в НАСА?
>>800399
#512 #800399
>>800395
правда
#513 #800416
>>800386
Даже уточню. Нужно запускать этот скрипт в параллельном от гуи процессе\треде и получать его вывод.
>>800477
#514 #800477
>>800386
>>800416
При этом в итоге должна быть собранная через cx_freeze программа. Если я буду запускать этот скрипт через subprocess и ловить вывод - как заставить его запускаться от фризнутого питона?
>>800484
#515 #800484
>>800477
Уточню - этот скрипт тоже на питоне.
Привычка так и тянет сделать через treading и не ебать себе мозг, но может есть лучшая альтернатива?
>>800715
#516 #800715
>>800484
хуй знает че ты хочешь, но гугли click - делать слишные проги самое оно
https://www.youtube.com/watch?v=kNke39OZ2k0
>>800749
16 Кб, 767x241
#517 #800744
Итак аноны помогите аутисту-дцпешнику: Где можно найти обучающие уроки/статьи где всё рассказано для аутистов и показано на примере, желательно для 3.х.х версии.
Сейчас штудирую http://aliev.me/runestone/ , но чёт сложно про функции рассказано.
Опыт в погромирование только школьный курс паскаля за 9 класс и курс в технаре с qbasik.
>>800765
#518 #800749
>>800715
Ну охуеть вообще, я где-то написал, что хочу сделать command line apзlication?Наоборот, GUI к ней.
#519 #800765
>>800744
я тебе как дцпэ дэцэпэ расскажу, вопервых: если ты на винде, у тебя 2 хода: 1) ставить луникс на вирт машину. 2) сносить венду и ставить лунус.
давай быть последовательными? сначала выполни сий весьма важный шаг, как только ты решишься, я расскажу как быть дальше. давай, жду.
>>800773>>800775
88 Кб, 1139x597
#520 #800773
>>800765
Продолжай, пока усё качается
>>800780
#521 #800775
>>800765

>1) ставить луникс на вирт машину. 2) сносить венду и ставить лунус.


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


Ему это нигде не пригодится, кроме специфических штук, до которых как до луны пешком. Что это даст?
>>800786
#522 #800780
>>800773
как только ты окажешься в миру *nix, тебе придется уяснить что: 1) все есть файл, 2) любая программа пишется так, что бы могла быть пересипользована, 3) у программ должен быть простой интерфейс взаимодействия - текстовый.
и так, интерпретатор python - программа и она удовлетворяет всем трем, вышеозначенным принципам.
#523 #800786
>>800775
это ему пригодится прямо сейчас, хотя бы для того, что бы не задавать подобных - 95% вопросов этого треда.
>>800792>>800793
14 Кб, 699x202
#524 #800792
>>800786
Но учитывая что я пользовался только виндой ( даже лопаты на андройде нет), то будет гомоебля с вопросами как этим всем пользоватся
#525 #800793
>>800786
Вот за что я люблю все эти видеоуроки, курсы на кодакадемиях и тд - их объяснения еще хуже, чем "любая программа пишется так, что бы могла быть пересипользована". Он даже про функции не понял еще.
>>800805
#526 #800799
>>800792
Забей хуй на системные вопросы, возьми лучше хорошую книжку типа "Изучаем питон" М. Лутца. Все, что надо - тебе покажут там с примерами, и не один раз. Особенно, если ты никуда не торопишься. Фундаментальные вопросы уровня "что происходит, когда я импортирую модуль" и всякие хитрые штуки типа генераторов тебе не расскажут в видеоуроках или на бордах. А проходя краткие курсы - ты про них рискуешь вообще никогда не узнать, изобретая велосипеды.
>>800805
#527 #800801
>>800792
там не все так сложно, ос - программа, по любой массово - используемой программе есть куча документации. сейчас главное запустить терминал посредством ssh на установленной убунте. прозреваю что ты будешь использовать virtualbox, поэтому пиши в гугл "ubuntu on virtualbox"
53 Кб, 1209x615
#528 #800805
>>800793
Ну я print, типы памяти и операторы ( всякие + - == !==) понял пока.
Так чё делать ёбана, как начинать?
>>800799
Спасибо, почитаю
#529 #800807
>>800792
Куча документации еще не значит, что он будет понимать, как это все склеивать в нечто работоспособное.
Нужно, чтобы в голове была куча вариантов, как это применить. Взвесить все за и против того или иного варианта. Да даже найти ебанутое, велосипедное, но рабочее решение для проблемы, где гугол ничего не дал.
26 Кб, 1006x526
#530 #800808
Ну ахуеть теперь
>>800811
#531 #800810
>>800805
теперь из кожи вон лези, но установи ssh сессию из винды до убунты, для этого тебе нужен putty - виндовый ssh клиент
#532 #800811
>>800808
это похуй, забей вообще на виртуалбкс. коннекться по ссх
>>800813
285 Кб, 1352x936
#533 #800813
>>800811
Так эту бубонную чуму устанавливать?
>>800820
#534 #800815
>>800805
Чем отличается print от return знаешь? Нет, не знаешь. Поэтому начни с книжки. Там даже описывается, куда и что применять можно и как устанавливать показывают. И нет, линукс для этого не нужен. Все прекрасно делается на винде.
Единственное. что может тебе до конца обучения помешать на виндоусе - если у тебя учетка кириллицей.
>>800822>>800828
#535 #800818
>>800805
+ В "Изучаем Питон" со всех сторон раскрываются проблемы отношений 2.7 версий и 3. Рассказывается, почему так и что изменилось.
Куча всего до сих пор на 2.7 пишется и адаптироваться не собирается.
Так что нужно изучать 3й питон. как фундамент, но поглядывая на 2.7.
#536 #800820
>>800813
установи putty, создай в нем сессию с выделенным тобой ip
>>800828
#537 #800822
>>800815

>print от return


Я вот когда на кодакадемии курс питона проходил полным нуфагом - я до конца курса так и не понял разницы. А все потому что мой код проверялся 100500 проверками и еще автоматически этой оберткой выводился. разницу было не понять.
А когда я прошел этот курс - я понял, что я нихуя не знаю и ничего не могу сделать.
147 Кб, 1043x678
#538 #800828
>>800815
Типо print тупо выводит на экран, а return сам процесс сохроняет?
>>800820
А дальше?
>>800832>>800833
147 Кб, 1043x678
#539 #800830
Хуйня какая та.
>>800831
104 Кб, 1102x667
#540 #800831
>>800836
#541 #800832
>>800828
дальше логинишься, пишешь python, видишь Python 2.7.11+ жмешь ctrl+d, пишешь python3, видишь Python 3.5.1+ жмешь ctrl+d. все нормально, у тебя две свежих версии змеи.
>>800841
#542 #800833
>>800828
Ну да, принт выводит (необязательно на экран, а туда, куда ведет stdout).
А return - "возвращает" результат. Мне вот было не просто понять по всем этим копроурокам, что значит "возвращает".
Представь себе действие 2 + 2 = 4.
return 2 + 2 "вернет" 4. То есть, если у тебя функция делает какую-то работу (пофиг какую) - return подводит итог этой работы, который подставится в переменную или другое выражение типа 2 + 2.
>>800835
#543 #800835
>>800833
print - функция, следовательно она возвращает результат в stdout. stdout, в свою очередь, является файлом, таким образом функция принт возвращает результат в файл стдаут.
>>800837
#544 #800836
>>800831

>21 гиг


Ну все, готовь ебать мозг вопросами уровня "не устанавливается и не работает хреньнейм, что делать?" вместо приятного обучения и начальной разработки. Место закончится очень быстро.
>>800847
#545 #800837
>>800835
но ты отвлекаешься, сначал залогинься в убунту по ссх
247 Кб, 640x480
#546 #800841
>>800832

> у тебя две свежих версии змеи


Одна.
>>800844
#547 #800844
>>800841
ну да, я наверное не уследил где то за модой)
11 Кб, 419x331
#548 #800847
>>800836

>Место закончится очень быстро


Эт как так, питон почти со всем весит 200 метров?
50 гигов норм?
#549 #800849
>>800847
Питон нет, но потом ты установишь какой-нибудь QT или другую полезную и нужную штуку, и гигабайт 5-10 просто испарятся. Впрочем, виртуальный диск можно расширить, не сильно посношавшись. Пока не забивай голову.
#550 #800851
>>800847
норм, ставь, сейчас это не важно. главное - наладить итерфейс человек - линукс, посредством твоей анальной винды.
>>800858
#551 #800853
>>800847
Как по мне, меньше 100-200 не стоит ставить. Не исключено, что тебе вообще придется дублировать инструменты разработки и в винде, и в линуксе. Особенно, если планируешь пользоваться виндой, как основной и дальше.
>>800856>>800858
#552 #800856
>>800853
Например, вдруг тебе захочется написать скрипт, который автоматически рассортировывает твои папочки с детской порнухой по одним углам, а ярлыки - по другим.
144 Кб, 1597x620
#553 #800858
>>800851
Я уже 5 раз машину перезапускаю, никак установить не могу
>>800853
Печально что могу поставить на системный диск, так что и основа бедет тормозить и машина (как сейчас)
>>800861
#554 #800861
>>800858
ищи how to install ubintu on virtualbox in windows
и да, впредь все запросы к гугл старайся писать на английском
>>800864
519 Кб, 1178x667
#555 #800864
>>800861
она уже почти установилась
#556 #800865
Да хули вы кормите этого долбоёба?!
#557 #800866
Хоспаде, что за шизики наполнили тред, одни обсуждают в чем разница между return и print, второму дауну мало 20ГБ для поиграться в коляске которую третий даун не осиливает, что за пиздец тут сейчас творится? может компуктер вообще не ваше, если такой хуйней срете?
>>800871
#558 #800870
>>800864
Дам тебе уберполезный совет для винды. Сделай себе папку на рабочем столе или где тебе удобнее хранить свои творения. И сделай переменную окружения PYTHONPATH, пропиши путь к папке там. Это очень сильно облегчит жизнь. Можно и путь к рабочему столу туда внести заодно, если ты любитель срать на видном месте, как я.
Что это даст? Ты сможешь запускать свой код, просто введя название файла. Не пописывая каждый раз cd "нужная директория с файлом".
#559 #800871
>>800866
Че сказать-то хотел, вниманиеблядок?
>>800872
#560 #800872
>>800871
Что написал, то и хотел сказать, даун.
>>800874
#561 #800874
>>800872
Но ведь это еще худший контент для треда, чем то что ты описал, нытик.
>>800876
#562 #800876
>>800874
Это не контент, а описания говна которое происходит в треде, гной.
>>800877>>800884
#563 #800877
>>800876
Но то говно хоть как-то относится к петону, в отличии от твоего нытья. Или, может, ты на какой-то вопрос тут ответил, и ответ утонул в мусоре? Или задал? Нет, ты просто ноющий пиздабол.
>>800885
#564 #800884
>>800876

>эти шизопосты


>как-то относится к петону


Просто иди нахуй.

>Нет, ты просто ноющий пиздабол.


Шизик, ты уже три поста наныл от того, что наверняка попал в список даунов в моем посте, уймись.

перестаю кормить говно
>>800885>>800888
#565 #800885
#566 #800886
>>800864
не отчаивайся если что то не получается, это нормально, иногда нужно вдумчивое чтение. я еще несколько дней буду заходить, пиши, спрашивай, но я жду вопросов в контексте запущенного python под *nix. мы же последовательны, правда?
и не обращай внимание на снобов, снобы имеют психологическую особенность забывать когда они пешком под столом срали.
>>800894
#567 #800888
>>800884
МАМ ПАЧИМУ ОНИ ПИШЮТ ИМ В ЭТАМ ТРЕДИ? ПРИКРАТИТЕ Я СКОЗАЛ!!!
#568 #800893
Бэ протёк
379 Кб, 1422x638
#569 #800894
>>800886
Чем отличается питон в винде от линукса?
>>800895>>800900
#570 #800895
>>800894
наличием библиотек
>>800896>>800900
20 Кб, 366x673
#571 #800896
>>800895
Не понял, их на винде тоже не мало.
>>800902
#572 #800898
Кажется, он начал что-то подозревать.
#573 #800900
>>800894
>>800895

>дурак отвечает дураку

>>800904
#574 #800902
>>800896
некоторые ставятся бинарником не самой последней свежести, а некоторые прямо в доках пишут: normal used on nix*, sorry, but wondows is send citizen system. например pyzmq, кстати, рекомендую.
>>800903>>800906
#575 #800903
>>800902
fix *second
#576 #800904
>>800900
да, поэтому первым постом ответом я написал: "я тебе как дэцэпц дэцэпэ расскажу"
#577 #800906
>>800902
Ну точно всегда свежее, чем на репозиториях убунты. Вот уже точно где протухшая помойка.
>>800908
#578 #800908
>>800906
pip install -U pip
413 Кб, 909x686
#579 #800911
Чёт хуйня при выборе сеть nat название устройства нет
>>800914>>800916
#580 #800913
Правильно ли я понимаю, что нет никакого смысла делать multiprocessing.Process.join(), если код там ничего не должен вернуть? Например, просто бесконечный loop?
Какие негативные стороны в этом случае? Если я сделаю join процесса с loop - основной бесконечно зависнет?
>>800917
#581 #800914
>>800911
nat - network adress translation, при такой организации сети, серая сеть (твоя 192.168.0.0.24) гостевая машина не увидит хост машину - винду. что бы ты из винды увидел гостя, тебе нужно настроить порт форвардинг до гостевой машины. вот: http://torwald.ru/135/ssh-и-http-доступ-к-виртуальной-машине-при-пр/
#582 #800915
>>800914
фикс 192.168.1.0/24
#583 #800916
>>800911
Ты ещё держишься?
#584 #800917
>>800913
насколько я понимаю, join нужен не для того что бы что то вернуло результат, а для того что бы удостовериться что задача "форкнутая" в процесс должна выполниться до исполнения следующей после multiprocessing.Process.join() инструкции.
>>800926
100 Кб, 1068x385
#585 #800918
>>800914
Почему VBoxManage.exe сразу открывается и закрывается?
>>800919
#586 #800919
>>800918
хз, я лет 7 винды не касался, просто возьми туториал, любой. это проще всего. я уже писал: how to ubuntu on virtualbox in windows
>>800921>>800922
#587 #800921
>>800919
а заодно скачай образ ubuntu server - эта та, которая без графического интерфейса, он тебе никчему пока что.
97 Кб, 1104x282
#588 #800922
>>800919
Не проще скачать сразу на бубунту питон, или через общею папку? А то я честно говоря пока нихуяшиньки не понимаю нахуя это
>>800923
#589 #800923
>>800922
на что ты скачаешь? ты же не установил еще нихуя. можешь с виндой пердолиться, но это не ко мне, потому что когда пойдут вопросы: а чо это у меня юникод декод еррор, или системпаф какой то корявый, или как мне поставить эту либу но ее почему то хуй найдешь под винду, я сразу сратьебал.
ты чо дохуя мистерроботом себя возомнил? бери самый тупой для самых даунов туториал и делай по нему.
>>800933
#590 #800926
>>800917
Можно и так сказать. Возвращать что-то действительно необязательно. Но если задача бесконечная - эта самая "следующая" инструкция никогда не выполнится. И даже не будет возможности ее прервать из основного процесса.
#591 #800933
>>800923

>юникод декод еррор


А как по мне это очень полезно, добавит знаний о кодировках, и как с ними работать. А в третьем питоне это еще меньшая проблема, ибо теперь все строки юникод. Наверное, только на винде можно сполна навернуть ненависти к строкам 2 питона, если этим питоном там пользоваться.
>>800934
#592 #800934
>>800933
А еще это приучит любые строки в 2м питоне делать юникодными.
#593 #801010
Как проще всего нарезать шаблоны в джанго?
Копипастить кусками из breakets? может ещё проще способы есть?
#594 #801037
>>795005 (OP)
Аноны, у меня есть код:

>self.hidden = np.dot(inputs,self.weights1);


>self.hidden = 1.0/(1.0+np.exp(-self.beta*self.hidden))


>self.hidden = np.concatenate((self.hidden,->np.ones((np.shape(inputs)[0],1))),axis=1)


>outputs = np.dot(self.hidden,self.weights2);


>context = outputs


Как мне сделать так, чтобы строка

>self.hidden = np.dot(inputs,self.weights1);


Помещенная в начало кода заработала?
Короче надо добавить переменную, которая в первый раз не имеет значения.
>>801039
#595 #801039
>>801037
Ой, не эта строка

>>self.hidden = np.dot(inputs,self.weights1);


А вот эта вот строка

>>self.hidden = np.dot(context,self.weights1);


быстрафикс
#596 #801083
Переполз >>801082 (OP)
#597 #801466
>>800864

>Ububtu

#598 #801646
Пацаны а какой дистр накатить себе? Сейчас стоит убунту последние года два, до нее просидел пятерочку на фрибсд и слаке.
А как-то ебаться в конфиги уже не хочется, а убунту 14 перекинутая на новый ноут поддерживает частично, короче надо чего свежее.
Спросил бы в s но боюсь охуеть от анальных клованов

Думал на счет манджары, дебиана и арча
>>801932>>802037
#599 #801932
>>801646
Иди на хуй!
рач
#600 #802037
>>801646

> убунту 14


Убунту 16. Не блогодори.
106 Кб, 1366x768
#601 #804128
>>800914
Не еби головы человеку, все все прекрасно видят, покрайне мере в vmware. В виртуалбоксе помню были траблы, но я вам что скажу - виртуалбокс юзать - говно жрать. Сам его на протяжении нескольких лет работы юзал, привык что ли, мирился с кучей косяков думая что везде так. В итоге как то попробовал vmware когда бота для игры писал(а говно бокс вообще не умеет ничего 3д запускать, да он вообще ничего по сути нормально не умеет). Тут тебе и с сетью никаких траблов, и буфер обмена между хостом и гостем нормально работающий.
Короче прекращай жрать говно и удаляй виртуалбокс, как человек на нем 2 года просидевший говорю.
62 Кб, 979x514
#602 #804141
Даун который не могет настроить убунту в виртуалбоксе в треде? Мне влом все читать, объясни нахуй ты ее ставишь и чего хочешь.
Питон3 и в винде охуенно работает из командной строки, есть pip что бы прям как в линуксе устанавливать дополнительные библиотеки 1 строкой "pip install blablabla", нахер тебе линкус ставить?
Хотя судя по твоему уровню подкованности, тебе и правда не лишним будет разобраться чутка хотя бы в этих вопросах, но питон можно учить и использовать и без этой гомоебли
И имей блять совесть, весь тред засрал, он твою мать не виртуалкам и линупсам посвящен. Сначала гуглишь, думаешь часик другой, и если ничего не получается то спрашивай, подскажем, а не при каждом затыке сразу в треде срать, ты же уебок даже гуглить не пытался решение своих проблем? Колись блять.
#603 #805602
>>795005 (OP)

>


предложите учебник для рачка в питоне, да и программировании тоже.
#604 #805628
>>805623
Что дядя Емаксович говорит? Я разобрать не могу
I never install slash Linux?

И чё?
#605 #805662
>>805639
И чё?
А что он использует тогда? Бсд?
Тред утонул или удален.
Это копия, сохраненная 11 августа 2016 года.

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

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