Python, Requests, & The Standard Library
Introduction
- Requests vs Standard Library discusses the stance of the Requests project regarding its potential inclusion in Python’s standard library, exploring the implications and reasoning behind the decision.
Requests Overview
- Features:
- Prioritizes security and design.
- Optimized interfaces for best practices in SSL, connection pooling, encoding, headers, etc.
-
Simplifies interaction with web services.
-
Popularity:
- Requests is the most downloaded Python package, with around 42 million downloads from PyPi.
- Regularly suggested for inclusion in the standard library.
Arguments for Inclusion
- Social Responsibility:
-
Including Requests in the standard library could be seen as the “right thing” to do, given its critical role in the Python ecosystem.
-
Sustainability:
-
Inclusion could facilitate funding for core contributors, ensuring the project’s long-term sustainability.
-
Chardet:
- Chardet, a dependency of Requests, is highlighted as a strong candidate for standard library inclusion due to its utility in character encoding detection.
Arguments Against Inclusion
- Independence:
-
Requests’ value lies in its superiority over the standard library; inclusion would diminish its ability to innovate and quickly respond to security incidents or spec changes.
-
Flexibility:
- Inclusion in the standard library could limit the project’s ability to release updates and improvements promptly.
Broader Questions
- Standard Library Goals:
-
The document questions the current goals of the standard library and whether inclusion is necessary in the era of tools like
ensurepip
. -
Critical Infrastructure:
- Requests is considered critical infrastructure for the Python community, but its inclusion in the standard library might make it less adaptable to change.
Conclusion
- Final Stance:
- The document leans against including Requests in the standard library, emphasizing the need for the project to remain agile and independent to continue serving the Python community effectively.