Skip to main content

🚀 DataForge

Generate realistic synthetic datasets with a simple and powerful API.

DataForge is a modern Python library for generating realistic synthetic datasets for testing, software development, machine learning, education, demonstrations, and AI projects.


✨ Features

  • 🚀 Generate thousands of realistic records in seconds
  • 📦 15 built-in datasets
  • 🛠 Create custom datasets using schemas
  • 📊 Returns Pandas DataFrame
  • 💾 Export to CSV
  • 📄 Export to JSON
  • 📗 Export to Excel (.xlsx)
  • 🗄 Export to SQLite
  • ⚡ Fast and lightweight
  • 🌍 Cross-platform
  • 🐍 Python 3.10+

📦 Installation

Install from PyPI:

pip install dataforgeplus

Or install from source:

git clone https://github.com/Aatif05-it/DataForge.git

cd DataForge

pip install -e .

🚀 Quick Start

Generate an Employee Dataset

from dataforge import forge

df = forge(
    dataset="employee",
    rows=10
)

print(df.head())

Example Output

Name Email Department Salary
John Smith john@email.com IT 72000
Emma Wilson emma@email.com HR 61000

🛠 Custom Dataset

from dataforge import forge

df = forge(
    rows=100,
    schema={
        "name": "name",
        "email": "email",
        "phone": "phone",
        "salary": "salary"
    }
)

print(df.head())

📚 Available Datasets

from dataforge import available_datasets

print(available_datasets())

Output

[
'airline',
'banking',
'countries',
'creditcard',
'ecommerce',
'employee',
'hospital',
'hr',
'library',
'mobile',
'realestate',
'restaurant',
'student',
'vehicle',
'weather'
]

💾 Export Examples

CSV

df.to_csv("employees.csv", index=False)

Excel

df.to_excel("employees.xlsx", index=False)

JSON

df.to_json(
    "employees.json",
    orient="records",
    indent=4
)

SQLite

import sqlite3

conn = sqlite3.connect("employees.db")

df.to_sql(
    "employees",
    conn,
    if_exists="replace",
    index=False
)

conn.close()

📚 Complete Example

from dataforge import forge

employees = forge(
    dataset="employee",
    rows=100
)

employees.to_csv("employees.csv", index=False)

print(employees.head())

🏷 Built-in Datasets

  • Airline
  • Banking
  • Countries
  • Credit Card
  • Ecommerce
  • Employee
  • Hospital
  • HR
  • Library
  • Mobile
  • Real Estate
  • Restaurant
  • Student
  • Vehicle
  • Weather

🔧 Supported Providers

Some commonly used providers include:

name
first_name
last_name
email
phone
city
state
country
company
department
salary
gender
uuid
date
price
product
invoice_number
order_id
doctor
student_id
employee_id
vehicle
credit_card
passport_number
pan
aadhaar

📁 Project Structure

DataForge/
│
├── dataforge/
│   ├── __init__.py
│   ├── forge.py
│   ├── cli.py
│   ├── datasets/
│   ├── providers/
│   └── utils/
│
├── docs/
├── examples/
├── tests/
├── LICENSE
├── MANIFEST.in
├── pyproject.toml
├── setup.py
└── README.md

🗺 Roadmap

  • ✅ CSV Export
  • ✅ JSON Export
  • ✅ Excel Export
  • ✅ SQLite Export
  • 🔜 YAML Schema Support
  • 🔜 AI Dataset Generator
  • 🔜 PostgreSQL Export
  • 🔜 MongoDB Export
  • 🔜 Parquet Export
  • 🔜 REST API

📋 Requirements

  • Python 3.10+
  • pandas
  • Faker
  • openpyxl

📜 License

This project is licensed under the MIT License.


👨‍💻 Author

Khan Aatif

GitHub

https://github.com/Aatif05-it


🤝 Contributing

Contributions are welcome.

  1. Fork the repository.
  2. Create a feature branch.
  3. Commit your changes.
  4. Push to your fork.
  5. Open a Pull Request.

⭐ Support

If you find DataForge useful, please consider giving the project a ⭐ on GitHub.

Repository:

https://github.com/Aatif05-it/DataForge


📧 Contact

Email:

mohdaatif9820@gmail.com

Metadata

Release files for dataforgeplus 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dataforgeplus 1.0.1
File Size Uploaded
dataforgeplus-1.0.1.tar.gz 30.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dataforgeplus 1.0.1
File Interpreter ABI Platform
dataforgeplus-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 87.2 kB

Release files / dataforgeplus-1.0.1.tar.gz

Download URL dataforgeplus-1.0.1.tar.gz
Size 30.5 kB
Tags Source
SHA-256 checksum
How to use checksums
88e0ad5b6a717d1da869b35ea327ba7ce594ce8010372d3d6d9217141b52d89e
BLAKE2b-256 checksum
How to use checksums
f9d5926aeff4fb18d810d99296f1f4770175d4f0afbe8d90c80b6c2bb60142f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.4

Release files / dataforgeplus-1.0.1-py3-none-any.whl

Download URL dataforgeplus-1.0.1-py3-none-any.whl
Size 56.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bf3aa44bea8e68dce80573f61a6336ac9b01866f01602bdd6fc9ec7e5f9811f3
BLAKE2b-256 checksum
How to use checksums
f5eea85dc7bcab327730fecdb6689c2f0707e3e943fb882aa21eaf42d9f66eb7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.4

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page