name: iterabledata-development
description: Core development workflows, patterns, and conventions for IterableData. Use when implementing features, fixing bugs, or working with the codebase structure.
Large files: use streaming (iterator interface) to avoid memory issues
XML parsing: requires iterableargs={'tagname': 'item'}
Some formats require optional dependencies (see pyproject.toml)
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: datenoio-iterabledata-iterabledata-development3description: ---4---5---6name: iterabledata-development7description: Core development workflows, patterns, and conventions for IterableData. Use when implementing features, fixing bugs, or working with the codebase structure.8---910# IterableData Development1112## Quick Setup1314```bash15pip install -e ".[dev]"16pytest --verbose17ruff check iterable tests18ruff format iterable tests19```2021## Code Style2223- Python 3.10+ with type hints where appropriate24- Max line length: 120 characters25- Use `ruff` for linting and formatting26- Double quotes for strings consistently27- Always use context managers for file operations28- Import order: standard library, third-party, local imports2930## Project Structure3132- `iterable/helpers/` - Utility functions (detect, schema, utils)33- `iterable/datatypes/` - Format-specific implementations34- `iterable/codecs/` - Compression codec implementations35- `iterable/engines/` - Processing engines (DuckDB, internal)36- `iterable/convert/` - Format conversion utilities37- `iterable/pipeline/` - Data pipeline processing38- `tests/` - Test suite (one test file per format/feature)3940## Import Patterns4142- Main entry: `from iterable.helpers.detect import open_iterable`43- Format-specific: `from iterable.datatypes.csv import CSVIterable`44- Codecs: `from iterable.codecs.gzipcodec import GZIPCodec`45- Always use `open_iterable()` for user-facing code4647## File Handling4849- Always use context managers: `with open_iterable('file.csv') as source:`50- Never call `.close()` when using `with` statements51- Reset iterators with `.reset()` method when needed52- Handle compression automatically via filename detection5354## Error Handling5556- Format detection failures: provide helpful error messages57- Missing optional dependencies: raise clear ImportError with installation instructions58- Invalid file formats: raise appropriate exceptions (ValueError, TypeError)59- Always handle file I/O errors gracefully6061## Code Conventions6263- Use `open_iterable()` for automatic format detection64- Prefer bulk operations (`read_bulk`, `write_bulk`) for performance65- Use DuckDB engine when appropriate (CSV, JSONL files)66- Handle encoding automatically via `chardet` or user specification6768## Pre-Commit Checks6970Before committing:711. Run tests: `pytest --verbose`722. Run linter: `ruff check iterable tests`733. Format code: `ruff format iterable tests`744. Type check: `mypy iterable` (warnings allowed)7576## Quality Tools7778- Security: `bandit -r iterable -ll`79- Dead code: `vulture iterable --min-confidence 80`80- Complexity: `radon cc iterable --min B`81- Coverage: `pytest --cov=iterable --cov-report=html`8283## Known Constraints8485- DuckDB engine supports: CSV, JSONL, JSON formats and GZIP, ZStandard codecs86- Large files: use streaming (iterator interface) to avoid memory issues87- XML parsing: requires `iterableargs={'tagname': 'item'}`88- Some formats require optional dependencies (see `pyproject.toml`)8990---91> Converted and distributed by [TomeVault](https://tomevault.io/claim/datenoio) — claim your Tome and manage your conversions.92<!-- tomevault:4.0:skill_md:2026-04-11 -->
Run npx skillmds@latest add tomevault-io/datenoio-iterabledata-iterabledata-development in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
--- It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
tomevault-io (@tomevault-io) published this skill. Their other Agent Skills are listed on their SkillMD profile.