semvec/pypi-packages huggingface dataset:
sbutterfly 2.0.0
Allows you to post to your socials
Requires Python: >=3.12

# Butterfly

A lightweight, extensible social media management tool.

## Overview

Butterfly is a Python framework for managing posts across multiple social media platforms through a unified interface. It uses a plugin-based architecture to support different social media services.

Currently supported platforms:
- Twitter
- Mastodon
- BlueSky

## Installation

Requires Python 3.12+ & uv/pipx

```bash
uv tool install sbutterfly
```

## Usage

### Command Line Interface

```bash
# List available plugins
sbutterfly --list-plugins

# Validate credentials (default behavior)
sbutterfly --plugins twitter
sbutterfly --plugins mastodon
sbutterfly --plugins bluesky
# or validate all plugins
sbutterfly

# Post a message (use --execute flag)
sbutterfly --plugins twitter --execute --message "Hello from Butterfly!"
sbutterfly --plugins mastodon --execute --message "Hello from Butterfly!"
sbutterfly --plugins bluesky --execute --message "Hello from Butterfly!"
# or post to all platforms
sbutterfly --execute --message "Hello from Butterfly!"
```

## Configuration

Butterfly uses environment variables for authentication:

### Environment Variables
```
TWITTER_CONSUMER_KEY
TWITTER_CONSUMER_SECRET
TWITTER_ACCESS_TOKEN
TWITTER_ACCESS_TOKEN_SECRET
MASTODON_BEARER_TOKEN
BSKY_USERNAME
BSKY_PASSWORD
```

## Extending Butterfly

To create a new social media plugin:

1. Create a new file in the `plugins` directory
2. Implement a class that adheres to the Plugin protocol:
   - `get_name()`: Returns the plugin's name
   - `validate()`: Validates the plugin's credentials
   - `execute()`: Posts content to the social media platform

See `plugins/twitter.py` for an example implementation.

## Development
```bash
git clone https://github.com/danwald/butterfly.git
cd butterfly

# Install development dependencies
uv sync

# Run tests
make test

# Run linting
make lint
make type
```

### Using as a Library

```python
from src.plugins.twitter import Twitter

# Create a Twitter plugin instance
twitter = Twitter()

# Validate credentials
if twitter.validate():
    # Post a message
    twitter.execute("Hello from Butterfly!")
```

## Todo
- support meta threads
opentelemetry-python-contrib-external-valkey 0.60b1
OpenTelemetry Valkey instrumentation
Requires Python: >=3.9

# opentelemetry-python-contrib-external-valkey

[OpenTelemetry](https://opentelemetry.io/) instrumentation for the [Valkey Python Client](https://github.com/valkey-io/valkey-py).

## How do I install it?

`opentelemetry-python-contrib-external-valkey` is available on [PyPI](https://pypi.org/project/opentelemetry-python-contrib-external-valkey). You can install it with

```shell
pip install opentelemetry-python-contrib-external-valkey
```

or

```shell
uv add opentelemetry-python-contrib-external-valkey
```

or something equivalent.

## How do I use it?

For global instrumentation of the [Valkey Python client](https://github.com/valkey-io/valkey-py) you can do

```python
from opentelemetry.instrumentation.valkey import ValkeyInstrumentor

ValkeyInstrumentor().instrument()
```

For more detailed documentation please have a look at the [`opentelemetry-instrumentation-redis` documentation](https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/redis/redis.html) and just replace `[rR]edis` with `[vV]alkey`. 

## Why is this needed?

`opentelemetry-instrumentation-redis` instruments the `redis` module and has multiple `isinstance` checks for classes from it. Since the [Valkey Python Client](https://github.com/valkey-io/valkey-py) is a fork of the [Redis Python Client](https://github.com/redis/redis-py), any instrumentation through `opentelemetry-instrumentation-redis` has no effect on the `valkey` module or any of its classes. `opentelemetry-python-contrib-external-valkey` fills this gap until Valkey is [officially supported](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3478) and gives Valkey users the same user experience for instrumentation as Redis users. 

## How does it work?

This repository is a fork of [opentelemetry-python-contrib](https://github.com/open-telemetry/opentelemetry-python-contrib) and specifically the [instrumentation/opentelemetry-instrumentation-redis](https://github.com/open-telemetry/opentelemetry-python-contrib/tree/main/instrumentation/opentelemetry-instrumentation-redis) folder. 95% and more of the changes in the [`src`](./src) and [`tests`](./tests) folders are just replacing the strings `redis` and `Redis` with `valkey` and `Valkey` respectively.
carlogtt-python-library 1.7.0
A versatile Python library offering a collection of reusable utility functions designed to streamline common programming tasks and promote code reusability across various projects.
Requires Python: >=3.9

# CarlogttPythonLibrary

![Python Logo](https://www.python.org/static/community_logos/python-logo.png "Python Logo")

A versatile Python library offering a collection of reusable utility functions designed to streamline common programming tasks and promote code reusability across various projects.

<br>

## Installation

To clone the repository:

```bash
git clone https://github.com/64rl0/CarlogttPythonLibrary.git ./carlogtt_python_library
cd carlogtt_python_library
```

<br>

To install the library via [pypi](https://pypi.org/project/carlogtt-python-library/):
```bash
pip install carlogtt-python-library
```

To use the library in your project:
```py
import carlogtt_python_library

sqlite = carlogtt_python_library.SQLite("/path/to/db", "db_filename")
```

<br>

## License

This project is licensed under the MIT License. See the LICENSE file for details.
opencv-extra 1.0.3
This package is built as a opencv utilities. Additional algorithms to write text and making boxes on the image.
Requires Python: >=3.8

# OpenCV Extra Utilities

## Table of Contents

- [About](#about)
- [Getting Started](#getting_started)
- [Usage](#usage)

## About <a name = "about"></a>

This package is built as a opencv utilities. Additional algorithms to write text on the image without thinking about the image size. My algorithm will do it own its own.

## Getting Started <a name = "getting_started"></a>

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

### Installing

pip install opencv-extra

## Usage <a name = "usage"></a>
```
image = cv.imread("car.jpg", cv.IMREAD_COLOR)
cv.namedWindow("Image", cv.WINDOW_NORMAL)
image = put_text(image, "car", (0, 255, 0), (0, 0), True)
cv.imshow("Image", image)
cv.waitKey(0)
```

#### v1.0.1 - Added draw_label in this version

#### v1.0.2 - Added CaptureRead class in this version

#### v1.0.3 - Added pad_image (with custom padding support) and make_square_image methods for generating square images.

```
from opencv_extra.capture_read_utils import CaptureRead
import cv2 as cv

cap = CaptureRead(path=0, mode="bgr")   # it will show the webcam feed
cap = CaptureRead(path="/path/to/folder", mode="bgr") # it will load all the images from the given folder
cap = CaptureRead(path="/path/to/video_file", mode="bgr") # it will load the video file

cv.namedWindow("image", cv.WINDOW_NORMAL)
for image in cap.next():
    cv.imshow("image", image)
    cv.waitKey(1)
```



### Additional algorithms will be updated regularly, keep in touch with this python package.