semvec/pypi-packages huggingface dataset:
bifrons 1.1.0
SemVer automation CLI based on PR title
Requires Python: >=3.8

# Bifrons

[![PyPI version](https://img.shields.io/pypi/v/bifrons)](https://pypi.org/project/bifrons/)
[![Python versions](https://img.shields.io/pypi/pyversions/bifrons)](https://pypi.org/project/bifrons/)
[![License](https://img.shields.io/github/license/Kalimbinha/Bifrons)](https://github.com/Kalimbinha/Bifrons/blob/main/LICENSE)

CLI para automação de versões SemVer baseada em títulos de PR/commit.

**Repositório**: [https://github.com/Kalimbinha/Bifrons](https://github.com/Kalimbinha/Bifrons)

**Pypi**: [https://pypi.org/project/bifrons/](https://pypi.org/project/bifrons/)    

## Descrição

O Bifrons analisa o título de uma PR ou commit e incrementa automaticamente a versão seguindo as regras do [Semantic Versioning (SemVer)](https://semver.org/). Ele classifica o título em:

- **patch** (correções): títulos começando com "fix"
- **minor** (novos recursos): títulos começando com "feat" ou "feature"
- **major** (mudanças incompatíveis): títulos começando com "breaking", "major" ou contendo "breaking change"

A versão atual é lida/escrita no arquivo [`version.txt`](version.txt ) no diretório atual.

## Instalação

Certifique-se de ter Python 3.8+ instalado.

```bash
pip install bifrons
```

## Uso

Execute o comando com o título da PR/commit:

```bash
bifrons --title "fix: correção de bug"
```

### Exemplos

- **Patch (correção)**:

  ```bash
  bifrons --title "fix: resolve memory leak"
  ```

  Saída:

  ```text
  [bifrons] versão anterior: 1.0.0
  [bifrons] nova versão: 1.0.1
  ```

- **Minor (novo recurso)**:

  ```bash
  bifrons --title "feat: add dark mode"
  ```

  Saída:

  ```text
  [bifrons] versão anterior: 1.0.1
  [bifrons] nova versão: 1.1.0
  ```

- **Major (mudança incompatível)**:

  ```bash
  bifrons --title "breaking: remove deprecated API"
  ```

  Saída:

  ```text
  [bifrons] versão anterior: 1.1.0
  [bifrons] nova versão: 2.0.0
  ```

- **Título inválido**:

  ```bash
  bifrons --title "random title"
  ```

  Saída:

  ```text
  Erro: Título inválido! Use fix/feat/major
  ```

### Arquivo de Versão

- O arquivo [`version.txt`](version.txt ) é criado automaticamente se não existir (inicia com `0.0.0`).
- Ele contém apenas a versão atual (ex.: `1.2.3`).
- Execute no diretório onde deseja gerenciar a versão.

## Desenvolvimento

- **Estrutura do Projeto**:

  ```text
  Bifrons/
  ├── bifrons/
  │   ├── __init__.py
  │   ├── cli.py       # Interface de linha de comando
  │   └── core.py      # Lógica principal
  ├── pyproject.toml   # Configuração do projeto
  ├── README.md        # Este arquivo
  └── version.txt      # Arquivo de versão (gerado)
  ```

- **Testes**: Execute `pytest` para rodar os testes em `tests/`.
- **Linting**: Use `black bifrons/` para formatar o código.

## Autor

Fernando Barreto

## Licença

MIT License. Veja o arquivo LICENSE para detalhes.
piqtec 0.1.5
A implementation of Python interface to the IQtec / Kobra smart home solutions.
Requires Python: >=3.13

# Piqtec: An IQtec smart-home Python inteface

[![CC BY-NC-SA 4.0][cc-by-nc-sa-shield]][cc-by-nc-sa] ![PyPI - Version](https://img.shields.io/pypi/v/piqtec)

A Python interface for the IQtec / Kobra smart home solutions.  
(IQtec is a small smart-home vendor based in the Czech Republic.)

It was written for my home use, and while I tried to keep things general might need some tweaks before being useful (PRs
welcome).
The functionality of the API this package relies on is reverse-engineered without any access to official documentation,
your mileage may vary.

The package aims to make the API accessible in Python and convert the values to correct datatypes, based on descriptions
from the `data.xml` file fetched from the endpoint.
The API requests are batched so the endpoint is not overloaded, and the return does not overflow the buffer (see:
`piqtec.controller.Controller.api_call` and `piqtec.constants.MAX_RESPONSE_LENGTH`).

Intended to be used
with [this custom Home Assistant integration.](https://github.com/oberth-effect/iqtec-ha-integration)

## Supported Devices

- System Controls (`piqtec.unit.system`),
- Room Controls (`piqtec.unit.room`),
- Covers/Window Controls (`piqtec.unit.sunblind`),
- Calendars (`piqtec.unit.calendar`),
- Other devices mapped from `data.xml` on the best effort basis (`piqtec.unit.device`).

## Usage

### Print whole current state

```python
from piqtec.controller import Controller

c = Controller("controller_ip_or_hostname:port")
state = c.update_status()
print(state)
```

### Example commands

(for all possible "nice" commands see unit modules)

```python
from piqtec.controller import Controller
from piqtec.constants import ROOM_MODES

c = Controller("controller_ip_or_hostname:port")

c.rooms["<ROOM_ID>"].set_room_mode(ROOM_MODES.CALENDAR)
```

### Example raw API usage

```python
from piqtec.controller import Controller

c = Controller("controller_ip_or_hostname:port")
r = c.devices["<DEVICE_ID>"].switch_apis["<SWITCH_ID>"].set_request("<VALUE>")
c.api_call(r)
```

## License

This work is licensed under a
[Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License][cc-by-nc-sa].

For non-commercial use only. Relicensing is available upon request.

[![CC BY-NC-SA 4.0][cc-by-nc-sa-image]][cc-by-nc-sa]


[cc-by-nc-sa]: http://creativecommons.org/licenses/by-nc-sa/4.0/

[cc-by-nc-sa-image]: https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png

[cc-by-nc-sa-shield]: https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg
rotagent 0.1.0
Agent authentication and orchestrator client utilities for secure multi-agent communication
Requires Python: >=3.9
Keywords: orchestrator, agent, authentication, jwt, security, multi-agent

# rotagent

A Python library for secure agent-orchestrator communication using JWT-based authentication with RSA keypairs.

## Features

- 🔐 **AgentAuth**: Flask decorator for securing agent endpoints with JWT verification
- 📡 **OrchestratorClient**: Async client for sending signed requests to agents
- 🔑 **KeyManager**: RSA keypair generation and public key loading
- 🛠️ **DevTools**: Development utilities for key setup and token generation

## Installation

```bash
pip install rotagent
```

## Quick Start

### Agent Side (Flask Application)

```python
from flask import Flask, request, jsonify
from rotagent import AgentAuth

app = Flask(__name__)
auth = AgentAuth(keys_dir="./authorized_keys")

@app.route("/agent", methods=["POST"])
@auth.require_auth
def agent_endpoint():
    data = request.get_json()
    # Your agent logic here
    return jsonify({"response": "Hello from agent!"})
```

### Orchestrator Side

```python
import aiohttp
from rotagent import OrchestratorClient

async def call_agent():
    async with aiohttp.ClientSession() as session:
        response = await OrchestratorClient.send_secure_request(
            session=session,
            url="http://agent-url.com",
            payload={"query": "What movies are playing?"},
            issuer_id="my_orchestrator",
            private_key_pem=private_key_pem  # Your RSA private key
        )
        return response
```

### Development Setup

Generate development keys for testing:

```python
from rotagent import DevTools

# Generate keys - saves public key to disk, prints private key for .env
DevTools.setup_persistent_keys(keys_dir="authorized_keys", issuer_id="dev_postman")

# Generate a test token for Postman/curl testing
token, body = DevTools.generate_bearer_token(query="test query")
```

## Environment Variables

- `APP_ENV`: Set to `development` to disable security checks (replay protection, body hash verification)

## Security Features

- **JWT-based authentication** with RS256 signing
- **Replay attack protection** with JTI (JWT ID) tracking
- **Body tampering detection** via SHA256 content hashing
- **Hot-reload** of public keys (no restart needed when adding new orchestrators)

## License

MIT License
apathetic-utils 0.5.2
When stdlib is almost enough.
Requires Python: >=3.10
Keywords: library, utilities, utils

# Apathetic Python Utils ⚙️

[![CI](https://github.com/apathetic-tools/python-utils/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/apathetic-tools/python-utils/actions/workflows/ci.yml)
[![License: MIT-a-NOAI](https://img.shields.io/badge/License-MIT--a--NOAI-blueviolet.svg)](LICENSE)
[![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](https://discord.gg/PW6GahZ7)

📘 **[Roadmap](./ROADMAP.md)** · 📝 **[Release Notes](https://github.com/apathetic-tools/python-utils/releases)**

**Grab bag of helpers for Apathetic projects.**  
*When stdlib is almost enough.*

*Apathetic Python Utils* provides a lightweight, dependency-free collection of utility functions designed for CLI tools. It includes helpers for file loading, path manipulation, system detection, text processing, type checking, pattern matching, and more.

> [!NOTE]
> Heads up: the AI cooked dinner. It's edible, but watch your step.  
> Detailed bug reports welcome.

## Quick Start

```python
from apathetic_utils import load_jsonc, load_toml, is_ci, detect_runtime_mode
from pathlib import Path

# Load configuration files
config = load_jsonc(Path("config.jsonc"))
pyproject = load_toml(Path("pyproject.toml"))

# Detect environment
if is_ci():
    print("Running in CI")

# Detect runtime mode (package, stitched, zipapp, frozen)
mode = detect_runtime_mode("my_package")
print(f"Running in {mode} mode")
```

## Installation

```bash
# Using poetry
poetry add apathetic-utils

# Using pip
pip install apathetic-utils
```

## Documentation

📚 **[Full Documentation →](https://apathetic-tools.github.io/python-utils/)**

For installation guides, API reference, examples, and more, visit our documentation website.

## Features

- 🪶 **Zero dependencies** — Uses only Python's standard library (except apathetic-logging for logging)
- 📁 **File loading** — Load TOML and JSONC files with comment support
- 🛤️ **Path utilities** — Cross-platform path normalization and glob handling
- 🔍 **Pattern matching** — Portable glob pattern matching with recursive `**` support
- 🧩 **Module detection** — Detect Python packages from file paths
- 🧪 **System detection** — Detect CI environments, pytest execution, and runtime modes
- ⚙️ **Runtime utilities** — Build and test utilities for stitched scripts and zipapps
- 🔧 **Subprocess utilities** — Capture and forward subprocess output
- 📝 **Text processing** — Pluralization and error message cleanup utilities
- 🔧 **Type utilities** — Safe isinstance checks for TypedDicts and generics
- 🧪 **Testing utilities** — Helpers for testing mixins and patching functions
- 🎯 **CLI-friendly** — Designed with command-line applications in mind

---

## ⚖️ License

- [MIT-a-NOAI License](LICENSE)

You're free to use, copy, and modify the library under the standard MIT terms.  
The additional rider simply requests that this project not be used to train or fine-tune AI/ML systems until the author deems fair compensation frameworks exist.  
Normal use, packaging, and redistribution for human developers are unaffected.
cpi-tools 0.4.1
Repository of functions used across CPI
Requires Python: >=3.7

# CPI Data Tools

A repository of commonly used tools across CPI

## Instructions

1. Install:

```
pip install cpi_tools
```

AWS Tools

```python
from cpi_tools import aws_tools

#S3 Bucket
bucket = 'YOUR_BUCKET'
#Path within S3
path = 'PATH_IN_BUCKET'
#S3 File name 
file_name = 'FILE_NAME'

#Read file from S3
df = aws_tools.read_from_s3(bucket, path, file_name)

#Write file to S3
aws_tools.write_to_s3(df, bucket, path, file_name)
```