Team Ai
Datasetpublic

codekingpro/portable-devtools

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