METADATA 9.7 KB

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