semvec/pypi-packages huggingface dataset:
matterdelta 1.6.3
Matterbridge API plugin for Delta Chat
Requires Python: >=3.8
Keywords: deltachat, bot, matterbridge, bridge

# Matterdelta

[![Latest Release](https://img.shields.io/pypi/v/matterdelta.svg)](https://pypi.org/project/matterdelta)
[![CI](https://github.com/deltachat-bot/matterdelta/actions/workflows/python-ci.yml/badge.svg)](https://github.com/deltachat-bot/matterdelta/actions/workflows/python-ci.yml)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

Matterdelta is a [Matterbridge](https://github.com/42wim/matterbridge) API plugin allowing to connect
Delta Chat group chats to the various chat services supported by Matterbridge.

## Install

```sh
pip install matterdelta
```

## Usage

Configure the bot's Delta Chat account:

```sh
matterdelta init bot@example.com PASSWORD
```

You can run `matterdelta init` several times to add multiple different accounts to the bot
so it can be reached in more than one email address.

The bot's display name, avatar and status/signature can also be tweaked:

```
matterdelta config selfavatar "/path/to/avatar.png"
matterdelta config displayname "Bridge Bot"
matterdelta config selfstatus "Hi, I am a Delta Chat bot"
```

To run the bot so it starts processing messages:

```sh
matterdelta serve
```

To see all available options run `matterdelta --help`

## Example Configuration

### matterbridge.toml

```
[api]
    [api.deltachat]
    BindAddress="127.0.0.1:4242"
    Token="MATTERBRIDGE_TOKEN"
    Buffer=1000
    RemoteNickFormat="{NICK}"

...

[[gateway]]
name="gateway1"
enable=true

    [[gateway.inout]]
    account="api.deltachat"
    channel="api"

    ...
```

Add these to your existing Matterbridge config to set up an API instance that Matterdelta can connect to.

### config.json

```
{
  "gateways": [
    {"gateway": "gateway1", "accountId": 1, "chatId": 1234}
  ],
  "api": {
    "url": "http://127.0.0.1:4242",
    "token": "MATTERBRIDGE_TOKEN"
  },
  "quoteFormat": "{MESSAGE} (re @{QUOTENICK}: {QUOTEMESSAGE:.46})"
}
```

This file should be in Matterdelta's configuration directory, usually `~/.config/matterdelta/`
in Linux-based systems.

To get the `accountId` and `chatId` of the chat you want to bridge,
run the bot and add its address to your Delta Chat group, then send `/id` in the group,
the bot will reply with the account and chat id, then edit the configuration file and restart the bot.
AIGuard 0.1.1
A system to protect AI from misuse and harmful inputs.
Requires Python: >=3.6

# AI Guard (Beta)
AI Guard is designed to protect AI Systems from misuse, manipulation, and harmful inputs. It ensures that the AI behaves as intended and does not deviate from its guidelines or generate harmful content.

# Features
- Input Sanitization
- Prompt Classification
- Manipulation Detection
- Ethical Compliance Check
- Response Validation
- Logging and Monitoring
- Customizable Settings
- Interactive Testing Mode (Uses Ollama)
- Fallback Mechanisms
- Scalability and Extensability

# How It Works
AI Guard protects AI Systems from misuse and harmful inputs by sanitizing user prompts to remove noise, classifying them as "non-toxic" (safe) or "toxic" (malicious) using a machine learning model and detecting manipulation attempts through predefined rules. It ensures ethical compliance by blocking prompts that request harmful or illegal actions and validates AI responses to prevent inappropriate content. The system logs all activities for auditing, operates interactively for testing, and includes a fallback mechanism to handle ambiguous cases by defaulting to "non-toxic". You can customize this however you'd like via the settings.yml file it supports features like input sanitization, prompt classification, and response validation making it ideal for chatbots, ai assistants, content moderation and research!

# Settings and Manipulation Rules
If you find any form of manipulation rule that can manipulate the AI assistant in any form of way you can add that said prompt to the manipulation_rules.txt file and you can open an issue stating a bypass you found. There are currently 583 different manipulation rules as of the first beta release and we're always looking to add more to this list that can really keep all AI safe from unrightful prompt engineering.

If you wish to tinker around with it and enable or disable whatever you dont like with in the whole system, you can head to the settings.yml file and enable or disable things. You can even go ahead and change the logs file to a whole different file if you wish.
simple-stop-watch-utility 2.0.1
A simple timer utility for recording the run times for other processes.
Requires Python: >=3.10

# StopWatch
## simple-stop-watch-utility
A simple timer utility for recording the run time of other processes.

The package came about because a basic search of PyPI, using the term stop-watch, came up with absolutely nothing. It was only after I tried to publish it, using the name stop-watch, that I found there are hundreds. After being rejected by PyPi, because *The name 'stop-watch' is too similar to an existing project*, I searched using the name stopwatch, and found many that could have saved me *_a lot_* of time. Thanks PyPI. Why I chose to put the hyphen in, I cannot remember, as it was a long time ago, but I think it just felt more natural, in a coding environment. (Maybe somebody there could connect the approval algorithm to the search box.)
Anyhoo, I've built it now and I've got used to the way it works. It's really only meant for logging/reporting, so all outputs are simple string formatted date & time stamps, but if you want to know how long a process has taken, it couldn't be easier.<br>
You simply kick it off at the start of your application, then you can drop in as many lap or interval timers as you like.<br>
I will add some proper instructions soon, but as I'm not expecting anyone outside my immediate circle to adopt this, that's not a high priority. But if you do want to give it a try, and would like some guidance, I'm only an email away.