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.