Skip to main content

Generate sample data from JSON schema or OAS models

Project description

json_sample_generator

Generate sample data from JSON Schema or OpenAPI (OAS) schemas. Create realistic samples for tests, examples, and fixtures.

CI PyPI version PyPI downloads/month License Python versions

Installation

From PyPI:

pip install sample-generator
# importable module name remains `json_sample_generator`

Or with uv:

uv add sample-generator

Quickstart

Prerequisites:

  • Python 3.12+
  • uv installed

Install uv (Linux/macOS):

curl -LsSf https://astral.sh/uv/install.sh | sh

Set up the project:

# Clone the repo
git clone https://github.com/<your-username>/json_sample_generator.git
cd json_sample_generator

# (Optional) create a virtualenv managed by uv
uv venv  # creates .venv/

# Install runtime deps
uv sync

# For development (tests, tools, etc.)
uv sync --group dev

Run tests:

uv run pytest -q

Run examples:

uv run python examples/simple_value_example.py

Developer guide

Code quality tools used by the project

  • uv (astral.sh/uv) — virtualenv + task runner used in CI
  • ruff — linting (CI runs uvx ruff check .)
  • black — formatting (CI runs uvx black --check .)
  • isort — import sorting (CI runs uvx isort --check-only .)
  • pytest — test runner (CI runs uv run pytest -q)

Automated-fix hints

  • Run ruff's auto-fixer to apply quick lint fixes: uvx ruff check . --fix
  • Reformat code with black: uvx black .
  • Sort imports with isort: uvx isort .
  • Run the full CI steps locally (create venv first):
     uv venv
     uv sync --group dev
     uvx ruff check .
     uvx black --check . && uvx isort --check-only .
     uv run pytest -q
    

These commands mirror what GitHub Actions runs so you can reproduce and fix CI failures locally.

Build and publish reminders

The repository's publish workflow builds with uv build and uses the pypa/gh-action-pypi-publish action; for first-time releases you may need a PyPI API token (or configure OIDC/trusted publishing on PyPI).

Pre-commit (recommended):

uvx pre-commit install
uvx pre-commit run --all-files

User guide: Scenarios

Scenarios let you override generated values per field path with simple values or callables, and optionally with pattern-based rules. They accept a Context so overrides can depend on other fields.

See the full guide (including default_data) in docs/SCENARIOS.md.

Contributing

See CONTRIBUTING.md.

License

MIT. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sample_generator-0.2.0.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sample_generator-0.2.0-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

Details for the file sample_generator-0.2.0.tar.gz.

File metadata

  • Download URL: sample_generator-0.2.0.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sample_generator-0.2.0.tar.gz
Algorithm Hash digest
SHA256 29663a92374a821340fab35fa2a0ed35c29a7247da27c312683606caa0bc845f
MD5 5e9ab6f47f45157432c63215480bbc69
BLAKE2b-256 fbf8abe8a4d11cc4a5ad73d303c0ae9f91a96f75e67ae7585603d207d6804e5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for sample_generator-0.2.0.tar.gz:

Publisher: publish.yml on bartoszm/sample_generator

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sample_generator-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sample_generator-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 422b450fbaa8212d2bfc3523ebcde731b20c0d330001c71513e3cd29fc1fe0e4
MD5 49ca6aaf965c332aa0eb9f9f44a9cf80
BLAKE2b-256 913db656ec387bf6f6db1aee411d858cdde17ac4ce4798a1a87d480f12d36faa

See more details on using hashes here.

Provenance

The following attestation bundles were made for sample_generator-0.2.0-py3-none-any.whl:

Publisher: publish.yml on bartoszm/sample_generator

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page