METADATA 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. Metadata-Version: 2.4
  2. Name: SQLAlchemy
  3. Version: 2.0.43
  4. Summary: Database Abstraction Library
  5. Home-page: https://www.sqlalchemy.org
  6. Author: Mike Bayer
  7. Author-email: mike_mp@zzzcomputing.com
  8. License: MIT
  9. Project-URL: Documentation, https://docs.sqlalchemy.org
  10. Project-URL: Issue Tracker, https://github.com/sqlalchemy/sqlalchemy/
  11. Classifier: Development Status :: 5 - Production/Stable
  12. Classifier: Intended Audience :: Developers
  13. Classifier: Operating System :: OS Independent
  14. Classifier: Programming Language :: Python
  15. Classifier: Programming Language :: Python :: 3
  16. Classifier: Programming Language :: Python :: 3.7
  17. Classifier: Programming Language :: Python :: 3.8
  18. Classifier: Programming Language :: Python :: 3.9
  19. Classifier: Programming Language :: Python :: 3.10
  20. Classifier: Programming Language :: Python :: 3.11
  21. Classifier: Programming Language :: Python :: 3.12
  22. Classifier: Programming Language :: Python :: 3.13
  23. Classifier: Programming Language :: Python :: Implementation :: CPython
  24. Classifier: Programming Language :: Python :: Implementation :: PyPy
  25. Classifier: Topic :: Database :: Front-Ends
  26. Requires-Python: >=3.7
  27. Description-Content-Type: text/x-rst
  28. License-File: LICENSE
  29. Requires-Dist: importlib-metadata; python_version < "3.8"
  30. Requires-Dist: greenlet>=1; python_version < "3.14" and (platform_machine == "aarch64" or (platform_machine == "ppc64le" or (platform_machine == "x86_64" or (platform_machine == "amd64" or (platform_machine == "AMD64" or (platform_machine == "win32" or platform_machine == "WIN32"))))))
  31. Requires-Dist: typing-extensions>=4.6.0
  32. Provides-Extra: asyncio
  33. Requires-Dist: greenlet>=1; extra == "asyncio"
  34. Provides-Extra: mypy
  35. Requires-Dist: mypy>=0.910; extra == "mypy"
  36. Provides-Extra: mssql
  37. Requires-Dist: pyodbc; extra == "mssql"
  38. Provides-Extra: mssql-pymssql
  39. Requires-Dist: pymssql; extra == "mssql-pymssql"
  40. Provides-Extra: mssql-pyodbc
  41. Requires-Dist: pyodbc; extra == "mssql-pyodbc"
  42. Provides-Extra: mysql
  43. Requires-Dist: mysqlclient>=1.4.0; extra == "mysql"
  44. Provides-Extra: mysql-connector
  45. Requires-Dist: mysql-connector-python; extra == "mysql-connector"
  46. Provides-Extra: mariadb-connector
  47. Requires-Dist: mariadb!=1.1.10,!=1.1.2,!=1.1.5,>=1.0.1; extra == "mariadb-connector"
  48. Provides-Extra: oracle
  49. Requires-Dist: cx_oracle>=8; extra == "oracle"
  50. Provides-Extra: oracle-oracledb
  51. Requires-Dist: oracledb>=1.0.1; extra == "oracle-oracledb"
  52. Provides-Extra: postgresql
  53. Requires-Dist: psycopg2>=2.7; extra == "postgresql"
  54. Provides-Extra: postgresql-pg8000
  55. Requires-Dist: pg8000>=1.29.1; extra == "postgresql-pg8000"
  56. Provides-Extra: postgresql-asyncpg
  57. Requires-Dist: greenlet>=1; extra == "postgresql-asyncpg"
  58. Requires-Dist: asyncpg; extra == "postgresql-asyncpg"
  59. Provides-Extra: postgresql-psycopg2binary
  60. Requires-Dist: psycopg2-binary; extra == "postgresql-psycopg2binary"
  61. Provides-Extra: postgresql-psycopg2cffi
  62. Requires-Dist: psycopg2cffi; extra == "postgresql-psycopg2cffi"
  63. Provides-Extra: postgresql-psycopg
  64. Requires-Dist: psycopg>=3.0.7; extra == "postgresql-psycopg"
  65. Provides-Extra: postgresql-psycopgbinary
  66. Requires-Dist: psycopg[binary]>=3.0.7; extra == "postgresql-psycopgbinary"
  67. Provides-Extra: pymysql
  68. Requires-Dist: pymysql; extra == "pymysql"
  69. Provides-Extra: aiomysql
  70. Requires-Dist: greenlet>=1; extra == "aiomysql"
  71. Requires-Dist: aiomysql>=0.2.0; extra == "aiomysql"
  72. Provides-Extra: aioodbc
  73. Requires-Dist: greenlet>=1; extra == "aioodbc"
  74. Requires-Dist: aioodbc; extra == "aioodbc"
  75. Provides-Extra: asyncmy
  76. Requires-Dist: greenlet>=1; extra == "asyncmy"
  77. Requires-Dist: asyncmy!=0.2.4,!=0.2.6,>=0.2.3; extra == "asyncmy"
  78. Provides-Extra: aiosqlite
  79. Requires-Dist: greenlet>=1; extra == "aiosqlite"
  80. Requires-Dist: aiosqlite; extra == "aiosqlite"
  81. Requires-Dist: typing_extensions!=3.10.0.1; extra == "aiosqlite"
  82. Provides-Extra: sqlcipher
  83. Requires-Dist: sqlcipher3_binary; extra == "sqlcipher"
  84. Dynamic: license-file
  85. SQLAlchemy
  86. ==========
  87. |PyPI| |Python| |Downloads|
  88. .. |PyPI| image:: https://img.shields.io/pypi/v/sqlalchemy
  89. :target: https://pypi.org/project/sqlalchemy
  90. :alt: PyPI
  91. .. |Python| image:: https://img.shields.io/pypi/pyversions/sqlalchemy
  92. :target: https://pypi.org/project/sqlalchemy
  93. :alt: PyPI - Python Version
  94. .. |Downloads| image:: https://static.pepy.tech/badge/sqlalchemy/month
  95. :target: https://pepy.tech/project/sqlalchemy
  96. :alt: PyPI - Downloads
  97. The Python SQL Toolkit and Object Relational Mapper
  98. Introduction
  99. -------------
  100. SQLAlchemy is the Python SQL toolkit and Object Relational Mapper
  101. that gives application developers the full power and
  102. flexibility of SQL. SQLAlchemy provides a full suite
  103. of well known enterprise-level persistence patterns,
  104. designed for efficient and high-performing database
  105. access, adapted into a simple and Pythonic domain
  106. language.
  107. Major SQLAlchemy features include:
  108. * An industrial strength ORM, built
  109. from the core on the identity map, unit of work,
  110. and data mapper patterns. These patterns
  111. allow transparent persistence of objects
  112. using a declarative configuration system.
  113. Domain models
  114. can be constructed and manipulated naturally,
  115. and changes are synchronized with the
  116. current transaction automatically.
  117. * A relationally-oriented query system, exposing
  118. the full range of SQL's capabilities
  119. explicitly, including joins, subqueries,
  120. correlation, and most everything else,
  121. in terms of the object model.
  122. Writing queries with the ORM uses the same
  123. techniques of relational composition you use
  124. when writing SQL. While you can drop into
  125. literal SQL at any time, it's virtually never
  126. needed.
  127. * A comprehensive and flexible system
  128. of eager loading for related collections and objects.
  129. Collections are cached within a session,
  130. and can be loaded on individual access, all
  131. at once using joins, or by query per collection
  132. across the full result set.
  133. * A Core SQL construction system and DBAPI
  134. interaction layer. The SQLAlchemy Core is
  135. separate from the ORM and is a full database
  136. abstraction layer in its own right, and includes
  137. an extensible Python-based SQL expression
  138. language, schema metadata, connection pooling,
  139. type coercion, and custom types.
  140. * All primary and foreign key constraints are
  141. assumed to be composite and natural. Surrogate
  142. integer primary keys are of course still the
  143. norm, but SQLAlchemy never assumes or hardcodes
  144. to this model.
  145. * Database introspection and generation. Database
  146. schemas can be "reflected" in one step into
  147. Python structures representing database metadata;
  148. those same structures can then generate
  149. CREATE statements right back out - all within
  150. the Core, independent of the ORM.
  151. SQLAlchemy's philosophy:
  152. * SQL databases behave less and less like object
  153. collections the more size and performance start to
  154. matter; object collections behave less and less like
  155. tables and rows the more abstraction starts to matter.
  156. SQLAlchemy aims to accommodate both of these
  157. principles.
  158. * An ORM doesn't need to hide the "R". A relational
  159. database provides rich, set-based functionality
  160. that should be fully exposed. SQLAlchemy's
  161. ORM provides an open-ended set of patterns
  162. that allow a developer to construct a custom
  163. mediation layer between a domain model and
  164. a relational schema, turning the so-called
  165. "object relational impedance" issue into
  166. a distant memory.
  167. * The developer, in all cases, makes all decisions
  168. regarding the design, structure, and naming conventions
  169. of both the object model as well as the relational
  170. schema. SQLAlchemy only provides the means
  171. to automate the execution of these decisions.
  172. * With SQLAlchemy, there's no such thing as
  173. "the ORM generated a bad query" - you
  174. retain full control over the structure of
  175. queries, including how joins are organized,
  176. how subqueries and correlation is used, what
  177. columns are requested. Everything SQLAlchemy
  178. does is ultimately the result of a developer-initiated
  179. decision.
  180. * Don't use an ORM if the problem doesn't need one.
  181. SQLAlchemy consists of a Core and separate ORM
  182. component. The Core offers a full SQL expression
  183. language that allows Pythonic construction
  184. of SQL constructs that render directly to SQL
  185. strings for a target database, returning
  186. result sets that are essentially enhanced DBAPI
  187. cursors.
  188. * Transactions should be the norm. With SQLAlchemy's
  189. ORM, nothing goes to permanent storage until
  190. commit() is called. SQLAlchemy encourages applications
  191. to create a consistent means of delineating
  192. the start and end of a series of operations.
  193. * Never render a literal value in a SQL statement.
  194. Bound parameters are used to the greatest degree
  195. possible, allowing query optimizers to cache
  196. query plans effectively and making SQL injection
  197. attacks a non-issue.
  198. Documentation
  199. -------------
  200. Latest documentation is at:
  201. https://www.sqlalchemy.org/docs/
  202. Installation / Requirements
  203. ---------------------------
  204. Full documentation for installation is at
  205. `Installation <https://www.sqlalchemy.org/docs/intro.html#installation>`_.
  206. Getting Help / Development / Bug reporting
  207. ------------------------------------------
  208. Please refer to the `SQLAlchemy Community Guide <https://www.sqlalchemy.org/support.html>`_.
  209. Code of Conduct
  210. ---------------
  211. Above all, SQLAlchemy places great emphasis on polite, thoughtful, and
  212. constructive communication between users and developers.
  213. Please see our current Code of Conduct at
  214. `Code of Conduct <https://www.sqlalchemy.org/codeofconduct.html>`_.
  215. License
  216. -------
  217. SQLAlchemy is distributed under the `MIT license
  218. <https://www.opensource.org/licenses/mit-license.php>`_.