kennethreitz.org / Talks / Requests Stdlib
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
.
- The document questions the current goals of the standard library and whether inclusion is necessary in the era of tools like
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.