
Zart
13.11.2016
20:47:36
в частности в третьем питоне теперь можно импортировать пакаджи и модули в кириллице 8)

Vitali K.
13.11.2016
20:48:03
збазиба за такую возможность

Zart
13.11.2016
20:48:47
для того чтобы упростить жизнь по распространению всего этого бобра, плюс для автоматизации сборки экстеншенов на C и прочих языках, коре девелоперы запилили дистутилсы
суть работы дистутилсов заключалась в том, что ты писал setup.py в корне своего проекта. внутри этого скрипта был код вида
from distutils.core import setup
setup(
name = 'my python distribution',
version = '1.0',
py_modules = ['module1', 'module2'],
packages = ['package', 'package.subpackage'],
scripts = ['foo.py'],
)
который юзал дистутилс из стдлиба для всей грязной работы, а от тебя требовалось только предоставить метаданные - имя, версию, описание, лицензию, списки файлов/пакаджей

Google


Zart
13.11.2016
20:53:27
внутре дистутилсы были написаны изначально с намерением расширябельности
там по сути создается пачка объектов, которые абстрагируют кучу концепций - дистрибутив, компилятор, вот это всё
ну и соотвестсвенно написав такой файлик можно было теперь его деплоить
python setup.py sdist - запаковать чисто исходники в тарболл
python setup.py bdist - собрать сишные экстеншены, скопировать все файлики во временный каталог, обойти их через compileall и сгенерить .pyc/.pyo файлы, а результат упаковать к готовый к употреблению бинарный пакет - зип там или тар
внутри эти команды вызывают другие подкоманды и их можно комбинировать в цепочки:
python setup.py test sdist bdist sphinx clean -a upload
(прогнать в один присест тесты, собрать архивы сдиста и бдиста, сбилдить доку, удалить временные каталоги и залить результат на pypi)
далее народ начал пилить плагины к дистутилсам, чтобы решать собственные проблемы с деплоем и т.п.
так родились setuptools, в которые вошло сразу дофига всего - пачка дополнительных прибамбасов к дистутилсам, раз. спайдер, который умел лазить по тогдашнему чизшопу (ныне известному как pypi), сурсфорджу и вообще веб-страничкам, два. и pkg_resources, довольно мощной штуке, в которой была хуева туча апи для работы с пакаджами питона, три
изза того что это была приличная куча самого разного кода в одном флаконе (так было удобнее её впаривать в те времена), в стдлиб сетаптулзы так и не попали. небольшие части оттуда перекочевали, но чисто по мелочам
тогда же в питон завезли и зипимпорты, что дало толчок к рождению яиц egg'ов


Vitali K.
13.11.2016
21:01:53
так так


Zart
13.11.2016
21:03:20
это всё раскололо питон на несколько лагерей
были люди, которые ненавидели это всё, во многом потому что егги сильно мешали отладке, изза запоротых трейсбаков (эту проблему давно уже починили)
были люди, которые наоборот, заюзали яйца на всю катушку - так родился билдаут, весь зоп и плон были переведены на них
были те, кого сетаптулзы не устраивали, в основном ученые, чьи нужды не удовлетворял ни дистутилс, ни сетаптулз. позднее этот лагерь запилил собственные альтернативы - конду, бенто, вот это всё
параллельно со всем этим решали проблему изоляции разных версий кода - егги с билдаутом предоставляли один из вариантов, workingenv (редактировавший PYTHONPATH) - другой, были и другие
через какое-то время Ян Бикинг, при разработке своего софта задалбывается изи_инсталлом и пишет свои тулзы - пип и виртуаленв
постепенно эти тулзы выигрывают войну, сетаптулз в это время находится в стагнации, изза того что мейнтейнеру давно не до него, так рождается форк distribute, умеющий в питон 3 и еще кучу багфиксов
проходит еще пачка времени и мейнтейнер сетаптулзов наконец-то отдает бразды правления новым разработчикам, те вливают форк дистрибьюта обратно в сетаптулз и хоронят форк нафиг.
дональд стафф разрабатывает альтернативу яйцам в виде колёс wheel, и таким образом допиливает таки пип до юзабельного состояния
тарек зиаде приводит исходники дистутилса в стдлибе в порядок
ник колан берет на себя обязанности BDFL по пакаджингу. сейчас они все дружно пилят пепы один за другим, решая закоренелые проблемы со всей этой херней
в порядок привели версионирование - теперь у нас есть официальный пеп про то, как надо давать версии пакетам, и как они обязаны сортироваться и что обозначать
провели ревизию формата метаданных пакаджей
pypi наконец-то перепиливают под это тыщелетие. исходный вариант был написан из помеси говна и палок аще
львиная доля разработчиков давно уже перешла на сетаптулзы как формат де факто. джанго же долго оставалась в стороне, но где-то в районе 1.3 вроде, их наконец-то уговорили запилить человечий пакадж
если не ошибаюсь, в её доках всё еще нет внятной доки по организации пакаджей, отчего много новичков про эту [тёмную] сторону питона всё еще не в курсе

Google

Zart
13.11.2016
21:12:49
уф... этот экскурс в историю, в сетаптулзы и иже с ним далеко не полон

Vitali K.
13.11.2016
21:13:18
@lig11 тут зарт доклад только что написал ?

Dmitry
13.11.2016
21:13:37
??

Vitali K.
13.11.2016
21:13:40
очень любопытная история

Zart
13.11.2016
21:14:37
а еще со всем этим развивался и механизм импортов, в 3.4 бретт кэнон переделал внутрянку импортов с С на питон

Vitali K.
13.11.2016
21:15:09
вот мне никогда не приходилось что-от опенсорсить в pypi и деплоил я свой единственный сайт и пару сервисов черех git pull склонированного репозитория и норм все это недолгое время жил)


Zart
13.11.2016
21:16:28
цимес в том, что не нужно ничего специального для деплоя
python setup.py bdist_wheel - получаем бинарные колёса в каталоге dist
pip install -f ~/mypackages mypackage
хуяк и оно тащит за собой всё нужное
можно ставить из каталога, сетевой шары, файла на вебе, на фтп, в гите, меркуриале, субвершене...
теперь нам доступны маркеры, можно одним файлом пререков ставить разные наборы пакетов в разные версии питона. или в pypy
кусочек из моего r.txt:
--only-binary lxml
lxml ==3.6;python_version=='3.4'
https://bitbucket.org/pypy/numpy/get/master.zip#egg=numpy ; platform.python_implementation=='PyPy'
Pillow <3a ; platform.python_implementation=='PyPy'
numpy ; platform.python_implementation=='CPython'
Pillow ; platform.python_implementation=='CPython'
pypiwin32 ; platform.python_implementation=='CPython' and sys.platform=='win32'
жопа со всеми этими модными хреновинами в том, что они раз за разом решают заново старые проблемы. порой решают их лучше, но при этом проёбывают часть юзкейсов
пип к примеру писался яном для себя. а в винду он не умел, на бинарные пакаджи ему было пофих. поэтому в винде пип работал лишь в паре с вижел студией и шаманским бубном
колёса завезли сильно-сильно позднее


Vitali K.
13.11.2016
22:12:58

Andrey
13.11.2016
22:14:02
я про django channels говорил, перепутал немного

Vitali K.
13.11.2016
22:14:46
а ок спс
Дошли руки почитать рассылки “ImportPython Newsletter”
В июньском выпуске говорится о “Rollbar - Full-stack error monitoring for all apps in Python”
У них один из траспортов как у Сереги - писать в файл и забирать агентом
Тут вот какой-то повод для глумления может есть https://github.com/cosmologicon/pywat ?
http://yasdelie.ru/

Google

Serge
14.11.2016
10:40:33
а кто там меня спрашивал на митапе под что я кноки давлю? я тогда не мог вспомнить как канал в Play называется.
вот оно https://play.google.com/music/r/m/Lyuangutddrdu7vprwpswmulhtq?t=Electronic_Focus

Dmitry
14.11.2016
10:51:48
а я иногда под http://musicforprogramming.net/

Sergey
14.11.2016
11:15:03
Пандора хороша

Serge
14.11.2016
11:41:50
короче, мне нужна инфа по блиц докладу

GNU/Docker
14.11.2016
11:59:13
Под тохомузыку круче всего

Aleksander
14.11.2016
12:26:31

Zart
14.11.2016
12:26:53
под тишину не модно -_-

Dmitry
14.11.2016
12:27:14

Danil
14.11.2016
12:27:52

Zart
14.11.2016
12:28:57
начальник участка обычно свой плейлист врубает. в колонки. приходится спасаться наушниками и амв

amureki
14.11.2016
12:29:14

Danil
14.11.2016
12:29:32

Aleksander
14.11.2016
12:29:34
я тут хочу какой-нибудь язык ФП посмотреть (выучить) для расширения кругозора, пока на примете Clojure
что посоветуете ?

amureki
14.11.2016
12:29:49
Elm/elixir?

Serge
14.11.2016
12:29:57
lisp же

Anton
14.11.2016
12:29:58
начальник участка? Зарт, а ты над чем работаешь таким, что у вас участки есть?
кложур ок выбор говорят

Zart
14.11.2016
12:30:09
асушником

Aleksander
14.11.2016
12:30:24

Google

Zart
14.11.2016
12:30:34
нефть, газ, вот это всё

Serge
14.11.2016
12:30:47
какие могут быть аргументы? это всем остальным нужны аргументы почему не лисп, а они

Zart
14.11.2016
12:31:24

Serge
14.11.2016
12:31:36
да, можно scheme

Anton
14.11.2016
12:32:01
асушником
прикольно-прикольно, я такие слова только от родителей слышал, когда еще ребенком жил в краях где эти нефти с газами добывают, аж чот всколыхнулось))

Serge
14.11.2016
12:32:10
но common lisp - это какнонично
Dmitry , @andreyzakharevich для вашего блиц доклада мне от каждого надо
* Спикер
* Тема
* Компания, Должность
* Ссылка на фото спикера

Admin
ERROR: S client not available

Serge
14.11.2016
12:33:50
ну, тема общая у вас

Aleksander
14.11.2016
12:35:33

Danil
14.11.2016
12:36:23
haskell ? scala ?
вот scala точно пока не трогай, потеряешься быстро, лучше чтонибудь фундаментальное: haskell, lisp

Aleksander
14.11.2016
12:37:30
haskell аналогично))

Danil
14.11.2016
12:37:49

Zart
14.11.2016
12:37:55
тебе ради вакансии или кругозора?

Aleksander
14.11.2016
12:38:03
ну расширяемость должно же быть)
а вдруг)

Danil
14.11.2016
12:38:08
так и скажи, посоветуйте, что изучить, чтобы покушать

Zart
14.11.2016
12:38:22
поищи программиста на емакс

Aleksander
14.11.2016
12:38:24
не, кушать это второй план

Google

Aleksander
14.11.2016
12:39:09

Andrey
14.11.2016
12:39:10
да хз, скала прикольная, можно фичи потихоньку в рацион добавлять

Danil
14.11.2016
12:39:37

Andrey
14.11.2016
12:40:14
стеков для чего? для веба?
и какая разница? под питон вон тоже куча разных стеков есть

Zart
14.11.2016
12:42:36
можно подумать среднестатистический питонщик способен назвать больше пары веб-фреймворков, не считая жангофласка

Aleksander
14.11.2016
12:43:26
tonado, Falcone, webop, eve
)

Zart
14.11.2016
12:43:36
(нет, твистеды/асинкио не считаются за веб)

Andrey
14.11.2016
12:43:52
почему?

Zart
14.11.2016
12:44:10
аиохттп и торнадо можно
веб. а не сетевое вообще

Aleksander
14.11.2016
12:46:11
bottle

Zart
14.11.2016
12:46:44
eve выглядит прибамбасом к фласку
хз что за webop. webob?

Andrey
14.11.2016
12:46:48
pyramid

Aleksander
14.11.2016
12:47:04

Dmitry
14.11.2016
12:48:05
lisp же
вот правильно, 10 правило Гринспуна)

Serge
14.11.2016
12:52:35
так, все-таки типа "Своя Игра" на ITGM будет
надо еще 7 вопросов от нас

Dmitry
14.11.2016
12:52:51
еее))