METADATA 9.4 KB

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