Repository navigation
Releases: datenoio/iterabledata
Releases · datenoio/iterabledata
Release list
Release v1.0.23
Release v1.0.22
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
Full Changelog: v1.0.20...v1.0.21
Release v1.0.20
Full Changelog: v1.0.18...v1.0.20
Release v1.0.18
Full Changelog: v1.0.17...v1.0.18
Release v1.0.17
Release v1.0.16
Release v1.0.16
Changes
See CHANGELOG for details.
Installation
pip install iterabledata==1.0.16Distribution Files
- Source distribution (
.tar.gz) - Wheel (
.whl)
Built on:
Release v1.0.15
Release v1.0.15
Changes
See CHANGELOG for details.
Installation
pip install iterabledata==1.0.15Distribution Files
- Source distribution (
.tar.gz) - Wheel (
.whl)
Built on:
v1.0.14
What's new in 1.0.14
Added
- Avro write support:
AVROIterableis now writable (previously read-only). Addswrite(),write_bulk(), andread_bulk(), with lazy schema inference from the first record when no explicitschema/keysare 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 viacompression/codec(defaulting to the dependency-freedeflate). Newfields_to_avro_schema()helper, and theavroformat 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/keysare given. Inferred schemas are built viapyorc.Struct(**fields)instead of astruct<...>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/.duckdbor.sqlite/.dbfile without an explicittablenow derives (and SQL-sanitizes) the target table name from the output filename, so generic conversions likeconvert(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 genuinepylancelibrary is missing or when the unrelated PyPI package namedlanceshadows it on import.
Full Changelog: v1.0.13...v1.0.14
v1.0.13
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);lineageandgeo_coverageare 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:
contextparameter threaded into prompts; in-process progress hooks with aStageenum andprogresscallback plus per-stage structured JSON logging; size-based sampling tiers driven byMAX_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_MODELenvironment variables. - Extended column statistics:
ops.stats.compute()gains optionalnull_fraction,top_values, andis_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
tagnameno longer overwritten withNoneaftersuper().__init__(). - Pickle
read_bulkreturns[]at EOF instead of raisingStopIteration.
See CHANGELOG.md for full details.