Skip to content

Releases: 17636365690/cpdatakit

CPDataKit v0.6.0

Choose a tag to compare

@17636365690 17636365690 released this 02 Sep 16:51
ebea17e

CPDataKit v0.6.0 - Local-first scientific workbench

CPDataKit 0.6.0 adds a Python 3.12+ local-first workbench while preserving the v0.5 tabular,
schema 1.0, HDF5 1.0, CLI, and public Python contracts.

Highlights

  • cpdatakit ui starts a loopback-only FastAPI workbench with bundled Jinja/static assets.
  • Typed application services are shared by the CLI and UI for inspection, validation, conversion,
    reports, comparisons, and plots.
  • ScientificDataset, schema 2.0, HDF5 2.0, NetCDF, Zarr 3, and Parquet support explicit
    N-dimensional and tabular representations without implicit flattening or unit inference.
  • SQLite catalog records, bounded uploads, cooperative jobs, safe output paths, CSRF protection,
    and capability discovery support reproducible local workflows.

Compatibility

The existing Dataset, built-in curve, point, and field2d profiles, DAMASK adapter, CLI
commands, schema 1.0 behavior, and CPDataKit HDF5 1.0 files remain available. Python 3.10 and 3.11
users should remain on the v0.5.x maintenance line.

CPDataKit v0.5.0 - Scientific data contracts

Choose a tag to compare

@17636365690 17636365690 released this 02 Sep 06:20
1d68963

CPDataKit v0.5.0 - Scientific data contracts beyond the first CP profiles

CPDataKit 0.5.0 generalizes the existing schema, validation, HDF5, inspection, and reporting path
for scientific and engineering data while retaining crystal plasticity as the first supported
vertical.

Highlights

  • External JSON schemas can use non-built-in profile names.
  • Custom profiles pass validation, normalization, HDF5 conversion, inspection, reports, report
    comparison, and CLI workflows.
  • cpdatakit plot --kind xy --x FIELD --y FIELD plots any two declared scalar numeric fields.
  • The thermal-cycle example demonstrates explicit minute-to-second and Celsius-to-kelvin mappings
    without crystal-plasticity fields.
  • Adapter classes can publish stable identity, format, capability, and detection metadata through
    the new in-process registry.

Compatibility

The Dataset object, Python import path, existing CLI commands, built-in curve, point, and
field2d profiles, DAMASK adapter, and CPDataKit HDF5 format 1.0 remain available. Legacy built-in
HDF5 1.0 files without schema snapshots remain readable.

New HDF5 files for non-built-in profiles must carry the canonical embedded schema and matching
SHA-256 digest. This keeps custom files self-describing and fails closed when their contract is
missing. Canonical JSON and SHA-256 values for the three built-in schemas remain unchanged.

Generic summaries no longer add grain and phase concepts to custom profiles. Built-in profiles keep
their existing unique_grains and unique_phases output.

Validation scope

Validation still reports conformance to the declared structure. It does not establish physical
correctness, physical equivalence, or scientific interpretation. Field mappings and unit
conversions remain explicit.

Verification

The Windows Python 3.12.10 release candidate passed 252 tests with 87.98% coverage. Ruff lint and
format checks passed. The 100,000- and 1,000,000-record HDF5 diagnostics returned exact record
counts for full, selected-field, and chunked reads. Fixed-seed sample regeneration produced matching
SHA-256 hashes. Reproducible build, Twine, clean-wheel, and distribution-content results are checked
again from the release commit before publication.

CPDataKit v0.4.0

Choose a tag to compare

@17636365690 17636365690 released this 31 Aug 13:55
ef98df8

CPDataKit v0.4.0 - Schema contracts and report comparisons

CPDataKit 0.4.0 adds tools for reviewing schema changes and validation reports during data hand-offs
between simulation and analysis workflows.

Highlights

  • Compare validated schema contracts with diff_schemas() or cpdatakit schema diff.
  • Classify contract changes as identical, backward-compatible, or breaking.
  • Compare two JSON validation reports with compare_reports() or cpdatakit compare.
  • Write an offline comparison bundle with JSON, Markdown, HTML, and a hashed manifest.
  • HDF5 format 1.0 and schema contract 1.0 remain compatible with existing files. The release also
    adds canonical snapshot checks, ragged-shape findings, and empty-output protection.

Schema and compatibility changes

Optional-field additions, additive aliases, and description-only changes are backward-compatible.
Changes to units, shapes, component order, indexes, ranges, conventions, requiredness, profile, or
schema version are reported as breaking and require explicit review or mapping.

Validation and API changes

The new diff_schemas() and compare_reports() functions are exported from the package root. The
CLI writes deterministic JSON or Markdown. Existing output paths are preserved unless --force is
supplied. Comparison reports contain aggregate information and sanitized metadata.

Upgrade notes

The HDF5 format and schema contract remain at version 1.0, so existing files continue to use the
same format. New commands write reports and bundles from the supplied inputs. Schema and data
migration are separate steps.

Verification

On Windows with Python 3.12.13, the local release gate passed 230 tests with 87.47% coverage.
Ruff check and format checks passed. The two v0.4.0 distributions matched byte for byte, and both
release metadata and Twine checks passed. A clean wheel install ran the CLI, HDF5 API, quickstart,
and plotting smoke tests. The 100,000- and 1,000,000-record HDF5 diagnostics returned the expected
record counts. The release PR runs the Ubuntu/Windows Python 3.10-3.13 matrix and CodeQL checks.

CPDataKit v0.3.0

Choose a tag to compare

@17636365690 17636365690 released this 29 Aug 17:05
ff00fa2

CPDataKit v0.3.0 - Safer HDF5 workflows and practical inspection

CPDataKit 0.3.0 brings the reliability and scale work from the maintenance cycle into one release.
The existing default workflow stays familiar while large files, metadata, and external inputs become
easier to inspect.

Highlights

  • Read selected HDF5 fields or iterate over bounded chunks without loading the full table.
  • Opt into record-axis storage chunking and use the included benchmark for 100k- and 1M-record cases.
  • Validate HDF5 envelopes, embedded schemas, hashes, and provenance; writes remain atomic.
  • Inspect CSV, JSON, CPDataKit HDF5, and selected DAMASK DADF5 inputs from the CLI.
  • Produce HTML, Markdown, or canonical JSON reports with validation findings and descriptive statistics.
  • Use the read-only DAMASK DADF5 adapter and the hash-verified Surfalex HF Workflow 7A reference.
  • Preserve nested metadata on Dataset copies and immutable schema conventions in Python and JSON output.
  • Extend CI coverage across Python 3.10-3.13, lower-bound dependencies, clean-wheel smoke checks, and CodeQL.

Verification

The release tree passes the Ubuntu/Windows Python 3.10-3.13 CI matrix, lower-bound dependency tests,
Ruff checks, reproducible distribution checks, wheel smoke tests, and CodeQL analysis.

CPDataKit v0.2.0 - Explicit contracts for schema, tensor, and mapping workflows

Choose a tag to compare

@17636365690 17636365690 released this 24 Aug 10:27
4ce08cb

CPDataKit v0.2.0 - Explicit contracts for schema, tensor, and mapping workflows

This feature release extends CPDataKit's solver-neutral data boundary without adding scientific
inference. It makes external contracts easier to author and review, documents a stable tensor-valued
encoding, and adds an explicit JSON mapping path for command-line workflows.

Highlights

  • Create and validate schemas with make_field_schema, make_profile_schema, and validate_schema.
  • Serialize, write, and render schema contracts with schema_to_json, write_schema, and
    describe_schema.
  • Declare optional tensor components in row-major order while retaining explicit shape rules.
  • Pass a strict mapping file to validate, summary, convert, or plot with --mapping.
  • Preserve no-inference behavior: mapping targets must be declared and unit conversions must be
    explicit.
  • Add Hypothesis coverage for malformed nested fields and HDF5 tensor round trips.
  • Include pinned reproducible package builds and CodeQL Python scanning in the maintenance gates.

Verification

The merged release preparation passed 60 local tests, Ruff checks, package build and Twine checks,
the full Windows/Ubuntu Python 3.10-3.13 CI matrix, and CodeQL Python analysis with no findings.

Scope

CPDataKit remains a schema and data-quality toolkit. It does not read ODB or DAMASK DADF5, run a
solver or UMAT, infer physical conventions, certify scientific correctness, or claim external
downstream adoption without a documented user or project.

CPDataKit v0.1.1 - Secure distribution and a five-minute path to value

Choose a tag to compare

@17636365690 17636365690 released this 17 Aug 04:25
92f49d8

CPDataKit v0.1.1 - Secure distribution and a five-minute path to value

This maintenance release prepares CPDataKit for secure, low-friction distribution without changing
its solver-neutral data contract or public Python API. It adds a deterministic five-minute
quickstart, clearer installation guidance, complete package links, and a scientifically scoped
social preview.

Validation now fails closed for malformed custom schemas and incompatible boolean or numeric
values. Per-record numeric arrays enforce integer and range constraints; duplicate detection safely
handles nested arrays and mappings; affine unit conversions preserve both scale and offset; and
malformed CPDataKit HDF5 tables and unsupported histogram fields return concise domain errors.

The PyPI workflow builds only from an existing semantic-version tag, verifies that the tag,
pyproject.toml, runtime version, citation metadata, changelog, and release notes agree, checks both
distributions with Twine, and publishes through short-lived OIDC credentials after an explicit
GitHub environment approval. No long-lived PyPI token is stored in the repository.

CPDataKit validates explicit schemas, units, provenance, and data-quality constraints. It does not
certify physical correctness, read ODB or DAMASK DADF5, run a solver or UMAT, or infer scientific
conventions. All bundled examples remain fixed-seed synthetic data.

Before publishing, the full Windows/Ubuntu Python 3.10-3.13 matrix passed alongside 51 local tests,
Ruff, package build, Twine checks, a clean wheel installation, and the quickstart smoke test.

CPDataKit v0.1.0 — Explicit, solver-neutral data quality foundations

Choose a tag to compare

@17636365690 17636365690 released this 12 Aug 05:51
d329b08

CPDataKit v0.1.0 - Explicit, solver-neutral data quality foundations

The first alpha release introduces a small Python toolkit for making crystal-plasticity simulation
datasets explicit, traceable, and easier to inspect. It supports versioned curve, point, and
field2d profiles; UTF-8 CSV, JSON records, and CPDataKit HDF5; structured validation; explicit
field/unit normalization; summaries; headless PNG/SVG plots; a CLI; and a typed Python API.

CPDataKit HDF5 records schema/profile, units, field mapping, source basename and SHA-256, UTC time,
software versions, operation log, and validation summary. All bundled datasets are reproducible,
fixed-seed synthetic examples.

This release does not read ODB or DAMASK DADF5, run a solver or UMAT, infer scientific
conventions, certify physical correctness, or provide 3D/GUI/distributed processing. CPDataKit is
not affiliated with DAMASK, Abaqus, or Dassault Systèmes.

Verification before publication: run the GitHub Actions Windows/Ubuntu Python 3.10-3.13 matrix,
Ruff, package build, and wheel smoke test. Locally, v0.1.0 passed 35 tests on Windows/Python 3.12,
fresh editable installation, wheel-only installation, and all README core commands.