June 2, 2026¤
changed: event-log output now trims entirely-empty extra columns. The 9
canonical core columns (ocel:eid, ocel:activity, ocel:timestamp,
ts_shape:start_timestamp, ts_shape:duration_s, ts_shape:detector,
ts_shape:pack, ts_shape:severity, ts_shape:value) are always emitted, so
every event log keeps an identical append-friendly core schema; per-detector
extras (
May 20, 2026¤
add: Pipeline -- the single declarative orchestrator for ts-shape. Chains transform and detector steps into one reusable definition: .transform() steps replace the working signal; .detect() steps store named event results. Supports $input/$prev sentinels for multi-DataFrame wiring, run_steps() for intermediates, describe() for previews, and PipelineResult.to_event_log() for combined OCEL export. BREAKING: removed FeaturePipeline (features.segment_analysis.feature_pipeline); Pipeline replaces it. Migration: FeaturePipeline(df)...run() becomes Pipeline()...run(df); .add_step(Cls.method, kw) and .add_instance_step(Cls, call='method', kw) both become .transform(Cls, 'method', **kw); .add_lambda_step(fn) becomes .transform(fn). $input/$prev sentinels and run_steps() are unchanged. add: UnitConverter -- engineering unit conversion (transform), a thin wrapper around the pint library. Optional extra: pip install ts-shape[units]. add: RuntimeAccountingEvents -- operating-hours accounting (total run time, start count, longest run, utilization, per-window runtime, hour-meter). add: LineBalancingEvents -- line balancing & takt analysis (station cycle times, balance efficiency/delay, smoothness index, theoretical minimum stations, Yamazumi station-loading table). add: FlowMetricsEvents -- flow analytics (time-weighted WIP, throughput, FIFO lead time, Little's Law consistency check, Process Cycle Efficiency). add: ts_shape.make_timeseries() -- public synthetic-data generator for trying detectors and transforms without real data or loaders. add: ts_shape.list_detectors() -- programmatic catalog of every top-level class, grouped by pack/category. add: Base.repr -- detector and instance classes now print a useful summary (row count + configured uuid/value_column). changed: OutlierDetectionEvents emits the canonical point shape (systime, uuid, source_uuid) via events/_output.py -- completes the May 14 output standardization. uuid carries the event id, source_uuid the source signal. changed: event detectors validate their configured UUID up front (Base._validate_uuid) -- a typo'd UUID now raises a clear error listing the available UUIDs instead of silently returning empty results. fix: DatapointAPI HTTP requests now send a timeout (default 30s) so an unresponsive server can no longer hang the loader. fix: TimescaleDBDataAccess uses bound SQL parameters instead of f-string interpolation. fix: CycleExtractor uses Base's sorted, defensive copy -- it no longer mutates the caller's DataFrame. fix: README quick-start and pack examples corrected to match real constructor signatures (SPC, ToleranceDeviationEvents, DataIntegratorHybrid, TimeGroupedStatistics).
May 14, 2026¤
BREAKING: event-detector outputs standardized across all packs (quality, production, engineering, maintenance, supplychain, energy, correlation). Every public DataFrame-returning method now emits one of three canonical shapes: point (systime), interval (start, end, duration_seconds), or summary (start, end, duration_seconds + aggregate columns).
Column renames applied uniformly: start_time, gap_start, window_start, period_start, disturbance_start -> start end_time, gap_end, window_end, period_end, disturbance_end -> end severity_score, severity_level -> severity OEECalculator: date -> start + end + duration_seconds (86400)
New helpers in src/ts_shape/events/_output.py (empty_event_df, finalize_point_df, finalize_interval_df, finalize_summary_df) define the canonical column constants and empty-frame schema.
ts_shape.eventlog.adapters.adapt no longer probes legacy column name variants -- it expects the canonical names. The taxonomy registry has been updated (severity_field="severity"). See docs/guides/eventlog.md for the simplified shape table.
Downstream code asserting old column names must be updated.
Sep 09, 2025¤
add: Azure blob storage container loader add: Metadata JSON loader added changed: development guide
Apr 06, 2025¤
add: quickstart guide added to docs
Dec 26, 2024¤
add: mkdocs material deployment with gh actions
Dec 25, 2024¤
add: pdoc docs exchanged with mkdocs material autodoc
Dec 23, 2024¤
add: library rename add: library structure change. loader, transform, feature, context, events
Dec 20, 2024¤
fix: closes #7
Nov 16, 2024¤
add: dev state docs for combine/integrator.py add: dev state for combine/integrator.py add: metadata loader improved
Nov 4, 2024¤
add: stats classes improved + feature table class added
Oct 29, 2024¤
add: timescaledb loader adjusted
Oct 28, 2024¤
add: loader classes adjusted add: classes for timestamp_converter added add: classes for s3, timescaledb, timezone_shift added
Oct 27, 2024¤
add: docs for time_stats added add: time_stats for numeric value columns added
Sep 11, 2024¤
add: methods refactored to execute without an instance
Sep 9, 2024¤
add: cycle methods refined and splitted to cycle processor and extractor
Sep 8, 2024¤
add: cycle method and metadata loader including tests for numeric filters add: additional methods added
Aug 25, 2024¤
fix: docs re-created fix: docs add: parquet loader, timestamp, string, numeric and boolean stats methods
May 4, 2024¤
change: typings added, first test added change: package folder moved init: pypi package structure for timeseries-shaper / internal project for my master thesis