Skip to content

Tags: VynFi/VynFi-python

Tags

v1.4.0

Toggle v1.4.0's commit message
feat: v1.4.0 — DataSynth 3.0 + VynFi API adoption

API additions:
- Scenarios.packs() — list 11 built-in scenario packs (fraud, control
  failure, macro, operational): vendor_collusion_ring, management_override,
  ghost_employee, procurement_kickback, channel_stuffing, sox_material_weakness,
  it_control_breakdown, recession_2008_replay, supply_chain_disruption_q3,
  interest_rate_shock_300bp, erp_migration_cutover.
- Fingerprint resource (client.fingerprint.synthesize) — privacy-preserving
  synthesis from .dsf files via multipart upload. Team+ / Scale+ tier gates.
- Adversarial resource (client.adversarial.probe, .results) — ONNX model
  probing for fraud detector robustness. Enterprise tier.
- Jobs.tune() — LLM-powered config suggestion based on a completed job's
  quality scores. Scale+.
- AI resource (client.ai.chat) — dashboard co-pilot free-text chat. Scale+.

Contract changes:
- Scenarios.create() now takes {name, generation_config} (DS 3.0 API). Legacy
  template_id/interventions kwargs are accepted and auto-folded into
  generation_config.scenarios.* for backward compatibility.
- Default client timeout bumped 30s -> 60s.

Models: ScenarioPack, ScenarioPackList, FingerprintSynthesisResponse,
AdversarialProbeResponse, AdversarialProbeResults, ProbeSample, AiTuneResponse,
AiChatResponse, QualitySummary.

Upstream (DataSynth) status:
- OCPM fields now populated on JE headers (209/300 in sample retail job).
- exportLayout: flat still hangs the binary — pending upstream.
- numericMode: native confirmed working (from 2.3.1 cycle).

Four new examples: scenario_packs.py, ai_tune.py, fingerprint_synthesis.py,
neural_diffusion.py.

Verified live: scenarios.packs() returns 11 packs, jobs.tune() returns LLM
suggestions, ai.chat() replies, OCPM on JEs populated. 62/62 unit tests pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>

v1.3.0

Toggle v1.3.0's commit message
docs: v1.3.0 verified live — 10/11 server fixes confirmed

After API team's commit 8f0fc4a deploy, end-to-end verification shows:

FIXED (verified live):
- #1 SAS firewall — blob downloads return correct bytes
- #3 exportLayout=flat — journal entries layout=flat
- #4 analytics — endpoint returns Benford(MAD=0.0066), amount(skew=37.66)
- #5 submit_raw — no more sqlx error, correct YAML validation
- #6 banking display_name — "Jennifer Thompson" returned
- #7 fraud propagation — is_fraud=true on PO headers
- #8 OCPM data — 19,974 events + 7,381 objects in process_mining/
  (richer than per-JE refs would have been)
- #9 list_files for blob jobs — 84 files indexed
- #11 tier reporting — now reports "Scale" correctly

UPSTREAM (DataSynth CLI):
- #2 numericMode=native still emits strings (filed upstream)

NEW archive categories in v2.3:
- analytics/ — Benford + amount distribution
- labels/ — anomaly + fraud red flags
- process_mining/ — full OCEL 2.0 event log

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

v1.2.0

Toggle v1.2.0's commit message
feat: v1.2.0 — file listing, output estimates, per-file download

Add Jobs.list_files() for the new GET /v1/jobs/{id}/files endpoint
that returns file paths, sizes, content types, and per-file column
schemas extracted from the first JSON record.

Add OutputEstimate model and output field on EstimateCostResponse
showing estimated file count and archive size before running a job.

Per-file download (GET /v1/jobs/{id}/download/{file}) now works
after the API-side fix deployed today.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

v1.1.0

Toggle v1.1.0's commit message
style: format _archive.py for ruff

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

v1.0.0

Toggle v1.0.0's commit message
fix: use typing.List/Optional in resources with list() methods for mypy

Resources that define a list() method shadow the builtin, causing mypy
to interpret list[X] annotations as calling the method. Switch to
typing.List/Optional in catalog, configs, scenarios, and notifications
(matching the existing workaround in api_keys and webhooks).

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

v0.1.0

Toggle v0.1.0's commit message
fix: add eval_type_backport for Python 3.9 Pydantic compatibility

Pydantic evaluates type annotations at runtime, so `int | None` syntax
fails on Python 3.9. The eval_type_backport package provides runtime
support for PEP 604 union syntax on older Python versions.

Co-Authored-By: Claude Opus 4.6 <[email protected]>