Name | SQLAlchemy JSON |
Version |
2.0.36
JSON |
| download |
home_page | https://www.sqlalchemy.org |
Summary | Database Abstraction Library |
upload_time | 2024-10-15 19:41:44 |
maintainer | None |
docs_url | None |
author | Mike Bayer |
requires_python | >=3.7 |
license | MIT |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
SQLAlchemy
==========
|PyPI| |Python| |Downloads|
.. |PyPI| image:: https://img.shields.io/pypi/v/sqlalchemy
:target: https://pypi.org/project/sqlalchemy
:alt: PyPI
.. |Python| image:: https://img.shields.io/pypi/pyversions/sqlalchemy
:target: https://pypi.org/project/sqlalchemy
:alt: PyPI - Python Version
.. |Downloads| image:: https://static.pepy.tech/badge/sqlalchemy/month
:target: https://pepy.tech/project/sqlalchemy
:alt: PyPI - Downloads
The Python SQL Toolkit and Object Relational Mapper
Introduction
-------------
SQLAlchemy is the Python SQL toolkit and Object Relational Mapper
that gives application developers the full power and
flexibility of SQL. SQLAlchemy provides a full suite
of well known enterprise-level persistence patterns,
designed for efficient and high-performing database
access, adapted into a simple and Pythonic domain
language.
Major SQLAlchemy features include:
* An industrial strength ORM, built
from the core on the identity map, unit of work,
and data mapper patterns. These patterns
allow transparent persistence of objects
using a declarative configuration system.
Domain models
can be constructed and manipulated naturally,
and changes are synchronized with the
current transaction automatically.
* A relationally-oriented query system, exposing
the full range of SQL's capabilities
explicitly, including joins, subqueries,
correlation, and most everything else,
in terms of the object model.
Writing queries with the ORM uses the same
techniques of relational composition you use
when writing SQL. While you can drop into
literal SQL at any time, it's virtually never
needed.
* A comprehensive and flexible system
of eager loading for related collections and objects.
Collections are cached within a session,
and can be loaded on individual access, all
at once using joins, or by query per collection
across the full result set.
* A Core SQL construction system and DBAPI
interaction layer. The SQLAlchemy Core is
separate from the ORM and is a full database
abstraction layer in its own right, and includes
an extensible Python-based SQL expression
language, schema metadata, connection pooling,
type coercion, and custom types.
* All primary and foreign key constraints are
assumed to be composite and natural. Surrogate
integer primary keys are of course still the
norm, but SQLAlchemy never assumes or hardcodes
to this model.
* Database introspection and generation. Database
schemas can be "reflected" in one step into
Python structures representing database metadata;
those same structures can then generate
CREATE statements right back out - all within
the Core, independent of the ORM.
SQLAlchemy's philosophy:
* SQL databases behave less and less like object
collections the more size and performance start to
matter; object collections behave less and less like
tables and rows the more abstraction starts to matter.
SQLAlchemy aims to accommodate both of these
principles.
* An ORM doesn't need to hide the "R". A relational
database provides rich, set-based functionality
that should be fully exposed. SQLAlchemy's
ORM provides an open-ended set of patterns
that allow a developer to construct a custom
mediation layer between a domain model and
a relational schema, turning the so-called
"object relational impedance" issue into
a distant memory.
* The developer, in all cases, makes all decisions
regarding the design, structure, and naming conventions
of both the object model as well as the relational
schema. SQLAlchemy only provides the means
to automate the execution of these decisions.
* With SQLAlchemy, there's no such thing as
"the ORM generated a bad query" - you
retain full control over the structure of
queries, including how joins are organized,
how subqueries and correlation is used, what
columns are requested. Everything SQLAlchemy
does is ultimately the result of a developer-initiated
decision.
* Don't use an ORM if the problem doesn't need one.
SQLAlchemy consists of a Core and separate ORM
component. The Core offers a full SQL expression
language that allows Pythonic construction
of SQL constructs that render directly to SQL
strings for a target database, returning
result sets that are essentially enhanced DBAPI
cursors.
* Transactions should be the norm. With SQLAlchemy's
ORM, nothing goes to permanent storage until
commit() is called. SQLAlchemy encourages applications
to create a consistent means of delineating
the start and end of a series of operations.
* Never render a literal value in a SQL statement.
Bound parameters are used to the greatest degree
possible, allowing query optimizers to cache
query plans effectively and making SQL injection
attacks a non-issue.
Documentation
-------------
Latest documentation is at:
https://www.sqlalchemy.org/docs/
Installation / Requirements
---------------------------
Full documentation for installation is at
`Installation <https://www.sqlalchemy.org/docs/intro.html#installation>`_.
Getting Help / Development / Bug reporting
------------------------------------------
Please refer to the `SQLAlchemy Community Guide <https://www.sqlalchemy.org/support.html>`_.
Code of Conduct
---------------
Above all, SQLAlchemy places great emphasis on polite, thoughtful, and
constructive communication between users and developers.
Please see our current Code of Conduct at
`Code of Conduct <https://www.sqlalchemy.org/codeofconduct.html>`_.
License
-------
SQLAlchemy is distributed under the `MIT license
<https://www.opensource.org/licenses/mit-license.php>`_.
Raw data
{
"_id": null,
"home_page": "https://www.sqlalchemy.org",
"name": "SQLAlchemy",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": null,
"author": "Mike Bayer",
"author_email": "mike_mp@zzzcomputing.com",
"download_url": "https://files.pythonhosted.org/packages/50/65/9cbc9c4c3287bed2499e05033e207473504dc4df999ce49385fb1f8b058a/sqlalchemy-2.0.36.tar.gz",
"platform": null,
"description": "SQLAlchemy\n==========\n\n|PyPI| |Python| |Downloads|\n\n.. |PyPI| image:: https://img.shields.io/pypi/v/sqlalchemy\n :target: https://pypi.org/project/sqlalchemy\n :alt: PyPI\n\n.. |Python| image:: https://img.shields.io/pypi/pyversions/sqlalchemy\n :target: https://pypi.org/project/sqlalchemy\n :alt: PyPI - Python Version\n\n.. |Downloads| image:: https://static.pepy.tech/badge/sqlalchemy/month\n :target: https://pepy.tech/project/sqlalchemy\n :alt: PyPI - Downloads\n\n\nThe Python SQL Toolkit and Object Relational Mapper\n\nIntroduction\n-------------\n\nSQLAlchemy is the Python SQL toolkit and Object Relational Mapper\nthat gives application developers the full power and\nflexibility of SQL. SQLAlchemy provides a full suite\nof well known enterprise-level persistence patterns,\ndesigned for efficient and high-performing database\naccess, adapted into a simple and Pythonic domain\nlanguage.\n\nMajor SQLAlchemy features include:\n\n* An industrial strength ORM, built\n from the core on the identity map, unit of work,\n and data mapper patterns. These patterns\n allow transparent persistence of objects\n using a declarative configuration system.\n Domain models\n can be constructed and manipulated naturally,\n and changes are synchronized with the\n current transaction automatically.\n* A relationally-oriented query system, exposing\n the full range of SQL's capabilities\n explicitly, including joins, subqueries,\n correlation, and most everything else,\n in terms of the object model.\n Writing queries with the ORM uses the same\n techniques of relational composition you use\n when writing SQL. While you can drop into\n literal SQL at any time, it's virtually never\n needed.\n* A comprehensive and flexible system\n of eager loading for related collections and objects.\n Collections are cached within a session,\n and can be loaded on individual access, all\n at once using joins, or by query per collection\n across the full result set.\n* A Core SQL construction system and DBAPI\n interaction layer. The SQLAlchemy Core is\n separate from the ORM and is a full database\n abstraction layer in its own right, and includes\n an extensible Python-based SQL expression\n language, schema metadata, connection pooling,\n type coercion, and custom types.\n* All primary and foreign key constraints are\n assumed to be composite and natural. Surrogate\n integer primary keys are of course still the\n norm, but SQLAlchemy never assumes or hardcodes\n to this model.\n* Database introspection and generation. Database\n schemas can be \"reflected\" in one step into\n Python structures representing database metadata;\n those same structures can then generate\n CREATE statements right back out - all within\n the Core, independent of the ORM.\n\nSQLAlchemy's philosophy:\n\n* SQL databases behave less and less like object\n collections the more size and performance start to\n matter; object collections behave less and less like\n tables and rows the more abstraction starts to matter.\n SQLAlchemy aims to accommodate both of these\n principles.\n* An ORM doesn't need to hide the \"R\". A relational\n database provides rich, set-based functionality\n that should be fully exposed. SQLAlchemy's\n ORM provides an open-ended set of patterns\n that allow a developer to construct a custom\n mediation layer between a domain model and\n a relational schema, turning the so-called\n \"object relational impedance\" issue into\n a distant memory.\n* The developer, in all cases, makes all decisions\n regarding the design, structure, and naming conventions\n of both the object model as well as the relational\n schema. SQLAlchemy only provides the means\n to automate the execution of these decisions.\n* With SQLAlchemy, there's no such thing as\n \"the ORM generated a bad query\" - you\n retain full control over the structure of\n queries, including how joins are organized,\n how subqueries and correlation is used, what\n columns are requested. Everything SQLAlchemy\n does is ultimately the result of a developer-initiated \n decision.\n* Don't use an ORM if the problem doesn't need one.\n SQLAlchemy consists of a Core and separate ORM\n component. The Core offers a full SQL expression\n language that allows Pythonic construction\n of SQL constructs that render directly to SQL\n strings for a target database, returning\n result sets that are essentially enhanced DBAPI\n cursors.\n* Transactions should be the norm. With SQLAlchemy's\n ORM, nothing goes to permanent storage until\n commit() is called. SQLAlchemy encourages applications\n to create a consistent means of delineating\n the start and end of a series of operations.\n* Never render a literal value in a SQL statement.\n Bound parameters are used to the greatest degree\n possible, allowing query optimizers to cache\n query plans effectively and making SQL injection\n attacks a non-issue.\n\nDocumentation\n-------------\n\nLatest documentation is at:\n\nhttps://www.sqlalchemy.org/docs/\n\nInstallation / Requirements\n---------------------------\n\nFull documentation for installation is at\n`Installation <https://www.sqlalchemy.org/docs/intro.html#installation>`_.\n\nGetting Help / Development / Bug reporting\n------------------------------------------\n\nPlease refer to the `SQLAlchemy Community Guide <https://www.sqlalchemy.org/support.html>`_.\n\nCode of Conduct\n---------------\n\nAbove all, SQLAlchemy places great emphasis on polite, thoughtful, and\nconstructive communication between users and developers.\nPlease see our current Code of Conduct at\n`Code of Conduct <https://www.sqlalchemy.org/codeofconduct.html>`_.\n\nLicense\n-------\n\nSQLAlchemy is distributed under the `MIT license\n<https://www.opensource.org/licenses/mit-license.php>`_.\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Database Abstraction Library",
"version": "2.0.36",
"project_urls": {
"Documentation": "https://docs.sqlalchemy.org",
"Homepage": "https://www.sqlalchemy.org",
"Issue Tracker": "https://github.com/sqlalchemy/sqlalchemy/"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "071568ef91de5b8b7f80fb2d2b3b31ed42180c6227fe0a701aed9d01d34f98ec",
"md5": "bb9acb50ed1ad7b777b9aa9feb41dfed",
"sha256": "c245b1fbade9c35e5bd3b64270ab49ce990369018289ecfde3f9c318411aaa07"
},
"downloads": -1,
"filename": "SQLAlchemy-2.0.36-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "bb9acb50ed1ad7b777b9aa9feb41dfed",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.7",
"size": 3074428,
"upload_time": "2024-10-15T20:03:35",
"upload_time_iso_8601": "2024-10-15T20:03:35.390497Z",
"url": "https://files.pythonhosted.org/packages/07/15/68ef91de5b8b7f80fb2d2b3b31ed42180c6227fe0a701aed9d01d34f98ec/SQLAlchemy-2.0.36-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "16a5fcfde8e74ea5f683b24add22463bfc21e431d4a5531c8a5b55bc6fbea164",
"md5": "c7070292909a3107af648ac166e49cd2",
"sha256": "f9511d8dd4a6e9271d07d150fb2f81874a3c8c95e11ff9af3a2dfc35fe42ee44"
},
"downloads": -1,
"filename": "SQLAlchemy-2.0.36-cp310-cp310-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "c7070292909a3107af648ac166e49cd2",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.7",
"size": 3055942,
"upload_time": "2024-10-15T20:03:38",
"upload_time_iso_8601": "2024-10-15T20:03:38.576869Z",
"url": "https://files.pythonhosted.org/packages/16/a5/fcfde8e74ea5f683b24add22463bfc21e431d4a5531c8a5b55bc6fbea164/SQLAlchemy-2.0.36-cp310-cp310-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3ceec22c415a771d791ae99146d72ffdb20e43625acd24835ea7fc157436d59f",
"md5": "ccd8f1276124bcd523600e3a223d4d69",
"sha256": "c3f3631693003d8e585d4200730616b78fafd5a01ef8b698f6967da5c605b3fa"
},
"downloads": -1,
"filename": "SQLAlchemy-2.0.36-cp310-cp310-win32.whl",
"has_sig": false,
"md5_digest": "ccd8f1276124bcd523600e3a223d4d69",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.7",
"size": 2064960,
"upload_time": "2024-10-15T20:07:17",
"upload_time_iso_8601": "2024-10-15T20:07:17.401259Z",
"url": "https://files.pythonhosted.org/packages/3c/ee/c22c415a771d791ae99146d72ffdb20e43625acd24835ea7fc157436d59f/SQLAlchemy-2.0.36-cp310-cp310-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "aaafad9c25cadc79bd851bdb9d82b68af9bdb91ff05f56d0da2f8a654825974f",
"md5": "213368188f120a42c01e921f0998cd0d",
"sha256": "a86bfab2ef46d63300c0f06936bd6e6c0105faa11d509083ba8f2f9d237fb5b5"
},
"downloads": -1,
"filename": "SQLAlchemy-2.0.36-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "213368188f120a42c01e921f0998cd0d",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.7",
"size": 2089078,
"upload_time": "2024-10-15T20:07:19",
"upload_time_iso_8601": "2024-10-15T20:07:19.000590Z",
"url": "https://files.pythonhosted.org/packages/aa/af/ad9c25cadc79bd851bdb9d82b68af9bdb91ff05f56d0da2f8a654825974f/SQLAlchemy-2.0.36-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b45f95e0ed74093ac3c0db6acfa944d4d8ac6284ef5e1136b878a327ea1f975a",
"md5": "0d50cbc9ed3b4457c0ef6b1edf355898",
"sha256": "2519f3a5d0517fc159afab1015e54bb81b4406c278749779be57a569d8d1bb0d"
},
"downloads": -1,
"filename": "SQLAlchemy-2.0.36-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "0d50cbc9ed3b4457c0ef6b1edf355898",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.7",
"size": 3202464,
"upload_time": "2024-10-15T20:03:40",
"upload_time_iso_8601": "2024-10-15T20:03:40.532420Z",
"url": "https://files.pythonhosted.org/packages/b4/5f/95e0ed74093ac3c0db6acfa944d4d8ac6284ef5e1136b878a327ea1f975a/SQLAlchemy-2.0.36-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "92eaf0c01bc646456e4345c0fb5a3ddef457326285c2dc60435b0eb96b61bf31",
"md5": "4518db3eb833fe74b7d31524933b55d1",
"sha256": "39769a115f730d683b0eb7b694db9789267bcd027326cccc3125e862eb03bfd8"
},
"downloads": -1,
"filename": "SQLAlchemy-2.0.36-cp311-cp311-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "4518db3eb833fe74b7d31524933b55d1",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.7",
"size": 3159837,
"upload_time": "2024-10-15T20:03:42",
"upload_time_iso_8601": "2024-10-15T20:03:42.578991Z",
"url": "https://files.pythonhosted.org/packages/92/ea/f0c01bc646456e4345c0fb5a3ddef457326285c2dc60435b0eb96b61bf31/SQLAlchemy-2.0.36-cp311-cp311-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a693c8edbf153ee38fe529773240877bf1332ed95328aceef6254288f446994e",
"md5": "8bfc4a11d5f7d6a002845b554d6112e5",
"sha256": "66bffbad8d6271bb1cc2f9a4ea4f86f80fe5e2e3e501a5ae2a3dc6a76e604e6f"
},
"downloads": -1,
"filename": "SQLAlchemy-2.0.36-cp311-cp311-win32.whl",
"has_sig": false,
"md5_digest": "8bfc4a11d5f7d6a002845b554d6112e5",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.7",
"size": 2064529,
"upload_time": "2024-10-15T20:07:21",
"upload_time_iso_8601": "2024-10-15T20:07:21.129068Z",
"url": "https://files.pythonhosted.org/packages/a6/93/c8edbf153ee38fe529773240877bf1332ed95328aceef6254288f446994e/SQLAlchemy-2.0.36-cp311-cp311-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b103d12b7c1d36fd80150c1d52e121614cf9377dac99e5497af8d8f5b2a8db64",
"md5": "bc000847e0f70334fa7d1a7f9ac9c0a3",
"sha256": "23623166bfefe1487d81b698c423f8678e80df8b54614c2bf4b4cfcd7c711959"
},
"downloads": -1,
"filename": "SQLAlchemy-2.0.36-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "bc000847e0f70334fa7d1a7f9ac9c0a3",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.7",
"size": 2089874,
"upload_time": "2024-10-15T20:07:22",
"upload_time_iso_8601": "2024-10-15T20:07:22.477062Z",
"url": "https://files.pythonhosted.org/packages/b1/03/d12b7c1d36fd80150c1d52e121614cf9377dac99e5497af8d8f5b2a8db64/SQLAlchemy-2.0.36-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b84921633706dd6feb14cd3f7935fc00b60870ea057686035e1a99ae6d9d9d53",
"md5": "e799b02d835cc1d1b386662c864c21cf",
"sha256": "fddbe92b4760c6f5d48162aef14824add991aeda8ddadb3c31d56eb15ca69f8e"
},
"downloads": -1,
"filename": "SQLAlchemy-2.0.36-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e799b02d835cc1d1b386662c864c21cf",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1883787,
"upload_time": "2024-10-15T20:04:30",
"upload_time_iso_8601": "2024-10-15T20:04:30.265271Z",
"url": "https://files.pythonhosted.org/packages/b8/49/21633706dd6feb14cd3f7935fc00b60870ea057686035e1a99ae6d9d9d53/SQLAlchemy-2.0.36-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "50659cbc9c4c3287bed2499e05033e207473504dc4df999ce49385fb1f8b058a",
"md5": "7a4444524e4930a29f22dbca0cb16d4b",
"sha256": "7f2767680b6d2398aea7082e45a774b2b0767b5c8d8ffb9c8b683088ea9b29c5"
},
"downloads": -1,
"filename": "sqlalchemy-2.0.36.tar.gz",
"has_sig": false,
"md5_digest": "7a4444524e4930a29f22dbca0cb16d4b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 9574485,
"upload_time": "2024-10-15T19:41:44",
"upload_time_iso_8601": "2024-10-15T19:41:44.446380Z",
"url": "https://files.pythonhosted.org/packages/50/65/9cbc9c4c3287bed2499e05033e207473504dc4df999ce49385fb1f8b058a/sqlalchemy-2.0.36.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-15 19:41:44",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "sqlalchemy",
"github_project": "sqlalchemy",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "sqlalchemy"
}