semvec/pypi-packages huggingface dataset:
palma-sdk 0.1.1
High-level Python SDK for the MCP Gateway: async context-managed HTTP client with optional OIDC tokens.
Requires Python: <4.0,>=3.10

# Palma AI SDK (Python)

High-level Python SDK for the MCP Gateway. Provides an async context-managed client over HTTP that handles connection lifecycle, optional OIDC client-credentials tokens, and simple tool/resource calls.

## Installation

```bash
pip install palma-sdk
```

## Usage

```python
import os
from dotenv import load_dotenv
from palma_sdk import (
    PalmaHttpClient,
    PalmaHttpClientConfig,
    OIDCClientCredentialsConfig,
    create_oidc_token_provider,
)

load_dotenv()

token_provider = None
if os.getenv("AUTH0_DOMAIN"):
    token_provider = create_oidc_token_provider(
        OIDCClientCredentialsConfig(
            issuer=f"https://{os.getenv('AUTH0_DOMAIN')}",
            client_id=os.getenv("AUTH0_CLIENT_ID", ""),
            client_secret=os.getenv("AUTH0_CLIENT_SECRET", ""),
            audience=os.getenv("AUTH0_AUDIENCE"),
            scope=os.getenv("AUTH0_SCOPE"),
            sub=os.getenv("AUTH0_SUB"),
        )
    )

cfg = PalmaHttpClientConfig(
    endpoint=os.getenv("MCP_ENDPOINT", "http://localhost:3000/mcp"),
    org_id=os.getenv("MCP_ORG_ID"),
    token_provider=token_provider,
)

async def main():
    async with PalmaHttpClient(cfg) as client:
        tools = await client.list_tools()
        print("tools:", tools)
```

## Features

- Async context manager handles connect/initialize/cleanup
- Optional OIDC client-credentials token provider
- Tool and resource APIs (list, call, read)
- Type hints throughout

## License

MIT
swh.web.client 0.9.2
Software Heritage Web client
Requires Python: >=3.9

Software Heritage - Web client
==============================

Client for Software Heritage Web applications, via their APIs.


Sample usage
------------

.. code-block:: python

   from swh.web.client.client import WebAPIClient
   cli = WebAPIClient()

   # retrieve any archived object via its SWHID
   cli.get('swh:1:rev:aafb16d69fd30ff58afdd69036a26047f3aebdc6')

   # same, but for specific object types
   cli.revision('swh:1:rev:aafb16d69fd30ff58afdd69036a26047f3aebdc6')

   # get() always retrieve entire objects, following pagination
   # WARNING: this might *not* be what you want for large objects
   cli.get('swh:1:snp:6a3a2cf0b2b90ce7ae1cf0a221ed68035b686f5a')

   # type-specific methods support explicit iteration through pages
   next(cli.snapshot('swh:1:snp:cabcc7d7bf639bbe1cc3b41989e1806618dd5764'))
cx-logger 2025.10.23.post4
That is simple logger library, that can manage logs dir.
Requires Python: >=3.7
Keywords: logger, simple, base, logging, safety, web app, server app, app, logs, log

# cx-logger

That is really easy to use automatic logger. To start using it in app just
install it.

```bash
pip install cx-logger
```

When library had been installed, import it. All code snippets above would use that import.

```python
import cx_logger as logger
```

How create log directory? That is really simple, just type.

```python
import cx_logger as logger
import pathlib

manager = logger.logs_manager(pathlib.Path("./logs"))
logging = manager.get_logger(logger.sync_logger)

logging.use_handler(logger.stderr_handler())

logging.info("That is only info.")
logging.warning("Oh, that's warning!!!")
```

After that operation You would see something like that in stderr.

```
[info] (2025-10-23 14:12:12) That is only info.
[warning] (2025-10-23 14:12:12) Oh, that's warning!!!
```

Directory ./logs would be created if not already exists, and in it You
would see somethind like "2025-10-23.1.log". When You run script twice, then second file would be named like "2025-10-23.2.log".

### More info
 * See in the [wiki](https://git.cixoelectronic.pl/cixo-electronic/cx-logger/wiki/_pages)