Skip to main content

A Python interface to odc for encoding/decoding ODB-2 files.

Project description

pyodc

PyPI Build Status Documentation Status Code style: black Licence

A Python interface to odc for encoding/decoding ODB-2 files.

The package contains two different implementations of the same library:

  • pyodc is a pure-python encoder and decoder for ODB-2 data, which encodes data from, and decodes it into pandas data frames
  • codc is an implementation of the same API as pyodc that depends on the ECMWF odc library, and comes with much better performance

Documentation Changelog

Dependencies

Required

  • Python 3.x

Optional

For codc to work, odc library must be compiled and installed on the system and made available to Python (through the CFFI mechanism) as a shared library. There are multiple ways to make the library visible to CFFI: it can be installed as a system library, the installation prefix can be passed in the odc_DIR or ODC_DIR environment variables, or the library directory can be included in LD_LIBRARY_PATH.

Installation

pip install --user pyodc

Check if the module was installed correctly:

python
>>> import pyodc
>>> import codc # optional

Usage

An introductory Jupyter Notebook with helpful usage examples is provided in the root of this repository:

git clone git@github.com:ecmwf/pyodc.git
cd pyodc
jupyter notebook Introduction.ipynb

Development

Run Unit Tests

To run the unit tests, make sure that the pytest module is installed first:

python -m pytest

Build Documentation

To build the documentation locally, please install the Python dependencies first:

cd docs
pip install -r requirements.txt
make html

The built HTML documentation will be available under the docs/_build/html/index.html path.

License

This software is licensed under the terms of the Apache Licence Version 2.0 which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.

In applying this licence, ECMWF does not waive the privileges and immunities granted to it by virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.

Changelog for pyodc

1.1.3

  • Improved github/ci integration

1.1.2

  • Fixed #6: pip install breaks codc

1.1.1

  • Fixed ODB-534: PyPI package is missing CHANGELOG

1.1.0

  • Fixed ODB-533: Decode data starting with missing values correctly
  • Fixed ODB-530: Bitfield column inspection returns incomplete data in pure-Python implementation
  • Bumped up required odc version number to 1.4.0
  • Added missing frame properties accessor to codc interface
  • Fixed ODB-525: Setting odc prefix variable (odc_DIR) does not work as expected on macOS
  • Fixed ODB-524: Keys and values in decoded frame properties are switched on older Python version
  • Added test flag to skip codc tests on demand (PYODC_SKIP_CODC)
  • Fixed ODB-523: Additional properties parameter is omitted in encode_odb() when string is passed as file
  • Fixed package setup metadata
  • Added documentation

1.0.4

  • Correct support for constant codecs
  • Decoding by column short name

1.0.3

  • Specify odc library location with odc/ODC_DIR
  • Correct setup.py dependencies to include pandas
  • Support missing ConstantString values encoded from ODB1 using the odb_migrator

1.0.2

  • String missing values should be None not NaN
  • Refactor oneshot behaviour (read_odb_oneshot --> read_odb(..., single=True))
  • Raise correct error on odc not found
  • Split codb.py into a full codc module
  • Fix miscellaneous bugs

1.0.1

  • Fixed automatic selection of integral codecs

1.0.0

  • Initial version

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyodc-1.4.1.tar.gz (37.0 kB view details)

Uploaded Source

File details

Details for the file pyodc-1.4.1.tar.gz.

File metadata

  • Download URL: pyodc-1.4.1.tar.gz
  • Upload date:
  • Size: 37.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for pyodc-1.4.1.tar.gz
Algorithm Hash digest
SHA256 faf5f348d053a0b5e8a4c14fe01f0fb2fbf8729bee1dcdadd660b23d01e4b8ab
MD5 abe5fde31ec26f6f4e4b13c90d58c734
BLAKE2b-256 42f8a785bf6539e69ca602dcde06b09187c5b0c6a33bb63eebdeda7c25ec905b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page