semvec/pypi-packages huggingface dataset:
terminate-thread 0.0.4
terminate_thread
Requires Python: >=3.6
Keywords: terminate thread, kill thread, stop thread

```python3
import threading
import time
from terminate_thread import terminate, kill


def thread_func1():
    n = 0
    while True:
        n += 1
        print(n, t)
        time.sleep(1)


if __name__ == "__main__":
    t = threading.Thread(target=thread_func1, )
    t.start()
    time.sleep(2)

    terminate(t)
    # or
    kill(t)

    exit(0)


```
manychat-mcp-server 0.1.11
A FastMCP-based server that integrates with ManyChat to send Instagram messages and call-button actions using async APIs and secure environment-based configuration.
Requires Python: >=3.12

# 📬 manychat-mcp-server

A lightweight **FastMCP**-based server to send Instagram messages using the **ManyChat API**, supporting both plain text messages and call buttons. Designed for seamless integration into custom automations or chatbot workflows.

---

## 🚀 Features

- ✅ Send plain Instagram messages via ManyChat
- 📞 Support for messages with call buttons
- 🔐 Uses environment variables for secure API key management
- ⚡ Built on `httpx` with async support
- 🧩 Compatible with MCP agents for multi-protocol workflows

---

## ⚙️ Configuring in n8n 

Here's how you can register the server in your MCP configuration:

```json
{
  "servers": {
    "instagram_messenger": {
      "command": "manychat-mcp-server",
      "args": [],
      "env": {
        "MANYCHAT_API_KEY":<apikey>"
      }
    }
  }
}
```

> ✅ **Note:** Replace `api_key` with your actual API key or a secure input binding.

---

## 🧩 Available Tools

### `send_instagram_message`
Send a plain text message to a ManyChat Instagram subscriber.

**Args:**
- `subscriber_id`: Recipient's subscriber ID
- `message`: Message text
- `message_tag`: (Optional) Tag like `ACCOUNT_UPDATE`

---

### `send_call_button_message`
Send a message with a call-to-action button (e.g., phone call).

**Args:**
- `subscriber_id`: Recipient's subscriber ID
- `message`: Message text
- `phone_number`: The phone number for the call button
- `button_caption`: (Optional) Button caption (default: "Call me")
- `message_tag`: (Optional) Message tag (default: "ACCOUNT_UPDATE")

---

## 📝 License

MIT License © 2025 [Your Name or Organization]
weightfactors 0.0.9
Calculate weight factors for survey data to approximate a representative sample
Requires Python: <4.0,>=3.10

![Continuous Integration](https://github.com/markteffect/weightfactors/actions/workflows/ci.yml/badge.svg)
![Python](https://img.shields.io/badge/Python-3.10+-blue)
# **Weight Factors**
Calculate weight factors for survey data to approximate a representative sample


### **Installation**
```python
pip install weightfactors
```

or clone and install from source
```python
git clone https://github.com/markteffect/weightfactors
cd weightfactors
poetry install
```

### **Usage**
Currently, the package implements a generalized raking algorithm.  
If you'd like to see support for other algorithms, please open an issue or submit a pull request.  
  
Let's use the following dataset as an example:
```python
sample = pd.DataFrame(
    {
        "Gender": [
            "Male",
            "Male",
            "Female",
            "Female",
            "Female",
            "Male",
            "Female",
            "Female",
            "Male",
            "Female",
        ],
        "Score": [7.0, 6.0, 8.5, 7.5, 8.0, 5.0, 9.5, 8.0, 4.5, 8.5],
    }
)

```

Suppose our sample comprises 40% males and 60% females.  
If we were to calculate the average score, we would get:  
```python
np.average(sample["Score"])
# 7.25
```
Now, assuming a 50/50 gender distribution in the population,  
let's calculate weight factors to approximate the population distribution:  
```python
from weightfactors import GeneralizedRaker

raker = GeneralizedRaker({"Gender": {"Male": 0.5, "Female": 0.5}})
weights = raker.rake(sample)
# [1.25000008 1.25000008 0.83333334 0.83333334 0.83333334 1.25000008
# 0.83333334 0.83333334 1.25000008 0.83333334]
```

Let's calculate the average score again, this time applying the weight factors:  
```python
np.average(sample["Score"], weights=weights)
# 6.9791666284520835
```

For more detailed information and customization options, please refer to the docstrings.
gapms 0.1.3
GAP-MS is a pipeline designed to evaluate and refine predicted gene models by integrating proteogenomic evidence from mass spectrometry with in-silico gene predictions.
Requires Python: <3.11,>=3.10

# GAP-MS: **Gene Model Assessment using Peptides from Mass Spectrometry**

**GAP-MS** is a pipeline designed to evaluate and refine predicted gene models by integrating proteogenomic evidence from mass spectrometry with in-silico gene predictions. This approach leverages an iterative machine learning framework to classify predicted proteins as *supported* or *unsupported*, improving both specificity and overall accuracy of gene models.

---

## 📦 Installation

We recommend setting up a dedicated Conda environment to manage dependencies:

```bash
conda create -n gapms_env python=3.10 perl-xml-parser perl-xml-twig -c conda-forge
conda activate gapms_env
git clone https://github.com/qussai96/GAP-MS.git
cd GAP-MS
pip install -e .
```

---

## 📂 Required Inputs

To run GAP-MS, you need the following input files:

1. **Gene models** in GTF or GFF format  
2. **Translated protein sequences** (FASTA format) of the gene models  
3. **Peptide list**  plain text (.txt) file containing peptides identified from a mass spectrometry experiment [Each peptide should be on a separate line]
---

## 🧪 Running the Pipeline

### Option 1: With translated protein FASTA file

If you already have the translated gene models in FASTA format:

```bash
gapms -g annotations.gtf -a proteins.fasta -p peptides.txt [-o /path/to/output_directory]
```
> ℹ️ **Note**: If the `-o` output directory is not specified, the results will be written to a folder named `GAPMS_Output` in the same directory as the GTF file.

### Option 2: With genome assembly file

If you only have the genome assembly (FASTA) and not the translated proteins, gapms will get the translated proteins from the assembly by running:

```bash
gapms -g annotations.gtf -a assembly.fasta -p peptides.txt [-o /path/to/output_directory]
```
---

## 🔄 Optional: Use Custom Mapping File

If you prefer to use a custom peptide-to-protein mapping (instead of running `proteomapper`), use the `-m` option:

```bash
gapms -g annotations.gtf -a assembly.fasta -m /path/to/mapping_file.tsv [-o /path/to/output_directory]
```

- The mapping file **must** include at least:
  - `peptide`
  - `protein` columns

---

## 📁 Example Data

You can find examples of input files in the `tutorials/` directory to help you get started.

---

## 📬 Feedback & Issues

If you encounter bugs or have suggestions, please open an issue on the [GitHub repository](https://github.com/qussai96/GAP-MS/issues).

---
CleanTiPy 0.6.3
An open-source implementation of CLEAN-T acoustic imaging technique
Requires Python: >=3.11

![CleanTiPy logo](https://raphael.leiba.fr/assets/img/CLEAN-T_Logo_1_bw_white_bg.svg)


CleanTiPy is a python package allowing users to realise acoustic images of moving sources. It implements the CLEAN-T algorithm, with some additional features such as:

 * Angular selection of the trajectory (to realise the analysis on portions of the trajectory)
 * Frequency band filtering (on third-octave or octave band) to do the analysis for specific frequency band (can speed up the computation in low frequency by decimating the signal)
 * Implementation of (an homogeneous) wind effect on propagation and back-propagation.

As implementing CLEAN-T, this package can thus be used for computing classical Beamforming computation and propagation simulations (being constitutive blocks of iterative CLEAN-T algorithm).

It is based on the work published in [Cousson *et al.*](https://doi.org/10.1016/j.jsv.2018.11.026) and in [Leiba *et al.*](https://www.bebec.eu/fileadmin/bebec/downloads/bebec-2022/papers/BeBeC-2022-D06.pdf)

## Installation

This code has been developed in Python 3.11 and therefore back-compatibility is not guaranteed.

Install the required packages with pip:

```
pip install cleantipy
```

## Usage

Examples can be found in the examples directory on [github](https://github.com/Universite-Gustave-Eiffel/CleanTiPy/tree/main/examples)

An exemple (CLEAN-T over trajectory, for multiple frequency bands) can be run this way:

```
cd ./examples/
python computeCleanT_multiFreq.py
```

An exemple of CLEAN-T over trajectory, for multiple frequency bands, and for multiple angular windows can be run this way:

```
cd ./examples/
python computeCleanT_multiFreq_multiAngles.py
```

Same example can be found as notebook [here](https://github.com/Universite-Gustave-Eiffel/CleanTiPy/blob/main/examples/computeCleanT_multiFreq_multiAngles.ipynb)

## Documentation

The full documentation of the project is available on [ReadTheDocs](https://cleantipy.readthedocs.io/)


## Support

Contact Raphaël LEIBA : raphael.leiba@univ-eiffel.fr


## Contributing

Not open for contribution yet

## Authors and acknowledgment

Raphaël Leiba<sup>1,2</sup>, with the help of Quentin Leclère<sup>2</sup>

<sup>1</sup>Joint Research Unit in Environmental Acoustics [UMRAE](https://www.umrae.fr/), [Gustave Eiffel University](https://www.univ-gustave-eiffel.fr/en/) <BR>
<sup>2</sup>Laboratory of Vibration and Acoustics [LVA](https://lva.insa-lyon.fr/), [INSA Lyon](https://www.insa-lyon.fr/en/)

## License

CleanTiPy is licensed under the EUPL-1.2. See [LICENSE](LICENSE.txt)

## Project status

Ready for production release but still in active development
discord-message-cleaner 0.1.1
Cleans messages from a discord channel older than a set time in days

#  DiscordMessageCleaner

[![PyPI version](https://badge.fury.io/py/discord-message-cleaner.svg)](https://badge.fury.io/py/discord-message-cleaner)
[![GitHub Sponsorship](https://img.shields.io/badge/support-me-red.svg)](https://github.com/users/rix1337/sponsorship)

Cleans messages from a discord channel older than a set time in days

# Setup

`pip install discord-message-cleaner`

## 🚀 Setting Up & Inviting DeleteBot

1. **Create a Discord Application**  
   - Go to the [Discord Developer Portal](https://discord.com/developers/applications).  
   - Click **New Application**, give it a name (e.g. “DeleteBot”), and save.

2. **Add a Bot User**  
   - In your application sidebar, select **Bot** → **Add Bot** → **Yes, do it**.  
   - Under **Privileged Gateway Intents**, enable **Message Content Intent**.  

3. **Generate an Invite Link**  
   - In the sidebar, go to **OAuth2** → **URL Generator**.  
   - Under **Scopes**, check: `bot`  
   - Under **Bot Permissions**, check at minimum:  
     - **Read Message History**  
     - **Manage Messages**  
   - Copy the generated URL at the bottom.

4. **Invite to Your Server**  
   - Paste the URL into your browser, select your server, and authorize.

# Run

```
discord_message_cleaner
  --token=<your_discord_bot_token>
  --channel_id=<your_discord_channel_id>
  --days=<number_of_days>
  ```

# Docker
```
docker run -d \
  --name="DiscordMessageCleaner" \
  -e 'TOKEN=<your_discord_bot_token>'
  -e 'CHANNEL_ID=<your_discord_channel_id>'
  -e 'DAYS=<number_of_days>'
  rix1337/docker-discord-message-cleaner:latest
  ```
clivy 0.1.0
A Python package for CLI utilities
Requires Python: >=3.8

# Clivy

A Python package for CLI utilities.

## Installation

```bash
pip install clivy
```

## Usage

```python
import clivy

# Use the package functionality
result = clivy.example_function("Hello, World!")
print(result)
```

## Features

- Feature 1: Description of feature 1
- Feature 2: Description of feature 2

## License

This project is licensed under the MIT License - see the LICENSE file for details.