semvec/pypi-packages huggingface dataset:
einvoice-lens 0.2.3
Einvoice Lens is a package that uses OCR and rule-based parsing to transform Vietnam's electronic invoices into structured data
Requires Python: >=3.12
Keywords: ocr, python3, rule-based-parsing, vietnam-electronic-invoices

<div align="center">
  <a href="https://github.com/thuyetbao/einvoice-lens.git">
    <img src="docs/assets/images/banner.png" alt="Package Banner" height="200" width="100%">
  </a>
</div>

<div align="center">
  <h3>Einvoice Lens</h3>
  <p><b>Scan Vietnam's electronic invoices into structured data</b></p>
</div>

<div align="center">
  <a href="https://github.com/thuyetbao/einvoice-lens.git" target="_blank">
    <img src="https://img.shields.io/pypi/v/einvoice-lens.svg?logo=pypi" alt="Package Version">
  </a>
</div>

<div align="center">
  <a href="https://python.org/" target="_blank">
    <img src="https://img.shields.io/pypi/pyversions/einvoice-lens.svg?logo=python" alt="Supported Python versions">
  </a>
  <br>
  <a href="https://pre-commit.com/" target="_blank">
    <img src="https://img.shields.io/badge/pre--commit-enabled-teal?logo=pre-commit" alt="pre-commit enabled">
  </a>
  <a href="https://github.com/astral-sh/ruff" target="_blank">
    <img src="https://img.shields.io/badge/ruff-enabled-teal?logo=ruff" alt="ruff enabled">
  </a>
  <a href="https://peps.python.org/pep-0008/" target="_blank">
    <img src="https://img.shields.io/badge/pep8-enabled-teal?logo=python" alt="pep8 enabled">
  </a>
  <a href="https://github.com/features/actions" target="_blank">
    <img src="https://img.shields.io/badge/cicd-github--action-teal?logo=github-actions" alt="Github Action">
  </a>
</div>

---

**einvoice-lens** is a package that uses OCR and rule-based parsing to transform Vietnam's electronic invoices into structured data.

**Features**:

- Extracts structured output of sale invoice

- Command-line interface to integrate with shell scripts and automation workflows

## **Usage**

Install package from PyPI distribution [`einvoice-lens`](https://pypi.org/project/einvoice-lens/)

```bash
pip install einvoice-lens
```

```py
from einvoice_lens import parse_commerical_invoice

output = parse_commerical_invoice(path="path/to/document.pdf")
```

or, using cli by

```bash
python -m einvoice_lens.cli --path path/to/document.pdf
```

**Documentation**:

Documentation document at folder [docs/](/docs/)

**Code Storage**:

Repository: [GitHub > Repository:`einvoice-lens`](https://github.com/thuyetbao/einvoice-lens)

**Releases**:

Releases: [GitHub > Repository:`einvoice-lens` > Releases](https://github.com/thuyetbao/einvoice-lens/releases)
minimal-thread-pool 0.1.0a0
A minimal Python 2+ thread pool designed for clarity, without reliance on `concurrent.futures`.
Requires Python: >=2

# minimal-thread-pool

A minimal Python 2+ thread pool designed for clarity, without reliance on `concurrent.futures`.

## Features

- **Explicit:** If any submitted job raises an exception, the corresponding worker thread terminates loudly.
- **Easy lifecycle:** Add tasks, then call `.join()` to wait for completion. Pull results as soon as they are ready.

## Installation

```bash
pip install minimal-thread-pool
```

## Usage

```python
from __future__ import print_function
import time
import random
from minimal_thread_pool import MinimalThreadPool


def slow_square(x):
    time.sleep(random.randint(1, 10))
    return x * x


pool = MinimalThreadPool(num_threads=2)
for i in range(10):
    # def add_task(self, func, *args, **kwargs)
    pool.add_task(slow_square, i)

# Retrieve results (order not guaranteed)
for thread_index, result in pool.results():
    print('Worker %d returned %s' % (thread_index, result))

# Wait for all tasks
pool.join()
```

## Contributing

Contributions are welcome! Please submit pull requests or open issues on the GitHub repository.

## License

This project is licensed under the [MIT License](LICENSE).
Scriptum-Report 1.2.1
Generate DOCX and PPTX reports from templates using python-docx and python-pptx.
Requires Python: >=3.10

## SCRIPTUM a report generator

by temmel007@gmail.com, 2020-2026

This is a PYTHON implementation of a report generator to create PPTX, DOCX from scratch

<pre>   ___   ___  ____  ____  ____  ____  __  __  __  __ 
  / __) / __)(  _ \(_  _)(  _ \(_  _)(  )(  )(  \/  )
  \__ \( (__  )   / _)(_  )___/  )(   )(__)(  )    ( 
  (___/ \___)(_)\_)(____)(__)   (__) (______)(_/\/\_)
</pre>

### Origin:
   from latin *Scriptum* "written", participle perfect to *scribere* "write"

collect classes and functions to create reports
based on a template and the python-docx and python-pptx packages

for details on 
 * python-docx see https://python-docx.readthedocs.io
 * python-pptx see https://python-pptx.readthedocs.io
 * openxml by Microsoft see http://officeopenxml.com/

### Source

see https://github.com/PyTomE/Scriptum-Report

### Install

pip install Scriptum-Report

### License

This project is dual-licensed:

- **Non-commercial use:** [PolyForm Noncommercial License 1.0.0](LICENSES/PolyForm-Noncommercial-1.0.0.md)  
- **Commercial use:** [Commercial license](LICENSES/Commercial.md)

SPDX identifiers:

- Non-commercial: `PolyForm-Noncommercial-1.0.0`
- Commercial: `LicenseRef-SCRIPTUM-Commercial`

If you plan to use this software in a commercial setting,
please see [`LICENSES/Commercial.md`](LICENSES/Commercial.md).

### Further reading

See [`documentation`](docs/Intro.md) and other files in that folder.

For a start, take the examples found on https://github.com/PyTomE/Scriptum-Report
in the folders of `tests`
ukr2adms 0.1.3
ukr2adms utility to construct ADMS-compatible memory CSVs for UK repeaters and gateways
Requires Python: >=3.13

# `ukr2adms` utility

The `ukr2adms` utility is designed to help UK amateur radio enthusiasts upload
UK repeater and gateway frequencies/callsigns into the the memories in their C4FM radios.
It automatically downloads
repeater and gateway information from the [RSGB ukrepeaters](https://ukrepeater.net)
website, and formats the required CSV file for uploading into the Yaesu ADMS programming
software.

Options for the user are to download gateways as well as repeaters, select analog- as well
as C4FM-capable stations, and select only "OPERATIONAL" status stations.  The user may
instruct `ukr2adms` to set the operating mode of each station to AMS (Automatic Mode
Select), otherwise "DN" is assumed for YSF-capable stations, and "FM" otherwise.

> [!note]
> There are a couple of caveats you should consider when using this software:
> 
> 1. The software has been tested on the ADMS-16 software when programming a Yaesu FTM-500D. With
>    other radios, YMMV!
> 1. The data from the [UK Repeaters API](https://ukrepeater.net/csvfiles.html) is not 100% accurate. 
>    In particular, certain CTCSS frequencies are erroneous, and don't match the set of CTCSS frequencies
>    allowed by ADMS.  `ukr2adms` makes a best guess, converting `0` (i.e. no CTCSS) to `100.0 Hz` with 
>    Tone Squelch set of `OFF`), and setting any other CTCSS frequencies to their nearest frequency in the
>    ADMS valid set.


## Installation
Installation is best carried out using either `pip` or `pipx`, i.e.

```bash
$ pip install ukr2adms
```
or
```bash
$ pipx install ukr2adms
```

## Basic usage
To download all the repeater and gateway frequencies on both 2m and 70cm, and output to a CSV file `foo.csv` invoke `ukr2adms` by

```bash
$ ukr2adms -g foo.csv
```

`foo.csv` can now be imported into ADMS(-16) for writing to the radio.

For more information, consult the user help:

```bash
$ ukr2adms -h
```
mcp-server-tapd 8.0.73
TAPD MCP Server
Requires Python: >=3.13
Keywords: mcp, tapd

# TAPD MCP Server

TAPD 是腾讯敏捷研发管理平台，覆盖需求、计划、研发、测试、发布研发全生命周期。支持用自然语言与 TAPD 对话，实现需求、缺陷、任务、迭代等管理。

* 与 TAPD API 无缝集成，提升开发效率

## 系统要求

* uv
* TAPD Access Token（推荐）或 TAPD API 账号密码

## 快速开始
### Install uv
```
brew install uv
# OR
curl -LsSf https://astral.sh/uv/install.sh | sh
```

### 参数
- TAPD_ACCESS_TOKEN: 个人令牌（推荐）
- TAPD_API_USER: API账号 
- TAPD_API_PASSWORD: API密钥 
- BOT_URL: 企业微信机器人 webhook 地址，如果需要发送消息到企业微信群才需要填（选填）

注意 TAPD_API_USER/TAPD_API_PASSWORD（TAPD API 账号密码） 与 TAPD_ACCESS_TOKEN（TAPD 个人授权令牌）为两种调用 MCP 的凭据，选一种即可。


### 获取 TAPD Access Token（推荐）
TAPD_ACCESS_TOKEN 为 TAPD 个人令牌，在 [我的设置-个人访问令牌](https://www.tapd.cn/personal_settings/index?tab=personal_token)  点“创建个人访问令牌”，令牌只显示一次，注意保存下来。

### 获取 API 账号密码（兼容）

1. 未注册，请前往 [注册](https://www.tapd.cn?from_partner=copilot&source=tapd_operation_copilot)
2. 已注册但未授权API，请前往API配置：登录TAPD，点击进入 [公司管理-API账号管理](https://www.tapd.cn/open_platform/open_api_redirect?from_partner=copilot&source=tapd_operation_copilot)，复制API账号和API密钥


## IDE 配置
### CodeBuddy / Claude Desktop / Cursor
#### 本地 stdio 运行，环境变量配置示例（推荐个人 Token）
```json
{
  "mcpServers": {
    "mcp-server-tapd": {
      "command": "uvx",
      "args": ["mcp-server-tapd"],
      "env": {
        "TAPD_ACCESS_TOKEN": "",
        "TAPD_API_USER": "",
        "TAPD_API_PASSWORD": "",
        "TAPD_API_BASE_URL": "https://api.tapd.cn",
        "TAPD_BASE_URL": "https://www.tapd.cn",
        "BOT_URL": ""
      }
    }
  }
}
```


### Streamable HTTP 配置
使用 Streamable HTTP 替代 stdio
1. 在终端手动启动服务
```
git clone https://cnb.cool/tapd_mcp/mcp-server-tapd.git

cd mcp-server-tapd/src/mcp_server_tapd

uv venv && source .venv/bin/activate

uv pip install requests markdown mcp mcp_server_tapd

python server.py --mode=streamable-http --host="0.0.0.0" --port=8000 --api-user=your_api_user --api-password=your_api_password --api-base-url=https://api.tapd.cn --tapd-base-url=https://www.tapd.cn  --bot-url="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXX"

# 如果使用个人 Token，则将 --api-user=your_api_user --api-password=your_api_password 替换为 --access-token=您的个人Token

```

2. 通过如下配置连接到已启动的服务
```json
{
  "mcpServers": {
    "tapd_mcp_http": {
      "url": "http://localhost:8000/mcp/"
    }
  }
}
```