{ "info": { "author": "Mike Puskar", "author_email": "puskar49@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: POSIX", "Programming Language :: Python :: 3.6" ], "description": "|build| |codecov| |PyPI| |Python| |docs|\n\npy3odb\n======\n\nPython 3.6+ compatible interface to ECMWF\u2019s ODB API\n\nOverview\n--------\n\nODB API was developed by the `European Centre for Medium-Range Weather\nForecasts`_ for \u201cencoding and processing of observational data.\u201d The\n`ODB API`_ provides an SQL-like interface called odbsql, along with a\nPython 2 compatible API.\n\nThis module was written to provide an interface to ODB API using Python\n>=3.6. It requires access to libOdb provided by ODB API.\n\nUsage\n-----\n\npy3odb follows the `Python Database API Specification`_:\n\n::\n\n import py3odb\n connection = py3odb.connect('foo.db')\n cursor = connection.cursor()\n cursor.execute('SELECT * FROM \"foo.db\"')\n for row in cursor:\n print(row)\n connection.close()\n\nFor single queries, there is a Reader context manager and tag:\n\n::\n\n import py3odb\n with py3odb.Reader('foo.db', 'SELECT * FROM ') as odb_reader:\n for row in odb_reader:\n print(row)\n\nKnown Limitations\n-----------------\n\nThe intent of this library is to read odb2 files generated by the\n`Unified Model`_ for the purpose of observation monitoring. The\nunderlying odbql interface to the ODB API provided by ECMWF does not\nsupport database operations in a traditional sense. For example: \\* as\nof ODB API version 17.6, odbql only supports 8 character strings \\* only\nthe most recent INSERT command is accepted \\* you cannot open an\nexisting odb file and do an INSERT\n\nReferences\n----------\n\n- https://py3odb.readthedocs.io\n- https://www.python.org/dev/peps/pep-0249\n- https://confluence.ecmwf.int/display/ODBAPI\n\n.. _European Centre for Medium-Range Weather Forecasts: https://www.ecmwf.int/\n.. _ODB API: https://confluence.ecmwf.int/display/ODBAPI\n.. _Python Database API Specification: https://www.python.org/dev/peps/pep-0249\n.. _Unified Model: https://www.metoffice.gov.uk/\n\n.. |build| image:: https://img.shields.io/circleci/build/github/opus49/py3odb\n :target: https://circleci.com/gh/opus49/py3odb\n.. |codecov| image:: https://img.shields.io/codecov/c/github/opus49/py3odb\n :target: https://codecov.io/gh/opus49/py3odb\n.. |PyPI| image:: https://img.shields.io/pypi/v/py3odb?color=blue\n :target: https://pypi.org/project/py3odb/\n.. |Python| image:: https://img.shields.io/pypi/pyversions/py3odb\n :target: https://www.python.org/downloads/release/python-360/\n.. |docs| image:: https://readthedocs.org/projects/py3odb/badge/?version=latest\n :target: https://py3odb.readthedocs.io\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/opus49/py3odb", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "py3odb", "package_url": "https://pypi.org/project/py3odb/", "platform": "", "project_url": "https://pypi.org/project/py3odb/", "project_urls": { "Documentation": "https://py3odb.readthedocs.io", "Homepage": "https://github.com/opus49/py3odb" }, "release_url": "https://pypi.org/project/py3odb/0.3/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Python 3.6+ compatible interface to ECMWF's ODB API", "version": "0.3" }, "last_serial": 5925028, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "454f688d53c97481272a76640bba2ad7", "sha256": "62686fedff4f287a082cbee6e20a345bc9e246a5078de75a1ca0ee7713667ec9" }, "downloads": -1, "filename": "py3odb-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "454f688d53c97481272a76640bba2ad7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 15209, "upload_time": "2019-09-26T16:34:19", "url": "https://files.pythonhosted.org/packages/05/45/d4de9ba9704119e05282484493ce18c876a319cc5b27cbf58344b8fe712c/py3odb-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "53cf07af55d97e02ac88657dff63cb2d", "sha256": "a04c0e3952402e72a9299c38f87c10def0d0a16a110d0b488e34ef7973325f39" }, "downloads": -1, "filename": "py3odb-0.1.0.tar.gz", "has_sig": false, "md5_digest": "53cf07af55d97e02ac88657dff63cb2d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 41549, "upload_time": "2019-09-26T16:34:21", "url": "https://files.pythonhosted.org/packages/7e/7c/b84b3068c2e7b8ce521fb300b336eebd83e604bc3e0b76e57e51652d02da/py3odb-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "799d1f3205079994c5644ccdb1ee8f29", "sha256": "fb5eb4cffb772b8c6c574ce73600615a980e1d14f0b299293f2c6f37a5b28850" }, "downloads": -1, "filename": "py3odb-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "799d1f3205079994c5644ccdb1ee8f29", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 15206, "upload_time": "2019-09-26T16:48:24", "url": "https://files.pythonhosted.org/packages/15/d5/dcf4de45c7b3f265e4802a16591b74aa13b5faa0cdef23b4f8d249f06844/py3odb-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eaa47942dd6ca1f37d3d461f82c4e56e", "sha256": "2373293f15191d2bfdaa7351282799445a11fad98f99aea4c4bdd231a0223be5" }, "downloads": -1, "filename": "py3odb-0.1.1.tar.gz", "has_sig": false, "md5_digest": "eaa47942dd6ca1f37d3d461f82c4e56e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 41597, "upload_time": "2019-09-26T16:48:25", "url": "https://files.pythonhosted.org/packages/f0/d9/48c310a5b1d603307a879f0eda788102cd96b5fdcfaf271e7dd2f5f4229c/py3odb-0.1.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "b3485363e62484a889978e2dbb8e2e4e", "sha256": "7fcf84956ec6462732a4f6fc0567d248457d632254dae9214ae0ab1e06d381ca" }, "downloads": -1, "filename": "py3odb-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "b3485363e62484a889978e2dbb8e2e4e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 34794, "upload_time": "2019-10-02T02:37:32", "url": "https://files.pythonhosted.org/packages/32/b2/86ee7e80bb898846c190ee8a3022707c5821de3ee832d02f9dc1ab422ce3/py3odb-0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "073d17159b2742bc036a7e931a48fa26", "sha256": "adbc8b367f632960ed9a299dc9ca22f07ec3e9da4cb7ab0edcdbcd6e61f6f67e" }, "downloads": -1, "filename": "py3odb-0.2.tar.gz", "has_sig": false, "md5_digest": "073d17159b2742bc036a7e931a48fa26", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 55837, "upload_time": "2019-10-02T02:37:33", "url": "https://files.pythonhosted.org/packages/56/90/b1e98ab159215d990097c88e9f55ebc36a6ac158e7320139cba8d3ccc572/py3odb-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "135d11083fde0e4f067febb93c3c3eb2", "sha256": "c5e54d02d05ac094b5f8ffe6db094c04563ce6e6dfd0d36099383af53aa7ce8d" }, "downloads": -1, "filename": "py3odb-0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "135d11083fde0e4f067febb93c3c3eb2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 36962, "upload_time": "2019-10-03T19:44:52", "url": "https://files.pythonhosted.org/packages/a4/4a/129b1b10c20fd72fe0c222a1f25e077fc62592240b7a866564bea9481362/py3odb-0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f259403e5d919539266a1f25736f596", "sha256": "9034ee41732ebe73ad0cf384a5edd0102749caacc221b41bb76084a0806d0897" }, "downloads": -1, "filename": "py3odb-0.3.tar.gz", "has_sig": false, "md5_digest": "0f259403e5d919539266a1f25736f596", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 56139, "upload_time": "2019-10-03T19:44:53", "url": "https://files.pythonhosted.org/packages/3b/fe/e3092d52060fb03e6f2ddc1e8457033f6e740b751323c922239a980f9efe/py3odb-0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "135d11083fde0e4f067febb93c3c3eb2", "sha256": "c5e54d02d05ac094b5f8ffe6db094c04563ce6e6dfd0d36099383af53aa7ce8d" }, "downloads": -1, "filename": "py3odb-0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "135d11083fde0e4f067febb93c3c3eb2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 36962, "upload_time": "2019-10-03T19:44:52", "url": "https://files.pythonhosted.org/packages/a4/4a/129b1b10c20fd72fe0c222a1f25e077fc62592240b7a866564bea9481362/py3odb-0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f259403e5d919539266a1f25736f596", "sha256": "9034ee41732ebe73ad0cf384a5edd0102749caacc221b41bb76084a0806d0897" }, "downloads": -1, "filename": "py3odb-0.3.tar.gz", "has_sig": false, "md5_digest": "0f259403e5d919539266a1f25736f596", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 56139, "upload_time": "2019-10-03T19:44:53", "url": "https://files.pythonhosted.org/packages/3b/fe/e3092d52060fb03e6f2ddc1e8457033f6e740b751323c922239a980f9efe/py3odb-0.3.tar.gz" } ] }