Skip to content

v6.9.2

Choose a tag to compare

@github-actions github-actions released this 23 Feb 09:41
· 154 commits to master since this release

🚀 Features

- Implementation of experimental merge capability in ArcticDB (#2890)
⚠️ The API is under development. It is not subject to semver and can change even in minor or patch versions. The function is named merge_experimental, but will be renamed to merge when the API becomes stable.

The merge API offers a straightforward way for users to modify or insert specific rows in their data.

import arcticdb
import pandas as pd

ac = arcticdb.Arctic("lmdb://demo")
lib = ac.get_library("prices", create_if_missing=True)
sym = "AAPL"

prices = pd.DataFrame(
    {"price": [100.5, 102.3, 99.8, 101.0, 103.5]},
    index=pd.date_range("2023-01-01", periods=5),
)
lib.write(sym, prices)
print(lib.read(sym).data)

Original data:

price
2023-01-01 100.5
2023-01-02 102.3
2023-01-03 99.8
2023-01-04 101.0
2023-01-05 103.5

Dataframe with corrections:

corrections = pd.DataFrame(
    {"price": [999.0, 888.0]},
    index=pd.DatetimeIndex([pd.Timestamp("2023-01-02"), pd.Timestamp("2023-01-04")]),
)
print(corrections)
price
2023-01-02 999.0
2023-01-04 888.0

Apply the corrections to the original data:

lib.merge_experimental(sym, corrections)
print(lib.read(sym).data)
price
2023-01-01 100.5
2023-01-02 999.0
2023-01-03 99.8
2023-01-04 888.0
2023-01-05 103.5

Demo notebook with more example usage and current limitations

🐛 Fixes

  • Fix list_versions bug - include versions of symbols that have been deleted but are kept alive by a snapshot (#2864)
  • Fix read(output_format=Arrow) when a column contains only empty strings (#2871)
  • Claude documentation and skills for navigating and enhancing the codebase (#2902)
  • Fix s3 sts windows storage test (#2892)
  • Implement query stats for in-memory storage, use them to fix flaky ASV benchmark (#2899)
  • Arrow read fix truncation with dynamic schema (#2872)
  • Refactor Python bindings for improved cross-ABI compatibility with enterprise downstream. (#2884)

The wheels are on PyPI. Below are for debugging: