Metadata-Version: 2.1
Name: py3odb
Version: 0.2
Summary: Python 3.6+ compatible interface to ECMWF's ODB API
Home-page: https://github.com/opus49/py3odb
Author: Mike Puskar
Author-email: puskar49@gmail.com
License: MIT
Project-URL: Documentation, https://py3odb.readthedocs.io
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 3.6
Requires-Python: >=3.6
Description-Content-Type: text/x-rst

|build| |codecov| |PyPI| |Python| |docs|

py3odb
======

Python 3.6+ compatible interface to ECMWF’s ODB API

Overview
--------

ODB API was developed by the `European Centre for Medium-Range Weather
Forecasts`_ for “encoding and processing of observational data.” The
`ODB API`_ provides an SQL-like interface called odbsql, along with a
Python 2 compatible API.

This module was written to provide an interface to ODB API using Python
>=3.6. It requires access to libOdb provided by ODB API.

Usage
-----

py3odb follows the `Python Database API Specification`_:

::

   import py3odb
   connection = py3odb.connect('foo.db')
   cursor = connection.cursor()
   cursor.execute('SELECT * FROM "foo.db"')
   for row in cursor:
       print(row)
   connection.close()

For single queries, there is a Reader context manager and <odb> tag:

::

   import py3odb
   with py3odb.Reader('foo.db', 'SELECT * FROM <odb>') as odb_reader:
       for row in odb_reader:
           print(row)

Known Limitations
-----------------

The intent of this library is to read odb2 files generated by the
`Unified Model`_ for the purpose of observation monitoring. The
underlying odbql interface to the ODB API provided by ECMWF does not
support database operations in a traditional sense. For example: \* as
of ODB API version 17.6, odbql only supports 8 character strings \* only
the most recent INSERT command is accepted \* you cannot open an
existing odb file and do an INSERT

References
----------

-  https://py3odb.readthedocs.io
-  https://www.python.org/dev/peps/pep-0249
-  https://confluence.ecmwf.int/display/ODBAPI

.. _European Centre for Medium-Range Weather Forecasts: https://www.ecmwf.int/
.. _ODB API: https://confluence.ecmwf.int/display/ODBAPI
.. _Python Database API Specification: https://www.python.org/dev/peps/pep-0249
.. _Unified Model: https://www.metoffice.gov.uk/

.. |build| image:: https://img.shields.io/circleci/build/github/opus49/py3odb
   :target: https://circleci.com/gh/opus49/py3odb
.. |codecov| image:: https://img.shields.io/codecov/c/github/opus49/py3odb
   :target: https://codecov.io/gh/opus49/py3odb
.. |PyPI| image:: https://img.shields.io/pypi/v/py3odb?color=blue
   :target: https://pypi.org/project/py3odb/
.. |Python| image:: https://img.shields.io/pypi/pyversions/py3odb
   :target: https://www.python.org/downloads/release/python-360/
.. |docs| image:: https://readthedocs.org/projects/py3odb/badge/?version=latest
   :target: https://py3odb.readthedocs.io


