semvec/pypi-packages huggingface dataset:
versecbot-bot-catcher 1.1.1
VerSecBot plugin to detect and timeout spam bots
Requires Python: >=3.8

# VerSecBot - Bot Catcher

This plugin instructs VerSecBot to watch for an account posting in multiple channels in a short period of time, time them out, and notify the moderator team.

To use it, install the package and add the following block to your configuration, replacing values in <> with your desired values:

```
    [versecbot.plugins.bot_catcher]
        enabled = true

    [[versecbot.plugins.bot_catcher.handlers]]
        enabled = true
        channel_threshold = <number of channels>
        time_threshold = <seconds to count channels>
```
pysio-hermes-pupillabs 0.0.4
A Pupil Labs smartglasses support module for HERMES
Requires Python: >=3.7
Keywords: embedded ai, wearables, sensors, eye tracking, smartglasses, ego vision, pupil labs, streaming, realtime processing, physiology

# HERMES - PupilLabs Core

Support package to interface the [Pupil Labs Core](https://pupil-labs.com/products/core) commercial smartglasses in [HERMES](https://github.com/maximyudayev/hermes).

## Options

### `core`
Obtains all data generated by the OEM [Pupil Capture](https://docs.pupil-labs.com/core/getting-started/) application, i.e. video, gaze, blinks, fixations, etc.

#### Pros
* Simple out-of-the-box install
* Visual configuration in the OEM GUI
* [Network API](https://docs.pupil-labs.com/core/developer/network-api/) through [ZeroMQ](https://zeromq.org/) to other LAN devices

#### Cons
* Lower video frame rate
* Heavy resource utilization for constrained devices (w/ or w/o GUI)
* More difficult to add custom realtime gaze processing
* Reprocessing gaze data in setups with poor realtime results with OEM algorithms (because of occlusions, reflections, shape face) don't guarantee better results on lossy videos

### `uvc`
Interfaces cameras directly using [pyuvc](https://github.com/pupil-labs/pyuvc). Follow [these instructions](https://github.com/pupil-labs/pyuvc/blob/master/WINDOWS_USER.md) on Windows to update the USB driver of the device to work as expected.

#### Pros
* Full stable frame rate
* Safe against accidental cable disconnection (just plug back in)
* Low resource utilization
* Cross-platform
* Constrained device friendly
* Flexibility to add own realtime algorithms

#### Cons
* Doesn't provide out-of-the-box GUI for camera lighting settings
* Requires custom realtime algorithms if gaze data is desired

## Installation
Both options available under the same namespace `hermes.pupillabs` package upon installation, as `PupilCoreProducer` or `PupilUvcProducer`, respectively.

### From PyPI
```bash
pip install pysio-hermes-pupillabs
```

### From source
```bash
git clone https://github.com/maximyudayev/hermes-pupillabs.git
pip install -e hermes-pupillabs
```

## Usage
Using the device follows the standard [configuration file specification](https://maximyudayev.github.io/hermes/) process of HERMES nodes.

## Citation
When using any parts of this repository outside of its intended use, please cite the parent project [HERMES](https://github.com/maximyudayev/hermes).
versecbot-personal-bests 0.3.1
VerSecBot plugin to manage personal bests in a channel
Requires Python: >=3.8

# VerSecBot - Personal Bests

This plugin instructs VerSecBot to react to Personal Bests in the configured channel and optionally create a thread.

To use it, install the package `versecbot_personal_bests` and add the following block to your configuration, replacing values in <> with your desired values:

```
    [versecbot.plugins.personal_bests]
        enabled = true

    [[versecbot.plugins.personal_bests.handlers]]
        enabled = true
        channel_ids = [<channel ID>, ...]
        emoji_id = <emoji ID>
        create_thread = <true|false>
```
mmif-python 1.2.1
Python implementation of MultiMedia Interchange Format specification. (https://mmif.clams.ai)
Requires Python: >=3.10

## MultiMedia Interchange Format
[MMIF](https://mmif.clams.ai) is a JSON(-LD)-based data format designed for transferring annotation data between computational analysis applications in [CLAMS project](https://clams.ai). 


## mmif-python
`mmif-python` is a Python implementation of the MMIF data format. 
`mmif-python` provides various helper classes and functions to handle MMIF JSON in Python, 
including ; 

1. de-/serialization of MMIF internal data structures to/from JSON
2. validation of MMIF JSON
3. handling of CLAMS vocabulary types
4. navigation of MMIF object via various "search" methods (e.g. `mmif.get_all_views_contain(vocab_type))`)

## For more ...
* [Version history and patch notes](https://github.com/clamsproject/mmif-python/blob/main/CHANGELOG.md)
* [MMIF Python API documentation](https://clamsproject.github.io/mmif-python)
* [MMIF JSON specification and schema](https://clamsproject.github.io/mmif)
pyixapi 0.2.7
Python API client library for IX-API
Requires Python: >=3.10

# pyixapi

Python API client library for [IX-API](https://ix-api.net/).

Supported versions are:

* [version 1](https://docs.ix-api.net/v1/) -- deprecated, providers cease date is 2026-07-01
* [version 2](https://docs.ix-api.net/v2/)

## Installation

To install run `pip install pyixapi`.

## Quick Start

To begin, import pyixapi and instantiate the API.

```python
import pyixapi
ixapi = pyixapi.api(
    "https://api.de-cix.net/api/v2/",
    "3LH3G72VH7H1SGogEsFeQOPsGjOQotMUZQRt2pK7YbH",
    "cEtrt8s0vR0CsG0vpAmcaxtnolzZj7DEG0B7izvwPlV",
)
ixapi.authenticate()
```

The first argument the `.api()` method takes is the IX-API URL. The second and
third arguments are the API key and secret used for authentication.

Authenticating will generate a pair of access and refresh tokens that can be
passed as argument to the `.api()` method.


## Queries

The pyixapi API is setup so that IX-API's endpoints are attributes of the
`.api()` object. Each endpoint has a handful of methods available to carry out
actions on the endpoint. For example, in order to query all the objects in the
`network-service-configs` endpoint you would do the following:

```python
>>> nsc = ixapi.network_service_configs.all()
>>> for i in nsc:
...     print(i)
...
DXDB:PAS:00001
DXDB:PAS:00002
DXDB:PAS:00003
DXDB:PAS:00004
DXDB:PAS:00005
DXDB:PAS:00006
DXDB:PAS:00007
DXDB:PAS:00008
>>>
```

Write queries are not implemented yet.
arkham-utils 0.1.3
Arkham Horror LCG utilities
Requires Python: <4.0,>=3.12

# Arkham Horror LCG utilities

A simple set of utilities to read from [ArkhamDB](https://arkhamdb.com/) and [OCTGN files](https://github.com/GeckoTH/arkham-horror) mainly used to generate printable proxies in PDF format.

```sh
pip install arkham-utils
```

## Using ArkhamDB images

Note the images from ArkhamDB have an FFG watermark on them.

```py
from arkham_utils.arkhamdb import db
from arkham_utils.pdf.builder import PDFBuilder

cards = [db.search(name) for name in [
  'Blackjack',
  'Guts',
  'Emergency Cache',
  'Elder Sign',
  'Shrivelling',
  'Daisy Walker'
]]
pdf = PDFBuilder(cards)
pdf.write('proxies.pdf')
```

## Using OCTGN images

You will need to first download the image packs from <https://ahlcgoctgn.wordpress.com/image-packs/> into a subfolder named `o8c` in your application support directory (`Library/Application Support/arkham_utils/o8c` on MacOS).

```py
from arkham_utils.octgn import db
from arkham_utils.pdf.builder import PDFBuilder

cards = [db.find(name) for name in [
  'Blackjack',
  'Guts',
  'Emergency Cache',
  'Elder Sign',
  'Shrivelling',
  'Daisy Walker'
]]
pdf = PDFBuilder(cards)
pdf.write('proxies.pdf')
```

### Proxying an entire set

```py
from arkham_utils.octgn import db
from arkham_utils.pdf.builder import PDFBuilder, PDFBuilderConfig

# write all the non-mini cards as a PDF
barkham = db.find_set('Meowlathotep')
PDFBuilder([c for c in barkham.cards if c.type != 'Mini']).write('barkham.pdf')

# write the mini investigator cards
mini_cfg = PDFBuilderConfig()
mini_cfg.cards_per_row = 4
mini_cfg.rows_per_page = 4
mini_cfg.card_height = 2.5
mini_cfg.card_width = 1.625
PDFBuilder([c for c in barkham.cards if c.type == 'Mini'], mini_cfg).write('barkham_minis.pdf')
```
taisc 0.0.1
Simple flexible cache that utilises sqlite3 to store temporary data.
Requires Python: >=3.9

# Taisc

Simple persistent caching mechanism

## INSTALLING

How to install Taisc.

```bash
pip install taisc
```

## USING

How to use Taisc to fetch and store cache data.
If data is stored in the cache, then the decorated function is not run.

```python
from src.taisc import cache

@cache
def foo(key: str):
    return key * 2
```

## WARNING

Taisc pickles and unpickles values in order to store as BLOB in the sqlite3 database.

The [pickle module](https://docs.python.org/3/library/pickle.html) states: 

<div style="border: 2px solid red; padding: 15px; border-radius: 8px; background-color: #ffe4e4;">
<p style="color: black"><strong>Warning:</strong> The pickle module <strong>is not secure</strong>. Only unpickle data you trust.</p>
<p style="color: black">It is possible to construct malicious pickle data which will <strong>execute arbitrary code during unpickling</strong>. Never unpickle data that could have come from an untrusted source, or that could have been tampered with.</p>
</div>
fof99 1.0.0
Add your description here
Requires Python: >=3.10

# 火富牛SDK

## SDK请求类

```
    FactorFutures：提供期货风格因子每日收益率数据
    FactorStyleCne6：提供CNE6股票风格因子每日收益率数据
    FactorStyleCne5：提供CNE5股票风格因子每日收益率数据
    
    IndexPrice：提供基准指数的行情数据查询
    IndexBatchPrice：多指数行情查询
    IndexStockAmt：提供股票指数的成交额数据
    IndexStockTurn：提供股票指数的换手率数据
    IndexStockPE：提供股票指数的PE（TTM）中位数数据
    
    FundAdvancedList：根据平台/团队策略，获取基金列表数据
    FundInfo：提供私募基金基本信息数据
    FundPrice：提供私募基金平台净值的数据
    FundCompanyPrice：提供私募基金团队净值的数据
    FundMultiPrice：每次可查询多个基金的平台净值，最多不超过40只
    PersonalFundPrice：根据自建基金id，查询净值
    MonitorLogList：查询分享给全团队的异常预警结果
    FofSubFundVirtualPrice：查询FOF基金下底层基金的虚拟净值
    DirectFundVirtualPrice：查询直投产品的虚拟净值
    FundScore：提供私募基金的模型评分信息
    FofSubFund：基于FOF基金估值表，提供底层基金的持仓份额、金额、占比信息的查询
    FofSubFundDeals：查询FOF基金下，底层基金的交易记录
    CompanyPriceBatchAdd：已备案的私募基金上传团队净值。团队用户使用
    PrivatePriceBatchAdd：已备案的私募基金上传私有净值。个人用户使用
    InnerPriceBatchAdd：内部基金净值上传
    FofSubFundTrackList：查询团队各个基金列表的私募基金数据
    
    IndexPrice：提供基准指数的行情数据查询
    IndexBatchPrice：查询多个指数的行情数据，最多不超过40只
    IndexStockAmt：提供股票指数的成交额数据
    IndexStockTurn：提供股票指数的换手率数据
    IndexStockPE：提供股票指数的PE（TTM）中位数数据 
    PrivateIndexPrice：根据自建指数id，查询指数行情

    GmFundInfo：提供公募基金基本信息数据
    GmFundPrice：提供公募基金净值的数据
    GmFundBatchPrice：公募基金多基金净值
    
    FoCombiPrice：提供团队/我的实盘组合净值的数据
    CombiPrice：提供团队/我的模拟组合净值的数据
    
    CompanyInfo：提供投资顾问的信息
    CompanyScale：提供私募管理人的协会管理规模、披露规模、运作产品数的信息
    CompanyShareholder：提供私募管理人的股东信息
    CompanyFundList：提供私募管理人的旗下基金列表
    
    FundBuyInfo：提供【投资-直投产品】列表中公/私募基金的交易记录数据
    FofInvestCustomerPrice：查询直投产品拟合的组合的净值
    FofInvestFundScale：查询直投产品拟合的组合的净值
```


## 安装依赖类库

```shell
    # 进入包含【requirements.txt】文件的目录执行下面命令
    pip install -r requirements.txt --trusted-host mirrors.aliyun.com \
        --index-url "https://mirrors.aliyun.com/pypi/simple/" 
```


## SDK使用示例

```python

    # 将fof99目录添加到Python搜索路径【这步很重要，否则执行脚本找不到请求类】
    import sys
    sys.path.append(r'E:\path\to\mall_sdk')
    
    # 1、引入请求类
    from fof99 import FundPrice
    
    # 2、创建请求对象
    appid = '应用ID，从火富牛API商城获取'
    appkey = '应用密钥，从火富牛API商城获取'
    req = FundPrice(appid, appkey) # 请求对象
    
    # 3、设置请求参数，参考API文档
    req.set_params(reg_code='SN5489', start_date='2024-01-01', order_by='price_date', order=1)
    
    # 4、发起请求， use_df=True表示结果返回pandas.DataFrame对象；use_df=False表示结果返回Python列表
    res = req.do_request(use_df=True)
    
    # 5、结果处理
    print(res) # 打印结果
    print(req.get_debug_info()) # 打印API响应参数，用于接口调试
```
argxtract 0.1.0
Extracts command line arguments both positional and optional, no pre-defintion needed.
Requires Python: >=3.11

# SimpleArgParser
This is a module for parsing (command-line) argument that doesn't require pre-defining the positional and optional arguments and does not enforce positional before optional (allows mixed).  I needed something quick with less configuration and dynamic so it can be easily used by others.
cli-speeder 0.1.3
A dead-simple, zero-dependency lazy import proxy to make Python CLIs start instantly.
Requires Python: >=3.8
Keywords: cli, import, lazy-loading, performance, speed

# cli-speeder

**Make your Python CLIs start instantly (10x-100x faster).**
Python scripts are notoriously slow to start because they import heavy libraries (like `pandas`, `torch`, `boto3`, `pydantic`) at the top level, even if the user only runs a simple command like `--help`.

`cli-speeder` fixes this with **zero code refactoring**.

## Installation

```
pip install cli-speeder
```

## Usage
There are two ways to use this.

### Method 1: The "One-Liner" (Recommended)
Add this **once** at the very top of your script (before your heavy imports).

```python
from cli_speeder import speed_up_modules
# Magic: Forces these modules to load lazily
speed_up_modules(["pandas", "tensorflow", "boto3"])

# --- Your normal code stays exactly the same! ---
import pandas as pd      \# 0ms (Instant)
import tensorflow as tf  \# 0ms (Instant)
import boto3             \# 0ms (Instant)

def process_data():
\# The libraries only actually load HERE, when you use them.
df = pd.read_csv("data.csv")
```

### Method 2: Manual Proxy (Granular Control)
If you want specific control over exactly which object is lazy.

```python
from cli_speeder import lazy_import, lazy_from_import

# Replace 'import pandas as pd' with:
pd = lazy_import("pandas")

# Replace 'from pandas import DataFrame' with:
DataFrame = lazy_from_import("pandas", "DataFrame")

```

## Benchmarks

Time to run `python script.py --help`:

| Library | Standard Import | With `cli-speeder` |
| :--- | :--- | :--- |
| **Pandas** | ~0.8s | **< 0.01s** |
| **Torch** | ~2.5s | **< 0.01s** |
| **Boto3** | ~0.5s | **< 0.01s** |

## Debugging / Production Safety

Lazy loading is great for CLIs, but sometimes (like in production workers) you might want standard behavior to catch `ImportError` immediately.

You can force all imports to happen immediately (disable lazy loading) by setting an environment variable:

```
export CLI_SPEEDER_EAGER=1
python my_script.py
```

## License
**cli_speeder** is licensed under the Apache License 2.0. See the LICENSE file for more details.