Посты с тэгом pep


[Перевод] PEP 3107 (Аннотации в функциях)

Всем привет. Я решил полностью разобраться в пайтоновских аннотациях и заодно перевести цикл PEP-ов, документирующих эту тему. Мы начнём со стандартов версии 3.X и закончим нововведениями в python 3.8. Сразу говорю, что этот PEP — один из самых базовых и его прочтение пригодится лишь новичкам. Ну что же, поехали:
Читать дальше →



[Перевод] PEP 572 (Выражения присваивания в python 3.8)

Привет, Хабр. В этот раз мы рассмотрим PEP 572, который рассказывает про выражения присваивания. Если Вы до сих пор скептически относитесь к оператору ":=" или не до конца понимаете правила его использования, то эта статья для Вас. Здесь вы найдёте множество примеров и ответов на вопрос: «Почему именно так?». Эта статья получилась максимально полной и если у Вас мало времени, то просмотрите раздел, написанный мной. В его начале собраны основные «тезисы» для комфортной работы с выражениями присваивания. Заранее простите, если найдёте ошибки (пишите про них мне, я исправлю). Ну, начнём:
Читать дальше →



[Перевод] PEP 257 на русском. (Соглашение о Docstrings)

Привет, Хабр. Бывают моменты, когда тебе хочется максимально погрузиться в язык и понять все его тонкости. В случае Python один из лучших способов это сделать — читать на официальном сайте документацию и PEP-ы. В своё время я этого не делал, поскольку не мог понять многих «технических» моментов, а вариантов русского перевода не было. Сейчас же я решил сам перевести PEP-257, где рассказывается о правильном документировании кода, ведь наверняка это поможет новичкам лучше понять истинный «пайтоновский» подход к написанию кода. Я переводил примеры кода на русский язык, но только для того, чтобы лучше донести смысл. В реальном программировании старайтесь писать документационные строки на английском. Так же говорю сразу, что как синоним термина «docstring» я использовал слова: «документация» и «документационные строки». Что же, перейдём к самому переводу.
Читать дальше →



На пути к ядру Питона

Привет, Хабр! Представляю вашему вниманию перевод статьи Toward a “Kernel Python” автора Glyph Lefkowitz (создателя фреймворка Twisted).

Подробнее — под катом.
Читать дальше →



[Из песочницы] Использование локальной директории с пакетами в Python уже сейчас

В Python 3.8 предлагается добавить альтернативу виртуальным окружениям — локальную директорию с пакетами PEP 582 Python local packages directory.


Данный PEP предлагает добавить в Python механизм автоматического обнаружения директории __pypackages__ и использовать её при импорте в качестве источника установленных пакетов. Директория __pypackages__ будет иметь больший приоритет при импорте, чем глобальные или пользовательские директории с пакетами. Это позволит исключить создание, активацию или деактивацию виртуальных окружений.


Вот так будет выглядеть в Python 3.8 структура пакета с использованием __pypackages__ :


foo
    __pypackages__
        3.8
            lib
                bottle
    myscript.py

В статье я расскажу как использовать локальную директорию с пакетами не дожидаясь выхода Python 3.8.



python кодировка исходников

Всем привет!

Я думаю каждый из нас ловил что-то подобное:

 File "python_coding_style.py", line 2
SyntaxError: Non-ASCII character '\xd0' in file python_coding_style.py on line 3, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

Проблема в том что интерпретатор не знает в какой кодировке у нас файлы исходников. Проблема решается явным указанием их кодировки:
# coding: utf8

Чаще на практике встречаются следующие варианты

# -*- coding: utf8 -*-
# coding: utf8
# coding=utf8

В PEP-0263 декларируется, что для определения кодировки исходников годится все что подпадет под регулярку coding[:=]\s*([-\w.]+)
Например, #This Python file uses t


Python: PEP-8 или не PEP-8

Пост - не технический, кому не интересно - можете дальше не читать...

PEP-8, хоть и фактически является предложением по расширению Python под номером 8, среди Python-программистов уже стал термином, обозначающим правила стиля оформления кода. Нет, я не собираюсь сейчас описывать его здесь - про него можно почитать в первоисточнике. Вопрос в том, следовать этому стандарту, или не следовать?

Итак, стандарт это в большинстве случаев хорошо, так как вносит порядок во что бы то ни было. Например, стандарт USB 2.0 - просто отличнейший стандарт, представьте себе, если бы флешки были не USB, а каждая имела бы свой выход :)... Ужас, да, были бы у нас USB-порты как card


Переходим на Python 3. Новый print.

С недавнего времени решил начинать осваивать Python 3, а свои наблюдения и опыт изучения писать в блог, да так, чтобы и самому структурировать новые знания и читателям было интересно. Так что милости прошу к первой заметке о новой реализации стандартного вывода.

Первое знакомство
Наверное, первое, что бросается в глаза при переходе на Python 3, это новая реализация механизма стандартного вывода - оператор print был заменен на функцию print(). Зачем? Такое вот, казалось бы, незначительное, от нечего делать, изменение. Что ж, следует исследовать проблему поподробнее.

История
Нарекания на реализацию вывода как оператора print не один раз возникали и бурно обсуждались в списке рассылке (Python-dev mailing list),