METADATA 11 KB

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