pip install pyodc
will now install the C++ backend socodc
will work immediately.- The C++ backed is now installable with pip from
odclib
. - Added
findlibs
andodclib
as dependencies. - To force the use of a different
odc
shared library, set the environment variableODC_DIR
to the directory containing the shared library. See the findlibs documentation for more information.
- The C++ backed is now installable with pip from
-
Add a new LongConstantString codec which permits encoding constant columns where the constant is a string > 8 characters in length.
- This saves 1 byte per row compared the previous way these columns were encoded.
- A C++ implementation has been added to ODC at the same time, version 1.6.0
- Bumped required ODC version to 1.6.0 for feature parity.
- Decoding data using this codec will work straight away.
- Encoding data with the new codec is disabled by default and can be enabled with the environment variable "ODC_ENABLE_WRITING_LONG_STRING_CODEC=1".
- At some point in a future release, encoding will be enabled by default.
-
Accept various new datatypes and tighten datatype selection logic (fixes ODB-559):
- Unsigned Integers: uint8 - uint32 (note uint64 is not supported).
- Signed Integers: int8 - int64.
- Float32 in addition to float64.
- Fixed the selection logic for ShortReal2 and ShortReal codecs so the smallest positive normal float32 number
struct.unpack("<f", b"\x00\x00\x80\x00")[0]
can now be used in data.
-
Converted to a pyproject.toml based package.
-
Fix various warnings:
- Pandas Deprecation warning about
df.dtypes[0]
needing to becomedf.dtypes.iloc[0]
. - Pandas Deprecation warning about converting implicitly converting dataframe column dtype.
- Pandas Future Warning about concatenation with empty or all-NA dataframes.
- "pkg_resources is deprecated as an API."
- Pandas Deprecation warning about
- Use findlibs instead of custom finder for odc
- Support constant bitfields
- Correct encoding with constant strings > 8 characters in length
- Support pandas native string type
- Fix access to exploded bitfield columns
- Improved github/ci integration
- Fixed #6: pip install breaks codc
- Fixed ODB-534: PyPI package is missing CHANGELOG
- 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
- Correct support for constant codecs
- Decoding by column short name
- Specify
odc
library location withodc/ODC_DIR
- Correct
setup.py
dependencies to include pandas - Support missing ConstantString values encoded from ODB1 using the
odb_migrator
- String missing values should be
None
notNaN
- Refactor oneshot behaviour (
read_odb_oneshot
-->read_odb(..., single=True)
) - Raise correct error on
odc
not found - Split
codb.py
into a fullcodc
module - Fix miscellaneous bugs
- Fixed automatic selection of integral codecs
- Initial version