PKG-INFO 7.8 KB

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