Changelog - PIPolars 0.1.0 documentation

Skip to content
Back to top
View this page
Edit this page

# Changelog

All notable changes to PIPolars will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

## [Unreleased]

### Added

- Initial release

## [0.1.0] - 2024-12-21

### Added

- Initial release of PIPolars

- `PIClient` class for PI System data extraction

- `PIQuery` fluent query builder with method chaining

- Support for recorded, interpolated, plot, and summary values

- Multi-tag bulk operations with parallelization

- Polars DataFrame output with optional quality information

- Cache backends: Memory, SQLite, and Arrow IPC

- Pydantic-based configuration with environment variable support

- Comprehensive type hints and mypy strict mode compliance

- PI time expression support (`*-1d`, `t`, `y`, etc.)

- `AFTime` helper class for programmatic time construction

- Exception hierarchy rooted at `PIPolarsError`

- Windows integration via pythonnet and PI AF SDK

- Documentation with Sphinx and Read the Docs support

### Features

- PIClient: Main entry point with methods for: - `snapshot()` / `snapshots()` - Current values - `recorded_values()` - Archived data - `interpolated_values()` - Regular interval data - `plot_values()` - Plot-optimized data - `summary()` / `summaries()` - Statistical summaries - `search_tags()` / `tag_exists()` / `tag_info()` - Tag operations

- PIQuery: Fluent query builder with: - Time range methods (`time_range()`, `last()`, `today()`, etc.) - Query type methods (`recorded()`, `interpolated()`, `summary()`) - Option methods (`with_quality()`, `pivot()`, `limit()`) - Execution methods (`to_dataframe()`, `to_lazy_frame()`)

- Configuration: Pydantic settings with: - `PIServerConfig` - Server connection settings - `AFServerConfig` - AF Database settings - `CacheConfig` - Caching behavior - `QueryConfig` - Query options - `PolarsConfig` - DataFrame output settings

- Caching: Multiple backends: - Memory (LRU with TTL) - SQLite (persistent, compressed) - Arrow IPC (native Polars format)

### Dependencies

- polars >= 1.17.0

- pythonnet >= 3.0.3

- pydantic >= 2.10.0

- pydantic-settings >= 2.6.0

- pyarrow >= 18.0.0

### Requirements

- Python 3.10+

- Windows with PI AF SDK 2.x

- .NET Framework 4.8

### Known Issues

- Documentation builds require mocking pythonnet on non-Windows platforms

- LazyFrame support is limited (converts to DataFrame internally)

### Future Plans

- Async/await support for non-blocking queries

- AF Element and Event Frame extraction

- Streaming support for large datasets

- Additional cache backends (Redis, etc.)