METADATA 6.4 KB

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