Хорошо посидел. За два вечера накидал оптимизатор питновского ast. Разворачивание циклов, удаление мертвых ифов, инлайнинг констант. Выиграл на своем коде аж 10%, но смог зато ручные оптимизации удалить и сделать код понятнее (путем добавления нихуя не понятной части из 200 строк ещё)
Тег python в блоге Tishka17
Человек тут в комментах защищает длину строки 200 символов. Открываю инфу - 6 лет в яндексе. Ммм, понятно
Надоело писать велосипеды для кривых апишек без спеки. Начал пилить новый проект:
Долго думал как сделать опцию omit-empty
в сериализаторе. Запилил omit_default
, которая учитывает дефолтные значения полей в датаклассе.
Нафиг нужны енумы, если я должен везде писать MyEnum.xxx.value вместо MyEnum.xxx? Кто вообще придумал такое? Грёбаный графен писали какие не очень опытные люди
Чтобы прогу на питоне собрались для деплоя, надо
* сделать сборочный файл, в котором руками указать все исходники.
Чтобы сделать юнит тесты для проги на питоне надо
Вынести все сорцы (кроме скрипта запуск) в отдельную либу со своим сборочным файлом
Сделать в отдельной папке сборочный файл для проги, где указать либу как зависимость
* В отдельной папке сделать сборочный файл с тестами, где указать либу как завивисмость и перечислить все тесты
Чтобы прогнать тесты на втором и третьем питоне надо
Вынести все тесты в либу
В отдельной папке сделать сборочный файл для второго питона, где либа будет как завивисмость
* В отдельной папке сделать сборочный файл для третьего питона, где та же либа будет как завивисмость
Выложил очередную версию либы (2.2).
Запилил в нее то, что когда-то делал для джавы: превращать сложные структуры в плоские при парсинге и восстанавливать потом обратно.
Заодно починил аннотации типов. А то даже стыдно было, во всю их использую, а интерфейс не аннотирован.
Народ а кто может вот прям реально в двух словах сказать что из этого что и как они связаны между собой в tensor flow?
- Граф
- Схема
- Тензор
- Операция
- Инпуты и аутпуты
Моя либа теперь, кажется, единственная, которая умеет парсить generic-датаклассы. Заодно пофиксил парсинг циклических структур.
В общем, версия 2.1.
Хочу представить вторую версию своей либы:
- Я полностью переделал API, теперь можно парсить просто вызывав load(data, class).
- Фабрика теперь одна (было две). Один раз настроил и парси/сериализуй одинаково (dump/load)
- Для всяких сложных тем появились схемы. Как и раньше все автоматическое, но если нужно можно исключать поля, делать свои маппинг, менять поведение для каждого класса
- Расширил набор стилей имен, в которые можно сделать автоматическое конвертирование (всякие Ugly_Style или UPPERCASE)
- Внезапно выяснил, что marshmallow может быть в 10 раз медленнее.
Если кому интересно, я тут новую версию 1.1.0 своей либы для питоновских датаклассов выложил. Теперь она умеет имена в разные стили (например, CamelCase) преобразовать и сама сериализует (аж до 10 раз быстрее чем стандартный asdict).
1 января 2020 года заканчивается поддержка python 2.7 и всей второй ветки.
«Газпром» начал официально уведомлять страны о том, что транспортировка газа через территорию Украины будет прекращена 1 января 2020 года.
Совпадение? Не думаю
Надо не забыть и запилить багрепорт на пайчармовский статический анализатор.
Или может лучше сразу патч и напроситься к ним на работу?
Накатал тут небольшой сервис по обмену кодом: http://codephoto.ru
Объяснять не буду, лучше посмотреть.
Наговнокодил тут либу. Пользуйтесь
Что делать на больничном? Все ждут, что я найду силы и поработаю. Но нет! За неделю перевел проект с python 2.7+ web.py на python 3.5 + flask. Заодно отрефакторил, выкинул самописный шаблонизатор в пользу jinja2, pyldap заменил на ldap3 и разобрался с транзакциями.
Думаю, ещё неделя уйдет на вылизывание упущенных мелочей. Но результатом я доволен!
Подскажите, а как вы ставите питонопакеты в продакшене? Вот пытаюсь сделать pip install cryptography
, а он его компилировать пытается. Ну откуда у меня на проде компилятор?
Ребята, хочется странного: автоматически генерировать тесты для api.
Точнее не так: напистаь один тест, который дернуть для каждого метода api и вывести в репорт как будто прошло 100500 тестов в одном сюите. Предположим единичный тест, который я могу руками дернуть для разных случаев, у меня есть.
Честно, для питона никогда тесты не писал, так что с трудом представляю с чего начать. Делать свой раннер или как?