7.09.2025 состоялся релизPithon 3.14!
На фоне хайпа про NoGIL всё позабыли про другие фичи. Особенно про Multiple Interpreters, который обещает изоляцию процессов но с эффективностью потоков! На сколько действительно это будет эффективно мы узнаем позже, потому что сейчас это лишь первый релиз с ограничениями и недоработками.
Но что там про NoGIL? Теперь этот режим не экспериментальный, а официально поддерживаемый, но опциональный.
Чтобы запустить без GIL нужна специальная сборка. И перед стартом нужно объявить переменную PYTHON_GIL=0
Для вас я собрал готовый репозиторий где достаточно запустить скрпит, который всё сделает:
▫️ соберет релизный Python 3.14 в новый Docker-образ
▫️ запустит тесты в контейнере (GIL, NoGIL, MultiInterpreter)
▫️ распечатает результаты
Тест очень простой, усложняйте сами)
Вот какие результаты у меня:
=== Running ThreadPoolExecutor GIL ON
TOTAL TIME: 45.48 seconds
=== Running ThreadPoolExecutor GIL OFF
TOTAL TIME: 6.14 seconds
=== Running basic Thread GIL ON
TOTAL TIME: 45.54 seconds
=== Running basic Thread GIL OFF
TOTAL TIME: 4.74 seconds
=== Running with Multi Interpreter
TOTAL TIME: 18.30 seconds
Если сравнивать GIL и NoGIL, то на мои 32 ядра прирост х7-x10 (почему не х32? 🤷). При этом нам обещают что скорости будут расти с новыми релизами.
Режим без GIL похож (визуально) на async, тоже параллельно, тоже не по порядку. Но это не IO! и от того некоторый диссонанс в голове 😵💫, нас учили не так!
Интересно, что чистый Thread работает быстрей чем ThreadPoolExecutor без GIL.
Ну и где-то плачет один адепт мульти-интерпретаторов😭 Теперь нужно искать где они могут пригодиться с такой-то скоростью. Скорее всего своя область применения найдется.
Отдельно я затестил память и вот что вышло на 32 потока:
ThreadPoolExecutor GIL ON
305.228 MB
ThreadPoolExecutor GIL OFF
500.176 MB
basic Thread GIL ON
90.668 MB
basic Thread GIL OFF
472.444 MB
with Multi Interpreter
1267.788 MB
Пока не знаю как к этому относиться)
В целом - радует направление развития!
#release
#Python#Flask#APIs
🐍
REST APIs with Flask and Python in 2023
Build professional REST APIs with Python, Flask, Docker, Flask-Smorest, and Flask-SQLAlchemy
🗣️ Jose Salvatierra, Teclado by Jose Salvatierra
🌟 4.6 - 20097 votes
🔗Link
-----
Main channel: @repo_science
Coupons: @freecoupons_reposcience
-----
#public#APIs
Public APIs
A collective list of free APIs for use in software and web development
🔍#github
🔗Link
-----
Main channel: @repo_science
Coupons: @freecoupons_reposcience
-----
https://httpie.org/
#HTTPie consists of a single http command designed for painless debugging and interaction with HTTP #servers, #RESTful#APIs, and web services:
Sensible defaults
Expressive and intuitive command syntax
Colorized and formatted terminal output
Built-in JSON support
Persistent sessions
Forms and file uploads
HTTPS, proxies, and authentication support
Support for arbitrary request data and headers
Wget-like downloads
Extensions
Linux, Mac OSX, and Windows support
And more…
https://blog.miguelgrinberg.com/post/designing-a-restful-api-with-python-and-flask
In recent years #REST (REpresentational State Transfer) has emerged as the standard architectural design for #web services and web #APIs.
In this article I'm going to show you how easy it is to create a RESTful web service using Python and the Flask microframework.
What is REST?
The characteristics of a REST system are defined by six design rules:
Client-Server: There should be a separation between the #server that offers a service, and the #client that consumes it.
Stateless: Each request from a client must contain all the information required by the server to carry out the #request. In other words, the server cannot store information provided by the client in one request and use it in another request.
Cacheable: The server must indicate to the client if requests can be cached or not.
Layered System: Communication between a client and a server should be standardized in such a way that allows intermediaries to respond to requests instead of the end server, without the client having to do anything different.
Uniform Interface: The method of communication between a client and a server must be uniform.
Code on demand: Servers can provide executable code or scripts for clients to execute in their context. This constraint is the only one that is optional.
https://docs.python.org/3/library/multiprocessing.html
multiprocessing is a package that supports spawning processes using an API similar to the threading module. The multiprocessing package offers both local and remote concurrency, effectively side-stepping the Global Interpreter Lock by using subprocesses instead of threads. Due to this, the multiprocessing module allows the programmer to fully leverage multiple processors on a given machine. It runs on both Unix and Windows.
The #multiprocessing module also introduces #APIs which do not have analogs in the #threading#module. A prime example of this is the Pool object which offers a convenient means of parallelizing the execution of a function across multiple input values, distributing the input data across processes (data #parallelism). The following example demonstrates the common practice of defining such functions in a module so that child processes can successfully import that module. This basic example of data parallelism using Pool,
http://books.agiliq.com/projects/django-api-polls-tutorial/en/latest/
Building #APIs with #Django and #Django_Rest_Framework(#DRF)
Introductions
Setup, Models and Admin
A simple API with pure Django
#Serializing and Deserializing Data
Views and Generic Views
More views and viewsets
#Access_Control
#Testing and Continuous Integeration
Testing and Using API with Postman
Documenting APIs (with Swagger and more)
🚀 Gobi Partners Invests in Transak to Expand Asian Market Presence
Gobi Partners has announced its investment in Transak. According to ChainCatcher, Transak, established in 2019, offers financial institutions a single API for seamless fiat and digital asset exchanges, handling KYC, AML, risk monitoring, and local payment integration.
The investment aims to support Transak's expansion into the Asian market. Transak has already established its Asia-Pacific headquarters in Hong Kong and plans to enhance integration with payment networks and banking partners in the ASEAN region.
#GobiPartners#Transak#Investment#AsiaMarketExpansion#Fintech#DigitalAssets#KYC#AML#RiskMonitoring#APIs#PaymentIntegration#ASEAN#HongKong#FinancialInstitutions