Metadata-Version: 2.3
Name: replion
Version: 0.1.0
Summary: A data generation framework
Author: Jia Hao
Author-email: Jia Hao <yeojiahao89@gmail.com>
Requires-Dist: pyyaml>=6.0.3
Requires-Dist: tzdata>=2026.4 ; sys_platform == 'win32'
Requires-Python: >=3.14
Description-Content-Type: text/markdown

# Replion

Replion is an early-stage data generation framework for creating repeatable test data from simple YAML models. It is intended to help developers and testers describe the shape of realistic sample records without filling test cases with hard-coded values or writing a separate generator for every scenario.

A Replion model is written as a sequence of small building blocks. These can produce random strings, integers, floating-point numbers, booleans, UUIDs, and dates, or insert fixed text between generated values. Models can also describe external datasets, such as lists of names, cities, countries, or domains, with the goal of selecting and reusing believable values when composing larger records.

For example, a model could combine a first name and last name from datasets, add a randomly generated age and account identifier, and attach timestamps formatted for a chosen timezone. This makes the project suitable for experimenting with user profiles, transaction records, form inputs, and other data used in automated testing.

```yaml
name: "user_record"
version: "1.0"

step:
  - literal:
      value: "age="

  - integer:
      min: 18
      max: 80

  - literal:
      value: " | active="

  - boolean:

  - literal:
      value: " | id="

  - uuid:
```

## Project goals

Replion is being developed as part of an automated testing framework. Its broader aim is to provide a readable, reusable way to define test data while keeping model files independent from the code that consumes them. A complete version should be able to load a model, validate its configuration, resolve dataset references, generate the requested values, and return a finished record for use in tests.

The current implementation already includes YAML loading and parsing, an internal model for generation steps, and generators for several primitive value types. The included `test.yml` is a larger sample model used to explore record composition, numeric ranges, date formats, repeated datasets, and edge cases.

## Current status

This repository is a work in progress and is not yet a complete end-to-end framework. Primitive generators are present, but dataset loading and selection, reference handling, model-wide validation, output assembly, and a public command-line interface still need to be completed. Automated tests and user-facing error reporting are also planned areas of development.

At this stage, Replion is best viewed as a prototype that establishes the YAML format and the core generation model. The format and public interface may change as the remaining execution and validation features are added.
