PKG-INFO 6.6 KB

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