No project description provided
Project description
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'
}
}
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 synthwave-0.1.7.tar.gz
.
File metadata
- Download URL: synthwave-0.1.7.tar.gz
- Upload date:
- Size: 26.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.0 CPython/3.11.3 Darwin/22.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82cd26c4d967873546c701e69b13a3491607095bd9de6805b63f70ca48270ba5 |
|
MD5 | 3489d52bc34911bd130a5fbea080fe75 |
|
BLAKE2b-256 | dcc3c573814126e7eb74dfd8a53a5da959c1d58f537b8aeafcf7417503bfee78 |
File details
Details for the file synthwave-0.1.7-py3-none-any.whl
.
File metadata
- Download URL: synthwave-0.1.7-py3-none-any.whl
- Upload date:
- Size: 27.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.0 CPython/3.11.3 Darwin/22.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed4fdee599919e2401bf9923ca56a8d50eae3187f91f9bcbcdc12299700e5359 |
|
MD5 | 01e89becce6221ff8f385459b8bf740e |
|
BLAKE2b-256 | 5302ce66a41f617477066ef2ebd6fda6966aeebb44c71ccdf7e125148b3bca34 |