{ "info": { "author": "Brian Cappello", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# Flask SQLAlchemy Unchained\n\nIntegrates [SQLAlchemy Unchained](https://github.com/briancappello/sqlalchemy-unchained) with [Flask](http://flask.pocoo.org/). This package is a very thin wrapper around [Flask-SQLAlchemy](http://flask-sqlalchemy.pocoo.org), and in terms of registering the extension with Flask, everything is the same.\n\n## Basic Usage\n\n```python\n# your_app.py\n\nfrom flask import Flask\nfrom flask_sqlalchemy_unchained import SQLAlchemyUnchained\n\n\napp = Flask(__name__)\napp.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///:memory:'\ndb = SQLAlchemyUnchained(app)\n\n\nclass User(db.Model):\n class Meta:\n repr = ('id', 'username', 'email')\n\n username = db.Column(db.String(80), unique=True, nullable=False)\n email = db.Column(db.String(120), unique=True, nullable=False)\n```\n\nNow let's create the table and add a row:\n\n```bash\nexport FLASK_APP='./your_app.py'\nexport FLASK_DEBUG='true'\nflask shell\n```\n\n```\n>>> from your_app import db, User\n>>> db.create_all()\n>>> user = User(username='fooar', email='foo@bar.com')\n>>> db.session.add(user)\n>>> db.session.commit()\n>>> assert User.query.all() == [user]\n```\n\n## Real-World Usage\n\nNow let's take a look at using the application factory pattern. Our app's directory structure will look like this:\n\n```\n./your-project\n\u251c\u2500\u2500 app\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 models\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 __init__.py\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 user.py\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 services\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 __init__.py\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 model_manager.py\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 user_manager.py\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 __init__.py\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 config.py\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 extensions.py\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 factory.py\n\u251c\u2500\u2500 db\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 dev.sqlite\n\u251c\u2500\u2500 tests\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 __init__.py\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 test_user.py\n\u251c\u2500\u2500 autoapp.py\n\u2514\u2500\u2500 setup.py\n```\n\nThe entry point of our app will be `autoapp.py`, so let's take a look at that first:\n\n```python\n# app/autoapp.py\n\nimport os\n\nfrom app.factory import create_app\n\n\napp = create_app(os.getenv('FLASK_ENV', 'development'))\n```\n\nAnd now the app factory:\n\n```python\n# app/factory.py\nfrom flask import Flask\n\nfrom .config import DevConfig, ProdConfig, TestConfig\nfrom .extensions import db\n\n\nCONFIGS = {\n 'development': DevConfig,\n 'production': ProdConfig,\n 'test': TestConfig,\n}\n\n\ndef create_app(env):\n config = CONFIGS[env]\n\n app = Flask(__name__,\n template_folder=config.TEMPLATE_FOLDER,\n static_folder=config.STATIC_FOLDER,\n static_url_path=config.STATIC_URL_PATH)\n app.config.from_object(config)\n\n db.init_app(app)\n\n return app\n```\n\nWhich leads us to the `config` and `extensions` modules:\n\n```python\n# app/config.py\n\nimport os\n\n\nclass BaseConfig:\n DEBUG = os.getenv('FLASK_DEBUG', False)\n\n APP_ROOT = os.path.abspath(os.path.dirname(__file__))\n PROJECT_ROOT = os.path.abspath(os.path.join(APP_ROOT, os.pardir))\n\n SQLALCHEMY_TRACK_MODIFICATIONS = False\n\n\nclass DevConfig(BaseConfig):\n DEBUG = os.getenv('FLASK_DEBUG', True)\n\n db_path = os.path.join(BaseConfig.PROJECT_ROOT, 'db', 'dev.sqlite')\n SQLALCHEMY_DATABASE_URI = 'sqlite:///' + db_path\n\n\nclass ProdConfig(BaseConfig):\n SQLALCHEMY_DATABASE_URI = \\\n '{engine}://{user}:{password}@{host}:{port}/{db_name}'.format(\n engine='postgresql+psycopg2',\n user=os.getenv('FLASK_DATABASE_USER', 'sqlalchemy_demo'),\n password=os.getenv('FLASK_DATABASE_PASSWORD', 'sqlalchemy_demo'),\n host=os.getenv('FLASK_DATABASE_HOST', '127.0.0.1'),\n port=os.getenv('FLASK_DATABASE_PORT', 5432),\n db_name=os.getenv('FLASK_DATABASE_NAME', 'sqlalchemy_demo'))\n\n\nclass TestConfig(BaseConfig):\n TESTING = True\n DEBUG = True\n\n SQLALCHEMY_DATABASE_URI = 'sqlite://' # :memory:\n```\n\n```python\n# app/extensions.py\n\nfrom flask_sqlalchemy_unchained import SQLAlchemyUnchained\n\n\ndb = SQLAlchemyUnchained()\n```\n\nThe `User` model is the same as before:\n\n```python\n# app/models/user.py\n\nfrom app.extensions import db\n\n\nclass User(db.Model):\n class Meta:\n repr = ('id', 'username', 'email')\n\n username = db.Column(db.String(80), unique=True, nullable=False)\n email = db.Column(db.String(120), unique=True, nullable=False)\n```\n\nBecause SQLAlchemy uses the data-mapper pattern, it's best practice to use managers/services for dealing with interactions with the database. A good base to start from might look like this:\n\n```python\n# app/services/model_manager.py\n\nfrom typing import *\n\nfrom app.extensions import db\n\n\nclass ModelManager:\n model: Type[db.Model]\n\n def create(self, commit: bool = False, **kwargs) -> db.Model:\n instance = self.model(**kwargs)\n self.save(instance, commit)\n return instance\n\n def update(self, instance: db.Model, commit: bool = False,\n **kwargs) -> db.Model:\n for attr, value in kwargs.items():\n setattr(instance, attr, value)\n self.save(instance, commit)\n return instance\n\n def delete(self, instance: db.Model, commit: bool = False) -> None:\n db.session.delete(instance)\n if commit:\n self.commit()\n\n def save(self, instance: db.Model, commit: bool = True):\n db.session.add(instance)\n if commit:\n self.commit()\n\n def commit(self) -> None:\n db.session.commit()\n\n def rollback(self) -> None:\n db.session.rollback()\n\n def get(self, id) -> db.Model:\n return db.session.query(self.model).get(int(id))\n\n def get_by(self, **kwargs) -> db.Model:\n return db.session.query(self.model).filter_by(**kwargs).first()\n\n def find_all(self) -> List[db.Model]:\n return db.session.query(self.model).all()\n\n def find_by(self, **kwargs) -> List[db.Model]:\n return db.session.query(self.model).filter_by(**kwargs).all()\n```\n\nAnd then the `UserManager` class would look like this:\n\n```python\n# app/services/user_manager.py\n\nfrom ..models import User\n\nfrom .model_manager import ModelManager\n\n\nclass UserManager(ModelManager):\n model = User\n\n def create(self, username, email, **kwargs) -> User:\n return super().create(username=username, email=email, **kwargs)\n\n\nuser_manager = UserManager()\n```\n\nThe full source code for this example app, including integrations with [Flask-Migrate](https://flask-migrate.readthedocs.io/en/latest/) and [Py-YAML-Fixtures](https://py-yaml-fixtures.readthedocs.io/en/latest/), can be found [on GitHub](https://github.com/briancappello/sqlalchemy-demo).\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "flask-sqlalchemy-unchained", "package_url": "https://pypi.org/project/flask-sqlalchemy-unchained/", "platform": "", "project_url": "https://pypi.org/project/flask-sqlalchemy-unchained/", "project_urls": null, "release_url": "https://pypi.org/project/flask-sqlalchemy-unchained/0.7.3/", "requires_dist": [ "flask-sqlalchemy (>=2.3.2)", "sqlalchemy-unchained (>=0.7.4)", "coverage ; extra == 'dev'", "factory-boy ; extra == 'dev'", "m2r ; extra == 'dev'", "mock ; extra == 'dev'", "pytest ; extra == 'dev'", "pytest-flask ; extra == 'dev'", "tox ; extra == 'dev'", "sphinx ; extra == 'docs'", "sphinx-autobuild ; extra == 'docs'", "sphinx-click ; extra == 'docs'", "sphinx-rtd-theme ; extra == 'docs'" ], "requires_python": ">=3.5", "summary": "Integrates SQLAlchemy Unchained with Flask", "version": "0.7.3" }, "last_serial": 5170392, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "af7ae454157f5b8963cdcdca1ea37d15", "sha256": "faf4483e961b04813314fabebeac7d7d4d4ad8c2499c5410bf8b96f9acd591b5" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "af7ae454157f5b8963cdcdca1ea37d15", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 2137, "upload_time": "2018-09-26T23:45:11", "url": "https://files.pythonhosted.org/packages/aa/69/fbe8b5b195c8d8260c3d2c262ae606c850f3ef51a2951bb3e6fb62b64b57/flask_sqlalchemy_unchained-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "35da998bd4de2b31cf2bea5f70b15d7c", "sha256": "76ade723559e181100262239922a582e0276ad066a52004fb2da15388ffb95a9" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.1.0.tar.gz", "has_sig": false, "md5_digest": "35da998bd4de2b31cf2bea5f70b15d7c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5095, "upload_time": "2018-09-26T23:45:12", "url": "https://files.pythonhosted.org/packages/4f/d5/3c5d651a8c68b9c8a611fd5fc963f5e7d471ae8a12e1870c13cdc0a05585/flask-sqlalchemy-unchained-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "ed553bbef30c86a7c357f20673ec1537", "sha256": "42cf2d191585d2019e53999c8ff2dc9dcbaa1dae3d85f640f636a8eb66db2e32" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ed553bbef30c86a7c357f20673ec1537", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 2136, "upload_time": "2018-09-27T01:30:18", "url": "https://files.pythonhosted.org/packages/61/92/eda09a2a7b990cfd009a66ab9056255c3e7c6abec47650bf4a885af4ee5f/flask_sqlalchemy_unchained-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dba67aad96afa5ff36048606c36d1d78", "sha256": "a9472e3687de0255719e9d09f0ddad61e4f226531921cede56cf1c2fecdafcfc" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.1.1.tar.gz", "has_sig": false, "md5_digest": "dba67aad96afa5ff36048606c36d1d78", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5113, "upload_time": "2018-09-27T01:30:20", "url": "https://files.pythonhosted.org/packages/cb/ed/de847427b2ffb4f4d7db6f371e7bb58086be804d3ee932f3b23be41516c4/flask-sqlalchemy-unchained-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "2c556eb8ab0644ff070db877bd7e03a5", "sha256": "38355d83d1c95d4b1bceefdcdacb5fa8480af5478351716616c43f9ea471d8c4" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2c556eb8ab0644ff070db877bd7e03a5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 2138, "upload_time": "2018-09-29T22:10:22", "url": "https://files.pythonhosted.org/packages/3d/fb/492d9bf8e9e338c69a28463b8fd119c936582cf78de02f29dd6d2aed5692/flask_sqlalchemy_unchained-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "56764e4684aca5095f5e6e88a05ed7bd", "sha256": "e32bb71dd120a59252d37d442acdca50a3c58e5eedaf5dc9cd4eb650305b06a4" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.1.2.tar.gz", "has_sig": false, "md5_digest": "56764e4684aca5095f5e6e88a05ed7bd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5123, "upload_time": "2018-09-29T22:10:23", "url": "https://files.pythonhosted.org/packages/be/a6/60679153a3a6ca9c9a648231e439fe0098fdcd2cb01fe41117a26b55b4bb/flask-sqlalchemy-unchained-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "e189780b2ce9549fe390f20601f1e114", "sha256": "50e990dfd4eca2ab2e25adcababcb94e8cb8cbe2cfe337c4cbb48c4ee9d38c21" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e189780b2ce9549fe390f20601f1e114", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 2137, "upload_time": "2018-10-01T01:20:24", "url": "https://files.pythonhosted.org/packages/31/ab/1f5a52aa4ad6f45ab057fcf53042499b337293a58dde9075b6b792d46387/flask_sqlalchemy_unchained-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f8c0a8fa2ff0c9c9945db3796e95055", "sha256": "a3921c21e328ba775b4829d8054ac44b4e2d5355e87c7b6f79b67abe6d31165f" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.2.0.tar.gz", "has_sig": false, "md5_digest": "7f8c0a8fa2ff0c9c9945db3796e95055", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5136, "upload_time": "2018-10-01T01:20:25", "url": "https://files.pythonhosted.org/packages/43/d2/259ee1edcefe05d0a7e619932c23c37e7e42afd3ca960a28ddae99f05d33/flask-sqlalchemy-unchained-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "ed92d4d83b7be176d95d8986a6c8dc33", "sha256": "21bedca171369c704bd7e431f9297f4e0cc77230bdbff1abfa494b2a35dcb2c8" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ed92d4d83b7be176d95d8986a6c8dc33", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 2132, "upload_time": "2018-10-04T20:35:22", "url": "https://files.pythonhosted.org/packages/45/15/58b92b68e7750ca406dc8e508f36ff19af52a9421cda8f03d28b3a1f89b6/flask_sqlalchemy_unchained-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2b8b2b43d2412a41aad1355ebfc0d7c6", "sha256": "4c552872e9523809ada3f428c4264da50f852c2de89c37bbde74f81745bc442a" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.2.1.tar.gz", "has_sig": false, "md5_digest": "2b8b2b43d2412a41aad1355ebfc0d7c6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5142, "upload_time": "2018-10-04T20:35:23", "url": "https://files.pythonhosted.org/packages/51/fd/e045a3de7ad634a1d7567142a9039336b99d833262c754b2e3071c5880fe/flask-sqlalchemy-unchained-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "a0664256063c4f1bc2aa2ae5a3dfa3ca", "sha256": "0d3948b2d2dc38a038d0eeb4f90dfcc6b5f732eb8cf93a71bc5e77a87fee3c0f" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a0664256063c4f1bc2aa2ae5a3dfa3ca", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 4402, "upload_time": "2018-10-09T17:42:35", "url": "https://files.pythonhosted.org/packages/f6/2a/005f61958847a8a44952a8b13d4d7a0c2f8704bb931de02e29c0109461e7/flask_sqlalchemy_unchained-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "53a4ed758383444c598f5b5818958315", "sha256": "34b7e6629f4ea2b4d219838cb219c45e2259bea13f742f1854bb10bc2c3d2690" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.2.2.tar.gz", "has_sig": false, "md5_digest": "53a4ed758383444c598f5b5818958315", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6031, "upload_time": "2018-10-09T17:42:36", "url": "https://files.pythonhosted.org/packages/8e/6a/99726a42fc5c3c06055b59be64fac873f1321c3cdb753385e6f2983f5e9e/flask-sqlalchemy-unchained-0.2.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "46fc47d2239ec3b6f8bcb0f0e514a0cf", "sha256": "666773ee93ce569c9141d78aeb147b7f8f544a83d1eeb44e1c75b063894c9f9c" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "46fc47d2239ec3b6f8bcb0f0e514a0cf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 4406, "upload_time": "2018-10-09T17:53:29", "url": "https://files.pythonhosted.org/packages/3a/fb/bd991e8b06aee650b0c4d2018d879854757d32e8ee6c0ba3eb9b2662dd35/flask_sqlalchemy_unchained-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8bc1de8f90077ab0791e6ef8a483f3b9", "sha256": "144358cbb59bed6a71d6d4dbdc3c859b39d5316ae62c2d7216d740983636c3be" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.3.0.tar.gz", "has_sig": false, "md5_digest": "8bc1de8f90077ab0791e6ef8a483f3b9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6043, "upload_time": "2018-10-09T17:53:30", "url": "https://files.pythonhosted.org/packages/63/bb/276e6724298f5bf42a1418220522c88aa0dea376669e07756adcce5c418e/flask-sqlalchemy-unchained-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "e15e7b0e53d6d67619c2a80417b0ee87", "sha256": "b9b2d5ce3dc9774c2ac3704b0fd05f3eae7768cdcc07f3a8492e2324a527feae" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "e15e7b0e53d6d67619c2a80417b0ee87", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 4405, "upload_time": "2018-10-09T18:23:40", "url": "https://files.pythonhosted.org/packages/37/89/dda10cfd413181892703957cfb0ac93a7d36bd16ee38081fd7c8406130f4/flask_sqlalchemy_unchained-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6238d06f6c3edeea71782051c3e64b10", "sha256": "277bd0d0c72d9f97b1c8c98f5032985e4a4fd09d681ebd186dc0566cdc2efd7c" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.3.1.tar.gz", "has_sig": false, "md5_digest": "6238d06f6c3edeea71782051c3e64b10", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 6083, "upload_time": "2018-10-09T18:23:41", "url": "https://files.pythonhosted.org/packages/3a/d2/0ab581a9f97436e3088fafd1d8bd2550f28b61c6920a6ac3713262e67f75/flask-sqlalchemy-unchained-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "ded15e182bbe6a9c0bbd3cb499609df7", "sha256": "28f5fb06ca732db9daeaa0c966d66b84961ef4ffc1399ff51b2d7bced3191348" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ded15e182bbe6a9c0bbd3cb499609df7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4380, "upload_time": "2018-10-16T23:43:05", "url": "https://files.pythonhosted.org/packages/39/1e/4f69548e10f19ca89206d361367fec1beb93c149f499973ed8bae9920bb5/flask_sqlalchemy_unchained-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a226a3fc42ca4f9846848ffca91d7a85", "sha256": "bf4facf1e6bbd73c39315232703342c7bd74f02bb8ce3779aa023f1eba7c6b60" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.4.0.tar.gz", "has_sig": false, "md5_digest": "a226a3fc42ca4f9846848ffca91d7a85", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6140, "upload_time": "2018-10-16T23:43:07", "url": "https://files.pythonhosted.org/packages/40/00/f523d81b75ff125047420767bbf5128f6cc8b01c44ab7c62377448624f3c/flask-sqlalchemy-unchained-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "dc6d17a742623f6c825552ddaf85e4a8", "sha256": "218f1e4e7b1d51a6f4ed6d92b78af66b0cd995e8922916e03d5468e6fc5c381f" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "dc6d17a742623f6c825552ddaf85e4a8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4380, "upload_time": "2018-10-20T21:14:38", "url": "https://files.pythonhosted.org/packages/21/0e/e9eb7ef85cae388473b7c8cad421d1ffc3fcbbad8d5562cd3affda0638de/flask_sqlalchemy_unchained-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d072a1d862b5bed4c2e8f11f2fea85b9", "sha256": "03514b10d9f683578f17e37142d096ae2270fcde0c57b95915028b7a8b83d81b" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.4.1.tar.gz", "has_sig": false, "md5_digest": "d072a1d862b5bed4c2e8f11f2fea85b9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6156, "upload_time": "2018-10-20T21:14:40", "url": "https://files.pythonhosted.org/packages/43/d1/1726807df6f3aaaa81158daf9de1806f853e28cc08acf25571017a1f0d6e/flask-sqlalchemy-unchained-0.4.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "171ce26efbd5b56b361928947619f16b", "sha256": "21f17fc4a7e960e47fe8deacb76317ad11dbcebe0275c7debf0ef3285d1d5ebd" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "171ce26efbd5b56b361928947619f16b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4498, "upload_time": "2018-10-23T08:08:22", "url": "https://files.pythonhosted.org/packages/69/6f/c921417fa30fe799ed6a85a07d9897daad3b9f8188c68790dbd5928d3bde/flask_sqlalchemy_unchained-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "45b180f0f42b3ae22f385c46737df2b6", "sha256": "aec22b55871fb39c9e421fcebf29598ae012e7137fcdeb21af9aa446908f85f7" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.6.0.tar.gz", "has_sig": false, "md5_digest": "45b180f0f42b3ae22f385c46737df2b6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6239, "upload_time": "2018-10-23T08:08:24", "url": "https://files.pythonhosted.org/packages/5b/d5/6da56a4b251c63e07d9f6634144c4b11ffea82e16ad0ed6eab83489c22d4/flask-sqlalchemy-unchained-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "cac4fd183a5dd6f5f458a8d4caedbcab", "sha256": "c209d4369b005abadd4f4b7da11913e082cd81953664e08d7f932668f773d37f" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "cac4fd183a5dd6f5f458a8d4caedbcab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4496, "upload_time": "2018-10-23T08:53:14", "url": "https://files.pythonhosted.org/packages/20/29/093fb059cb9fedf5b5b5ac306893686f9ec426eb68173416e87253cf1a78/flask_sqlalchemy_unchained-0.6.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af0027fd18cd3d538630e5b643b4f77b", "sha256": "8b5876bbf3e69f7f87c01f5c4bd96bb5cbab25cb00746d0da5f10255a1839f27" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.6.1.tar.gz", "has_sig": false, "md5_digest": "af0027fd18cd3d538630e5b643b4f77b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6290, "upload_time": "2018-10-23T08:53:15", "url": "https://files.pythonhosted.org/packages/62/60/47eb2aecfebfcc1f9946b8f2325f1749da096dde4fdc916f416c8ce08469/flask-sqlalchemy-unchained-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "8fbc27af7d4954813f5bce5e79e0f4c7", "sha256": "5c244e6ee83b80a1778084561e93235ab5b17d34f4aa7c57b7edba9fdc93ccdd" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.6.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8fbc27af7d4954813f5bce5e79e0f4c7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4524, "upload_time": "2018-10-26T21:06:38", "url": "https://files.pythonhosted.org/packages/46/1c/3de8329ffc6459df155044b938af62d88d7ccb706d49756e56b10e2bf1c6/flask_sqlalchemy_unchained-0.6.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6d04f25c1a4dff1aea3b0c42d98c3586", "sha256": "4aafd72eff15a1248599e8cf24a07b135fb6edf58b1249913f19224acb2872ac" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.6.2.tar.gz", "has_sig": false, "md5_digest": "6d04f25c1a4dff1aea3b0c42d98c3586", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6345, "upload_time": "2018-10-26T21:06:40", "url": "https://files.pythonhosted.org/packages/6b/a4/dbf22d3836560208b268495bd11e1735ef8821c5ff773c39512bcf498d10/flask-sqlalchemy-unchained-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "f14a3d2f6e1eea406b6ce5af181087f7", "sha256": "66bbb58d24391eff4a679bf4278dcb7f9e1ef5372118ce569dcd3f622000601e" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.6.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f14a3d2f6e1eea406b6ce5af181087f7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4523, "upload_time": "2018-10-28T07:22:01", "url": "https://files.pythonhosted.org/packages/1c/5b/14232d0464ba459b82c3bceb956e6337bdea6b1256939ae7ec4dd5b50165/flask_sqlalchemy_unchained-0.6.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "87d7a47912687f052ec2e6d3288ec63d", "sha256": "735a17c1095a13dd7bcd299b424555e2beef017f99551cd8eeeb5de6becc4231" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.6.3.tar.gz", "has_sig": false, "md5_digest": "87d7a47912687f052ec2e6d3288ec63d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6383, "upload_time": "2018-10-28T07:22:02", "url": "https://files.pythonhosted.org/packages/61/ce/c12ed8b4e3316132579a0b603c4f84a5a6399a93343d8410094ed28ab25d/flask-sqlalchemy-unchained-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "5fcdc9e3eb599236df7f40cbf543e958", "sha256": "5e17eb540b36dccaa0c65f71a5ce20b245036d61661599cc58e418939aa69534" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.6.4-py3-none-any.whl", "has_sig": false, "md5_digest": "5fcdc9e3eb599236df7f40cbf543e958", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4522, "upload_time": "2018-10-28T11:01:32", "url": "https://files.pythonhosted.org/packages/4d/2e/a8ea43774c47cb82c9257edec4a9bd1a8f26aed15340f09469bfccff4e87/flask_sqlalchemy_unchained-0.6.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "35bfe70044361f61d0c0ce03ebd3d176", "sha256": "0567a584c4143e67dd264ee4dd2e6936b9508972e4fd640783367ef8737f50c4" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.6.4.tar.gz", "has_sig": false, "md5_digest": "35bfe70044361f61d0c0ce03ebd3d176", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6393, "upload_time": "2018-10-28T11:01:33", "url": "https://files.pythonhosted.org/packages/f4/b7/ef39f87431c5c7a8670780181a9a0b2e7cbd55177b5f54a84e69bbe471fc/flask-sqlalchemy-unchained-0.6.4.tar.gz" } ], "0.6.5": [ { "comment_text": "", "digests": { "md5": "790b2a065da73c45b47b3c19c45cdf61", "sha256": "f191fb7f2808248bb989988293132badf8bfe6916b03688e9234647dddd255d8" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.6.5-py3-none-any.whl", "has_sig": false, "md5_digest": "790b2a065da73c45b47b3c19c45cdf61", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4523, "upload_time": "2018-10-28T19:32:36", "url": "https://files.pythonhosted.org/packages/bb/3e/01d9324a68ef966ba8c68dc0283ba9a6070c85c11a8bde939a62e6cd4cbd/flask_sqlalchemy_unchained-0.6.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b1f00faf8a6e1d880a605708be81e7ad", "sha256": "8e5323eff001bc71d1ebeecc2c683c7e1eb7fd7a97eb662b9da16dcfef1b8ab2" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.6.5.tar.gz", "has_sig": false, "md5_digest": "b1f00faf8a6e1d880a605708be81e7ad", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6395, "upload_time": "2018-10-28T19:32:38", "url": "https://files.pythonhosted.org/packages/39/50/1bd48ba43c8d3b0565c1db18c726f6041c0e4ce9f26606a6b1fb8a9a867b/flask-sqlalchemy-unchained-0.6.5.tar.gz" } ], "0.6.6": [ { "comment_text": "", "digests": { "md5": "e38e90ff61c8fcb2212ef2c5a46e9d7b", "sha256": "cd4261f5d3a0d2c7870e3a400095ed65d7dd9da96c1f1e27b3c5c32f5c3e2fdd" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.6.6-py3-none-any.whl", "has_sig": false, "md5_digest": "e38e90ff61c8fcb2212ef2c5a46e9d7b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4523, "upload_time": "2018-10-28T23:57:12", "url": "https://files.pythonhosted.org/packages/d1/97/10b9acd133ad1fe127085938f12393206c854fcbd09920aa71aac64b4e6b/flask_sqlalchemy_unchained-0.6.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4bdf466d251ff5fb8e186912478bf7c4", "sha256": "d6aaa7d123f2fc61b04b5da00028519091da935581d698833f924157faa5caab" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.6.6.tar.gz", "has_sig": false, "md5_digest": "4bdf466d251ff5fb8e186912478bf7c4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6401, "upload_time": "2018-10-28T23:57:13", "url": "https://files.pythonhosted.org/packages/17/a2/931cc28a49544abd0a5dae46c036bf24f2d10a912663213335a2cb8609ee/flask-sqlalchemy-unchained-0.6.6.tar.gz" } ], "0.6.7": [ { "comment_text": "", "digests": { "md5": "d9dfae017115864b30d0cdaa8f91aa0f", "sha256": "41f7a9b71693bc7fb8c3375967e3bb67a144a509246ce510b3b9f1cb8285ff2e" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.6.7-py3-none-any.whl", "has_sig": false, "md5_digest": "d9dfae017115864b30d0cdaa8f91aa0f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4522, "upload_time": "2018-11-03T14:09:49", "url": "https://files.pythonhosted.org/packages/a0/1f/737874991dd3ba9df8bc15500e6d68f0ef3f92e2a60993e7b32cc4fe852c/flask_sqlalchemy_unchained-0.6.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5db341b424f81aacd915e5e365e62f47", "sha256": "05f93a476079d51dd5629faf277a60a70a9edaff56f199cd0c0070b3e6785852" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.6.7.tar.gz", "has_sig": false, "md5_digest": "5db341b424f81aacd915e5e365e62f47", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6412, "upload_time": "2018-11-03T14:09:51", "url": "https://files.pythonhosted.org/packages/50/ea/ccfd53290028671222293d9f00bf6b2353e4028342d71ac216c91c263b11/flask-sqlalchemy-unchained-0.6.7.tar.gz" } ], "0.6.8": [ { "comment_text": "", "digests": { "md5": "c4d25c47fcef7f6467c7bd5007bdd36e", "sha256": "543dac0cec6202276e8591e618c4d1dd9ec2c29967449332c6aa8fea8da67c3e" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.6.8-py3-none-any.whl", "has_sig": false, "md5_digest": "c4d25c47fcef7f6467c7bd5007bdd36e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4723, "upload_time": "2018-11-07T18:01:55", "url": "https://files.pythonhosted.org/packages/96/9b/f4e0980ab35b2beeb41a0de632c74f9bc46ce0a393f734c9ea8a7cc2a77c/flask_sqlalchemy_unchained-0.6.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fa27a6a4d1a5168a34d4b064db97114a", "sha256": "ee07f352c3f5ff1a69c049b3c89ab9bc31c11538b2c5f0a3621dd4cef6765327" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.6.8.tar.gz", "has_sig": false, "md5_digest": "fa27a6a4d1a5168a34d4b064db97114a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6662, "upload_time": "2018-11-07T18:01:56", "url": "https://files.pythonhosted.org/packages/f3/c4/e46982209a0a9515bfbc1f91c03c944f6abfda79a8cf0f335ef3ca9b289b/flask-sqlalchemy-unchained-0.6.8.tar.gz" } ], "0.6.9": [ { "comment_text": "", "digests": { "md5": "bc3edce88414794aabc4d96be6675c79", "sha256": "f49839075f620afd0ed7bb2093c99331187e1800d85dda904940d01ed074aeec" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.6.9-py3-none-any.whl", "has_sig": false, "md5_digest": "bc3edce88414794aabc4d96be6675c79", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4723, "upload_time": "2018-12-02T00:19:58", "url": "https://files.pythonhosted.org/packages/b1/4d/301df4ac61fa96eea0242f932fb1de4639d7ed2b4b64f22ef3da96620a30/flask_sqlalchemy_unchained-0.6.9-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cc287572c1820916ae6393167c3780a3", "sha256": "9ec5d504ed25e90df569be6b71c49b673af4b185517807413ade148c9a7dad6e" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.6.9.tar.gz", "has_sig": false, "md5_digest": "cc287572c1820916ae6393167c3780a3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6661, "upload_time": "2018-12-02T00:20:00", "url": "https://files.pythonhosted.org/packages/37/50/b8bb7a22ae0428298dbfc3fccb2698f6b93a8455827a0aedc5890e50c936/flask-sqlalchemy-unchained-0.6.9.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "00908a3da72b1f69d0f32e177645bed7", "sha256": "a9c2e2b4621a8a16ad72a279b6bcd9f981b6330f4a1e02a98580ee6cfc384518" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.7.0-py3-none-any.whl", "has_sig": false, "md5_digest": "00908a3da72b1f69d0f32e177645bed7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4711, "upload_time": "2018-12-09T23:28:15", "url": "https://files.pythonhosted.org/packages/7b/6f/cd969bfeaff314aec1a33a8bf8869b992a15667c8a3754281f5f4efd4d0a/flask_sqlalchemy_unchained-0.7.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fce6a71d336290c56a08625be934ff87", "sha256": "e5a3837b1fafc0b0c16ac6d39b4b0d4f26de3c21c8b771f365f59e0df6090d17" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.7.0.tar.gz", "has_sig": false, "md5_digest": "fce6a71d336290c56a08625be934ff87", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6697, "upload_time": "2018-12-09T23:28:17", "url": "https://files.pythonhosted.org/packages/9d/9c/0e7b7064c43a7f73623c6156a016ef9f96e8d267c762c2bfc2de4dbd7e08/flask-sqlalchemy-unchained-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "69035e4018f201c0f2eafc44aece89d9", "sha256": "1746c2e389ac51f62f152591b3e0e5a8a00c1cb555ab22b8d4da1f5fdeec00a9" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.7.1-py3-none-any.whl", "has_sig": false, "md5_digest": "69035e4018f201c0f2eafc44aece89d9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 4708, "upload_time": "2019-02-26T20:31:46", "url": "https://files.pythonhosted.org/packages/a5/52/b90917113af4ae7c972fcc44c083f5fd9ecdb87bfbfa956ca39456dcb490/flask_sqlalchemy_unchained-0.7.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f7ec58786707b7c75a626b49a4455d74", "sha256": "674b2e5f98b7c976f11c0bc0af68b74af4a5a632ea4b85ca003c4dd9e36e9b01" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.7.1.tar.gz", "has_sig": false, "md5_digest": "f7ec58786707b7c75a626b49a4455d74", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6723, "upload_time": "2019-02-26T20:31:48", "url": "https://files.pythonhosted.org/packages/b4/6a/6a55a0c3e31c5b17c3119d5d83dc324fa4fc039b8e544c1553ca9f86b358/flask-sqlalchemy-unchained-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "4b36006e8af08129a0102eda0574d7e3", "sha256": "292617dc9ddc46b2650b48d0934d304bc5c936c24bd9af3a01fea09ab77ff430" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.7.2-py3-none-any.whl", "has_sig": false, "md5_digest": "4b36006e8af08129a0102eda0574d7e3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 5545, "upload_time": "2019-04-11T18:12:50", "url": "https://files.pythonhosted.org/packages/57/56/65805dc505090167b5b490c3cfa2ec86c337f019bb6e4abb3052d657a8f3/flask_sqlalchemy_unchained-0.7.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1240dce151188dd344d9e3f5621d54fc", "sha256": "ea0659ec988459a43cebd833291d53eaee6b03a74dc1021e516267bece48f386" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.7.2.tar.gz", "has_sig": false, "md5_digest": "1240dce151188dd344d9e3f5621d54fc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6718, "upload_time": "2019-04-11T18:12:51", "url": "https://files.pythonhosted.org/packages/67/c9/05636e96066411887bed9bb4b040ae89b38656446c61b58e65730c198fdb/flask-sqlalchemy-unchained-0.7.2.tar.gz" } ], "0.7.3": [ { "comment_text": "", "digests": { "md5": "a2edda0829008548d1e51ecd0b7fcdfd", "sha256": "22490f37932547c81368a4ef1ba6469d1721c3bf07e62745c99d02f63d1a298e" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.7.3-py3-none-any.whl", "has_sig": false, "md5_digest": "a2edda0829008548d1e51ecd0b7fcdfd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 5543, "upload_time": "2019-04-21T18:02:47", "url": "https://files.pythonhosted.org/packages/4e/1a/2efc91afb069a82fdc4450a1df4999e5443ed3a1160d8495eb4054a616da/flask_sqlalchemy_unchained-0.7.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "738d44dd8d33e90b28d1439e1510e8c8", "sha256": "738ab58102d349ba9f44ed955bd0df41f76d54d6d200f25abccae78e5517d561" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.7.3.tar.gz", "has_sig": false, "md5_digest": "738d44dd8d33e90b28d1439e1510e8c8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6728, "upload_time": "2019-04-21T18:02:48", "url": "https://files.pythonhosted.org/packages/86/d6/1821e3c00fe1e22db53439087363c351aa153af18d0bf395973b33c5a257/flask-sqlalchemy-unchained-0.7.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a2edda0829008548d1e51ecd0b7fcdfd", "sha256": "22490f37932547c81368a4ef1ba6469d1721c3bf07e62745c99d02f63d1a298e" }, "downloads": -1, "filename": "flask_sqlalchemy_unchained-0.7.3-py3-none-any.whl", "has_sig": false, "md5_digest": "a2edda0829008548d1e51ecd0b7fcdfd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 5543, "upload_time": "2019-04-21T18:02:47", "url": "https://files.pythonhosted.org/packages/4e/1a/2efc91afb069a82fdc4450a1df4999e5443ed3a1160d8495eb4054a616da/flask_sqlalchemy_unchained-0.7.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "738d44dd8d33e90b28d1439e1510e8c8", "sha256": "738ab58102d349ba9f44ed955bd0df41f76d54d6d200f25abccae78e5517d561" }, "downloads": -1, "filename": "flask-sqlalchemy-unchained-0.7.3.tar.gz", "has_sig": false, "md5_digest": "738d44dd8d33e90b28d1439e1510e8c8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 6728, "upload_time": "2019-04-21T18:02:48", "url": "https://files.pythonhosted.org/packages/86/d6/1821e3c00fe1e22db53439087363c351aa153af18d0bf395973b33c5a257/flask-sqlalchemy-unchained-0.7.3.tar.gz" } ] }