semvec/pypi-packages huggingface dataset:
mcp-3gpp-ftp 0.1.8
A FastMCP-based server for browsing 3GPP FTP website
Requires Python: >=3.10

MCP 3GPP FTP Explorer
======================

A FastMCP-based server exposing tools to browse, download, and extract files from the 3GPP FTP site, plus utilities for Excel and Word documents.


Installation
------------

Install the package from PyPI:

```bash
pip install mcp-3gpp-ftp
```

Usage
-----

Start the MCP server and expose its tools on localhost:

```bash
mcp-3gpp-ftp
```

The server simply uses stdio. Clients can then introspect and invoke tools via the MCP protocol:

- **list_directories(path: str) → List[str]**  
- **list_directories_files(path: str, file_pattern: str) → List[str]**  
- **crawl_ftp(path: str, depth: int, delay: float) → List[str]**  
- **list_files(path: str) → List[str]**  
- **list_excel_columns(file_url: str) → List[str]**  
- **filter_excel_columns_from_url(file_url: str, columns: List[str], filters: Dict[str,Any]) → List[Dict[str,Any]]**  
- **download_and_extract(file_url: str) → Dict[str,Any]**  
- **read_word_doc(doc_path: str) → Dict[str,Any]**  
- **read_docx(docx_path: str) → Dict[str, Any]**
- **read_pdf(pdf_path: str) → Dict[str, Any]**

Configuration
-------------

- Base FTP URL: `https://www.3gpp.org/ftp/`  
- Cache directory: created at runtime under `download_cache/`  
- Proxy settings: modify the `proxies` dict in `server.py` if necessary  

Prompt Template
-------------

**Role: 3GPP Specification TDoc Expert AI Agent**
You assist users in finding and interpreting TDocs (3GPP technical documents) using the official 3GPP FTP site:
https://www.3gpp.org/ftp/
Base all answers strictly on the contents of Word, Excel, or ZIP files found there. Do not guess.

**3GPP FTP Structure**
- Top-level folders: /tsg_ran/, /tsg_sa/, /tsg_ct/, /tsg_t/, /Specs/, etc.
- TSG folder (e.g. /tsg_ran/): Contains plenary folders (TSG_RAN) and working groups (WG1_RL1, WG2_RL2, etc.)
- WG folder (e.g. /WG1_RL1/): Contains meeting folders: TSGR1_120/, TSGR1_121/, …
- Meeting folder (e.g. /TSGR1_120/): Subfolders include:
    - /Docs/ — contains: .zip files: individual TDocs (e.g. R1-2501674.zip)
    - TDoc_List_Meeting_*.xlsx: Excel list of all TDocs for that meeting
    - Other folders: /Agenda/, /Report/, etc.

**Capabilities**
- Navigate FTP paths and extract filenames
- Locate and parse the .xlsx document list in /Docs/
- Extract metadata (ID, title, source, etc.) from that list
- Open and summarize .docx files inside ZIPs

**Rules**
- Only use information present in official documents on the FTP site. Do not fabricate or assume anything not explicitly provided.
- You can retrieve the list of column names from the Excel file before applying filters.
- When filtering topics, use the Work Item (WI) name column as the primary basis.

Author & License
----------------

**Email:** jamesco686@gmail.com
**License:** MIT
SAUIGeo 1.3.5
My Own UI Library
Requires Python: >=3.9

# SAUI 1.04
Documentation:
To call the main GUI client:
`from SAUIGEO import SAU`

---
`SAU.check()`
- Calling this ensures that the GUI has the .json configuration file with the theme elements. If not it will install the .json file.

---
`SAU.verify({Version})`
- This is a simple Dev Testing tool to ensure that your program SAU version matches the one that is installed on your PC.

---
`SAU.start()`
- This call returns all the Theme elements.
- Currently it returns a list with all the theme elements.

---
`SAU.set({Theme Style Nr})`
- This is going to select the themes that are pre made in the program.
- Currently doesn't work.  

---
`SAU.start()`<br>
This command provides a list.
var[i] = [default, button, combo, cred, scale, title, window_ui]<br>
If you need the button you would do this:
```
var = SAU.start()
button = var[1]

b1 = tk.Button({window name}, **button)
b1.pack()
```

---
## Example Code
```
from SAUIGEO import SAU
import tkinter as tk

#Verify function is not neccessary but if you want to ensure new UI elements work correctly this could be useful.
SAU_Version = 1.03
verify = SAU.verify(SAU_Version)

SAU.check()
a = SAU.start()
title = a[1]

window = tk.Tk()
l1.Label(window, text="test", **title)
l1.pack()

window.mainloop()
```
pytcs-tecnoalarm 0.4
LIbrary to interact with Tecnoalarm TCS app backend
Requires Python: >=3.8

# Python library to interface with myTecnoalarm TCS app cloud services

This repo provides code to interface with the cloud services of the "my Tecnoalarm TCS" app.
Funcionality has been reverse-engineered and may not be complete.

## How to install it

`pip install pytcs-tecnoalarm`

## How to use it

To use this library you need to authenticate to the cloud service.

### First login

Open an interactive prompt and run:

```python
from pytcs_tecnoalarm import TCSSession
s = TCSSession()
s.login(email, password)
```

If your account does not have 2 factor authenticator, you will be logged in.
Otherwise, this will throw an `OTPException`

Get the code from your email and run

```python
s.login(email, password, pin)
```

If everything goes right, you will have an authenticated token and app-id to re-use in the future
(does not seem to expire)

extract then with

```python
s.token
s.appid
```

You can also use directly the login.py script, it will handle the OTP and print your Token and App ID

`python login.py`

### Future logins

Simply pass your token and appid when instantiating the session

```python
from pytcs_tecnoalarm import TCSSession
s = TCSSession(token, appid)
```

This will run the `.re_auth()` function that should re-enable the token for immediate use.

The token never changes.
savantaudio-client 1.0.1
A client library to interact with Savant Audio Switches (e.g. SSA-3220).
Requires Python: >=3.11

# Savant Audio Switch Client

[![image](https://img.shields.io/pypi/v/savantaudio-client.svg)](https://pypi.org/project/savantaudio-client/)

The savantaudio-client package allows users to download the contents of this [GiHub repository](https://github.com/akropp/savantaudio-client),  containing a client library to control Savant Audio Switches such as the SSA-3220/SSA-3220D.

## Installing

Install and update using [pip](https://pip.pypa.io/en/stable/quickstart/):

```bash
pip3 install savantaudio-client
```

Or you can clone this repo using:
```bash
    git clone https://github.com/akropp/savantaudio-client.git
```


## Usage

The client is based on asyncio, so all calls must be made in the context of an event loop.  A basic example which connects to a switch device and fetches all of the inputs/outputs is as follows:

```python
import logging
import asyncio
import savantaudio.client

logging.basicConfig(handlers=[logging.StreamHandler()], encoding='utf-8', level=logging.INFO)
savantaudio.client._LOGGER.setLevel(logging.DEBUG)
switch = savantaudio.client.Switch(host='192.168.1.216', port=8085)

loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
loop.run_until_complete(switch.refresh())
print(str(switch))
loop.run_until_complete(switch.link(11, 8))
loop.run_until_complete(switch.output(11).set_volume(-20))
print(str(switch.output(11)))
loop.run_until_complete(switch.unlink(11))
print(str(switch.output(11)))
```
rsml-python 1.0.5
RedSeaMarkupLanguage support for Python.
Requires Python: >=3.11

# RSML.Python
> `pip install rsml_python` and you're ready to go.

Adds [RedSeaMarkupLanguage]("https://github.com/OceanApocalypseStudios/RedSeaMarkupLanguage) support for Python.

<hr />

## Get Started
**Requirements:**
- [ ] RSML.CLI (the executable) and RSML (dll) for the correct system and architecture
- **OR**
- [ ] A way to compile these programatically (requires dotnet)

**Installation (via pip):**

```bash
python -m pip install rsml_python # install via pip
```

**Usage:**

```py
# RSML.Python is not a port of RSML, as the original executable is required
executable = RedSeaCLIExecutable(...)

document = RedSeaDocument()
document.load_from_string(...)

executable.load_document(document)

output = executable.evaluate_document() # non-prettified output
print(output)
```

<hr />

## Fun Facts
<img src="funni/v1_0_2.png" />

^ Version 1.0.2 of this module (first version) was coded in around one hour and half.

<hr />

> **Made with :heart: by OceanApocalypseStudios.**
> 
> *Copyright (c) 2025 OceanApocalypseStudios*