semvec/pypi-packages huggingface dataset:
apispec-pydantic-plugin 0.8.2
A plugin to enable support for Pydantic models in APISpec.
Requires Python: >=3.10

# APISpec Pydantic Plugin

This is a plugin that replaces `apispec.ext.marshmallow:MarshmallowPlugin` with an equivalent plugin for use with Pydantic.

## Package

- [PyPi](https://pypi.org/project/apispec-pydantic-plugin/)

## Acknowledgements

- [APISpec's Marshmallow Plugin ](https://github.com/marshmallow-code/apispec/tree/dev/src/apispec/ext/marshmallow)
- [challice-spec](https://github.com/TestBoxLab/chalice-spec)
graph2doc 0.1.2
Convert ASCII tree diagrams into real filesystem structures.
Requires Python: >=3.8

# graph2doc

`graph2doc` converts a text-based tree diagram into a real directory structure on disk.

It takes input like:
```
python_app
├── README.md
├── requirements.txt
├── setup.py
├── app
│   ├── __init__.py
│   ├── main.py
│   ├── config.py
│   └── utils.py
└── tests
    ├── __init__.py
    └── test_main.py

```
and creates actual folders/files matching that structure.

---

## Installation
### Install from PyPI
```
pip install graph2doc
```

---

## How to Use
After installing, you can run the tool from anywhere using the command:
```
graph2doc
```
By default, it looks for a file named `tree.txt` in the current directory and creates the folder structure in the current working directory.

### Use a custom input file
```
graph2doc -i path/to/your_tree.txt
```

### Use a custom output directory
```
graph2doc -o path/to/output_folder
```

### Specify both input and output explicitly
```
graph2doc -i path/to/tree.txt -o path/to/output_folder
```

### Example input .txt
```
project
├── README.md
├── requirements.txt
├── setup.py
├── app
│   ├── init.py
│   ├── main.py
│   ├── config.py
│   └── utils.py
└── .gitignore
```


### What it does
`graph2doc` reads a “tree-like” structure and generates real folders and files matching it.  
If intermediate directories don’t exist, they are created automatically.
hatchling 1.28.0
Modern, extensible Python build backend
Requires Python: >=3.10
Keywords: build, hatch, packaging

# Hatchling

<div align="center">

<img src="https://raw.githubusercontent.com/pypa/hatch/master/docs/assets/images/logo.svg" alt="Hatch logo" width="500" role="img">

| | |
| --- | --- |
| Package | [![PyPI - Version](https://img.shields.io/pypi/v/hatchling.svg?logo=pypi&label=PyPI&logoColor=gold)](https://pypi.org/project/hatchling/) [![PyPI - Downloads](https://img.shields.io/pypi/dm/hatchling.svg?color=blue&label=Downloads&logo=pypi&logoColor=gold)](https://pypi.org/project/hatchling/) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/hatchling.svg?logo=python&label=Python&logoColor=gold)](https://pypi.org/project/hatchling/) |
| Meta | [![Hatch project](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/pypa/hatch/master/docs/assets/badge/v0.json)](https://github.com/pypa/hatch) [![linting - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![code style - Black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![types - Mypy](https://img.shields.io/badge/types-Mypy-blue.svg)](https://github.com/python/mypy) [![License - MIT](https://img.shields.io/badge/license-MIT-9400d3.svg)](https://spdx.org/licenses/) [![GitHub Sponsors](https://img.shields.io/github/sponsors/ofek?logo=GitHub%20Sponsors&style=social)](https://github.com/sponsors/ofek) |

</div>

-----

This is the extensible, standards compliant build backend used by [Hatch](https://github.com/pypa/hatch).

## Usage

The following snippet must be present in your project's `pyproject.toml` file in order to use Hatchling as your build backend:

```toml
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
```

Then a build frontend like [pip](https://github.com/pypa/pip), [build](https://github.com/pypa/build), or Hatch itself can build or install your project automatically:

```console
# install using pip
pip install /path/to/project

# build
python -m build /path/to/project

# build with Hatch
hatch build /path/to/project
```

## Documentation

- [Project metadata](https://hatch.pypa.io/latest/config/metadata/)
- [Dependencies](https://hatch.pypa.io/latest/config/dependency/)
- [Packaging](https://hatch.pypa.io/latest/config/build/)
kk0 0.1.6
Python SDK for the 3kk0 unified streaming API
Requires Python: >=3.8

# kk0 SDK

A minimal Python client for the 3kk0 unified WebSocket stream.

## Quickstart

```python
from kk0 import Stream
import asyncio

async def main():
    async with Stream("wss://api.3kk0.com/stream") as s:
        await s.subscribe(
            channels=["trades"],
            symbols=["SOL/USDT"],
            exchanges=["binance"],
        )
        async for event in s:
            print(event)

asyncio.run(main())
```

The broker exposes a single `/stream` websocket: send a `subscribe` payload with the filters you care about, and the iterator yields every normalized `trade`, `orderbook`, `heartbeat`, or `raw` message that matches. Include `raw=True` in the subscribe call to flow through the raw-connector payload (events arrive with `type == "raw"` and a `payload` that mirrors the upstream exchange data). Adjust `depth` and other filters as needed for your workload.

### Binance quickstart (quotes + trades + funding)

```bash
python sdk/python/examples/binance_quotes.py \
  --url ws://localhost:8080/stream \
  --symbol BTC/USDT \
  --depth 20 \
  --speed-ms 100
```

This example uses the SDK to subscribe to Binance trades, order books, funding marks, and price/ticker updates in one request (the SDK maps `price` → `ticker` automatically). Set `--raw` to also receive the exchange-native payloads. Use `--speed-ms 100` (fast) or `--speed-ms 1000` (slower/lower load) to control Binance depth update cadence.

## Unified stream schema

Each event received over `/stream` follows the dataclasses defined in [`engine/schemas.py`](engine/schemas.py:21-192). Trade frames (e.g., `type == "trade"`) always include `exchange`, `symbol`, `ts_event`, `ts_exchange`, `price`, `size`, `side`, and the optional metadata listed there; order book frames carry `bids`, `asks`, `update_type`, `depth`, `sequence`, and the derived helpers documented in the same file. Heartbeats carry `info`, and enabling `raw=True` adds `type == "raw"` messages whose `payload` is built in [`apps/broker/unified.py`](apps/broker/unified.py:365-533) to mirror the upstream connector data.

Every exchange connector referenced by the broker (for example [`engine/connectors/binance.py`](engine/connectors/binance.py:1-260), [`engine/connectors/bybit.py`](engine/connectors/bybit.py:1-300), and [`engine/connectors/hyperliquid.py`](engine/connectors/hyperliquid.py:1-320)) normalizes its native JSON into these fields before the broker fans them to clients. Because the SDK simply deserializes whatever JSON the broker sends (`Stream.__anext__` just `json.loads(...)`), you always see the same normalized keys regardless of the exchange you subscribe to.