buspy


Namebuspy JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryThe BusPy Python Library provides a structured way to work with events within your application.
upload_time2024-08-21 19:14:38
maintainerNone
docs_urlNone
authorYour Name
requires_python>=3.8.0
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # BusPy Python Library

## Overview
The BusPy Python Library provides a structured way to work with events within your application. It consists of three main components:

1. **EventBus**: Manages event emission and listener registration.
2. **Event**: Represents an event with data and metadata.
3. **EventsCollector**: Collects and manages a list of events.

## Table of Contents
- [Installation](#installation)
- [Usage](#usage)
  - [Creating an Event](#creating-an-event)
  - [Using EventBus](#using-eventbus)
  - [Collecting Events](#collecting-events)
- [Contributing](#contributing)
- [License](#license)

## Installation
You can install this library using pip:
```bash
pip install buspy
```
You can also use [poetry](https://python-poetry.org/):
```bash
poetry add buspy
```

## Usage

### Creating an Event

First, you need to import the `Event` class and create an event instance:
The Event class can be instantiated or inherited, but it does not support code extension within the same class.

```python
from buspy import Event

#create a generic event
event = Event(data={"key": "value"}, metadata={"source": "example"})

#define a custom event
class UserEvent(Event):
    pass

#define a custom event
class CreatedUserEvent(UserEvent):
    pass

user_event = UserEvent(data={"id": "123456"})
created_user_event = CreatedUserEvent(data={"id": "123456"})

print(event)
print(user_event)
print(created_user_event)
```
Result:
```bash
Event:
        data = {'key': 'value'}
        event_id = f9fa5ee8-d4f9-4240-b73b-031dae0092bc
        created_at = 2024-08-12T18:57:16.642223+00:00
        metadata = {'source': 'example'}
        source = file.py:4

Event.UserEvent:
        data = {'id': '123456'}
        event_id = 36a28674-46e4-4aab-8e13-8106d79ae865
        created_at = 2024-08-12T18:57:16.642451+00:00
        metadata = None
        source = file.py:15

Event.UserEvent.CreatedUserEvent:
        data = {'id': '123456'}
        event_id = 1ddd0af3-9fcb-4eb0-98fb-b42b118d35f3
        created_at = 2024-08-12T18:57:16.642479+00:00
        metadata = None
        source = file.py:16

```

to_dict() and to_json() are also supported for passing events.

```python
from buspy import Event

#define a custom event "UserEvent"
class UserEvent(Event):
    pass

#define a custom event "CreatedUserEvent"
class CreatedUserEvent(UserEvent):
    pass

created_user_event = CreatedUserEvent(data={"id": "123456"})

print("dict:")
print(created_user_event.to_dict())
print()
print("json:")
print(created_user_event.to_json())
```
Result:
```bash
dict:
{'event_name': 'Event.UserEvent.CreatedUserEvent', 'data': {'id': '123456'}, 'event_id': '742c38fa-51e1-4eb8-879b-9dfe4d07de0a', 'created_at': '2024-08-12T19:02:13.542163+00:00', 'metadata': None}

json:
{
  "event_name": "Event.UserEvent.CreatedUserEvent",
  "data": {
    "id": "123456"
  },
  "event_id": "742c38fa-51e1-4eb8-879b-9dfe4d07de0a",
  "created_at": "2024-08-12T19:02:13.542163+00:00",
  "metadata": null
}
```

### Collecting Events

To collect and manage events, use the `EventsCollector` class:
```python
from buspy import EventsCollector, Event, EventBus

# Initialize EventsCollector
collector = EventsCollector()

#define a custom event "UserEvent"
class UserEvent(Event):
    pass

#define a custom event "CreatedUserEvent"
class CreatedUserEvent(UserEvent):
    pass

# Create an event
user_event = UserEvent(data={"key": "value"}, metadata={"source": "example"})

created_user_event1 = CreatedUserEvent(data={"id": 123456}, metadata={"source": "example"})

created_user_event2 = CreatedUserEvent(data={"id": 789123}, metadata={"source": "example"})


# Add event to collector
collector.add_event(user_event)
collector.add_event(created_user_event1)
collector.add_event(created_user_event2)

# Retrieve all events
events = collector.pull_all_events()
print("First print:")
print(events)

print()
print("Second print:")
for event in collector:
    print(event)

print()
print("Therty print:")
print(collector[0])
```
Result:
```bash
First print:
[UserEvent(data = {'key': 'value'}, metadata = {'source': 'example'}), CreatedUserEvent(data = {'id': 123456}, metadata = {'source': 'example'}), CreatedUserEvent(data = {'id': 789123}, metadata = {'source': 'example'})]

Second print:
Event.UserEvent:
        data = {'key': 'value'}
        event_id = af4e1637-b145-4da7-a92b-53d8306ec22d
        created_at = 2024-08-12T19:09:44.386102+00:00
        metadata = {'source': 'example'}
        source = prueba.py:15

Event.UserEvent.CreatedUserEvent:
        data = {'id': 123456}
        event_id = 65dc0b38-4990-4b96-b532-8d46bdc472d5
        created_at = 2024-08-12T19:09:44.386322+00:00
        metadata = {'source': 'example'}
        source = prueba.py:17

Event.UserEvent.CreatedUserEvent:
        data = {'id': 789123}
        event_id = 283a4b51-4894-42ec-95d7-2365ee67e06e
        created_at = 2024-08-12T19:09:44.386351+00:00
        metadata = {'source': 'example'}
        source = prueba.py:19


Therty print:
Event.UserEvent:
        data = {'key': 'value'}
        event_id = af4e1637-b145-4da7-a92b-53d8306ec22d
        created_at = 2024-08-12T19:09:44.386102+00:00
        metadata = {'source': 'example'}
        source = prueba.py:15
```

### Using EventBus

To manage and emit events, use the `EventBus` class:

```python
from buspy import EventBus, EventsCollector, Event

class UserEvent(Event):
    pass

class CreatedUserEvent(UserEvent):
    pass

event_bus = EventBus()

def handler_all_event(event: Event) -> None:
    print("Print from handler_all_event")
    print(event)

def handler_user_event(event: Event) -> None:
    print("Print from handler_user_event")
    print(event)

def handler_created_user_event(event: Event) -> None:
    print("Print from handler_created_user_event")
    print(event)

event_bus.add_listener(handler=handler_all_event, event=Event())
event_bus.add_listener(handler=handler_user_event, event=UserEvent())
event_bus.add_listener(handler=handler_created_user_event, event=CreatedUserEvent())

print()
print("Print Emit Event")
event_bus.emit(Event(data={"demo_event": 1}))
event_bus.emit(UserEvent(data={"demo_user_event": 1}))
event_bus.emit(CreatedUserEvent(data={"demo_created_user_event": 1}))

collector = EventsCollector()
collector.add_event(Event(data={"demo_event": 1}))
collector.add_event(UserEvent(data={"demo_user_event": 1}))
collector.add_event(CreatedUserEvent(data={"demo_created_user_event": 1}))

print()
print("Print Emit Collector")
event_bus.emit(collector)

print()
print("Print Event Names")
print(event_bus.event_names())

print()
print("Print Listeners")
print(event_bus.listeners(event=CreatedUserEvent()))

print()
print("Print Summary")
print(event_bus.summary())
```
Result:
```bash
Print Emit Event
Print from handler_all_event
Event:
        data = {'demo_event': 1}
        event_id = 9f260a1e-b999-484d-b1ec-6b77a7136128
        created_at = 2024-08-12T19:30:40.492722+00:00
        metadata = None
        source = file.py:29

Print from handler_all_event
Event.UserEvent:
        data = {'demo_user_event': 1}
        event_id = 926679fd-e19a-4b8a-8baf-92b0291c71e2
        created_at = 2024-08-12T19:30:40.492770+00:00
        metadata = None
        source = file.py:30

Print from handler_user_event
Event.UserEvent:
        data = {'demo_user_event': 1}
        event_id = 926679fd-e19a-4b8a-8baf-92b0291c71e2
        created_at = 2024-08-12T19:30:40.492770+00:00
        metadata = None
        source = file.py:30

Print from handler_all_event
Event.UserEvent.CreatedUserEvent:
        data = {'demo_created_user_event': 1}
        event_id = 931e4b6a-17da-4dc3-aff0-05b97362639f
        created_at = 2024-08-12T19:30:40.492826+00:00
        metadata = None
        source = file.py:31

Print from handler_user_event
Event.UserEvent.CreatedUserEvent:
        data = {'demo_created_user_event': 1}
        event_id = 931e4b6a-17da-4dc3-aff0-05b97362639f
        created_at = 2024-08-12T19:30:40.492826+00:00
        metadata = None
        source = file.py:31

Print from handler_created_user_event
Event.UserEvent.CreatedUserEvent:
        data = {'demo_created_user_event': 1}
        event_id = 931e4b6a-17da-4dc3-aff0-05b97362639f
        created_at = 2024-08-12T19:30:40.492826+00:00
        metadata = None
        source = file.py:31


Print Emit Collector
Print from handler_all_event
Event:
        data = {'demo_event': 1}
        event_id = 157dfcb9-fd84-4491-b2f4-a055ebd6e687
        created_at = 2024-08-12T19:30:40.492893+00:00
        metadata = None
        source = file.py:34

Print from handler_all_event
Event.UserEvent:
        data = {'demo_user_event': 1}
        event_id = bf40106c-922f-4de1-9632-f02c2baa6809
        created_at = 2024-08-12T19:30:40.492911+00:00
        metadata = None
        source = file.py:35

Print from handler_user_event
Event.UserEvent:
        data = {'demo_user_event': 1}
        event_id = bf40106c-922f-4de1-9632-f02c2baa6809
        created_at = 2024-08-12T19:30:40.492911+00:00
        metadata = None
        source = file.py:35

Print from handler_all_event
Event.UserEvent.CreatedUserEvent:
        data = {'demo_created_user_event': 1}
        event_id = 5a4ed322-3d35-48bb-bc84-cb3837bc1fae
        created_at = 2024-08-12T19:30:40.492928+00:00
        metadata = None
        source = file.py:36

Print from handler_user_event
Event.UserEvent.CreatedUserEvent:
        data = {'demo_created_user_event': 1}
        event_id = 5a4ed322-3d35-48bb-bc84-cb3837bc1fae
        created_at = 2024-08-12T19:30:40.492928+00:00
        metadata = None
        source = file.py:36

Print from handler_created_user_event
Event.UserEvent.CreatedUserEvent:
        data = {'demo_created_user_event': 1}
        event_id = 5a4ed322-3d35-48bb-bc84-cb3837bc1fae
        created_at = 2024-08-12T19:30:40.492928+00:00
        metadata = None
        source = file.py:36


Print Event Names
{'Event.UserEvent', 'Event.UserEvent.CreatedUserEvent', 'Event'}

Print Listeners
{'Event.UserEvent.CreatedUserEvent': ['handler_created_user_event: file.py:19']}

Print Summary
[
  {
    "Event.UserEvent": [
      "handler_user_event: file.py:15"
    ]
  },
  {
    "Event.UserEvent.CreatedUserEvent": [
      "handler_created_user_event: file.py:19"
    ]
  },
  {
    "Event": [
      "handler_all_event: file.py:11"
    ]
  }
]
```

## Contributing
Contributions are welcome! Please open an issue or submit a pull request to improve the library.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "buspy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8.0",
    "maintainer_email": null,
    "keywords": null,
    "author": "Your Name",
    "author_email": "you@example.com",
    "download_url": "https://files.pythonhosted.org/packages/24/80/0de1b1cee734fa4df0d3b43ff386d58e16e934efc5a407db205c2add1a68/buspy-0.1.0.tar.gz",
    "platform": null,
    "description": "# BusPy Python Library\n\n## Overview\nThe BusPy Python Library provides a structured way to work with events within your application. It consists of three main components:\n\n1. **EventBus**: Manages event emission and listener registration.\n2. **Event**: Represents an event with data and metadata.\n3. **EventsCollector**: Collects and manages a list of events.\n\n## Table of Contents\n- [Installation](#installation)\n- [Usage](#usage)\n  - [Creating an Event](#creating-an-event)\n  - [Using EventBus](#using-eventbus)\n  - [Collecting Events](#collecting-events)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\nYou can install this library using pip:\n```bash\npip install buspy\n```\nYou can also use [poetry](https://python-poetry.org/):\n```bash\npoetry add buspy\n```\n\n## Usage\n\n### Creating an Event\n\nFirst, you need to import the `Event` class and create an event instance:\nThe Event class can be instantiated or inherited, but it does not support code extension within the same class.\n\n```python\nfrom buspy import Event\n\n#create a generic event\nevent = Event(data={\"key\": \"value\"}, metadata={\"source\": \"example\"})\n\n#define a custom event\nclass UserEvent(Event):\n    pass\n\n#define a custom event\nclass CreatedUserEvent(UserEvent):\n    pass\n\nuser_event = UserEvent(data={\"id\": \"123456\"})\ncreated_user_event = CreatedUserEvent(data={\"id\": \"123456\"})\n\nprint(event)\nprint(user_event)\nprint(created_user_event)\n```\nResult:\n```bash\nEvent:\n        data = {'key': 'value'}\n        event_id = f9fa5ee8-d4f9-4240-b73b-031dae0092bc\n        created_at = 2024-08-12T18:57:16.642223+00:00\n        metadata = {'source': 'example'}\n        source = file.py:4\n\nEvent.UserEvent:\n        data = {'id': '123456'}\n        event_id = 36a28674-46e4-4aab-8e13-8106d79ae865\n        created_at = 2024-08-12T18:57:16.642451+00:00\n        metadata = None\n        source = file.py:15\n\nEvent.UserEvent.CreatedUserEvent:\n        data = {'id': '123456'}\n        event_id = 1ddd0af3-9fcb-4eb0-98fb-b42b118d35f3\n        created_at = 2024-08-12T18:57:16.642479+00:00\n        metadata = None\n        source = file.py:16\n\n```\n\nto_dict() and to_json() are also supported for passing events.\n\n```python\nfrom buspy import Event\n\n#define a custom event \"UserEvent\"\nclass UserEvent(Event):\n    pass\n\n#define a custom event \"CreatedUserEvent\"\nclass CreatedUserEvent(UserEvent):\n    pass\n\ncreated_user_event = CreatedUserEvent(data={\"id\": \"123456\"})\n\nprint(\"dict:\")\nprint(created_user_event.to_dict())\nprint()\nprint(\"json:\")\nprint(created_user_event.to_json())\n```\nResult:\n```bash\ndict:\n{'event_name': 'Event.UserEvent.CreatedUserEvent', 'data': {'id': '123456'}, 'event_id': '742c38fa-51e1-4eb8-879b-9dfe4d07de0a', 'created_at': '2024-08-12T19:02:13.542163+00:00', 'metadata': None}\n\njson:\n{\n  \"event_name\": \"Event.UserEvent.CreatedUserEvent\",\n  \"data\": {\n    \"id\": \"123456\"\n  },\n  \"event_id\": \"742c38fa-51e1-4eb8-879b-9dfe4d07de0a\",\n  \"created_at\": \"2024-08-12T19:02:13.542163+00:00\",\n  \"metadata\": null\n}\n```\n\n### Collecting Events\n\nTo collect and manage events, use the `EventsCollector` class:\n```python\nfrom buspy import EventsCollector, Event, EventBus\n\n# Initialize EventsCollector\ncollector = EventsCollector()\n\n#define a custom event \"UserEvent\"\nclass UserEvent(Event):\n    pass\n\n#define a custom event \"CreatedUserEvent\"\nclass CreatedUserEvent(UserEvent):\n    pass\n\n# Create an event\nuser_event = UserEvent(data={\"key\": \"value\"}, metadata={\"source\": \"example\"})\n\ncreated_user_event1 = CreatedUserEvent(data={\"id\": 123456}, metadata={\"source\": \"example\"})\n\ncreated_user_event2 = CreatedUserEvent(data={\"id\": 789123}, metadata={\"source\": \"example\"})\n\n\n# Add event to collector\ncollector.add_event(user_event)\ncollector.add_event(created_user_event1)\ncollector.add_event(created_user_event2)\n\n# Retrieve all events\nevents = collector.pull_all_events()\nprint(\"First print:\")\nprint(events)\n\nprint()\nprint(\"Second print:\")\nfor event in collector:\n    print(event)\n\nprint()\nprint(\"Therty print:\")\nprint(collector[0])\n```\nResult:\n```bash\nFirst print:\n[UserEvent(data = {'key': 'value'}, metadata = {'source': 'example'}), CreatedUserEvent(data = {'id': 123456}, metadata = {'source': 'example'}), CreatedUserEvent(data = {'id': 789123}, metadata = {'source': 'example'})]\n\nSecond print:\nEvent.UserEvent:\n        data = {'key': 'value'}\n        event_id = af4e1637-b145-4da7-a92b-53d8306ec22d\n        created_at = 2024-08-12T19:09:44.386102+00:00\n        metadata = {'source': 'example'}\n        source = prueba.py:15\n\nEvent.UserEvent.CreatedUserEvent:\n        data = {'id': 123456}\n        event_id = 65dc0b38-4990-4b96-b532-8d46bdc472d5\n        created_at = 2024-08-12T19:09:44.386322+00:00\n        metadata = {'source': 'example'}\n        source = prueba.py:17\n\nEvent.UserEvent.CreatedUserEvent:\n        data = {'id': 789123}\n        event_id = 283a4b51-4894-42ec-95d7-2365ee67e06e\n        created_at = 2024-08-12T19:09:44.386351+00:00\n        metadata = {'source': 'example'}\n        source = prueba.py:19\n\n\nTherty print:\nEvent.UserEvent:\n        data = {'key': 'value'}\n        event_id = af4e1637-b145-4da7-a92b-53d8306ec22d\n        created_at = 2024-08-12T19:09:44.386102+00:00\n        metadata = {'source': 'example'}\n        source = prueba.py:15\n```\n\n### Using EventBus\n\nTo manage and emit events, use the `EventBus` class:\n\n```python\nfrom buspy import EventBus, EventsCollector, Event\n\nclass UserEvent(Event):\n    pass\n\nclass CreatedUserEvent(UserEvent):\n    pass\n\nevent_bus = EventBus()\n\ndef handler_all_event(event: Event) -> None:\n    print(\"Print from handler_all_event\")\n    print(event)\n\ndef handler_user_event(event: Event) -> None:\n    print(\"Print from handler_user_event\")\n    print(event)\n\ndef handler_created_user_event(event: Event) -> None:\n    print(\"Print from handler_created_user_event\")\n    print(event)\n\nevent_bus.add_listener(handler=handler_all_event, event=Event())\nevent_bus.add_listener(handler=handler_user_event, event=UserEvent())\nevent_bus.add_listener(handler=handler_created_user_event, event=CreatedUserEvent())\n\nprint()\nprint(\"Print Emit Event\")\nevent_bus.emit(Event(data={\"demo_event\": 1}))\nevent_bus.emit(UserEvent(data={\"demo_user_event\": 1}))\nevent_bus.emit(CreatedUserEvent(data={\"demo_created_user_event\": 1}))\n\ncollector = EventsCollector()\ncollector.add_event(Event(data={\"demo_event\": 1}))\ncollector.add_event(UserEvent(data={\"demo_user_event\": 1}))\ncollector.add_event(CreatedUserEvent(data={\"demo_created_user_event\": 1}))\n\nprint()\nprint(\"Print Emit Collector\")\nevent_bus.emit(collector)\n\nprint()\nprint(\"Print Event Names\")\nprint(event_bus.event_names())\n\nprint()\nprint(\"Print Listeners\")\nprint(event_bus.listeners(event=CreatedUserEvent()))\n\nprint()\nprint(\"Print Summary\")\nprint(event_bus.summary())\n```\nResult:\n```bash\nPrint Emit Event\nPrint from handler_all_event\nEvent:\n        data = {'demo_event': 1}\n        event_id = 9f260a1e-b999-484d-b1ec-6b77a7136128\n        created_at = 2024-08-12T19:30:40.492722+00:00\n        metadata = None\n        source = file.py:29\n\nPrint from handler_all_event\nEvent.UserEvent:\n        data = {'demo_user_event': 1}\n        event_id = 926679fd-e19a-4b8a-8baf-92b0291c71e2\n        created_at = 2024-08-12T19:30:40.492770+00:00\n        metadata = None\n        source = file.py:30\n\nPrint from handler_user_event\nEvent.UserEvent:\n        data = {'demo_user_event': 1}\n        event_id = 926679fd-e19a-4b8a-8baf-92b0291c71e2\n        created_at = 2024-08-12T19:30:40.492770+00:00\n        metadata = None\n        source = file.py:30\n\nPrint from handler_all_event\nEvent.UserEvent.CreatedUserEvent:\n        data = {'demo_created_user_event': 1}\n        event_id = 931e4b6a-17da-4dc3-aff0-05b97362639f\n        created_at = 2024-08-12T19:30:40.492826+00:00\n        metadata = None\n        source = file.py:31\n\nPrint from handler_user_event\nEvent.UserEvent.CreatedUserEvent:\n        data = {'demo_created_user_event': 1}\n        event_id = 931e4b6a-17da-4dc3-aff0-05b97362639f\n        created_at = 2024-08-12T19:30:40.492826+00:00\n        metadata = None\n        source = file.py:31\n\nPrint from handler_created_user_event\nEvent.UserEvent.CreatedUserEvent:\n        data = {'demo_created_user_event': 1}\n        event_id = 931e4b6a-17da-4dc3-aff0-05b97362639f\n        created_at = 2024-08-12T19:30:40.492826+00:00\n        metadata = None\n        source = file.py:31\n\n\nPrint Emit Collector\nPrint from handler_all_event\nEvent:\n        data = {'demo_event': 1}\n        event_id = 157dfcb9-fd84-4491-b2f4-a055ebd6e687\n        created_at = 2024-08-12T19:30:40.492893+00:00\n        metadata = None\n        source = file.py:34\n\nPrint from handler_all_event\nEvent.UserEvent:\n        data = {'demo_user_event': 1}\n        event_id = bf40106c-922f-4de1-9632-f02c2baa6809\n        created_at = 2024-08-12T19:30:40.492911+00:00\n        metadata = None\n        source = file.py:35\n\nPrint from handler_user_event\nEvent.UserEvent:\n        data = {'demo_user_event': 1}\n        event_id = bf40106c-922f-4de1-9632-f02c2baa6809\n        created_at = 2024-08-12T19:30:40.492911+00:00\n        metadata = None\n        source = file.py:35\n\nPrint from handler_all_event\nEvent.UserEvent.CreatedUserEvent:\n        data = {'demo_created_user_event': 1}\n        event_id = 5a4ed322-3d35-48bb-bc84-cb3837bc1fae\n        created_at = 2024-08-12T19:30:40.492928+00:00\n        metadata = None\n        source = file.py:36\n\nPrint from handler_user_event\nEvent.UserEvent.CreatedUserEvent:\n        data = {'demo_created_user_event': 1}\n        event_id = 5a4ed322-3d35-48bb-bc84-cb3837bc1fae\n        created_at = 2024-08-12T19:30:40.492928+00:00\n        metadata = None\n        source = file.py:36\n\nPrint from handler_created_user_event\nEvent.UserEvent.CreatedUserEvent:\n        data = {'demo_created_user_event': 1}\n        event_id = 5a4ed322-3d35-48bb-bc84-cb3837bc1fae\n        created_at = 2024-08-12T19:30:40.492928+00:00\n        metadata = None\n        source = file.py:36\n\n\nPrint Event Names\n{'Event.UserEvent', 'Event.UserEvent.CreatedUserEvent', 'Event'}\n\nPrint Listeners\n{'Event.UserEvent.CreatedUserEvent': ['handler_created_user_event: file.py:19']}\n\nPrint Summary\n[\n  {\n    \"Event.UserEvent\": [\n      \"handler_user_event: file.py:15\"\n    ]\n  },\n  {\n    \"Event.UserEvent.CreatedUserEvent\": [\n      \"handler_created_user_event: file.py:19\"\n    ]\n  },\n  {\n    \"Event\": [\n      \"handler_all_event: file.py:11\"\n    ]\n  }\n]\n```\n\n## Contributing\nContributions are welcome! Please open an issue or submit a pull request to improve the library.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "The BusPy Python Library provides a structured way to work with events within your application.",
    "version": "0.1.0",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c7d55710b83590f881e5d3b8adb05814c2911294463be3bd38cdb90708e91f76",
                "md5": "7363340caf3ffa676c4c7281b6857641",
                "sha256": "e49e5299367c9f5539ef33733f95a5430b751bba42f979c6d99071c8be18ec7f"
            },
            "downloads": -1,
            "filename": "buspy-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7363340caf3ffa676c4c7281b6857641",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8.0",
            "size": 9054,
            "upload_time": "2024-08-21T19:14:37",
            "upload_time_iso_8601": "2024-08-21T19:14:37.185866Z",
            "url": "https://files.pythonhosted.org/packages/c7/d5/5710b83590f881e5d3b8adb05814c2911294463be3bd38cdb90708e91f76/buspy-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "24800de1b1cee734fa4df0d3b43ff386d58e16e934efc5a407db205c2add1a68",
                "md5": "768cfd78f9e483053a15cfa266ffcfd3",
                "sha256": "95591ad24c863ab8ba425ad41eda44abae4898fb03e4f3b681bed55609f16262"
            },
            "downloads": -1,
            "filename": "buspy-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "768cfd78f9e483053a15cfa266ffcfd3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8.0",
            "size": 9365,
            "upload_time": "2024-08-21T19:14:38",
            "upload_time_iso_8601": "2024-08-21T19:14:38.327866Z",
            "url": "https://files.pythonhosted.org/packages/24/80/0de1b1cee734fa4df0d3b43ff386d58e16e934efc5a407db205c2add1a68/buspy-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-21 19:14:38",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "buspy"
}
        
Elapsed time: 0.31124s