Skip to content

v0.2.0

@freeaigit freeaigit tagged this 23 May 21:06
Mirrors the gpu_api/convert.py expansion shipped today on free.ai.
Total HANDLERS coverage: 495 → 595 (+100 pairs).

Data (+19 pairs via pandas + PyYAML + lxml):
  csv↔tsv, json↔xml, xml↔csv, csv↔xml, json↔yaml (+yml alias),
  yaml↔csv, csv→html, csv→md, json→md, csv→sql

Subtitle (+10 pairs via SRT-cue pivot):
  ass↔srt, ass↔vtt, ass→txt, vtt↔ass, vtt→txt,
  sbv↔srt, sbv↔vtt, srt↔sbv, vtt↔sbv

  Pattern: every format parses to [(start, end, text), ...] and every
  writer consumes the same shape. Adding the next format (TTML/SUB/SMI)
  is one parser + one writer, not N² handlers.

Archive (+31 pairs; expanded _ARCHIVE_FMTS):
  Was zip / tar / tar.gz / tgz / 7z (20 pairs).
  Now adds bz2, xz, gz (bare) variants. _archive_convert uses
  tarfile.open(..., "r:*") for auto-detect on read + a mode_map for
  write. py7zr still does 7z.

Mesh (+19 pairs via trimesh; expanded _MESH_FMTS):
  Was obj / stl / ply / glb / gltf (20 pairs).
  Now adds 3mf, dae, off — all native trimesh formats.
  FBX (Autodesk closed-source SDK) and USDZ (heavy usd-core dep)
  intentionally skipped — fold in only if user demand justifies.

New optional-deps group:
  data = ["pandas>=2", "PyYAML>=6", "lxml>=4", "tabulate>=0.9"]
  (tabulate is the runtime backend for pandas.to_markdown())

14 new tests in tests/test_new_handlers.py — every test gated on
`pytest.importorskip` for the relevant optional dep so CI without
pandas/yaml/trimesh still runs the subtitle ones cleanly.

Version bumped 0.1.0 → 0.2.0, description updated to mention the
new format families.
Assets 2
Loading