semvec/pypi-packages huggingface dataset:
vorongen 0.1.1
Synthetic data generation engine for dependency-driven tabular datasets
Requires Python: >=3.9
Keywords: synthetic-data, tabular-data, data-generation, simulation

# vorongen

`vorongen` is a config-driven synthetic tabular data generator for dependency-aware
workflows with binary, categorical, and continuous columns.

It supports:

- YAML or Python-dict configurations
- dependency-aware conditional distributions
- quality metrics and best-effort retry loops
- optional torch-backed controller optimization
- import-first Python API

## Installation

From PyPI:

```bash
pip install vorongen
```

From source:

```bash
git clone <repo-url>
cd vorongen
pip install -e .
```

Optional source extras:

```bash
pip install -e .[dev]    # lint, type-checking, tests
pip install -e .[docs]   # Sphinx docs tooling
pip install -e .[torch]  # torch controller backend
```

## Runtime mode

`vorongen` is API-only. No CLI entrypoint is shipped.

Use `python sample_run.py` for a quick local smoke run.

## Quick Python API usage

```python
from vorongen import RunConfig, VorongenSynthesizer, get_sample_config

config = get_sample_config("mixed")
run_cfg = RunConfig(
    n_rows=3000,
    seed=101,
    tolerance=0.04,
    max_attempts=2,
    log_level="quiet",
)

result = VorongenSynthesizer(config, run_cfg).generate()
print(result.success, result.objective())
print(result.output_path)
```

Default output path is `output/<timestamp>_vorongen.xlsx`.

## Documentation (Sphinx)

Primary docs are maintained in Sphinx under `source/`.

- Quickstart: `source/quickstart.md`
- Configuration: `source/configuration.md`
- API reference: `source/api.md`
- Architecture: `source/architecture.md`
- Editable architecture diagram: `source/diagrams/vorongen-architecture.drawio`
- Troubleshooting: `source/troubleshooting.md`
- Release guide (Git + PyPI): `source/release.md`

Build docs locally:

```bash
python -m sphinx -W -b html source build/html
```

## Quality gate

```bash
ruff check .
ruff format --check .
mypy src/vorongen
PYTHONPATH=src python -m unittest discover -s tests -p "test*.py" -q
coverage run -m unittest discover -s tests -p "test*.py"
coverage report --fail-under=85
python -m build
python -m twine check dist/*
```

## Project standards

- Contribution guide: `CONTRIBUTING.md`
- Security policy: `SECURITY.md`
- Code of conduct: `CODE_OF_CONDUCT.md`
- Changelog: `CHANGELOG.md`
ezjww 0.1.0
Add your description here
Requires Python: >=3.13

# ezjww

`ezjww` is a JWW parser and DXF conversion library.
The core parser/writer is implemented in Rust and exposed to Python with PyO3.

## Current Features

- Validate and parse `.jww` files.
- Read document/header data from Python.
- Convert parsed JWW entities to DXF intermediate entities.
- Write ASCII DXF files.
- Emit DXF handles, `BLOCK_RECORD` table, and `OBJECTS` section for better CAD compatibility.

## Python API

```python
from ezjww import (
    audit,
    bbox,
    is_jww_file,
    readfile,
    plot_jww,
    read_document,
    read_dxf_document,
    report,
    stats,
    to_dxf_string,
    write_dxf,
)

ok = is_jww_file("sample.jww")
doc = read_document("sample.jww")
dxf_doc = read_dxf_document("sample.jww")
dxf_text = to_dxf_string("sample.jww")
write_dxf("sample.jww", "sample.dxf")
plot_jww("sample.jww", save_path="sample.png")

drawing = readfile("sample.jww")
msp = drawing.modelspace()
lines = msp.query("LINE", layer="#lv4")
mix = msp.query('LINE POINT[layer=="#lv4", color==5]')  # ezdxf-like selector
extents = drawing.bbox(explode_inserts=True)
raw_dxf = drawing.to_dxf_string()
dist = drawing.stats()
health = drawing.audit()  # or: audit("sample.jww")
full = report("sample.jww", explode_inserts=True)

# expand INSERT references (nested block aware)
flat = drawing.to_dxf(explode_inserts=True, max_block_nesting=32)
flat_count = len(flat["entities"])
# max_block_nesting must be >= 1
```

## CLI

The package installs the `ezjww` command.

```bash
# show summary
ezjww info jww_samples/Test1.jww

# run health checks
ezjww audit jww_samples/Test1.jww --json

# calculate drawing extents
ezjww bbox jww_samples/Test1.jww --json --explode-inserts

# show entity distribution
ezjww stats jww_samples/Test1.jww --json

# show combined audit+bbox+stats
ezjww report jww_samples/Test1.jww --json --explode-inserts

# convert one file
ezjww to-dxf jww_samples/Test1.jww -o /tmp/Test1.dxf

# convert one file + JSON report
ezjww to-dxf jww_samples/Test1.jww -o /tmp/Test1.dxf --report json

# convert one file with INSERT expansion
ezjww to-dxf jww_samples/Test1.jww -o /tmp/Test1.dxf --explode-inserts

# convert directory (recursive)
ezjww to-dxf-dir jww_samples -o /tmp/dxf_out -r

# render with matplotlib
ezjww plot jww_samples/Test1.jww -o /tmp/Test1.png --explode-inserts
```

## Development

```bash
cargo fmt --all
cargo test
maturin develop
```

## Optional plotting dependency

```bash
pip install "ezjww[plot]"
```