v6.9.2
🚀 Features
- Implementation of experimental merge capability in ArcticDB (#2890)
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: