Skip to main content

强大的Python数据生成库,Faker的增强版

Project description

FakerX

FakerX 是一个强大的 Python 库,用于生成高质量的测试数据。它是 Faker 库的增强版,提供了更丰富的自定义选项、更灵活的数据结构生成,并集成了数据验证功能。

安装

pip install fakerx

基础用法

from fakerx import FakerX

fake = FakerX('zh_CN')

name = fake.name()
address = fake.address()
date = fake.date_of_birth()

print(f'生成姓名: {name}')
print(f'生成地址: {address}')
print(f'生成出生日期: {date}')

结构化数据生成

user_schema = {
    'id': '{pyint}',
    'username': '{user_name}',
    'email': '{email}',
    'profile': {
        'level': {'elements': ['初级', '中级', '高级']}
    }
}

user_data = fake.schema(user_schema, iterations=2)
print(user_data)

数据验证

from pydantic import BaseModel, EmailStr, conint

class User(BaseModel):
    id: conint(gt=0)
    name: str
    email: EmailStr

valid_user = fake.pydantic(User)
print(valid_user)

批处理

usernames = fake.batch('user_name', iterations=1000, unique=True)
print(usernames[:5])

唯一字段约束

user_schema = {
    'id': '{pyint}',
    'username': '{user_name}',
    'email': '{email}'
}

user_data = fake.schema(user_schema, iterations=5, unique_fields=['username', 'email'])
print(user_data)

数据导出

# 导出为JSON
json_data = fake.to_json(user_data)
print(json_data)

# 导出为CSV
csv_data = fake.to_csv(user_data)
print(csv_data)

# 保存到文件
fake.to_csv(user_data, 'users.csv')

高级功能

# 生成UUID
uid = fake.uuid4()
print(f'UUID: {uid}')

# 自定义URL
custom_url = fake.custom_url('example.com')
print(f'自定义URL: {custom_url}')

# 邮箱验证
is_valid = fake.validate_email('test@example.com')
print(f'邮箱有效: {is_valid}')

# 设置随机种子
fake.seed(42)
name1 = fake.name()
fake.seed(42)
name2 = fake.name()
print(f'重现结果: {name1 == name2}')

# 批量生成(生成器)
usernames_gen = fake.batch('user_name', iterations=1000, unique=True)
first_5 = list(usernames_gen)[:5]
print(f'前5个用户名: {first_5}')

# 数据统计
stats = fake.stats(user_data)
print(f'数据统计: {stats}')

# 带验证的数据生成
valid_email = fake.generate_with_validation('email', lambda x: 'test' not in x)
print(f'有效邮箱: {valid_email}')

命令行工具

# 安装后可以使用命令行工具
pip install -e .

# 生成10个用户名
fakerx --method user_name --count 10

# 从schema文件生成数据
fakerx --schema user_schema.json --count 5 --output users.json

# 生成CSV格式数据
fakerx --schema user_schema.json --count 5 --format csv --output users.csv

数据库集成

# 将数据插入SQLite数据库
fake.to_database(user_data, 'users', 'test.db')

配置文件支持

创建 config.yaml:

schema:
  id: '{pyint}'
  name: '{name}'
  email: '{email}'
iterations: 10
unique_fields: ['email']
# 从配置文件生成数据
data = fake.generate_from_config('config.yaml')

异步生成

import asyncio

async def main():
    # 异步批量生成
    names = await fake.async_batch('name', iterations=100)
    print(names[:5])

asyncio.run(main())

许可证

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

fakerx-0.2.0.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

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

fakerx-0.2.0-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fakerx-0.2.0.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for fakerx-0.2.0.tar.gz
Algorithm Hash digest
SHA256 3ecf98bf5f755b2778c6747f53f65e919bb0eeef8f292bd6875ac0ee71b3b6b7
MD5 d6e53ed8ed580a86edc4b5a8495e0316
BLAKE2b-256 63691f2a9a25962b4fd7975cd0c51ea78dd370053cf61e3ac8623e13783ef4d4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: fakerx-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for fakerx-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 84c143ca13b4b6c9472f406a712ab0a1a3f18218dd10731bef39c925587d85a9
MD5 0a8d478c8270813bee21a5119d5a69ab
BLAKE2b-256 6a8abf15d6feb9216291e98730579dcb40ba8347d24e15a94b81a679ec22fb3b

See more details on using hashes here.

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