semvec/pypi-packages huggingface dataset:
mp-tunnel 4.0.30
Tunnel System V4 - Cloudflare Workers based tunnel system
Requires Python: >=3.10

# Tunnel V4

A modern tunnel system built on Cloudflare Workers and Durable Objects.

## Features

- 🚀 **Remote Terminal** - SSH-like terminal access to your servers
- 📡 **SOCKS5 Proxy** - Secure proxy through your nodes
- ⚡ **Command Execution** - Run commands remotely
- 🔒 **Secure** - End-to-end encrypted connections
- 🌍 **Global** - Powered by Cloudflare's edge network

## Installation

```bash
pip install mp-tunnel
```

## Quick Start

### Start Agent on Your Server

```bash
# Basic usage
tunnel agent --id my-server @all

# With custom tags
tunnel agent --id my-server --tags env=prod,region=us @all

# Specific services only
tunnel agent --id my-server @term @socks5
```

### Use CLI to Connect

```bash
# List nodes
tunnel list

# Remote terminal
tunnel term --node my-server

# Execute command
tunnel exec --node my-server "uptime"

# SOCKS5 proxy
tunnel socks5 --node my-server --port 1080
```

## Configuration

### Environment Variables

- `TUNNEL_WORKER_URL` - Override default Worker URL
- `TUNNEL_ENV` - Environment (dev/prod)
- `TUNNEL_DEBUG` - Enable debug logging

### Custom Worker URL

```bash
export TUNNEL_WORKER_URL="wss://your-worker.workers.dev"
tunnel agent --id my-server @all
```

## Services

### Built-in Services

- `@all` - All services (exec, term, socks5)
- `@exec` - Remote command execution
- `@term` - Remote terminal
- `@socks5` - SOCKS5 proxy

### Port Forwarding

```bash
# Forward local HTTP service
tunnel agent --id my-server myapi:8080:http

# Forward local TCP service  
tunnel agent --id my-server mysql:3306:tcp
```

### HTTP Forward (支持 HTTP 和 WebSocket)

HTTP forward 类型统一支持 HTTP 请求和 WebSocket 升级：

```bash
# 启动 Agent，转发本地 HTTP/WebSocket 服务
tunnel agent --id my-server myservice:8080:http
```

访问方式：
- 子域名模式: `https://myservice-tun.your-domain.com/path`
- 路径模式: `https://your-domain.com/http/myservice/path`

**本地地址自动替换**：

对于返回本地地址的服务（如 Chrome DevTools Protocol），Agent 会自动将 JSON 响应中的 `127.0.0.1:port` 替换为占位符，Worker 再替换为公网域名。

示例 - 连接远程 CDP 浏览器：

```python
from playwright.sync_api import sync_playwright

# 启动 Agent: tunnel agent --id browser orbita:9222:http

with sync_playwright() as p:
    # 使用 https:// (Playwright 会自动获取 /json/version)
    browser = p.chromium.connect_over_cdp("https://orbita-tun.your-domain.com")
    page = browser.new_page()
    page.goto("https://example.com")
    browser.close()
```

## Development

```bash
# Clone repository
git clone https://github.com/yourusername/tunnel-v4.git
cd tunnel-v4

# Install in development mode
export TUNNEL_DEV=1
pip install -e .

# Run agent (development uses tunnel4 command)
tunnel4 agent --id test @all
```

## License

MIT License

## Links

- Documentation: https://github.com/yourusername/tunnel-v4/docs
- Issues: https://github.com/yourusername/tunnel-v4/issues
ispunct 1.0.4
Small Python library to check if a character is a punctuation character
Requires Python: <4.0.0,>=3.9

# `ispunct`

A small Python library for checking whether a character is a punctuation character.

---

## Quick Start

```python
from ispunct import ispunct

assert ispunct("?")
assert not ispunct("a")
assert ispunct("‽")
```

## Using `ispunct` as a Library

This package is published on PyPI.  You can install it with PIP:

```commandline
$ pip add ispunct
```

Or, if using [UV](https://github.com/astral-sh/uv/) for dependency management:

```commandline
$ uv add ispunct
```

## History

The origin of this project comes from an equivalent function to [Julia](https://julialang.org/)'s [`ispunct`](https://github.com/JuliaLang/julia/blob/7fa26f01/base/strings/unicode.jl#L531-L549), which is itself derived from the [C](https://www.c-language.org/) implementation for obtaining a Unicode character's category code.  This is a more complete solution than checking against [`string.punctuation`](https://docs.python.org/3/library/string.html#string.punctuation) or [`curses.ascii.ispunct`](https://docs.python.org/3/library/curses.ascii.html#curses.ascii.ispunct).  There is also [a StackOverflow question for this functionality](https://stackoverflow.com/q/46355466) which [I have answered](https://stackoverflow.com/a/79709763).

## Notes on Internal Functionality

This library also implements (and uses internally) bitwise functions to calculate the number of leading/trailing zeros/ones in the bitwise representation of a Python integer.  We also compute a Python integer that has the same bitpattern as a given character (i.e., simulating Julia's `bitcast`).  These are required in order to determine a character's category code.

## Alternative Libraries

This was written mostly as a proof of concept using bitwise operations on character codes.  You could derive similar functionality from the standard library [`unicodedata`](https://docs.python.org/3/library/unicodedata.html), or matching on character category with [`regex`](https://pypi.org/project/regex/) (see examples [here](https://github.com/jakewilliami/ispunct-py/issues/1#issuecomment-3717021835)).

A spiritual sister package and successor to `ispunct` is [`strip-marks`](https://github.com/jakewilliami/strip-marks-py/), in which we further explore unicode operations in Python.

## Citation

If your research depends on `ispunct`, please consider giving us a formal citation: [`citation.bib`](./citation.bib).
autoft-orkut 0.0.2
Mutasi QRIS OrderKuota Client
Requires Python: >=3.7

# autoft-orkut

Mutasi QRIS OrderKuota Client untuk Python

## Instalasi

```bash
pip install autoft-orkut

# Dengan fitur generate QR image
pip install autoft-orkut[imaging]
```

## Penggunaan

### Cek Mutasi

```python
from autoft_orkut import MutasiClient

client = MutasiClient("username", "userId:token")
result = client.get_mutasi()

print(result.to_json())
```

### Generate QRIS Dinamis

```python
from autoft_orkut import QRIS

qris_statis = "00020101021126670016COM.NOBUBANK.WWW..."

# Convert ke dinamis dengan nominal
qris_dinamis = QRIS.convert(qris_statis, 15000)

# Convert dengan kode unik random
result = QRIS.convert_unique(qris_statis, 15000)
print(f"QRIS: {result.qris}")
print(f"Kode Unik: {result.unique_code}")
print(f"Total: {result.total_amount}")
```

### Generate QR Image

```python
from autoft_orkut import QRIS

qris = QRIS(base_qr_string="00020101021126670016COM.NOBUBANK.WWW...")
image_bytes = qris.generate_dynamic_qr_image(15000)

with open("qris.png", "wb") as f:
    f.write(image_bytes)
```

## License

MIT
types-requests 2.32.4.20260107
Typing stubs for requests
Requires Python: >=3.9

## Typing stubs for requests

This is a [type stub package](https://typing.python.org/en/latest/tutorials/external_libraries.html)
for the [`requests`](https://github.com/psf/requests) package. It can be used by type checkers
to check code that uses `requests`. This version of
`types-requests` aims to provide accurate annotations for
`requests~=2.32.4`.

Note: `types-requests` has required `urllib3>=2` since v2.31.0.7. If you need to install `types-requests` into an environment that must also have `urllib3<2` installed into it, you will have to use `types-requests<2.31.0.7`.

This package is part of the [typeshed project](https://github.com/python/typeshed).
All fixes for types and metadata should be contributed there.
See [the README](https://github.com/python/typeshed/blob/main/README.md)
for more details. The source for this package can be found in the
[`stubs/requests`](https://github.com/python/typeshed/tree/main/stubs/requests)
directory.

This package was tested with the following type checkers:
* [mypy](https://github.com/python/mypy/) 1.18.2
* [pyright](https://github.com/microsoft/pyright) 1.1.407

It was generated from typeshed commit
[`a68aa254d9e6641f58a7c4f45ab20782226fbfc2`](https://github.com/python/typeshed/commit/a68aa254d9e6641f58a7c4f45ab20782226fbfc2).
fabric_cf 1.9.1
Fabric Control Framework
Requires Python: >=3.9
Keywords: Swagger, Fabric Control Framework

[![PyPI](https://img.shields.io/pypi/v/fabric-cf?style=plastic)](https://pypi.org/project/fabric-cf/)

# Control Framework
This repository contains Fabric Control Framework and Actor implementations.

## Overview
Fabric Control Framework has 3 actors
- Controller
- Broker
- Aggregate Manager

## Broker
Broker is an agent of CF that collects resource availability information from multiple aggregate managers and can make resource promises on their behalf. More details can be found [here](fabric_cf/broker/Readme.md)

## Aggregate Manager
AM is a CF agent responsible for managing aggregate resources. Is under the control of the owner of the aggregate. Provides promises of resources to brokers and controllers/ orchestrators. More details can be found [here](fabric_cf/authority/Readme.md)

## Orchestrator
Orchestrator is an agent of CF that makes allocation decisions (embedding) of user requests into available resources. Communicates with user to collect slice requests, communicates with broker or aggregate managers to collect resource promises, communicates with aggregate managers to provision promised resources. Creates slices, configures resources, maintains their state, modifies slices and slivers. More details can be found [here](fabric_cf/orchestrator/README.md)

## Architecture
The following diagram depicts an overall architecture for the Control Framework.
![Architecture](./images/cf.png)

## Requirements
Python 3.9+

## Build Docker Images

### Authority Docker Image
```
docker build -f Dockerfile-auth -t authority .
```

### Broker Docker Image
```
docker build -f Dockerfile-broker -t broker .
```

### Orchestrator Docker Image
```
docker build -f Dockerfile-orchestrator -t orchestrator .
```

## Configuration pre-requisites
- Kafka Configuration
  - Request topic, consumer and producer credentials for each Actor from [Song](ywsong2@g.uky.edu) 
  - Request Hosts running the Actors to be added to Kafka Brokers and Schema Registry Firewall
  - Make sure to configure consumer.group.id different for each actor
wedata-mlflow-header-plugin 0.1.2
MLflow request header provider plugin that adds Wedata custom headers
Requires Python: >=3.8

# MLflow Header Plugin

一个用于在MLflow请求中自动添加自定义header的插件。

## 功能

此插件会自动在所有MLflow tracking请求中添加以下header：
- `X-Target-Service-IP`: 目标服务的IP地址
- `X-Target-Service-PORT`: 目标服务的端口

## 安装

### 方式1: 从源码安装

```bash
cd wedata-mlflow-header-plugin
pip install -e .
```

### 方式2: 使用pip安装

```bash
pip install wedata-mlflow-header-plugin
```

## 配置

插件通过环境变量来配置header的值：

- `MLFLOW_TARGET_SERVICE_IP`: 设置目标服务IP（默认: "127.0.0.1"）
- `MLFLOW_TARGET_SERVICE_PORT`: 设置目标服务端口（默认: "5000"）
- `WEDATA_MLFLOW_HEADER_PLUGIN_DEBUG`: 开启debug日志输出（默认关闭；可设置为 `1/true/on`）

### 配置示例

```bash
# 设置环境变量
export MLFLOW_TARGET_SERVICE_IP="192.168.1.100"
export MLFLOW_TARGET_SERVICE_PORT="8080"
export WEDATA_MLFLOW_HEADER_PLUGIN_DEBUG="1"

# 运行你的MLflow代码
python your_mlflow_script.py
```

或者在Python代码中设置：

```python
import os
os.environ["MLFLOW_TARGET_SERVICE_IP"] = "192.168.1.100"
os.environ["MLFLOW_TARGET_SERVICE_PORT"] = "8080"
os.environ["WEDATA_MLFLOW_HEADER_PLUGIN_DEBUG"] = "1"

import mlflow

# 现在所有MLflow请求都会包含这些header
mlflow.set_tracking_uri("http://your-mlflow-server:5000")
mlflow.start_run()
# ... your MLflow code ...
mlflow.end_run()
```

## 使用示例

安装插件后，无需额外代码，MLflow会自动使用此插件：

```python
import mlflow

# 插件会自动添加header到所有请求
mlflow.set_tracking_uri("http://your-mlflow-server:5000")

with mlflow.start_run():
    mlflow.log_param("param1", 5)
    mlflow.log_metric("metric1", 0.85)
```

## 验证插件

你可以通过以下方式验证插件是否正常工作：

```python
import mlflow
from mlflow.tracking.request_header.registry import resolve_request_headers

# 检查注册的header providers
headers = resolve_request_headers()
print("Request Headers:", headers)
```

## Debug模式说明

当设置 `WEDATA_MLFLOW_HEADER_PLUGIN_DEBUG=1`（或 `true/on`）时，插件会在每次 `request_headers()` 被调用时输出调试日志到 stderr，内容包括：

- 从哪些环境变量读取 header 值（以及默认值）
- 最终返回给 MLflow 的 headers（对疑似敏感字段会做基础脱敏）

## 开发

### 项目结构

```
wedata-mlflow-header-plugin/
├── setup.py                          # 安装配置
├── README.md                         # 文档
├── requirements.txt                  # 依赖
└── wedata-mlflow-header-plugin/
    ├── __init__.py                   # 包初始化
    └── plugin.py                     # 插件实现
```

### 运行测试

```bash
pip install pytest
pytest tests/
```

## 工作原理

该插件利用MLflow的插件系统，实现了 `RequestHeaderProvider` 接口。通过在 `setup.py` 中注册 `mlflow.request_header_provider` entry point，MLflow会自动发现并加载此插件。

每次MLflow发送HTTP请求时，都会调用插件的 `request_headers()` 方法，获取需要添加的header。

## 依赖

- Python >= 3.8
- mlflow >= 2.0.0

## 许可

MIT License
r2x-plexos 0.1.3
Plexos Models, Parser and Exporter
Requires Python: <3.14,>=3.11
Keywords: PLEXOS

# r2x-plexos

> R2X plug-in for translating to and from PLEXOS XML databases.
>
> [![image](https://img.shields.io/pypi/v/r2x.svg)](https://pypi.python.org/pypi/r2x-plexos)
> [![image](https://img.shields.io/pypi/l/r2x.svg)](https://pypi.python.org/pypi/r2x-plexos)
> [![image](https://img.shields.io/pypi/pyversions/r2x.svg)](https://pypi.python.org/pypi/r2x-plexos)
> [![CI](https://github.com/NREL/r2x/actions/workflows/CI.yaml/badge.svg)](https://github.com/NREL/r2x/actions/workflows/ci.yaml)
> [![codecov](https://codecov.io/gh/NREL/r2x-plexos/branch/main/graph/badge.svg)](https://codecov.io/gh/NREL/r2x-plexos)
> [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
> [![Documentation](https://github.com/NREL/r2x-plexos/actions/workflows/docs.yaml/badge.svg?branch=main)](https://nrel.github.io/r2x-plexos/)
> [![Docstring Coverage](https://nrel.github.io/r2x-plexos/_static/docstr_coverage_badge.svg)](https://nrel.github.io/r2x-plexos/)


R2X PLEXOS plugin for parsing and exporting PLEXOS power system models.

## Quick Start

### Installation

```bash
uv add r2x-plexos
```

### Parsing PLEXOS XML

```python
from pathlib import Path
from r2x_core import DataFile, DataStore
from r2x_plexos import PLEXOSParser, PLEXOSConfig

# Parse PLEXOS XML
config = PLEXOSConfig(model_name="Base", reference_year=2024)
store = DataStore(path=Path("data"))
store.add_data(DataFile(name="xml_file", glob="*.xml"))

parser = PLEXOSParser(config, store)
system = parser.build_system()
```

## Documentation Sections

- [Tutorials](https://nrel.github.io/r2x-plexos/tutorials/) - Step-by-step learning guides
- [How-To Guides](https://nrel.github.io/r2x-plexos/how-tos/) - Task-focused recipes
- [Explanations](https://nrel.github.io/r2x-plexos/explanations/) - Architecture and design
- [References](https://nrel.github.io/r2x-plexos/explanations/references/) - API and configuration reference

## Roadmap

If you're curious about what we're working on, check out the roadmap:

- [Active issues](https://github.com/NREL/r2x-core/issues?q=is%3Aopen+is%3Aissue+label%3A%22Working+on+it+%F0%9F%92%AA%22+sort%3Aupdated-asc): Issues that we are actively working on.
- [Prioritized backlog](https://github.com/NREL/r2x-core/issues?q=is%3Aopen+is%3Aissue+label%3ABacklog): Issues we'll be working on next.
- [Nice-to-have](https://github.com/NREL/r2x-core/labels/Optional): Nice to have features or Issues to fix. Anyone can start working on (please let us know before you do).
- [Ideas](https://github.com/NREL/r2x-core/issues?q=is%3Aopen+is%3Aissue+label%3AIdea): Future work or ideas for R2X Core.