Skip to content

Releases: datenoio/iterabledata

Release v1.0.23

Choose a tag to compare

@github-actions github-actions released this 18 Aug 16:51
1adface

What's Changed

Full Changelog: v1.0.22...v1.0.23

Release v1.0.22

Choose a tag to compare

@github-actions github-actions released this 18 Aug 16:41
58292fc

What's Changed

  • Teach coding models the public IterableData API by @ivbeg in #14
  • Archive improve-llm-code-generation OpenSpec change by @ivbeg in #16
  • Distribute IterableData indexes for MCP, skills, and llms.txt crawlers by @ivbeg in #17
  • Archive distribute-agent-discovery OpenSpec change by @ivbeg in #18
  • Publish iterable-mcp to the MCP Registry on tagged releases by @ivbeg in #19
  • Archive publish-mcp-registry OpenSpec change by @ivbeg in #20
  • Release 1.0.22 by @ivbeg in #21

Full Changelog: v1.0.21...v1.0.22

Release v1.0.21

Choose a tag to compare

@github-actions github-actions released this 10 Aug 18:15

Full Changelog: v1.0.20...v1.0.21

Release v1.0.20

Choose a tag to compare

@github-actions github-actions released this 07 Aug 11:59

Full Changelog: v1.0.18...v1.0.20

Release v1.0.18

Choose a tag to compare

@github-actions github-actions released this 22 Jul 10:44

Full Changelog: v1.0.17...v1.0.18

Release v1.0.17

Choose a tag to compare

@ivbeg ivbeg released this 16 Jul 07:02

Full Changelog: v1.0.16...v1.0.17

Release v1.0.16

Choose a tag to compare

@github-actions github-actions released this 15 Jul 10:55

Release v1.0.16

Changes

See CHANGELOG for details.

Installation

pip install iterabledata==1.0.16

Distribution Files

  • Source distribution (.tar.gz)
  • Wheel (.whl)

Built on:

Release v1.0.15

Choose a tag to compare

@github-actions github-actions released this 04 Jul 12:16

Release v1.0.15

Changes

See CHANGELOG for details.

Installation

pip install iterabledata==1.0.15

Distribution Files

  • Source distribution (.tar.gz)
  • Wheel (.whl)

Built on:

v1.0.14

Choose a tag to compare

@ivbeg ivbeg released this 26 Jun 15:21

What's new in 1.0.14

Added

  • Avro write support: AVROIterable is now writable (previously read-only). Adds write(), write_bulk(), and read_bulk(), with lazy schema inference from the first record when no explicit schema/keys are supplied (mirroring the ORC writer). Values are coerced to an all-nullable-string schema (["null", "string"]) so heterogeneous and missing values round-trip, field names are validated against Avro naming rules with an actionable error, and the Avro codec is configurable via compression/codec (defaulting to the dependency-free deflate). New fields_to_avro_schema() helper, and the avro format descriptor is now marked writable.

Changed

  • ORC robust schema inference: The ORC writer defers writer creation until the first record and infers field names from it when no schema/keys are given. Inferred schemas are built via pyorc.Struct(**fields) instead of a struct<...> string, so columns whose names contain spaces, commas, colons, or non-ASCII characters are written correctly. write_bulk([]) is a no-op.
  • DuckDB/SQLite default table naming: Writing to a .ddb/.duckdb or .sqlite/.db file without an explicit table now derives (and SQL-sanitizes) the target table name from the output filename, so generic conversions like convert(src, "data.ddb") / convert(src, "data.sqlite") work without extra configuration.
  • Lance import diagnostics: Lance read/write now fails fast with an actionable error (_require_lance()) when the genuine pylance library is missing or when the unrelated PyPI package named lance shadows it on import.

Full Changelog: v1.0.13...v1.0.14

v1.0.13

Choose a tag to compare

@ivbeg ivbeg released this 25 Jun 07:49

iterabledata 1.0.13

Highlight: block-based AI documentation with structured, machine-readable output.

Added

  • Block-based AI documentation: New ai.doc.generate_blocks() produces structured documentation as independent blocks (general, schema, quality, examples, statistics, codebook) returning {source, blocks{name:{markdown,data}}, full_document_markdown}. Backed by a block registry (iterable/ai/blocks.py); lineage and geo_coverage are registered but deferred. ai.doc.generate() stays fully backward compatible and delegates to the block engine.
  • Structured LLM output: generate_structured() on the provider abstraction (JSON Schema where supported, json_object + Pydantic validation fallback) with per-block Pydantic models. Schema-block LLM calls are batched when columns > 100.
  • AI context, progress, and sampling: context parameter threaded into prompts; in-process progress hooks with a Stage enum and progress callback plus per-stage structured JSON logging; size-based sampling tiers driven by MAX_ROWS_SAMPLING.
  • File metadata and multi-table docs: File metadata helpers (size, sha256, encoding, record_count, table_count); XLS/XLSX multi-table documentation with tables= selection and per-table schema blocks.
  • Generic OpenAI-compatible provider: Honors LLM_PROVIDER / LLM_BASE_URL / LLM_API_KEY / LLM_DEFAULT_MODEL environment variables.
  • Extended column statistics: ops.stats.compute() gains optional null_fraction, top_values, and is_dictionary.
  • Format metadata registry, ingest/codec deduplication, uncovered format tests, conformance fixture auto-discovery, format doc stubs, and per-package coverage tracking.

Changed

  • Fixture consolidation, detect/guidance/dataframe/codec module splits, partial strict mypy core (blocking in CI), documented placeholder formats, ZIP wrappers on BaseFileIterable, fixed Docusaurus docs build, pre-commit Ruff bumped to v0.14.9, per-format install hints.

Fixed

  • XML tagname no longer overwritten with None after super().__init__().
  • Pickle read_bulk returns [] at EOF instead of raising StopIteration.

See CHANGELOG.md for full details.