semvec/pypi-packages huggingface dataset:
q3rconlib 1.0.2
A Quake3 RCON interface in Python
License: MIT
Requires Python: >=3.11

# A Quake3 RCON interface in Python

Send rcon commands to Q3 compatible servers.

For an outline of past/future changes refer to: [CHANGELOG](CHANGELOG.md)

## Requirements

-   Python 3.11 or greater
-   The game must implement RCON using the Q3 protocol.

## Installation

```bash
pip install q3rconlib
```

## Use

```python
import os

import q3rconlib


def main():
    with q3rconlib.connect(
        host=os.environ["Q3RCON_HOST"],
        port=int(os.environ["Q3RCON_PORT"]),
        password=os.environ["Q3RCON_PASSWORD"],
    ) as rcon:
        resp = rcon.send("status")
        print(resp)


if __name__ == "__main__":
    main()
```

#### `q3rconlib.connect(host: str='host', port: int=port, password: str='strongrconpassword')`

The Q3Rcon class accepts the following keyword arguments:

-   `host`: hostname the gameserver resides on
-   `port`: port the gameserver accepts rcon requests on
-   `password`: rcon password
-   `login_timeout`: max timeout for a successful login
-   `default_timeout`: default amount of time we wait for a response from the game server
-   `timeouts`: a dataclass containing `cmd: timeout` mappings.
    -   Some commands take more time to return a response or the response is returned in fragments. You may pass a timeouts dataclass to specify how long to wait for a given command.

#### `Timeouts`

Let's say that that restarting or rotating the map takes a long time, you could pass the following timeouts dataclass:

```python
from dataclasses import dataclass

@dataclass
class Timeouts:
    map_restart: int = 1
    map_rotate: int = 1

with q3rconlib.connect(timeouts=Timeouts(), **config_from_toml()) as rcon:
    """do cool stuff"""
```

This will cause the program to wait for 1 second for all response fragments to come back from the server.
gbu-timetable 0.1.4
Terminal-based timetable viewer for Gautam Buddha University
License: MIT
Requires Python: >=3.8

# 📅 GBU Timetable CLI

A **terminal-based interactive timetable viewer** for **Gautam Buddha University**, built with Python and Rich.
Browse departments, select sections, save preferences, and view **G1/G2 lab splits** cleanly inside your terminal.

---

## ✨ Features

* 🎯 Interactive keyboard-driven CLI
* 🏫 Browse by **School → Department → Code → Section**
* 💾 Save default section (auto-load on next run)
* 🧪 Smart **G1 / G2 lab stacking** in the same period
* ⏰ Automatic **12-hour AM/PM time slots**
* 🎨 Clean, readable UI using `rich`
* ⚡ Zero configuration after first setup

---

## 📦 Installation

```bash
pip install gbu-timetable
```

> Requires **Python 3.8+**

---

## 🚀 Usage

Run directly from terminal:

```bash
timetable
```

No flags, no arguments — fully interactive.

---

## 🧭 Navigation Controls

| Key | Action                    |
| --- | ------------------------- |
| `1` | View saved timetable      |
| `2` | Browse & select section   |
| `3` | Enter section ID directly |
| `b` | Go back                   |
| `m` | Return to main menu       |
| `q` | Quit                      |

---

## 🗂️ Saved Configuration

Your selected section is stored locally at:

```
~/.timetable_cli.json
```

Example:

```json
{
  "section_id": "1278",
  "section_name": "B.Tech CSE (A)"
}
```

This allows instant access next time using **“View Saved Timetable”**.

---

## 🧪 G1 / G2 Lab Handling

When multiple entries exist in the same period:

* G1 and G2 are automatically detected
* Displayed as **stacked panels** inside the same cell
* Color-coded for quick differentiation

No manual filtering required.

---

## 🕒 Time Slot Logic

* Default start time: **08:30 AM**
* Each period: **60 minutes**
* Automatically adapts to timetable length
* Displayed in **12-hour format**

Example:

```
P3
10:30 AM – 11:30 AM
```

---

## 🌐 Data Source

Timetable data is fetched from:

```
https://samay.mygbu.in/api.php
```

Data is fetched once per run for performance and simplicity.

---

## 🧱 Project Structure

```
gbu-timetable/
│
├── timetable/
│   ├── __init__.py
│   └── cli.py
│
├── pyproject.toml
├── README.md
└── LICENSE
```

---

## 🛠️ Development Setup

```bash
git clone https://github.com/shashaaankkkkk/gbu-timetable
cd gbu-timetable
pip install -e .
```

Run locally:

```bash
timetable
```

---

## 📚 Dependencies

* `requests`
* `readchar`
* `rich`

Installed automatically via pip.

---

## 👨‍💻 Author

**Shashank Shekhar**
Full Stack Developer & CLI Tool Builder

🔗 GitHub: [https://github.com/shashaaankkkkk/](https://github.com/shashaaankkkkk/)

---

## 📄 License

MIT License — free to use, modify, and distribute.

---
mailodds-cli 0.1.0
MailOdds CLI for webhook testing and API debugging
License: MIT
Requires Python: >=3.9

# MailOdds CLI

Command-line interface for MailOdds API testing and webhook debugging.

## Installation

```bash
pip install mailodds-cli
```

Or install from source:

```bash
cd sdks/cli
pip install -e .
```

## Authentication

Set your API key as an environment variable:

```bash
export MAILODDS_API_KEY=mo_live_your_api_key
```

Or pass it with each command:

```bash
mailodds --api-key mo_live_xxx webhooks listen ...
```

## Commands

### Webhook Testing

Listen for webhook events and forward to your local server:

```bash
# Forward webhooks to local development server
mailodds webhooks listen --forward localhost:3000/webhook

# Just display events without forwarding
mailodds webhooks listen --no-forward
```

List recent webhook deliveries:

```bash
mailodds webhooks list
mailodds webhooks list --limit 50
```

Replay a historical webhook delivery:

```bash
mailodds webhooks replay 12345
```

### Email Validation

Validate a single email from the command line:

```bash
mailodds validate user@example.com
```

## Test Mode

Use `mo_test_` API keys with special test domains for predictable results without consuming credits:

```bash
export MAILODDS_API_KEY=mo_test_your_test_key

# Always returns valid
mailodds validate john@deliverable.mailodds.com

# Always returns invalid
mailodds validate john@invalid.mailodds.com
```

## Environment Variables

| Variable | Description | Default |
|----------|-------------|---------|
| `MAILODDS_API_KEY` | Your API key | Required |
| `MAILODDS_API_URL` | API base URL | `https://api.mailodds.com` |

## Development

```bash
# Install in development mode
pip install -e ".[dev]"

# Run CLI
mailodds --help
```
ldraney-ebay-oauth 0.1.0
eBay OAuth 2.0 client and CLI — token acquisition, refresh, and keychain storage
License: MIT
Requires Python: <4.0,>=3.11

# eBay OAuth

## What This Is

A Python CLI tool and library for eBay OAuth 2.0 Authorization Code Grant flow. Gets a refresh token, manages token lifecycle.

## Related Projects

- **[ebay-mcp-server](https://github.com/ldraney/ebay-mcp-server)** — MCP server for creating eBay listings via Claude. Depends on this package for auth.

## Two Interfaces

1. **CLI** — `ebay-oauth setup` runs the full OAuth flow and gives you a refresh token
2. **Library** — `EbayOAuthClient` provides `get_access_token()` with auto-refresh

## Key Commands

```bash
poetry add ebay-oauth    # or: pip install ebay-oauth
ebay-oauth setup          # interactive OAuth flow
ebay-oauth status         # check if token is valid
ebay-oauth refresh        # force token refresh
```

## Library Usage

```python
from ebay_oauth import EbayOAuthClient

client = EbayOAuthClient(
    client_id="...",
    client_secret="...",
    refresh_token="...",
    environment="sandbox"
)
token = client.get_access_token()  # auto-refreshes
```

## Environment Variables

- `EBAY_CLIENT_ID`
- `EBAY_CLIENT_SECRET`
- `EBAY_REFRESH_TOKEN`
- `EBAY_ENVIRONMENT` (sandbox | production)

## eBay OAuth Specifics

- Auth header: `Basic base64(client_id:client_secret)`
- Access token TTL: 2 hours
- Refresh token TTL: 18 months
- Sandbox token endpoint: `https://api.sandbox.ebay.com/identity/v1/oauth2/token`
- Production token endpoint: `https://api.ebay.com/identity/v1/oauth2/token`
- Sandbox consent: `https://auth.sandbox.ebay.com/oauth2/authorize`
- Production consent: `https://auth.ebay.com/oauth2/authorize`

## Deployment

- **Local mode** (default): localhost callback server, works for sandbox
- **fly.io mode** (`--remote`): for production eBay apps that require HTTPS redirect URIs

## Package Management

Uses **Poetry** for dependency management and publishing:

```bash
poetry install          # install deps
poetry run pytest       # run tests
poetry build            # build wheel + sdist
poetry publish          # publish to PyPI
```

## Testing

```bash
poetry run pytest tests/
```

Tests mock eBay API responses. No real eBay calls in unit tests.

## File Structure

```
ebay-oauth/
├── src/
│   └── ebay_oauth/
│       ├── __init__.py
│       ├── auth.py
│       ├── server.py
│       ├── cli.py
│       └── config.py
├── tests/
├── docs/
│   ├── architecture.html
│   ├── roadmap.html
│   └── user-story.html
├── fly.toml
├── pyproject.toml
└── CLAUDE.md
```
pymkv2 2.2.0.post2
A Python wrapper for mkvmerge. It provides support for muxing, splitting, linking, chapters, tags, and attachments through the use of mkvmerge.
License: MIT
Requires Python: <4.0,>=3.10
Keywords: wrapper

# pymkv2
[![PyPI Version](https://img.shields.io/pypi/v/pymkv2.svg)](https://pypi.python.org/pypi/pymkv2)
[![License](https://img.shields.io/github/license/gitbib/pymkv.svg)](https://github.com/GitBib/pymkv2/blob/master/LICENSE.txt)
[![codecov](https://codecov.io/github/GitBib/pymkv2/branch/master/graph/badge.svg?token=2JDX5HHGUO)](https://codecov.io/github/GitBib/pymkv2)
[![versions](https://img.shields.io/pypi/pyversions/pymkv2.svg)](https://github.com/GitBib/pymkv2)

pymkv2 is a Python wrapper for mkvmerge and other tools in the MKVToolNix suite. It provides support for muxing,
splitting, linking, chapters, tags, and attachments through the use of mkvmerge.

## About pymkv2
it's a fork of the [pymkv](https://github.com/sheldonkwoodward/pymkv) project. pymkv2 is a Python 3 library for manipulating MKV files
with mkvmerge. Constructing mkvmerge commands manually can quickly become confusing and complex. To remedy this, I decided to write
this library to make mkvmerge more scriptable and easier to use. Please open new issues for any bugs you find,
support is greatly appreciated!

## Installation
mkvmerge must be installed on your computer, it is needed to process files when creating MKV objects. It is also
recommended to add it to your $PATH variable but a different path can be manually specified. mkvmerge can be found
and downloaded from [here](https://mkvtoolnix.download/downloads.html) or from most package managers.

To install pymkv from PyPI, use the following command:

    $ pip install pymkv2

You can also clone the repo and run the following command in the project root to install the source code as editable:

    $ pip install -e .

## Documentation
The documentation for pymkv can be found [here](https://gitbib.github.io/pymkv2/) or in the project's docstrings.