Forwarded from AWS Notes
Lambda + Python 3.9:
https://aws.amazon.com/blogs/compute/python-3-9-runtime-now-available-in-aws-lambda/
#Lambda
https://aws.amazon.com/blogs/compute/python-3-9-runtime-now-available-in-aws-lambda/
#Lambda
Amazon
Python 3.9 runtime now available in AWS Lambda | Amazon Web Services
You can now create new functions or upgrade existing Python functions to Python 3.9. Lambda’s support of the Python 3.9 runtime enables you to take advantage of improved performance and new features in this version. Additionally, the Lambda service now runs…
Чистый код на Python.
Эта статья содержит в себе краткий пересказ принципов, которые позволят писать идиоматичный, читаемый и поддерживаемый код. Примерно как конспект всех книг дядюшки Боба, но сразу же применённый к Python.
https://testdriven.io/blog/clean-code-python/
Эта статья содержит в себе краткий пересказ принципов, которые позволят писать идиоматичный, читаемый и поддерживаемый код. Примерно как конспект всех книг дядюшки Боба, но сразу же применённый к Python.
https://testdriven.io/blog/clean-code-python/
testdriven.io
Clean Code in Python
This article looks at how to write clean code in Python.
Как работают импорты в Python?
Ух, давненько я не читал такой жести, это прям сплошное мясо. Думаю, эта статья заслуживает однажды быть напечатанной в составе какой-нибудь книги. Очень много подробностей того, как устроена система импортов в Python. Я понимал, что эта система сложнее, чем я себе представляю, но не представлял насколько. Возможно, эти знания помогут мне меньше страдать с хаотичным перекладыванием файлов по папкам так, чтобы оно всё импортировалось в будущем.
Однозначно рекомендую эту серию статей "Python behind the scenes" к внимательному изучению, оно того стоит.
https://tenthousandmeters.com/blog/python-behind-the-scenes-11-how-the-python-import-system-works/
Ух, давненько я не читал такой жести, это прям сплошное мясо. Думаю, эта статья заслуживает однажды быть напечатанной в составе какой-нибудь книги. Очень много подробностей того, как устроена система импортов в Python. Я понимал, что эта система сложнее, чем я себе представляю, но не представлял насколько. Возможно, эти знания помогут мне меньше страдать с хаотичным перекладыванием файлов по папкам так, чтобы оно всё импортировалось в будущем.
Однозначно рекомендую эту серию статей "Python behind the scenes" к внимательному изучению, оно того стоит.
https://tenthousandmeters.com/blog/python-behind-the-scenes-11-how-the-python-import-system-works/
Tenthousandmeters
Python behind the scenes #11: how the Python import system works
If you ask me to name the most misunderstood aspect of Python, I will answer without a second thought: the Python import system. Just remember how...
Brett Cannon запилил запускальщик питона
Я никогда не страдал от проблемы перезаписывания алиасов
Для меня, пожалуй, самым полезным применением этого
https://snarky.ca/introducing-the-python-launcher-for-unix/
py
, который всегда запускает последнюю, самую свежую среди установленных версию. Это решает проблему, когда алиасы python/python3
перезатираются при установке очередной версии питона, так что они указывают не на самую новую версию питона, а на недавно установленную. В мире Windows подобная штука существует уже лет 10 и устанавливается по умолчанию, а вот теперь такое же есть и для Unix-систем.Я никогда не страдал от проблемы перезаписывания алиасов
python/python3
, потому что пользуюсь менеджером версий asdf
и сам контролирую, на какую версию ссылаются эти алиасы. Да, и pyenv
тоже умеет точно так же.Для меня, пожалуй, самым полезным применением этого
py
будет то, что он умеет находить виртуальные окружения, и использовать их без активации, так что вместо:source .venv/bin/activateможно писать вот так:
python -m pip install httpx
py -m pip install httpxНаписано на Rust.
https://snarky.ca/introducing-the-python-launcher-for-unix/
Tall, Snarky Canadian
Introducing the Python Launcher for Unix
The problem
Let's say you have more than one version of Python installed on your machine.
What version does python3 point to? If you said, "the newest version", you may
actually be wrong. That's because python3 points at the last version of Python
you installed…
Let's say you have more than one version of Python installed on your machine.
What version does python3 point to? If you said, "the newest version", you may
actually be wrong. That's because python3 points at the last version of Python
you installed…
В Python 3.10 добавлены две новые встроенные функции
https://twitter.com/1st1/status/1374499776570347521
aiter()
и anext()
, которые наконец добавляют возможность полноценно контролировать асинхронные итераторы и генераторы без вызовов dunder-методов. Синхронный и асинхронный миры становятся чуть более симметричными.https://twitter.com/1st1/status/1374499776570347521
Twitter
Yury Selivanov
Kudos to @jabronso for adding two new builtin functions to Python 3.10: aiter() anext() made to work with asynchronous iterators. 🎉
Начал смотреть доклады с Python Community Meetup от Райффайзенбанка. Годный контент и картиночки забавные.
https://youtu.be/qfMWyStoyS4?t=290
#meme
https://youtu.be/qfMWyStoyS4?t=290
#meme
Первый доклад там по сути является пересказом событий и выступлений с Language Summit 2021. Там вообще было показано и сказано много интересного. Ускорение питона нынче самая популярная тема. Горячий выдался саммит, и сообществу наверняка понадобится какое-то время, чтобы всё это качественно впитать и осознать.
Вспомнил всё ещё разок и заодно законспектировал. Вот вам пересказ пересказа.
🐍 Making CPython faster
* Гвидо собрал команду внутри Майкрософт, и они будут работать над ускорением CPython;
* конечная цель — x5 ускорение в течение 4 лет;
* в 3.10 появятся первые оптимизации из этой серии, а 3.11 уже якобы должен работать примерно в два раза быстрее;
* всё это будет достигнуто без жертв со стороны обратной совместимости и мирного населения.
🐍CPython Improvements at Instagram
* внутри Instagram развился собственный форк CPython под названием Cinder, где они экспериментируют с различными подходами по улучшению производительности;
* в общей сложности, получилось ускорить CPython на 20-30%;
* среди применённых оптимизаций — различные срезания углов в асинхронном коде, оптимизация словарей;
* сделали JIT;
* исходники форка доступны на гитхабе, но поддерживаться оно не будет; вместо этого, они будут пытаться пропихнуть удачные оптимизации в апстрим CPython;
* они там в инстаграме совсем ударились в форки питона, поэтому кроме Cinder у них есть ещё один форк под названием Pyro, где упор сделан на более оптимальную работу сборщика мусора.
🐍HPy — Present and Future
* в разработке находится HPy — новый API/ABI для работы с интерпретатором из нативного кода, например, из библиотек на C;
* обещают, что это сделает PyPy и Python внутри GraalVM быстрее;
* в перспективе это ускорит и CPython, но не сейчас.
🐍 Progress on Running Multiple Python Interpreters in Parallel in the Same Process
* субинтерпретаторы в перспективе решат проблему GIL, т.е. позволят эффективно утилизировать несколько процессорных ядер без создания новых процессов в ОС;
* в синтетических тестах субинтерпретаторы работают чуть медленнее, чем мультипроцессинг, но это пока что лишь прототип, так что ок;
* синхронизацию между субинтерпретаторами планируется сделать через что-то, очень напоминающее каналы в Go.
#конспект
Вспомнил всё ещё разок и заодно законспектировал. Вот вам пересказ пересказа.
🐍 Making CPython faster
* Гвидо собрал команду внутри Майкрософт, и они будут работать над ускорением CPython;
* конечная цель — x5 ускорение в течение 4 лет;
* в 3.10 появятся первые оптимизации из этой серии, а 3.11 уже якобы должен работать примерно в два раза быстрее;
* всё это будет достигнуто без жертв со стороны обратной совместимости и мирного населения.
🐍CPython Improvements at Instagram
* внутри Instagram развился собственный форк CPython под названием Cinder, где они экспериментируют с различными подходами по улучшению производительности;
* в общей сложности, получилось ускорить CPython на 20-30%;
* среди применённых оптимизаций — различные срезания углов в асинхронном коде, оптимизация словарей;
* сделали JIT;
* исходники форка доступны на гитхабе, но поддерживаться оно не будет; вместо этого, они будут пытаться пропихнуть удачные оптимизации в апстрим CPython;
* они там в инстаграме совсем ударились в форки питона, поэтому кроме Cinder у них есть ещё один форк под названием Pyro, где упор сделан на более оптимальную работу сборщика мусора.
🐍HPy — Present and Future
* в разработке находится HPy — новый API/ABI для работы с интерпретатором из нативного кода, например, из библиотек на C;
* обещают, что это сделает PyPy и Python внутри GraalVM быстрее;
* в перспективе это ускорит и CPython, но не сейчас.
🐍 Progress on Running Multiple Python Interpreters in Parallel in the Same Process
* субинтерпретаторы в перспективе решат проблему GIL, т.е. позволят эффективно утилизировать несколько процессорных ядер без создания новых процессов в ОС;
* в синтетических тестах субинтерпретаторы работают чуть медленнее, чем мультипроцессинг, но это пока что лишь прототип, так что ок;
* синхронизацию между субинтерпретаторами планируется сделать через что-то, очень напоминающее каналы в Go.
#конспект
Python Software Foundation Blog
The 2021 Python Language Summit: Making CPython Faster
At the 2021 Python Language Summit , Guido van Rossum gave a presentation about plans for making CPython faster. This presentation came rig...
Sebastián Ramírez (@tiangolo) выпустил новый хит — SQLModel ✨
Эта библиотека решает проблему дублирования кода моделей. Представьте, что вы используете FastAPI. Вам нужно определить модель данных один раз в стиле
Больше так делать не придётся, потому что классы
Это всё бесшовно интегрируется как с экосистемой вокруг
Эта библиотека решает проблему дублирования кода моделей. Представьте, что вы используете FastAPI. Вам нужно определить модель данных один раз в стиле
pydantic
, чтобы провалидировать пользовательский ввод. Вы также используете SQLAlchemy ORM, поэтому вы определяете практически точно такую же модель в стиле SQLAlchemy
, чтобы описать таблицу в базе.Больше так делать не придётся, потому что классы
SQLModel
— это и модели pydantic
, и таблицы алхимии одновременно! ✨🎉Это всё бесшовно интегрируется как с экосистемой вокруг
pydantic
, так и со всем, что связано с алхимией. Как всегда, везде активно используются тайп-аннотации, так что редакторы и IDE поют от радости песни. Документация, как всегда, заслуживает отдельного упоминания — Себастьян в этом плане хорошо завысил планку моих ожиданий, и на худшую документацию я теперь просто не согласен!GitHub
GitHub - fastapi/sqlmodel: SQL databases in Python, designed for simplicity, compatibility, and robustness.
SQL databases in Python, designed for simplicity, compatibility, and robustness. - fastapi/sqlmodel
Питонические атаки
Sebastián Ramírez (@tiangolo) выпустил новый хит — SQLModel ✨ Эта библиотека решает проблему дублирования кода моделей. Представьте, что вы используете FastAPI. Вам нужно определить модель данных один раз в стиле pydantic, чтобы провалидировать пользовательский…
GitHub
GitHub - fastapi/sqlmodel: SQL databases in Python, designed for simplicity, compatibility, and robustness.
SQL databases in Python, designed for simplicity, compatibility, and robustness. - fastapi/sqlmodel
Forwarded from Pytup
🐍 Привет, питоняги!
Pytup уже завтра!
Начало в 18-00 по МСК, онлайн.
Регистрируйтесь, ссылочка на трансляцию придет вам на почту
🤗 Вова покажет нам как дружить типы и ide
🧬 Надя покажет как она умеет "готовить" мутации
🗞 Напоследок узнаем свежие новости из мира питона от Андрея
ЗЫ запись будет, да 🎥
Pytup уже завтра!
Начало в 18-00 по МСК, онлайн.
Регистрируйтесь, ссылочка на трансляцию придет вам на почту
🤗 Вова покажет нам как дружить типы и ide
🧬 Надя покажет как она умеет "готовить" мутации
🗞 Напоследок узнаем свежие новости из мира питона от Андрея
ЗЫ запись будет, да 🎥
А слышали когда-нибудь про RustPython?
Это интерпретатор Python, написанный на Rust 🦀 с нуля. Он компилируется в том числе и в WebAssembly, можно поиграться с ним прямо в браузере вот здесь.
Проект пока что находится на ранних стадиях разработки, но недавно у них случился большой успех — теперь работает
https://rustpython.github.io/blog/2021/01/26/pip-support.html
Это интерпретатор Python, написанный на Rust 🦀 с нуля. Он компилируется в том числе и в WebAssembly, можно поиграться с ним прямо в браузере вот здесь.
Проект пока что находится на ранних стадиях разработки, но недавно у них случился большой успех — теперь работает
pip
и можно устанавливать пакеты!https://rustpython.github.io/blog/2021/01/26/pip-support.html
RustPython
Why RustPython?
An open source Python 3 (CPython >= 3.11.0) interpreter written in Rust 🐍 😱 🤘
2.7 все ещё популярнее, чем 3.9.
https://www.reddit.com/r/Python/comments/pb5j08/even_after_almost_2_years_migration_to_python_3/
P.S. Подозреваю, что где-то открылся портал в мультивселенную, и в наш PyPI проникло 429 наркоманов из мира, где есть Python 2.8.
https://www.reddit.com/r/Python/comments/pb5j08/even_after_almost_2_years_migration_to_python_3/
P.S. Подозреваю, что где-то открылся портал в мультивселенную, и в наш PyPI проникло 429 наркоманов из мира, где есть Python 2.8.
Forwarded from Python Daily
lona-web-org/lona - очень любопытный фреймворк, который позволяет писать веб-приложения полностью на пайтоне. Ни строчки на js впредь! 😁
#github #github_explore #nothabr #pydaily
from lona.html import HTML, Button, Div, H1
from lona import LonaApp, LonaView
app = LonaApp(__file__)
@app.route('/')
class MyView(LonaView):
def handle_request(self, request):
message = Div('Button not clicked')
button = Button('Click me!')
html = HTML(
H1('Click the button!'),
message,
button,
)
self.show(html)
# this call blocks until the button was clicked
input_event = self.await_click(button)
if input_event.node == button:
message.set_text('Button clicked')
return html
app.run(port=8080)
#github #github_explore #nothabr #pydaily
GitHub
GitHub - lona-web-org/lona: Write responsive web apps in full python
Write responsive web apps in full python. Contribute to lona-web-org/lona development by creating an account on GitHub.