TRandom - Python package that generates fake data for you
Project description
TRandom
TRandom - A powerful Python package that generates fake data for testing, development, and data anonymization.
Overview
TRandom is a comprehensive fake data generator based on the popular Faker library, rebranded and customized for TactLabs. It provides an easy-to-use interface for generating realistic fake data across multiple categories including personal information, addresses, companies, internet data, dates, and much more.
Installation
pip install tactrandom
Or install from source:
git clone https://github.com/tactlabs/tact-random
cd tact-random
pip install -e .
Quick Start
from trandom import TRandom
# Initialize TRandom
rand = TRandom()
# Generate fake data
print(rand.name()) # 'John Doe'
print(rand.email()) # 'john.doe@example.com'
print(rand.address()) # '123 Main St, Springfield, IL 62701'
print(rand.phone_number()) # '(555) 123-4567'
print(rand.company()) # 'Acme Corporation'
print(rand.animal()) # 'Lion'
print(rand.dog_breed()) # 'Labrador Retriever'
print(rand.music_genre()) # 'Rock'
print(rand.song_title()) # 'Dancing in the Moonlight'
print(rand.sport()) # 'Basketball'
print(rand.team_name()) # 'Chicago Bulls'
print(rand.food()) # 'Pizza'
print(rand.dish()) # 'Grilled Salmon with Asparagus'
print(rand.book_title()) # 'The Shadow of Time'
print(rand.author_name()) # 'Jane Smith'
print(rand.vehicle_make_model()) # 'Toyota Camry'
print(rand.license_plate()) # 'ABC-1234'
print(rand.weather()) # 'Sunny'
print(rand.temperature()) # '72°F'
Features
Personal Information
- Names (first, last, full)
- Email addresses
- Phone numbers
- Social Security Numbers
- Job titles
Address Information
- Full addresses
- Cities, states, countries
- Zip codes
- Coordinates (latitude/longitude)
Company Information
- Company names
- Business emails
- Catch phrases
- Business jargon
Internet & Technology
- Usernames and passwords
- IP addresses (IPv4, IPv6)
- MAC addresses
- URLs and domains
- User agents
Dates & Times
- Random dates
- Past and future dates
- Times and timestamps
- Date ranges
Financial
- Credit card numbers
- Credit card providers
- Currency codes
- IBAN numbers
Text & Lorem Ipsum
- Words, sentences, paragraphs
- Text of various lengths
Colors
- Color names
- Hex colors
- RGB colors
Animals (New!)
- Random animals from all categories
- Mammals, birds, reptiles, amphibians, fish
- Invertebrates
- Domestic and wild animals
- Endangered species
- Dog and cat breeds
Music (New!)
- Music genres and instruments
- Song titles and album names
- Artist and band names
- Record labels and formats
- Streaming platforms
- Concert venues and awards
- Musical terms and keys
- BPM, duration, and track info
- Playlist names
Sports (New!)
- All major sports (team and individual)
- Olympic sports
- Team names and athlete names
- Sport positions and equipment
- Venues and famous stadiums
- Leagues and competitions
- Awards and honors
- Scores, rankings, and records
- Jersey numbers and seasons
Food (New!)
- Fruits, vegetables, meats, and seafood
- Dairy products and grains
- Spices, herbs, and ingredients
- Desserts and beverages
- Cuisines and cooking methods
- Dishes and recipes
- Restaurant types and meal types
- Dietary preferences and taste profiles
- Food prices and nutrition info
Books & Literature (New!)
- Book titles and author names
- Literary genres and publishers
- Book series and chapter titles
- Book formats and editions
- ISBN numbers and publication years
- Literary awards and reading levels
- Book ratings and reviews
- Bookstore types and book clubs
- Literary terms and languages
Vehicles & Automotive (New!)
- Vehicle types and manufacturers
- Car makes and models
- Vehicle years and colors
- Fuel types and transmissions
- Engine sizes and drive types
- Vehicle features and specifications
- License plates and VIN numbers
- Mileage and pricing
- Dealerships and insurance
Weather & Climate (New!)
- Weather conditions and descriptions
- Temperature (Fahrenheit and Celsius)
- Wind speed and direction
- Humidity and precipitation
- Cloud cover and visibility
- Atmospheric pressure
- UV index and air quality
- Weather alerts and seasons
- Moon phases and sunrise/sunset times
Advanced Usage
Using Locales
TRandom supports multiple locales for generating localized data:
from trandom import TRandom
# French locale
rand_fr = TRandom('fr_FR')
print(rand_fr.name()) # 'Jean Dupont'
print(rand_fr.address()) # French address
# Spanish locale
rand_es = TRandom('es_ES')
print(rand_es.name()) # 'María García'
# Multiple locales
rand_multi = TRandom(['en_US', 'fr_FR', 'es_ES'])
print(rand_multi.name()) # Randomly picks from any locale
Seeding for Reproducibility
from trandom import TRandom
# Set seed for reproducible results
TRandom.seed(12345)
rand = TRandom()
print(rand.name()) # Always generates the same name
# Reset seed
TRandom.seed(12345)
rand2 = TRandom()
print(rand2.name()) # Same as above
Unique Values
from trandom import TRandom
rand = TRandom()
# Generate unique emails
for _ in range(5):
print(rand.unique.email())
# Clear unique cache
rand.unique.clear()
Optional Values
from trandom import TRandom
rand = TRandom()
# 50% chance of returning None
print(rand.optional.name())
# 80% chance of returning a value
print(rand.optional.email(prob=0.8))
Examples
See example.py for comprehensive usage examples:
python example.py
API Reference
Common Methods
name()- Full namefirst_name()- First namelast_name()- Last nameemail()- Email addressphone_number()- Phone numberaddress()- Full addresscity()- City namestate()- State namecountry()- Country namezipcode()- Zip codecompany()- Company namejob()- Job titletext()- Random textdate()- Random datetime()- Random timeurl()- Random URLipv4()- IPv4 addresscredit_card_number()- Credit card numberrandom_int(min, max)- Random integerpybool()- Random booleancolor_name()- Color namehex_color()- Hex color codeanimal()- Random animalmammal()- Random mammalbird()- Random birdfish()- Random fishdog_breed()- Random dog breedcat_breed()- Random cat breedmusic_genre()- Random music genreinstrument()- Random instrumentsong_title()- Random song titleartist_name()- Random artist namealbum_name()- Random album namesport()- Random sportteam_sport()- Random team sportindividual_sport()- Random individual sportolympic_sport()- Random Olympic sportteam_name()- Random team nameathlete_name()- Random athlete namesport_position()- Random sport positionsport_equipment()- Random sport equipmentfamous_sport_venue()- Famous sport venuesport_league()- Random sport leaguesport_award()- Random sport awardjersey_number()- Random jersey numberseason_year()- Season year formatscore()- Random scorerecord()- Win-loss recordranking()- Ranking positionfood()- Random food itemfruit()- Random fruitvegetable()- Random vegetablemeat()- Random meatseafood_item()- Random seafooddairy_product()- Random dairy productgrain()- Random grainspice()- Random spice or herbdessert()- Random dessertbeverage()- Random beveragecuisine()- Random cuisine typecooking_method()- Random cooking methodmeal_type()- Random meal typedish()- Random dish nameingredient()- Random ingredientrestaurant_type()- Random restaurant typedietary_preference()- Random dietary preferencerecipe_name()- Random recipe namefood_price()- Random food pricecalories()- Random calorie countserving_size()- Random serving sizebook_title()- Random book titleauthor_name()- Random author nameliterary_genre()- Random literary genrepublisher()- Random publisherbook_format()- Random book formatbook_series()- Random book serieschapter_title()- Random chapter titleliterary_award()- Random literary awardreading_level()- Random reading levelbook_condition()- Random book conditionbookstore_type()- Random bookstore typepublication_year()- Random publication yearpage_count()- Random page countisbn()- Random ISBN numberbook_rating()- Random book ratingreview_count()- Random review countedition()- Random book editionlanguage()- Random languagevehicle()- Random vehicle typevehicle_type()- Random vehicle typecar_make()- Random car manufacturercar_model()- Random car modelvehicle_make_model()- Random make and modelvehicle_year()- Random vehicle yearvehicle_color()- Random vehicle colorfuel_type()- Random fuel typetransmission()- Random transmission typeengine_size()- Random engine sizedrive_type()- Random drive typevehicle_feature()- Random vehicle featurelicense_plate()- Random license platevin()- Random VIN numbervehicle_condition()- Random vehicle conditionmileage()- Random mileagevehicle_price()- Random vehicle pricedealership_type()- Random dealership typeinsurance_type()- Random insurance typempg()- Random MPGhorsepower()- Random horsepowerseating_capacity()- Random seating capacityweather()- Random weather conditionweather_description()- Detailed weather descriptiontemperature()- Random temperaturetemperature_celsius()- Temperature in Celsiustemperature_fahrenheit()- Temperature in Fahrenheitwind_speed()- Random wind speedwind_direction()- Random wind directionhumidity()- Random humidity percentageprecipitation()- Random precipitation typeprecipitation_amount()- Random precipitation amountcloud_cover()- Random cloud cover levelvisibility()- Random visibility distancepressure()- Random atmospheric pressureuv_index()- Random UV indexuv_index_level()- UV index level descriptionair_quality()- Random air quality levelair_quality_index()- Random AQIweather_alert()- Random weather alertseason()- Random seasonmoon_phase()- Random moon phasesunrise_time()- Random sunrise timesunset_time()- Random sunset timefeels_like_temperature()- Feels like temperaturedew_point()- Random dew pointchance_of_rain()- Chance of rain percentage
Requirements
- Python >= 3.10
- numpy
- pandas
License
MIT License - see LICENSE file for details
Credits
TRandom is based on the excellent Faker library by joke2k and contributors. We are grateful for their work in creating such a comprehensive and well-maintained fake data generation library.
Original Faker Library:
- Repository: https://github.com/joke2k/faker
- Author: joke2k
- License: MIT
TRandom has been customized and rebranded for TactLabs with additional features and modifications while maintaining the core functionality and spirit of the original Faker library.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Support
For issues and questions, please open an issue on GitHub: https://github.com/tactlabs/tact-random/issues
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tactrandom-1.0.6.tar.gz.
File metadata
- Download URL: tactrandom-1.0.6.tar.gz
- Upload date:
- Size: 1.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44d55868385fc37e616fe01486d40ea21fa15c46fccb0bfbc85950a8d2c3b9e4
|
|
| MD5 |
0fb56723ae3b994160aacb95545dcaf5
|
|
| BLAKE2b-256 |
99e08229fcd8261f96e4683d9cc421f4ad053ce2eec309e9dfd72e12c3a8a307
|
File details
Details for the file tactrandom-1.0.6-py3-none-any.whl.
File metadata
- Download URL: tactrandom-1.0.6-py3-none-any.whl
- Upload date:
- Size: 2.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdb6fd0d2f66378e4089bf3994649ea541b0f5fb2482f228aaf4efca877f0aad
|
|
| MD5 |
c9de59efb7a2b7a83be82bc0823e6641
|
|
| BLAKE2b-256 |
db959cd242792f0f05bb6e1e5eb441b1de53409db5557dfd68ab71c475dfa63d
|