semvec/pypi-packages huggingface dataset:
subtitle-renamer 0.1.2
A utility to rename subtitle files to match video files based on episode numbers
License: MIT
Requires Python: >=3.10

# Subtitle Renamer

A utility to rename subtitle files to match video files based on episode numbers.

## Overview

Subtitle Renamer automatically detects video files and their corresponding subtitle files based on episode numbers or similar patterns, and renames the subtitle files to match the video files while preserving their extensions.

This is particularly useful for TV shows, anime, or any video content with episodes where you want the subtitle filenames to match the video filenames.

## Installation

Install from PyPI:

```bash
pip install subtitle-renamer
```

## Usage

### Command Line

```bash
subtitle-renamer [options]
```

### Options

- `-v, --video-dir`: Directory containing video files (defaults to current directory)
- `-s, --subtitle-dir`: Directory containing subtitle files (defaults to video directory)
- `-r, --recursive`: Search recursively in directories
- `-d, --dry-run`: Show what would be done without actually renaming files
- `--remove-originals`: Remove original subtitle files after renaming
- `--keep-existing`: Skip renaming if target file already exists
- `--verbose`: Show detailed logs
- `--video-pattern`: Custom regex pattern to extract episode numbers from video files (can be specified multiple times)
- `--subtitle-pattern`: Custom regex pattern to extract episode numbers from subtitle files (can be specified multiple times)

### Examples

Basic usage (current directory):
```bash
subtitle-renamer
```

Specify video and subtitle directories:
```bash
subtitle-renamer --video-dir /path/to/videos --subtitle-dir /path/to/subtitles
```

Preview changes without renaming:
```bash
subtitle-renamer --dry-run
```

Recursive search through subdirectories:
```bash
subtitle-renamer --recursive
```

### Python API

You can also use Subtitle Renamer as a library in your Python code:

```python
from subtitle_renamer import SubtitleRenamer

renamer = SubtitleRenamer(
    video_dir="/path/to/videos",
    subtitle_dir="/path/to/subtitles",
    dry_run=True,
    recursive=True
)

renamed_count, total_count = renamer.run()
print(f"Renamed {renamed_count} of {total_count} subtitle files")
```

## How It Works

1. The tool scans for video files and subtitle files in the specified directories
2. It extracts episode numbers using regex patterns
3. It matches video and subtitle files with the same episode number
4. It renames the subtitle files to match the video files, keeping their original extension

## Supported Formats

- **Video**: .mkv, .mp4, .avi, .mov, .flv, .wmv, .m4v, .webm
- **Subtitles**: .srt, .ass, .ssa, .vtt, .sub

## License

MIT
miservice 2.3.0
XiaoMi Cloud Service
License: MIT
Requires Python: >=3.7

# MiService
XiaoMi Cloud Service for mi.com

## Install
```
pip3 install aiohttp aiofiles miservice
```

## Library
```
MiService：XiaoMi Cloud Service
  |
  |-- MiAccount：Account Srvice
  |-- MiBaseService：(TODO if needed)
  |     |
  |     |-- MiIOService：MiIO Service (sid=xiaomiio)
  |     |     |
  |     |     |-- MIoT_xxx：MIoT Service, Based on MiIO
  |     |
  |     |-- MiNAService：MiAI Service (sid=micoapi)
  |     |
  |     |-- MiAPIService：(TODO)
  |-- MiIOCommand：MiIO Command Style Interface
```

## Command Line
```
MiService 2.1.2 - XiaoMi Cloud Service

Usage: The following variables must be set:
           export MI_USER=<Username>
           export MI_PASS=<Password>
           export MI_DID=<Device ID|Name>

Get Props: ./micli.py <siid[-piid]>[,...]
           ./micli.py 1,1-2,1-3,1-4,2-1,2-2,3
Set Props: ./micli.py <siid[-piid]=[#]value>[,...]
           ./micli.py 2=60,2-1=#60,2-2=false,2-3="null",3=test
Do Action: ./micli.py <siid[-piid]> <arg1|[]> [...]
           ./micli.py 2 []
           ./micli.py 5 Hello
           ./micli.py 5-4 Hello 1

Call MIoT: ./micli.py <cmd=prop/get|/prop/set|action> <params>
           ./micli.py action '{"did":"267090026","siid":5,"aiid":1,"in":["Hello"]}'

Call MiIO: ./micli.py /<uri> <data>
           ./micli.py /home/device_list '{"getVirtualModel":false,"getHuamiDevices":1}'

Devs List: ./micli.py list [name=full|name_keyword] [getVirtualModel=false|true] [getHuamiDevices=0|1]
           ./micli.py list Light true 0

MIoT Spec: ./micli.py spec [model_keyword|type_urn] [format=text|python|json]
           ./micli.py spec
           ./micli.py spec speaker
           ./micli.py spec xiaomi.wifispeaker.lx04
           ./micli.py spec urn:miot-spec-v2:device:speaker:0000A015:xiaomi-lx04:1

MIoT Decode: ./micli.py decode <ssecurity> <nonce> <data> [gzip]
```

## 套路，例子：

`请在 Mac OS 或 Linux 下执行，Windows 下要支持也应该容易但可能需要修改？`

### 1. 先设置账号

```
export MI_USER=<Username>
export MI_PASS=<Password>
```

### 2. 查询自己的设备

```
micli.py list
```
可以显示自己账号下的设备列表，包含名称、类型、DID、Token 等信息。

### 3. 设置 DID

为了后续操作，请设置 Device ID（来自上面这条命令的结果）。

```
export MI_DID=<Device ID|Name>
```

### 4. 查询设备的接口文档

查询设备的 MIoT 接口能力描述：
```
micli.py spec xiaomi.wifispeaker.lx04
```
其中分为属性获取、属性设置、动作调用三种描述。

### 5. 查询音量属性

```
micli.py 2-1
```
其中 `2` 为 `siid`，`1` 为 `piid`（如果是 `1` 则可以省略），可从 spec 接口描述中查得。

### 6. 设置音量属性

```
micli.py 2=#60
```

参数类型要根据接口描述文档来确定:
- `#`是强制文本类型，还可以用单引号`'`和双引号`"`来强制文本类型`'`（可单个引号，也可以两个）;
- 如果不强制文本类型，默认将检测类型；可能的检测结果是 JSON 的 `null`、`false`、`true`、`整数`、`浮点数`或者`文本`。

### 7. 动作调用：TTS 播报和执行文本

以下命令执行后小爱音箱会播报“您好”：
```
micli.py 5 您好
```
其中，5 为 `siid`，此处省略了 `aiid`（默认为`1`）。

以下命令执行后相当于直接对对音箱说“小爱同学，查询天气”是一个效果：
```
micli.py 5-4 查询天气 1
```

其中 `1` 表示设备语音回应，如果要执行默默关灯（不要音箱回应），可以如下：
```
micli.py 5-4 关灯 0
```

如果没有参数，请传入`[]`保留占位。

### 8. 其它应用

在扩展插件中使用，比如，参考 [ZhiMsg 小爱同学 TTS 播报/执行插件](https://github.com/Yonsm/ZhiMsg)
radarchart-py 0.1.7
RadarChart: A Python library for customizable radar charts (spider plots)
License: MIT
Requires Python: >=3.6

# RadarChart
A Python library for creating customizable radar charts (spider plots).

## How to use it

**Step 1**: Import the `radarplot` library.

```py
import radarchart
```

**Step 2**: Prepare the dataframe.

```py
df = radarchart.example_dataframe()
df
```

![example-df](https://github.com/user-attachments/assets/71fff230-e6b9-453a-8ab0-ea4ed634bfc1)

**Step 3**: Plot the chart.

```py
radarchart.plot(df, norm_max=True)
```

![example-plot](https://github.com/user-attachments/assets/32ff7a41-f1c7-47ec-9927-087bf0dba818)
fermioniq 1.5.2
Fermioniq client
License: MIT
Requires Python: <4.0,>=3.10

<!-- ![Fermioniq](https://docs.fermioniq.com/_static/light_logo_trans.svg "Fermioniq") -->
<h1 align="center">
<img src="https://docs.fermioniq.com/_static/light_logo_trans_pad_top.svg" width="500">
</h1><br>

This package is the interface to the Fermioniq quantum circuit emulator.
The client can be used to send jobs, monitor their status and receive results.


- Website: [fermioniq.com](https://www.fermioniq.com)
- Documentation: [docs.fermioniq.com](https://docs.fermioniq.com)


## Prerequisites

Before installing the package, ensure you have met the following requirements:

* You have a working installation of Python (3.10)
* You have installed the `pip` package manager


## Installation

You can install the client with the following command:

```console
pip install fermioniq
```


## Setup:

Sending jobs to the emulator requires a user-specific `access_token_id` and `access_token_secret`.
They are tied to your Fermioniq user account.

You can either define them as environment variables

    - export FERMIONIQ_ACCESS_TOKEN_ID=""
    - export FERMIONIQ_ACCESS_TOKEN_SECRET=""

Alternatively, you can also provide them as input arguments to the `fermioniq.Client` constructor.