{ "info": { "author": "David Andersson", "author_email": "anderssonpublic@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Topic :: Database" ], "description": "# OpenAPI-SQLAlchemy\nTranslates an OpenAPI schema to SQLAlchemy models.\n\n## Installation\n```bash\npython3 -m pip install OpenAPI-SQLAlchemy\n# To be able to load yaml file\npython3 -m pip install PyYAML\n```\n\n## Example\n\nFor example, given the following OpenAPI specification:\n\n```yaml\n# example-spec.yml\nopenapi: \"3.0.0\"\n\ninfo:\n title: Test Schema\n description: API to illustrate OpenAPI-SQLALchemy MVP.\n version: \"0.1\"\n\npaths:\n /employee:\n get:\n summary: Used to retrieve all employees.\n responses:\n 200:\n description: Return all employees from the database.\n content:\n application/json:\n schema:\n type: array\n items:\n \"$ref\": \"#/components/schemas/Employee\"\n\ncomponents:\n schemas:\n Employee:\n description: Person that works for a company.\n type: object\n x-tablename: employee\n properties:\n id:\n type: integer\n description: Unique identifier for the employee.\n example: 0\n x-primary-key: true\n x-autoincrement: true\n name:\n type: string\n description: The name of the employee.\n example: David Andersson.\n x-index: true\n division:\n type: string\n description: The part of the company the employee works in.\n example: Engineering\n x-index: true\n salary:\n type: number\n description: The amount of money the employee is paid.\n example: 1000000.00\n required:\n - id\n - name\n - division\n```\n\nThe SQLALchemy models file then becomes:\n```python\n# models.py\nfrom yaml import load, Loader\nfrom sqlalchemy.ext.declarative import declarative_base\nfrom openapi_sqlalchemy import init_model_factory\n\n\nBase = declarative_base()\nwith open(\"example-spec.yml\") as spec_file:\n SPEC = load(spec_file, Loader=Loader)\nMODEL_FACTORY = init_model_factory(base=Base, spec=SPEC)\n\n\nEmployee = MODEL_FACTORY(name=\"Employee\")\n\n```\n\n## Documentation\n[Read the Docs](https://openapi-sqlalchemy.readthedocs.io/en/latest/)\n\n## Features\n### Supported\nThe following features are supported:\n- `integer ` (32 and 64 bit),\n- `number` (float only),\n- `boolean`,\n- `string`,\n- `$ref` references for columns and models,\n- foreign keys,\n- many to one relationships and\n- `allOf` inheritance for columns and models.\n\n### Not Supported\nThe following features are on the backlog:\n- one to many relationships.\n\n## Contributing\nFork and checkout the repository. To install:\n```bash\npython3 -m venv venv\nsource ./venv/bin/activate\npython3 -m pip install -e .[dev]\n```\nTo run tests:\n```bash\ntox\n```\nMake your changes and raise a pull request.\n\n## Compiling Docs\n```bash\npython3 -m venv venv\ncd docs\nmake html\n```\nThis creates the `index.html` file in `docs/build/html/index.html`.\n\n## Release Commands\n```bash\nrm -r dist/*\npython setup.py sdist bdist_wheel\npython -m twine upload dist/*\n```\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": "https://github.com/jdkandersson/OpenAPI-SQLAlchemy", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "OpenAPI-SQLAlchemy", "package_url": "https://pypi.org/project/OpenAPI-SQLAlchemy/", "platform": "", "project_url": "https://pypi.org/project/OpenAPI-SQLAlchemy/", "project_urls": { "Homepage": "https://github.com/jdkandersson/OpenAPI-SQLAlchemy" }, "release_url": "https://pypi.org/project/OpenAPI-SQLAlchemy/0.6.3/", "requires_dist": [ "SQLAlchemy (>=1.3.6)", "typing-extensions (>=3.7.4)", "pytest ; extra == 'dev'", "tox ; extra == 'dev'", "tox-pyenv ; extra == 'dev'", "pylint ; extra == 'dev'", "pytest-cov ; extra == 'dev'", "pytest-flakes ; extra == 'dev'", "mypy ; extra == 'dev'", "pydocstyle ; extra == 'dev'", "black ; extra == 'dev'", "pre-commit ; extra == 'dev'", "isort ; extra == 'dev'", "PyYAML ; extra == 'dev'", "Sphinx ; extra == 'dev'", "doc8 ; extra == 'dev'" ], "requires_python": ">=3.7", "summary": "Maps an OpenAPI schema to SQLAlchemy models.", "version": "0.6.3" }, "last_serial": 5999195, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "1511172ae537a1b3f253962c6dd04946", "sha256": "8f86178e03eb236592f6457e566fa06b11d3910243dda0f5c7b40e96f43a3a12" }, "downloads": -1, "filename": "openapi_SQLAlchemy-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "1511172ae537a1b3f253962c6dd04946", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5751, "upload_time": "2019-08-10T05:46:17", "url": "https://files.pythonhosted.org/packages/2e/f6/a723a1d31fbf1f4c8087b55e34e3a08c524b2b11b2b630eddfe9fbf48f4a/openapi_SQLAlchemy-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dc2cf678aa9b8fbf30d89d58d7728554", "sha256": "1585543f8d68cb03322075b3a0b2640f0c35a5a9659e80872b9b16babe2123ae" }, "downloads": -1, "filename": "openapi-SQLAlchemy-0.0.1.tar.gz", "has_sig": false, "md5_digest": "dc2cf678aa9b8fbf30d89d58d7728554", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1143, "upload_time": "2019-08-10T05:46:19", "url": "https://files.pythonhosted.org/packages/74/ab/c2a7c4a3d3b1296fb6ea9ead9424402fe5b829f164caed65a232f7a2a011/openapi-SQLAlchemy-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "2043a73863d26414cfb3e83f9daeb045", "sha256": "cb605c06d77b8b0b2cc78249857692f8e58d568548f5d56eee0c585337b30db9" }, "downloads": -1, "filename": "openapi_SQLAlchemy-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2043a73863d26414cfb3e83f9daeb045", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 14296, "upload_time": "2019-08-17T11:31:24", "url": "https://files.pythonhosted.org/packages/56/80/21fb1e49cb98aab60c6ec5fc9f473f047258d23a1f0a02cd8e12fce644eb/openapi_SQLAlchemy-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b60b15653055dab963b1c30cf7b0f4f4", "sha256": "ad4b0ec97f7db4a4ef229f431e22561f8aeec3b25dddaa81d02c36bf16ccbf5b" }, "downloads": -1, "filename": "openapi-SQLAlchemy-0.1.0.tar.gz", "has_sig": false, "md5_digest": "b60b15653055dab963b1c30cf7b0f4f4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 7709, "upload_time": "2019-08-17T11:31:26", "url": "https://files.pythonhosted.org/packages/df/eb/6ba5ec247d7fc660f74d1f655fd326948ad21352d65445838c2c395d35c7/openapi-SQLAlchemy-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "3128681f98ff7f95539a833567a29150", "sha256": "62e2fe6f903a04ce589adb79647a83fc3fe41e0c4c931a81a006eaf2303db79c" }, "downloads": -1, "filename": "openapi_SQLAlchemy-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "3128681f98ff7f95539a833567a29150", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 14346, "upload_time": "2019-08-17T11:41:46", "url": "https://files.pythonhosted.org/packages/b3/78/81677008ac0b899663b9a779d1a1c7a1d038d8ce302ac1b77e1ded013898/openapi_SQLAlchemy-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f88ab1ad8fa6fde371396bf2e2834231", "sha256": "931a69be73cb6d1ea4774ba59c3e0c395ec39e3a31bbcb638a52f7713bdc70b2" }, "downloads": -1, "filename": "openapi-SQLAlchemy-0.1.1.tar.gz", "has_sig": false, "md5_digest": "f88ab1ad8fa6fde371396bf2e2834231", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 7787, "upload_time": "2019-08-17T11:41:50", "url": "https://files.pythonhosted.org/packages/4a/ab/19652022a0aefd32d0a4d1fb752cb92a69a54a93bcb8c280dcd9346593d3/openapi-SQLAlchemy-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "c941a1261c2634b2e26f6abf85f27835", "sha256": "58cf6a8d0358fba03f69963d75a0653b2ae0cbb8f248b904e3425e2716e5fc42" }, "downloads": -1, "filename": "openapi_SQLAlchemy-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c941a1261c2634b2e26f6abf85f27835", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 15154, "upload_time": "2019-08-25T05:08:39", "url": "https://files.pythonhosted.org/packages/f1/d2/fdd72d001c1fac54aabb0dae6603a5ecb6a1d15f462b54a21efe7335e8c9/openapi_SQLAlchemy-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "acd1ebfe43ea01395b72c0125b3ff319", "sha256": "d075441ffb7c0b08f65fb07afea044851548423198ff95a3821ee3b5fe3f0527" }, "downloads": -1, "filename": "openapi-SQLAlchemy-0.2.0.tar.gz", "has_sig": false, "md5_digest": "acd1ebfe43ea01395b72c0125b3ff319", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 8628, "upload_time": "2019-08-25T05:08:46", "url": "https://files.pythonhosted.org/packages/47/dd/0cbdb26353b4e2c1116867d50ae6b23f0e3fcda7ea3d7e823b91f0f46b36/openapi-SQLAlchemy-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "9a83051be91c109936d51a6e7642b71a", "sha256": "8be54ea1887f7ea72b49da00d4cefc8bba337d8b30a6365308927289f12f812d" }, "downloads": -1, "filename": "openapi-SQLAlchemy-0.3.0.tar.gz", "has_sig": false, "md5_digest": "9a83051be91c109936d51a6e7642b71a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 12413, "upload_time": "2019-09-08T07:31:19", "url": "https://files.pythonhosted.org/packages/a2/dc/8cd426fc27d5e72e38af3862c28f13bd00ef1d0f72b5aab052e7e074f75d/openapi-SQLAlchemy-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "1f2555087a0702d019ae8eac034392c1", "sha256": "48880cb75de536a3c573294909a347cac3698251f3f8d14586f16f24aea9c25e" }, "downloads": -1, "filename": "openapi_SQLAlchemy-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1f2555087a0702d019ae8eac034392c1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 22679, "upload_time": "2019-09-21T01:33:01", "url": "https://files.pythonhosted.org/packages/dc/35/d57e376eae67c4aeb987bd08020cd204d8eaea0935073f0aa8b8c262106f/openapi_SQLAlchemy-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "83f7027f55208d42a2f9688fce5466b7", "sha256": "66a87a1f83dc1a5e45d314470dd36b0c85e707123a46b13376ab6698604ee1c9" }, "downloads": -1, "filename": "openapi-SQLAlchemy-0.4.0.tar.gz", "has_sig": false, "md5_digest": "83f7027f55208d42a2f9688fce5466b7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 13608, "upload_time": "2019-09-21T01:33:05", "url": "https://files.pythonhosted.org/packages/e4/61/991090ed1f1c29e696385cd24603085c50e10bd0914456f584d60d5b5efe/openapi-SQLAlchemy-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "7a563293a063813f921f0f9ff0689a26", "sha256": "4017911091bb165c039700a38aa7509bb4b4e966664c5273b966a94dfcfa5735" }, "downloads": -1, "filename": "openapi_SQLAlchemy-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7a563293a063813f921f0f9ff0689a26", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 22790, "upload_time": "2019-09-29T05:50:47", "url": "https://files.pythonhosted.org/packages/12/d7/edc3fd211cab85f9ae4db41bdfa681c86c08c2f2b5a2206a35a55f50d382/openapi_SQLAlchemy-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "38dac8a4b1f22f3c08a0c7f910d34af3", "sha256": "f940fc232f9de449ca82f1cc85471675bd96457acd3b814709b73a3911073871" }, "downloads": -1, "filename": "openapi-SQLAlchemy-0.5.0.tar.gz", "has_sig": false, "md5_digest": "38dac8a4b1f22f3c08a0c7f910d34af3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 13411, "upload_time": "2019-09-29T05:50:51", "url": "https://files.pythonhosted.org/packages/42/f1/fa10e896de8a357630dc497964286edad29aa62ae386d28a6717ba349851/openapi-SQLAlchemy-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "11276b5b8e27b61e92628640a2ccf7f1", "sha256": "d8471d83953dac5594388a28aeea746313d5d0dc89dec09e03432375cd6eaa52" }, "downloads": -1, "filename": "openapi_SQLAlchemy-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "11276b5b8e27b61e92628640a2ccf7f1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 22990, "upload_time": "2019-10-06T05:48:50", "url": "https://files.pythonhosted.org/packages/f8/bd/85b64e2ab78c7d79f63cf10034ffe21d633178fdbbbc5387bfa11eff0b02/openapi_SQLAlchemy-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "978555a771188379cd40ec951f4e7839", "sha256": "71c3efe38ace5c6688872c7f2e5d144fa6bc2e44cbe4eff126667fab951a9777" }, "downloads": -1, "filename": "OpenAPI_SQLAlchemy-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "978555a771188379cd40ec951f4e7839", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 23008, "upload_time": "2019-10-19T01:26:48", "url": "https://files.pythonhosted.org/packages/f7/c1/d9274dfa5184d3f1b808358e144b9fb067a08d1ba67ee2837f6da0b505e7/OpenAPI_SQLAlchemy-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6131137517aece631d01fa5102276c21", "sha256": "7bc0c172d52a4f84b7ad16a0d20f190a4d45d9971466316221ff79982bb481d3" }, "downloads": -1, "filename": "openapi-SQLAlchemy-0.6.0.tar.gz", "has_sig": false, "md5_digest": "6131137517aece631d01fa5102276c21", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 13606, "upload_time": "2019-10-06T05:48:53", "url": "https://files.pythonhosted.org/packages/42/95/a21d8139c750361c880ac3a6e13ecf2536c95ab8fe7943242127d3a32b5c/openapi-SQLAlchemy-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "f824a9ef05f6ff1eb2bcf0c24754c9d7", "sha256": "21ad722ec4d7150db77a039d43054ad283dd359fd5a9a078cf780908185c2992" }, "downloads": -1, "filename": "OpenAPI_SQLAlchemy-0.6.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f824a9ef05f6ff1eb2bcf0c24754c9d7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 23003, "upload_time": "2019-10-19T01:29:47", "url": "https://files.pythonhosted.org/packages/ef/9a/edfeacfe6f95b07a65866708a2ccd67ff8b152049081328713b937f6e791/OpenAPI_SQLAlchemy-0.6.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "20055557551d04eddfcbc0f8aa84733f", "sha256": "e114d5bb9fcd7231b4794407b4ef817c82f8e6d10da6c0a36a7a3cb78f855c65" }, "downloads": -1, "filename": "OpenAPI-SQLAlchemy-0.6.1.tar.gz", "has_sig": false, "md5_digest": "20055557551d04eddfcbc0f8aa84733f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 13752, "upload_time": "2019-10-19T01:29:49", "url": "https://files.pythonhosted.org/packages/36/56/c0f0a140ab4e9a24f499742b99ba5e2a44930f35b32c6e4c3154206dc2eb/OpenAPI-SQLAlchemy-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "9326a64575bc9b9c0d1456d147a4f51d", "sha256": "24ca574e7bb2b633f3b853de0835c77c764f759611cd14b0ff936490806a73ef" }, "downloads": -1, "filename": "OpenAPI_SQLAlchemy-0.6.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9326a64575bc9b9c0d1456d147a4f51d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 23016, "upload_time": "2019-10-19T02:04:13", "url": "https://files.pythonhosted.org/packages/16/98/895138de11217866a316ad9ed64b735002264fc4083b6bef7dc92201d3a1/OpenAPI_SQLAlchemy-0.6.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a3725a9b5329693fd250d67380d9efcd", "sha256": "71af2af401c75e3dc122e18ff8581f43a4de7f8d664190eab31a03d5ab2969c0" }, "downloads": -1, "filename": "OpenAPI-SQLAlchemy-0.6.2.tar.gz", "has_sig": false, "md5_digest": "a3725a9b5329693fd250d67380d9efcd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 13611, "upload_time": "2019-10-19T02:04:17", "url": "https://files.pythonhosted.org/packages/45/ea/fe90a22891c498f46e33dad4ad8e10e4ffd2ac759fdac9e2d9606557a194/OpenAPI-SQLAlchemy-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "da8023608d289dd55cd3b793aa066c8a", "sha256": "baa7137a81b858adff4a6c40d49f6da03ab7c9df02a8068d9e3a131df62b4b9d" }, "downloads": -1, "filename": "OpenAPI_SQLAlchemy-0.6.3-py3-none-any.whl", "has_sig": false, "md5_digest": "da8023608d289dd55cd3b793aa066c8a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 24758, "upload_time": "2019-10-19T08:36:35", "url": "https://files.pythonhosted.org/packages/38/65/2baab984684d203608406e40aab463a62ded4827e3f30e879753058ca21f/OpenAPI_SQLAlchemy-0.6.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "11563f14fc29b466eda823e8bec5810b", "sha256": "e837a5e7f3dcaab2bcf9a6e5aa98360b7a6ab8ff95231cf32a00c9bf341f51e8" }, "downloads": -1, "filename": "OpenAPI-SQLAlchemy-0.6.3.tar.gz", "has_sig": false, "md5_digest": "11563f14fc29b466eda823e8bec5810b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 15229, "upload_time": "2019-10-19T08:36:39", "url": "https://files.pythonhosted.org/packages/c7/c9/dd1de48086636d650afdd07897605cd8bf12a2f5d9957ba29bfd3a55062c/OpenAPI-SQLAlchemy-0.6.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "da8023608d289dd55cd3b793aa066c8a", "sha256": "baa7137a81b858adff4a6c40d49f6da03ab7c9df02a8068d9e3a131df62b4b9d" }, "downloads": -1, "filename": "OpenAPI_SQLAlchemy-0.6.3-py3-none-any.whl", "has_sig": false, "md5_digest": "da8023608d289dd55cd3b793aa066c8a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 24758, "upload_time": "2019-10-19T08:36:35", "url": "https://files.pythonhosted.org/packages/38/65/2baab984684d203608406e40aab463a62ded4827e3f30e879753058ca21f/OpenAPI_SQLAlchemy-0.6.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "11563f14fc29b466eda823e8bec5810b", "sha256": "e837a5e7f3dcaab2bcf9a6e5aa98360b7a6ab8ff95231cf32a00c9bf341f51e8" }, "downloads": -1, "filename": "OpenAPI-SQLAlchemy-0.6.3.tar.gz", "has_sig": false, "md5_digest": "11563f14fc29b466eda823e8bec5810b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 15229, "upload_time": "2019-10-19T08:36:39", "url": "https://files.pythonhosted.org/packages/c7/c9/dd1de48086636d650afdd07897605cd8bf12a2f5d9957ba29bfd3a55062c/OpenAPI-SQLAlchemy-0.6.3.tar.gz" } ] }