semvec/pypi-packages huggingface dataset:
nonebot-plugin-apod 1.0.9
定时发送 NASA 每日提供的天文图片
Requires Python: >=3.10
Keywords: nonebot2, NASA

<!-- markdownlint-disable MD033 MD036 MD041 -->

<div align="center">

<a href="https://v2.nonebot.dev/store">
  <img src="https://raw.githubusercontent.com/A-kirami/nonebot-plugin-template/resources/nbp_logo.png" width="180" height="180" alt="NoneBotPluginLogo">
</a>

<p>
  <img src="https://raw.githubusercontent.com/lgc-NB2Dev/readme/main/template/plugin.svg" alt="NoneBotPluginText">
</p>

# nonebot-plugin-apod

_✨ 每日天文一图 ✨_

![License](https://img.shields.io/pypi/l/nonebot-plugin-apod)
![PyPI](https://img.shields.io/pypi/v/nonebot-plugin-apod.svg)
![Python](https://img.shields.io/badge/python-3.8+-blue.svg)  
[![NoneBot Registry](https://img.shields.io/endpoint?url=https%3A%2F%2Fnbbdg.lgc2333.top%2Fplugin%2Fnonebot-plugin-apod)](https://registry.nonebot.dev/plugin/nonebot-plugin-apod:nonebot_plugin_apod)
[![Supported Adapters](https://img.shields.io/endpoint?url=https%3A%2F%2Fnbbdg.lgc2333.top%2Fplugin-adapters%2Fnonebot-plugin-alconna)](https://registry.nonebot.dev/plugin/nonebot-plugin-alconna:nonebot_plugin_alconna)

</div>

## 安装
使用nb-cli [推荐]
```shell
nb plugin install nonebot-plugin-apod
```
使用pip
```shell
pip install nonebot-plugin-apod
```

## 使用
命令需要加 [NoneBot 命令前缀](https://nonebot.dev/docs/appendices/config#command-start-和-command-separator) (默认为`/`)  
命令需要用户为 [SuperUsers](https://nonebot.dev/docs/appendices/config#superusers)  
使用命令`APOD`/`apod`触发插件  
命令选项`状态` 查询定时任务状态  
命令选项`关闭` 关闭定时任务  
命令选项`开启` 开启定时任务  

[以下命令无需用户为[SuperUsers](https://nonebot.dev/docs/appendices/config#superusers)]  
使用命令`今日天文一图`获取今日天文一图  
使用命令`随机天文一图`随机获得天文一图  
使用命令`指定日期天文一图`获取指定日期天文一图  


### 效果图

<details>
  <summary>点击展开</summary>

![example](https://raw.githubusercontent.com/lyqgzbl/nonebot-plugin-apod/main/example.png)

</details>

## 配置项

配置方式：直接在 NoneBot 全局配置文件中添加以下配置项即可

### apod_api_key [必填]

- 类型：`str`
- 默认值：`None`
- 说明：用于获取每日天文一图的 [NASA API Key](https://api.nasa.gov/)

### apod_default_send_time [选填]

- 类型：`str`
- 默认值：`13:00`
- 说明：每日天文一图的默认发送时间

### apod_infopuzzle [选填]

- 类型：`bool`
- 默认值：`True`
- 说明：是否将今日天文一图完整信息构造为信息拼图

### apod_infopuzzle_dark_mode [选填]

- 类型：`bool`
- 默认值：`False`
- 说明: 是否启用信息拼图的深色模式

### apod_baidu_trans [选填]

- 类型：`bool`
- 默认值：`False`
- 说明：是否使用[百度翻译](https://fanyi-api.baidu.com/)将天文一图描述翻译为中文

### apod_baidu_trans_appid [选填]

- 类型：`int`
- 默认值：`None`
- 说明：百度翻译 APP ID

### apod_baidu_trans_api_key [选填]

- 类型：`str`
- 默认值：`None`
- 说明：百度翻译 密钥

### apod_deepl_trans [选填]

- 类型：`bool`
- 默认值：`False`
- 说明：是否使用[DeepL 翻译](https://www.deepl.com/zh/products/api/)将天文一图描述翻译为中文

### apod_deepl_trans_api_key [选填]

- 类型：`str`
- 默认值：`None`
- 说明：DeepL 翻译 密钥
memoshelve 1.0.6
A persistent memoization decorator using Python's shelve with two-tier caching (memory + disk).
Requires Python: >=3.11

# memoshelve

A persistent memoization decorator using Python's `shelve` with two-tier caching (memory + disk).

## Features

- Two-tier caching: in-memory + persistent disk storage
- Async and sync function support
- Cache inspection and management
- Optional enhanced serialization with `dill` and `stablehash`

## Installation

```bash
pip install memoshelve

# For enhanced serialization
pip install memoshelve[robust]
```

## Usage

### Basic Decorator

```python
from memoshelve import cache

@cache(filename="cache.db")
def expensive_function(x, y):
    return x * y + 42

result = expensive_function(10, 20)  # Computed and cached
result = expensive_function(10, 20)  # Retrieved from cache
```

### Context Manager

```python
from memoshelve import memoshelve

with memoshelve(expensive_function, "cache.db") as cached_fn:
    result = cached_fn(10, 20)
```

### Async Functions

```python
@cache(filename="async_cache.db")
async def async_function(data):
    return len(data) * 42
```

## API

### Cache Methods

```python
@cache(filename="example.db")
def compute(x, y):
    return x ** y

# Check if cached
compute.__contains__(2, 3)

# Get without computing
compute.get(2, 3)  # Raises KeyError if not cached

# Get with status
result, status = compute.__call_with_status__(2, 3)
# status: "cached (mem)", "cached (disk)", or "miss"

# Manual operations
compute.put(2, 3, 8)      # Store value
compute.uncache(2, 3)     # Remove from cache
```

### Configuration

```python
@cache(
    filename="cache.db",
    ignore=["debug"],         # Ignore parameters in cache key
    get_hash=custom_hash,     # Custom hash function
    disable=False,            # Toggle caching
    print_cache_miss=True,    # Log cache misses
)
def my_function(data, debug=False):
    return process(data)
```

### Cache Management

```python
from memoshelve import compact

# Compact cache file
compact("cache.db", backup=True)

# Access metadata
metadata = my_function.memoshelve
metadata.disk_keys()     # Keys in disk cache
metadata.mem_keys()      # Keys in memory cache
metadata.compact()       # Compact this cache
```

## Storage

Default cache location: `~/.cache/memoshelve/` (configurable via `XDG_CACHE_HOME`)

Cache files use Python's `shelve` module and may create multiple files (`.db`, `.dir`, `.dat`).

## License

MIT License
javanese-stemmer 1.2.1
Comprehensive Javanese language stemmer with morphophonological rules and dictionary validation
Requires Python: >=3.7
Keywords: javanese nlp stemmer morphology linguistics text-processing

# Javanese Stemmer

Javanese language stemmer with dictionary validation.

## Installation

```bash
pip install javanese-stemmer
```

## Usage

```python
from javanese_stemmer import JavaneseStemmer

# Initialize (dictionary auto-loads from package)
stemmer = JavaneseStemmer()

# Stem a word
result = stemmer.stem("mlaku")
print(result)

# Stem a sentence
words = stemmer.stem_sentence("Aku mlaku ing dalan")
print(words)
```

## Features

- Dictionary validation
- Handles prefixes, suffixes, infixes
- Safe fallback to original word
- Built-in Javanese dictionary

## License

MIT License
coregenai 0.3.3
A wrapper for Google Gemini.
Requires Python: >=3.10
Keywords: ai, gemini, genai, generative-ai, google, llm, vertex-ai

# coregenai 
[![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
[![PyPI version](https://badge.fury.io/py/coregenai.svg)](https://badge.fury.io/py/coregenai)


**The wrapper for Google's Gemini SDK.**  
*Stop rewriting retry loops. Stop debugging cryptic auth errors.*

![](ext/coregenai.png)

## Why CoreGenAI?

The official `google-genai` SDK is powerful, but raw. To run it in production, you usually have to write 200+ lines of boilerplate: retry logic, exponential backoff, auth switching, and safety parsing.

**CoreGenAI** handles the infrastructure so you can focus on the prompts.

| Feature | The Raw SDK | CoreGenAI                                    |
| :--- | :--- |:---------------------------------------------|
| **Resilience** | Manual `try/except` loops | **Auto-Retries w/ Jitter** (Handles 429/503) |
| **Auth** | Complex IAM vs Key logic | **Auto-Detects** (Vertex vs Studio)          |

### This is an experimental prototype (coregenai v0.3.3)

## Python Usage

### 1. The "Type-Safe" Generator
Stop parsing JSON with regex. Define a Pydantic model, and CoreGenAI guarantees the output matches it.

```python
import asyncio
from coregenai import CoreGenAI
from pydantic import BaseModel

# 1. Define your Schema
class SecurityAudit(BaseModel):
    risk_level: str
    vulnerabilities: list[str]
    is_critical: bool

async def main():
    # Auto-detects: 
    # - GOOGLE_APPLICATION_CREDENTIALS (Vertex) 
    # - or GOOGLE_API_KEY (AI Studio)
    core = CoreGenAI()

    try:
        # 2. Generate Type-Safe Data
        audit = await core.generate_struct(
            prompt="Scan this code snippet for SQL injection...",
            schema=SecurityAudit
        )
        
        # 3. Use it as a real object
        if audit.is_critical:
            print(f"Found {len(audit.vulnerabilities)} issues!")
            
    except Exception as e:
        print(f"Failed: {e}")

asyncio.run(main())
```

### 2. Zero-Cost Unit Testing
Run your test suite in CI/CD without an internet connection or an API bill.

```python
from coregenai import GenConfig

# 1. Enable Mock Mode
config = GenConfig(
    mock_mode=True,
    mock_response_payload='{"risk_level": "HIGH", "vulnerabilities": ["SQLi"], "is_critical": true}'
)

core = GenConfig(config=config)

# 2. Run your logic (Costs $0, takes 0.05s)
result = await core.generate_struct("...", schema=SecurityAudit)
assert result.is_critical is True
```


---

## Advanced Configuration

Control resilience and safety via `GenConfig`.

```python
from coregenai import GenConfig

config = GenConfig(
    # Backend: "auto", "vertex", or "studio"
    backend="auto", 
    
    # Resilience: How hard to try before giving up
    max_retries=5,
    request_timeout=60.0,
    
    # Safety: Models defaults
    model_name="gemini-1.5-pro-002",
    temperature=0.5
)
```

## Installation

```bash
pip install coregenai
```
wds-astropy-table 0.1.0
A simple package to parse the WDS catalog into an astropy table

A simple package to parse the WDS catalog into an astropy table.

Retrieve the `wdsweb_summ2.txt` file from the  https://crf.usno.navy.mil/wdstext website.

Call `wds_astropy_table.parse_wdsweb(filename)` with the path to said file. An astropy table will be returned.
xspfify 0.1.0
CLI tool to export spotify playlists to flat files
Requires Python: >=3.12

# XSPF generator

CLI to export your Spotify playlists to [XSPF](https://xspf.org/) files for portable backups.

## Prerequisites

- Python 3.12+
- [uv](https://docs.astral.sh/uv/) for dependency management and virtualenvs
- A Spotify application (create one in https://developer.spotify.com/dashboard) to obtain a Client ID, Client Secret, and Redirect URL

## Getting started

1) Install uv if you do not already have it:
   ```bash
   curl -LsSf https://astral.sh/uv/install.sh | sh
   ```
2) Install dependencies into a uv-managed virtual environment:
   ```bash
   uv sync
   ```
3) Run the exporter (uv will activate the env automatically):
   ```bash
   uv run python -m xspfify.main -o output
   ```
   - You will be prompted for your Spotify Client ID, Client Secret, and Redirect URL. The redirect URL must match one configured for your Spotify app (e.g. `http://127.0.0.1:8000/callback`).
   - Playlists will be written as `.xspf` files into the folder provided by `-o` (defaults to `./output`).

## Package for pipx

1. Build distributable artifacts with uv:
   ```bash
   uv build
   ```
   This creates `dist/*.whl` and `dist/*.tar.gz` that pipx can consume.
2. Share one of the artifacts (or host it in an index such as PyPI).
3. On another machine, install and run the CLI with pipx:
   ```bash
   pipx install /path/to/dist/xspfify-0.1.0-py3-none-any.whl
   xspfify -o output
   ```
   Replace the path with the actual wheel location or git/URL you published. Because `pyproject.toml` defines a console script entry point, pipx will expose the `xspfify` command automatically.

## Development workflows

- Format / lint:
  ```bash
  uv run ruff format .
  uv run ruff check .
  ```
- Add new dependencies:
  ```bash
  uv add package-name
  uv add --group dev dev-package-name
  ```
- Update all locked dependencies:
  ```bash
  uv lock --upgrade
  ```

## Notes

The generated playlists include artist, album, and track title for broad compatibility. Extend the payload by updating the `get_playlist_tracks` pipeline in `spotify_utils.py` and `playlist_from_spotify_items` in `xspf_utils.py`.
fbms-discount-lib-sushanth-test1234 0.0.14
Festival discount and API Gateway offer library
Requires Python: >=3.7

# fbms_discount_lib_sushanth_test1234

A simple reusable Python library that:
- Calls AWS API Gateway to get active festival offers
- Calculates discounted prices

## Functions

### `OfferAPIClient()`
Fetches offer from API Gateway.

### `calculate_discount(price, festival)`
Applies discount for the provided festival.