A Python package for generating fake table data. Get data in pandas dataframe & pyarrow table or export to Csv, Json, Excel or Parquet
Project description
Table Faker
tablefaker is a versatile Python package that empowers you to effortlessly create realistic but synthetic table data for a wide range of applications. If you need to generate test data for software development, this tool simplifies the process with an intuitive schema definition in YAML format.
Key Features
Schema Definition: Define your target schema using a simple YAML file. Specify the structure of your tables, column names, fake data generation function, and relationships.
Faker and Randomization: Leverage the power of the Faker library and random data generation to create authentic-looking fake data that mimics real-world scenarios.
Multiple Output Formats: Generate fake data in various formats to suit your needs
- Pandas Dataframe
- CSV File
- Parquet File
- JSON File
- Excel File
Installation
pip install tablefaker
Sample Yaml File
version: 1
config:
locale: en_US
tables:
- table_name: person
row_count: 10
columns:
- column_name: id
data: row_id
- column_name: first_name
data: fake.first_name()
- column_name: last_name
data: fake.last_name()
- column_name: age
data: fake.random_int(18, 90)
- column_name: dob
data: fake.date_of_birth()
null_percentage: 0.20
- column_name: salary
data: None # NULL
- column_name: height
data: "\"170 cm\"" # string
- column_name: weight
data: 150 # number
- table_name: employee
row_count: 5
columns:
- column_name: id
data: row_id
- column_name: person_id
data: fake.random_int(1, 10)
- column_name: hire_date
data: fake.date_between()
- column_name: school
data: fake.school_name() # custom provider
Sample Code
import tablefaker
tablefaker.to_csv("test_table.yaml") # exports to current folder in csv format
tablefaker.to_json("test_table.yaml", "./target_folder") # exports all tables in json format
tablefaker.to_parquet("test_table.yaml", "./target_folder") # exports all tables in parquet format
tablefaker.to_excel("test_table.yaml", "./target_folder/target_file.csv") # exports only the first table in excel format
#you can use customer faker provider
from faker_education import SchoolProvider
tablefaker.to_csv("tests/test_table.yaml", "./tests/exports", fake_provider=SchoolProvider)
Sample CLI Command
tablefaker --config test_table.yaml # exports to current folder in csv format
tablefaker --config test_table.yaml --file_type excel # exports to current folder in excel format
tablefaker --config test_table.yaml --file_type json --target ./target_folder # exports all tables in json format
tablefaker --config test_table.yaml --file_type parquet --target ./target_folder/target_file.parquet # exports only the first table
Sample CSV Output
id,first_name,last_name,age,dob,salary,height,weight
1,John,Smith,35,1992-01-11,,170 cm,150
2,Charles,Shepherd,27,1987-01-02,,170 cm,150
3,Troy,Johnson,42,,170 cm,150
4,Joshua,Hill,86,1985-07-11,,170 cm,150
5,Matthew,Johnson,31,1940-03-31,,170 cm,150
Faker Functions List
https://faker.readthedocs.io/en/master/providers.html#
Bug Report & New Feature Request
https://github.com/necatiarslan/table-faker/issues/new
TODO
- Custom fake data creation function
- Foreign key
- Parquet Column Types
Nice To Have
- Export To PostgreSQL
- Inline schema definition
- Json schema file
- Pyarrow table
- Use Logging package
- Exception Management
Follow me on linkedin to get latest news
https://www.linkedin.com/in/necati-arslan/
Thanks,
Necati ARSLAN
necatia@gmail.com
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
Built Distribution
File details
Details for the file tablefaker-1.0.1.tar.gz
.
File metadata
- Download URL: tablefaker-1.0.1.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 25031344aba9c35eb2f43a5a695ba9ddaedb34540c0867a181e0f1bac011d7e3 |
|
MD5 | 4ea602a60cc3b5a73b5daea179fd4468 |
|
BLAKE2b-256 | 4be0a07e678ba0819cf1a5b5d8855c8d31fe6f36c2a99bb965b19b552d0208fa |
File details
Details for the file tablefaker-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: tablefaker-1.0.1-py3-none-any.whl
- Upload date:
- Size: 11.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 248723da3e919775c7a1cfd599a8a1d59dd04a0ace309c66141390fcc99663e1 |
|
MD5 | 3fc43bf98d83e3409bd5ef342db6aedb |
|
BLAKE2b-256 | 05cbaa88babff2011514402b6b56d1b478d6b71e7334932e5513391906152618 |