semvec/pypi-packages huggingface dataset:
unblob 25.11.25
Extract files from any kind of container formats
License: MIT
Requires Python: >=3.10

# unblob

unblob is an _accurate, fast, and easy-to-use_ **extraction suite**. It parses
unknown binary blobs for more than 30 different _archive, compression, and
file-system formats_, **extracts** their **content recursively**, and **carves**
out **unknown chunks** that have not been accounted for.

Unblob is _free to use_, licensed with the _MIT license_. It has a
Command Line Interface and can be used as a Python library.  
This turns unblob into the perfect companion for extracting, **analyzing**,
and **reverse engineering firmware images**.

See more at https://unblob.org.

## Demo

![](docs/demo.svg)
unboil-events 1.0.0
Lightweight, strongly-typed event library for Python.
License: MIT
Requires Python: >=3.9
Keywords: async, events, python, typed, unboil


# unboil-events


Lightweight, strongly-typed event library for Python.

## Installation


```bash
pip install unboil-events
```

## Quick Start


```python
from unboil_events import SyncEvent, AsyncEvent
import asyncio

# 1. SyncEvent: simple synchronous events
evt = SyncEvent[str]()

@evt
def on_msg(msg: str) -> None:
    print(f"Received: {msg}")

evt.invoke("Hello")

# 2. AsyncEvent: async listeners
async_evt = AsyncEvent[str]()

@async_evt
async def on_async(msg: str) -> None:
    await asyncio.sleep(0.1)
    print(f"Async received: {msg}")

# Sequential execution
await async_evt.ainvoke("Hi")

# Parallel execution (asyncio.gather)
await async_evt.ginvoke("Parallel Hi")
```

## API

- **SyncEvent[P]** - register callables `Callable[P, None]`, invoke synchronously
- **AsyncEvent[P]** - register `Callable[P, Awaitable[None]]`, invoke with `ainvoke` or `ginvoke`
- **BaseEvent[P]** - Base class, return type is always `None`.

## Contributing

Pull requests welcome. Please run tests and follow code style.

## License

MIT