semvec/pypi-packages huggingface dataset:
aistore 1.20.0
Client-side APIs to access and utilize clusters, buckets, and objects on AIStore.
Requires Python: >=3.8
Keywords: AIStore, Artificial Intelligence, Deep Learning, ETL, High Performance, Lightweight Object Storage, Object Storage, Petascale

## AIS Python Components

This package contains the AIStore Python SDK, PyTorch integration, and Botocore patch. 
See the README files in each module for usage details:

- [SDK](https://github.com/NVIDIA/aistore/blob/main/python/aistore/sdk/README.md)
- [PyTorch](https://github.com/NVIDIA/aistore/blob/main/python/aistore/pytorch/README.md)
- [Botocore](https://github.com/NVIDIA/aistore/blob/main/python/aistore/botocore_patch/README.md)

## References

* [AIStore GitHub](https://github.com/NVIDIA/aistore)
* [Documentation](https://aistore.nvidia.com/docs)
* [AIStore pip package](https://pypi.org/project/aistore/)
* [KubeCon 2024 presentation](https://www.youtube.com/watch?v=N-d9cbROndg)
asterpy 0.6.1
A simple Python wrapper around the Aster protocol, inspired by the syntax of discord.py
Requires Python: >=3.8

# aster.py

Aster.py is a python implementation of the [Aster](https://github.com/Jachdich/aster-server) protocol, designed for use in bots or custom clients. The syntax is heavily inspired by [discord.py](https://github.com/Rapptz/discord.py).

Currently a work in progress, does not support all of the features of Aster.

PyPI release can be found [here](https://pypi.org/project/asterpy/)


## Documentation

See http://cospox.com/docs/asterpy/

## Example

Ping example (listens for "ping" and responds "pong")
```py
import asterpy

client = asterpy.Client("Username", "Password")
client.add_server("example.com", 2345, uuid=my_uuid)

@client.event
async def on_message(message):
    if message.content == "ping":
        await message.channel.send("pong")

@client.event
async def on_ready():
    print("Ready!")

client.run()
```
senteniel-core-fks 0.0.2
Library-only Sentinel core (policy, orchestration, MCP/tool plugins, audit sinks)
Requires Python: >=3.10

# senteniel-core-fks (Python)

`senteniel-core-fks` is the library-first Sentinel package:
- no required port
- no required HTTP server
- pluggable MCP/tool backends
- pluggable orchestrators
- pluggable audit sinks

The existing `SentinelClient` (GraphQL remote client) is still available.
Both imports are supported:
- `from sentinel_core import ...` (preferred)
- `from sentinel_sdk import ...` (backward compatible)

## Install (editable)

```bash
pip install -e sdk
```

Install from PyPI:

```bash
pip install senteniel-core-fks
```

Published package name: `senteniel-core-fks`.

## Local Library Usage (No Server)

```python
from sentinel_core import (
    SentinelEngine,
    StaticToolBackend,
    InMemoryAuditSink,
    make_policy_engine_from_dict,
)

backend = StaticToolBackend(
    {
        "openbnb_airbnb.airbnb_search": lambda args: {"ok": True, "args": args},
    }
)

policy = make_policy_engine_from_dict(
    {
        "openbnb_airbnb.": {
            "decision": "ALLOW",
            "risk": 0.0,
            "reason": "Airbnb read tools allowed",
        }
    }
)

audit = InMemoryAuditSink()
engine = SentinelEngine(tool_backend=backend, policy_engine=policy, audit_sinks=[audit])
engine.sync_tools()

decision = engine.propose_tool_call(
    "openbnb_airbnb.airbnb_search",
    {"location": "Accra"},
)
print(decision)
print(audit.events[-1])
```

## Audit Sinks

- `InMemoryAuditSink`: captures events in memory (`events` list).
- `JsonlAuditSink`: appends one JSON event per line to a file.
- `HttpAuditSink`: sends events to an external endpoint.

## Orchestrator Plugin Example

```python
from sentinel_core import SentinelEngine, ExplicitToolCallOrchestrator, StaticToolBackend

backend = StaticToolBackend({"demo.echo": lambda args: args})
engine = SentinelEngine(tool_backend=backend, allow_unknown_tools=True)
engine.register_orchestrator(ExplicitToolCallOrchestrator())
engine.sync_tools()

result = engine.run("explicit", 'demo.echo {"msg":"hello"}')
print(result)
```

## Remote GraphQL Client (Optional)

```python
from sentinel_core import SentinelClient

client = SentinelClient("http://localhost:8000/graphql")
result = client.propose_tool_call("fs.list_dir", {"path": "/sandbox"})
print(result)
```