{ "info": { "author": "Vineet Gopal", "author_email": "vineet@benchling.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3" ], "description": "Benchling uses SQLAlchemy and psycopg2 to talk to PostgreSQL.\nTo save on round-trip latency, we batch our inserts using this code.\n\nTypically, creating and flushing N models in SQLAlchemy does N roundtrips to the database if the model has an autoincrementing primary key.\nThis module **improves creating N models to only require 2 roundtrips**, without requiring any other changes to your code.\n\n## Is this for me?\nYou may find use for this module if:\n- You are using SQLAlchemy\n- You are using Postgres\n- You sometimes need to create several models at once and care about performance\n\n## Usage\n\n```\nfrom sqlalchemy import create_engine\nfrom sqlalchemy.orm import sessionmaker\nfrom sqlalchemy_batch_inserts import enable_batch_inserting\n\nengine = create_engine(\"postgresql+psycopg2://postgres@localhost\", executemany_mode=\"values\") # SQLAlchemy < 1.3.7 needs use_batch_mode=True instead\nSession = sessionmaker(bind=engine)\nsession = Session()\nenable_batch_inserting(session)\n```\n\nIf you use [Flask-SQLALchemy](https://flask-sqlalchemy.palletsprojects.com/),\n\n```\nfrom flask_sqlalchemy import SignallingSession\nfrom sqlalchemy_batch_inserts import enable_batch_inserting\n\n# Make sure that you've specified executemany_mode or use_batch_mode when creating your engine! Otherwise\n# this library will not have any effect.\nenable_batch_inserting(SignallingSession)\n```\n\n## Acknowledgements\n\nThis is all possible thanks to @dvarrazzo's psycopg2 [execute_batch](http://initd.org/psycopg/docs/extras.html#fast-execution-helpers)\nand @zzzeek's SQLAlchemy [support for the same](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#psycopg2-fast-execution-helpers)\nand [helpful](https://groups.google.com/forum/#!topic/sqlalchemy/GyAZTThJi2I)\n[advice](https://groups.google.com/forum/#!msg/sqlalchemy/l02TH_m1DkU/7PMlF8HzAgAJ) on the mailing list.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/benchling/sqlalchemy_batch_inserts", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "sqlalchemy-batch-inserts", "package_url": "https://pypi.org/project/sqlalchemy-batch-inserts/", "platform": "", "project_url": "https://pypi.org/project/sqlalchemy-batch-inserts/", "project_urls": { "Homepage": "https://github.com/benchling/sqlalchemy_batch_inserts" }, "release_url": "https://pypi.org/project/sqlalchemy-batch-inserts/0.0.1/", "requires_dist": null, "requires_python": "", "summary": "Batch inserts for SQLAlchemy on PostgreSQL with psycopg2", "version": "0.0.1" }, "last_serial": 5761343, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "68bb418ff92b62fcd6d7cfb1f0a271c3", "sha256": "bc8da0c2c2bb0c6a6ae67491a322c79e7255afa76ebe17dad263c9291d95ddef" }, "downloads": -1, "filename": "sqlalchemy_batch_inserts-0.0.1.tar.gz", "has_sig": false, "md5_digest": "68bb418ff92b62fcd6d7cfb1f0a271c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5467, "upload_time": "2019-08-30T17:11:45", "url": "https://files.pythonhosted.org/packages/7d/cd/c764f1f53bd2261323c1bf22404a0bd796bd22a7cdefb8cb3f2d682b8007/sqlalchemy_batch_inserts-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "68bb418ff92b62fcd6d7cfb1f0a271c3", "sha256": "bc8da0c2c2bb0c6a6ae67491a322c79e7255afa76ebe17dad263c9291d95ddef" }, "downloads": -1, "filename": "sqlalchemy_batch_inserts-0.0.1.tar.gz", "has_sig": false, "md5_digest": "68bb418ff92b62fcd6d7cfb1f0a271c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5467, "upload_time": "2019-08-30T17:11:45", "url": "https://files.pythonhosted.org/packages/7d/cd/c764f1f53bd2261323c1bf22404a0bd796bd22a7cdefb8cb3f2d682b8007/sqlalchemy_batch_inserts-0.0.1.tar.gz" } ] }