pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/mcleonard/synthwave

/github.githubassets.com/assets/primer-70be7debc79a8eff.css" /> GitHub - mcleonard/synthwave: Streaming synthetic data for Good · GitHub
Skip to content

mcleonard/synthwave

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Synthwave: A Stream of Synthetic Events

The goal here is to provide a stream of synthetic data similar to events you would see in a normal business. This can be used to generate data for testing, development, and for learning.

The user defines the events they want emitted and this will write them to stdout, a file, or POST as JSON data to a URL (not tested yet).

Name and email data generated by GPT-3.

Installation

You should use an environment manager like Poetry or venv.

With Poetry:

poetry add synthwave

Otherwise:

pip install synthwave

Usage

Define the events you want generated in a Python file. See example.py for an example:

class AccountCreated(Event):
    user_id = field.UUID()
    properties = field.Object(
        first_name=field.GivenName(),
        last_name=field.FamilyName(),
        age=field.Integer(13, 95),
        email_address=field.EmailAddress(),
        location=field.Location() | field.Null(0.5),
    )


class PageView(Event):
    user_id = field.UUID(repeat_prob=0.1)
    properties = field.Object(
        page_url=field.URL()
        referring_url=field.URL("google.com")
    )

Then start the generation, in your terminal:

python -m synthwave -e example.py --interval 0.1

Here, -e points to the file with your event definitions and --interval sets the time between synthetic events. You can also write the events to a file with the -o flag:

python -m synthwave -e example.py --interval 0.1 -o outfile.txt

The above definition will emit events that look like:

{
    'event': 'account_created',
    'event_id': '24a4f6ae-06dc-4df9-b67d-faac490ce890',
    'timestamp': '2023-05-25T15:22:55.419+00:00',
    'user_id': 'b18a2f0e-7257-41c0-8f1c-9c63c275b342',
    'properties': {
        'first_name': 'Parron',
        'last_name': 'Akori',
        'age': 95,
        'email_address': 'cleon@anache.net',
        'location': None
}

{
    'event': 'page_view', 
    'event_id': '8ad8e917-b9ff-4bca-83d1-d1a98cf97db3',
    'timestamp': '2023-05-24T04:34:11.871+00:00',
    'user_id': '7663a2a9-154b-4cc9-8a1b-44fcc806046f', 
    'properties': {
        'page_url': 'https://wow.app/perpetual/arbitrary/egregious',
        'referring_url': 'https://google.com/sequentially/achingly/egregious'
    }
}

About

Streaming synthetic data for Good

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy