Skip to main content

Generate coherent synthetic US-person profiles sampled from US demographic distributions.

Project description

aurium-people 🫂

Generate coherent synthetic US-person profiles sampled from US demographic distributions.

aurium-people is a Faker-style package that fixes Faker's main shortcoming for people data: with Faker, each call is independent, so a name doesn't correspond to its email, phone, or address. An aurium-people profile ties everything together — name → email → phone → address → state → ethnicity → language → age → employment → job → work email — into one mutually-consistent person.

The distribution name is aurium-people; import it as aurium_people.

Install 📦

uv pip install aurium-people

Quickstart 🚀

from aurium_people import Profile, Profiles

# One coherent profile
p = Profile()
print(p.first_name, p.full_name, p.email, p.ssn, p.job_title)

# Reproducible: same seed -> identical profile
a = Profile(seed=42)
b = Profile(seed=42)
assert a.to_dict() == b.to_dict()

# A batch of profiles
people = Profiles(50, seed=7)
print(len(people))          # 50
print(people[0].job_title)

# Subset a single profile
p.only("first_name", "email")   # -> {"first_name": ..., "email": ...}

# Subset across the whole collection
people.only("first_name", "email")  # -> list[dict]

Reproducibility 🔁

Profile(seed=N) seeds a private random.Random and Faker instance, so the same seed always produces the same profile. Profiles(count, seed=N) generates profile i with seed N + i, making the whole batch reproducible. Passing no seed (or seed=None) yields a fresh random profile each time.

Fields 📋

A Profile exposes ~40 fields, including:

Group Fields
Demographics gender, first_name, last_name, full_name, address, state, ethnicity, native_language, age, date_of_birth
Contact email, personal_phone, work_phone
Documents ssn, passport_number, driving_licence_number
Employment is_employed, employment_status, organization, job_title, job_category, work_email, employee_id, office_location, years_at_company
Education education_level, institution, student_email, student_id
Accounts bank_account_number, customer_account_id, account_number
Other PII religion, medical_condition, volunteer_work, hobby_club_membership, vehicle_make_model, vehicle_color, license_plate, formality_level

Generation options 🎛️

Profile() and Profiles() forward these keyword arguments to the generator:

  • min_age / max_age — age range (default 16–86).
  • force_employment_status — one of "Employed", "Student", "Retired", "Unemployed", "Not in Labor Force". Default follows the statistical distribution.
  • prob_double_barrel_first / prob_double_barrel_second — chance of hyphenated names.
  • prob_number_in_email — chance of a number in the personal email.

License 📄

MIT

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

aurium_people-0.1.0.tar.gz (23.7 kB view details)

Uploaded Source

Built Distribution

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

aurium_people-0.1.0-py3-none-any.whl (26.1 kB view details)

Uploaded Python 3

File details

Details for the file aurium_people-0.1.0.tar.gz.

File metadata

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

File hashes

Hashes for aurium_people-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e7c7641c5188542fbfdd39d82d85a75a1b7f5568e681867fb44c985e15b8be72
MD5 809b68d55485b25eee696a63041f16c9
BLAKE2b-256 24bf590dc8edd79902acf64e915b619958b105c53def11d82fc49bc58f5d3115

See more details on using hashes here.

Provenance

The following attestation bundles were made for aurium_people-0.1.0.tar.gz:

Publisher: release.yml on aurium-labs/aurium-people

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

File details

Details for the file aurium_people-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: aurium_people-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 26.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aurium_people-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7f5e26e8ec5b2131b2bc42b1f1b9e3f76b6008c448f496212bfded3b9f6498bd
MD5 5f7f9808fc01f15fbfc290e7eddc9bd0
BLAKE2b-256 57818e18aeaf6056283b18e8e10de04259f9b7a7f9a3cf96319ceaa83b2b84a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for aurium_people-0.1.0-py3-none-any.whl:

Publisher: release.yml on aurium-labs/aurium-people

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