semvec/pypi-packages huggingface dataset:
fpythonic.circular-array 4.1.0
An indexable circular array data structure.
Requires Python: >=3.12
Keywords: circular array, dequeue, pop, push, indexable, auto resizing

# Developer Tools - Circular Array

Python package containing a module implementing a circular array data
structure, This project is part of the [Developer Tools for Python][4]
**dtools** namespace projects.

- **Repositories**
  - [dtools.circular-array][1] project on *PyPI*
  - [Source code][2] on *GitHub*
- **Detailed documentation**
  - [Detailed API documentation][3] on *GH-Pages*

## Overview

A full featured auto resizing circular array data structure. Double
sided, indexable, sliceable, and iterable. When iterated, uses cached
copies of its present state so that the circular array itself can safely
be mutated.

- O(1) amortized pushes and pops either end.
- O(1) indexing
- fully supports slicing
- safely mutates over previous state

Useful either if used directly like a Python list, or in a "has-a"
relationship when implementing other data structures.

- *module* dtools.circular_array
  - *class* `CA:` circular array data structure
    - initializer takes 1 or 0 iterators
      - like `list` or `set` does
  - *function* `ca`: produces a `CA` from the function's arguments
    - similar use case as syntactic constructs `[]` or `{}`

Above nomenclature modeled after builtin data types like `list`, where
`CA` and `ca` correspond respectfully to `list` and  `[]` in their use
cases.

#### Usage

```python
    from dtools.circular_array import CA, ca
    
    ca1 = ca(1, 2, 3)
    assert ca1.popl() == 1
    assert ca1.popr() == 3
    ca1.pushr(42, 0)
    ca1.pushl(0, 1)
    assert repr(ca1) == 'ca(1, 0, 2, 42, 0)'
    assert str(ca1) == '(|1, 0, 2, 42, 0|)'
    
    ca2 = CA(range(1,11))
    assert repr(ca2) == 'ca(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)'
    assert str(ca2) == '(|1, 2, 3, 4, 5, 6, 7, 8, 9, 10|)'
    assert len(ca2) == 10
    tup3 = ca2.poplt(3)
    tup4 = ca2.poprt(4)
    assert tup3 == (1, 2, 3)
    assert tup4 == (10, 9, 8, 7)
    assert ca2 == ca(4, 5, 6)
    four, *rest = ca2.poplt(1000)
    assert four == 4
    assert rest == [5, 6]
    assert len(ca2) == 0
    
    ca3 = CA([1, 2, 3])
    assert ca3.popld(42) == 1
    assert ca3.poprd(42) == 3
    assert ca3.popld(42) == 2
    assert ca3.poprd(42) == 42
    assert ca3.popld(42) == 42
    assert len(ca2) == 0
```

[1]: https://pypi.org/project/dtools.circular-array
[2]: https://github.com/grscheller/dtools-circular-array
[3]: https://grscheller.github.io/dtools-namespace-projects/circular-array
[4]: https://github.com/grscheller/dtools-namespace-projects/blob/main/README.md
mcp-glama-registry 0.1.1
MCP Registry Server for Glama MCP. Exposes a tool to search the Glama MCP registry for MCP servers.
Requires Python: >=3.10

# MCP Registry Server for Glama MCP

This package provides an MCP server that exposes a tool to search the Glama MCP registry for MCP servers matching a query string.  
See [Glama.ai MCP Registry](https://glama.ai/mcp/servers) for additional information.

## Installation

Install using [uv](https://github.com/astral-sh/uv):

```sh
uv sync
```

## Usage

```json
{
  "mcpServers": {
    "glama-registry": {
      "command": "uvx",
      "args": [
        "mcp-glama-registry"
      ]
    }
  }
}
```

## API

The server exposes a single tool:

- `search_mcp_servers(query: str) -> list`: Searches the Glama MCP registry for MCP servers matching the query string.

## Development & Testing

Install development dependencies:

```sh
uv sync --all-groups
```

Run tests with [pytest](https://pytest.org/):

```sh
uv run pytest
```

See `tests/test_acceptance.py` for an example of how to use the API in code.

## License

MIT
bp-config 0.1.2
A configuration file handler supporting YAML, JSON and TOML formats
Requires Python: >=3.8

# bp-config

一个支持 YAML/JSON/TOML 格式的配置文件处理器

## 功能特性

- 支持读取和写入 YAML、JSON、TOML 格式的配置文件
- 自动根据文件扩展名选择对应的解析器
- 支持 UTF-8 编码，完美处理中文内容
- 简洁易用的 API 设计

## 安装

```bash
pip install bp-config
```

快速开始

```python

from bp_config import ConfigHandler

# 初始化处理器
handler = ConfigHandler()

# 读取配置
config = handler.read_config("config.yaml")

# 修改配置
config["new_key"] = "value"

# 写入配置
handler.write_config("config.yaml", config)

```


API 文档

```text
ConfigHandler()

read_config(filename)
读取并解析配置文件

参数:
filename: 配置文件名（相对或绝对路径）
返回: 解析后的字典对象
异常:
ValueError: 不支持的格式
FileNotFoundError: 文件不存在
IOError: 读取失败

write_config(filename, config)
将配置写入文件

参数:
filename: 要写入的文件名
config: 要写入的配置字典
异常:
ValueError: 不支持的格式
IOError: 写入失败
```

许可证
MIT 许可证 - 详见 LICENSE 文件
pdf-merger-cli 1.1.0
CLI tool to merge PDF files
Requires Python: >=3.8

# 📎 pdf-merger-cli

Simple CLI tool to merge PDF files in a single one. Support merge of entire directories and custom order.

## 📦 Installation

```bash
pip install pdf-merger-cli
```

## 🛠️ How to use

```bash
pdfmerge file1.pdf file2.pdf -o output.pdf
```

Even entire directories:

```bash
pdf-merge ./documenti/ -o merged.pdf
```

With manual ordering:

```bash
pdf-merge 3.pdf 1.pdf 2.pdf -o merged.pdf --ordered
```

## 🐍 Requirements

* Python ≥ 3.7