semvec/pypi-packages huggingface dataset:
markination 0.2.3
A discord paginator.
Requires Python: >=3.11,<4.0

# Markination

[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)

Markination is a versatile Python package that provides an easy-to-use Discord message paginator using the discord.py library.

## Features

- Discord Button Paginator
- Discord Dropdown Paginator
- Built-in support for navigation buttons (Next, Previous, First, Last).
- Designed for ease of use in your Discord bot projects.
- Extensible and open-source.

## Installation

[![License](https://media.discordapp.net/attachments/1093865249645547570/1147899684996780112/LibraryRequiresDiscordpy.png)](https://github.com/rapptz/discord.py)


You can install Markination using [Poetry](https://python-poetry.org/) and [PyPi](https://pypi.org/project/markination/)

```shell
poetry add markination
```

```python
pip install markination
```

## Usage

Simple Button Setup:
```python
from markination import ButtonPaginator
from discord.ext import commands
import discord

@bot.command()
async def paginator(ctx: commands.Context):
    # A list of embeds to paginate
    embeds = [discord.Embed(title="First embed"),         
            discord.Embed(title="Second embed"),
            discord.Embed(title="Third embed")]

    # Start the paginator
    await ButtonPaginator.Simple().start(ctx, pages=embeds)
```

Custom Buttons:
```python
from markination import ButtonPaginator
from discord.ext import commands
import discord
from discord import ui

@bot.command()
async def paginator(ctx: commands.Context):
    embeds = [discord.Embed(title="First embed"),         
            discord.Embed(title="Second embed"),
            discord.Embed(title="Third embed")]
    PreviousButton = discord.ui.Button(label=f"Previous")
    NextButton = discord.ui.Button(label=f"Next")
    FirstPageButton = discord.ui.Button(label=f"First Page")
    LastPageButton = discord.ui.Button(label=f"Last page")
    PageCounterStyle = discord.ButtonStyle.danger # Only accepts ButtonStyle instead of Button
    InitialPage = 0 # Page to start the paginator on.
    timeout = 0 # Seconds to timeout. Default is 60
    ephemeral = bool # Defaults to false if not passed in.
    await ButtonPaginator.Simple(
        PreviousButton=PreviousButton,
        NextButton=NextButton,
        FirstEmbedButton=FirstPageButton,
        LastEmbedButton=LastPageButton,
        PageCounterStyle=PageCounterStyle,
        InitialPage=InitialPage,
        timeout=timeout, ephemeral=ephemeral).start(ctx, pages=embeds)
```
Simple Dropdown Setup
```python
from markination import DropdownPaginator
from discord.ext import commands
import discord
from discord import ui

@bot.command()
async def dropdown(ctx):
    pages = [
        discord.Embed(title="Page 1", description="This is the first page."),
        discord.Embed(title="Page 2", description="This is the second page."),
        discord.Embed(title="Page 3", description="This is the third page.")
    ]

    await DropdownPaginator.Simple(ctx, pages, timeout=60).start(ctx)

```
Pull Requests are always open!
PyPSATopo 0.8.0
PyPSATopo is a tool which allows generating the topographical representation of any arbitrary PyPSA-based network
Requires Python: >=3.2
Keywords: PyPSA,power system,network,visualization,representation,topography

PyPSATopo is a tool which allows generating the topographical representation of any arbitrary [PyPSA](https://pypsa.org)-based network (thanks to the [DOT language](https://graphviz.org/doc/info/lang.html)). Besides easing understand of a network by providing its graphical representation, the tool helps debugging it given that broken links and missing buses are shown in (slightly) different shapes and colors. Technically speaking, PyPSATopo can be thought of as a [reverse engineering](https://en.wikipedia.org/wiki/Reverse_engineering) tool for PyPSA-based networks.

To get a quick overview of the capabilities of PyPSATopo, simply launch it in a terminal as follows:

```bash
python pypsatopo.py
```

This will create a PyPSA-based network made of the following components:

```python
# create dummy (PyPSA-based) network
network = pypsa.Network(name = "My Dummy Network")

# add some dummy components to dummy network
network.add("Bus", "oil")
network.add("Bus", "electricity")
network.add("Bus", "transport")
network.add("Generator", "oil", bus = "oil")
network.add("Generator", "solar", bus = "electricity")
network.add("Load", "vehicle", bus = "transport")
network.add("Store", "battery", bus = "electricity")
network.add("Link", "ICEV", bus0 = "oil", bus1 = "transport")
network.add("Link", "BEV", bus0 = "electricity", bus1 = "transport")
```
... as well as generate the corresponding topographical representation of the network in the SVG format:

<kbd>
   <img src = "https://raw.githubusercontent.com/ricnogfer/pypsatopo/master/resources/topography.svg" alt = "Topographical representation of network 'My Dummy Network'" style = "background-color: white;" width = 520>
</kbd>
tensorage 0.1.7
Storing tensors in a supabase backend

# tensor-store

[![Test and deploy](https://github.com/hydrocode-de/tensorage/actions/workflows/main.yml/badge.svg)](https://github.com/hydrocode-de/tensorage/actions/workflows/main.yml)
[![codecov](https://codecov.io/gh/hydrocode-de/tensorage/graph/badge.svg?token=1eF6OGb9XW)](https://codecov.io/gh/hydrocode-de/tensorage)

Store tensor data structures into Supabase

A detailed getting started will follow soon!
accelphys 0.1.0
Accelerator Physics
Requires Python: ~=3.11.0

# accelphys
A package for basic accelerator physics. May also be useful in other areas of study but accelerator physics is the main focus area.

# Installation
The package can be installed in editable mode by running the following command in the terminal:

```bash
git clone https://github.com/jako4295/accelphys.git
pip install -e .
```
tc-aws-video 2.0.2
A customer loader for getting the video first frame from s3 compatible storage

# Thumbor AWS

[![Join the chat at https://gitter.im/thumbor-community/aws](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/thumbor-community/aws?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

[![Circle CI](https://circleci.com/gh/thumbor-community/aws.svg?style=svg)](https://circleci.com/gh/thumbor-community/aws)

## Installation

```bash
    pip install tc_aws_video
```

### Authentication

Authentication is handled by botocore,
see [Boto3 documentation](https://boto3.readthedocs.org/en/latest/guide/quickstart.html#configuration).

## Origin story

If you store the images or videos in s3 compatible storage , such as aws , minio etc.

And now, you want to access the images or the first frame of the videos on it.

This is a custom loader will help you to do this!

## Features

| version | loader                                 | python version | change log desc                             |
|:--------|:---------------------------------------|:---------------|:--------------------------------------------|
| v1.0.2  | `tc_aws_video.s3_video_loader`         | python2        | Add feature to cut the first frame of video |
| v1.1.2  | `tc_aws_video.loaders.s3_video_loader` | python2        | Optimize code to speed up loading           |
| v2.0.1  | `tc_aws_video.loaders.s3_video_loader` | python3+       | Optimize code to speed up loading           |
| v2.0.2  | `tc_aws_video.loaders.s3_video_loader` | python3+       | Fix 502 to 404 while video not existed      |

Additional Configuration values used:

```bash
# Reuse tc_aws configs 
# If you have credentials in ~/.aws/credentials , 
# then you can ignore TC_AWS_LOADER_ACCESS_KEY and TC_AWS_LOADER_SECRET_KEY
TC_AWS_REGION='your-s3-region'
TC_AWS_ENDPOINT='your-s3-endpoint'
TC_AWS_LOADER_ACCESS_KEY='your-s3-accesskey'
TC_AWS_LOADER_SECRET_KEY='your-s3-secret'

# Customize the temp storage for first frame of video
# The loader will delete the temp file while it read it into memory
TC_AWS_LOADER_VIDEO_FRAME_CACHE='/path/to/your/cache'

# Enable this loader

# When using v1.0.2
# LOADER = 'tc_aws_video.s3_video_loader'

# When using v1.1.2+
LOADER = 'tc_aws_video.loaders.s3_video_loader'

# Pay attention to this config 
# If you have cdn to access this , then you can set to no_storage
# STORAGE = "thumbor.storages.no_storage"
# else if you just want to cache the file into local storage , you can use file_storage 
# but you should remember , if you use the file_storage , the files will persistent in the file system until you remove them
STORAGE = "thumbor.storages.file_storage"
STORAGE_EXPIRATION_SECONDS = 900
FILE_STORAGE_ROOT_PATH = '/path/to/you/cache'
RESULT_STORAGE = 'thumbor.result_storages.file_storage'
RESULT_STORAGE_EXPIRATION_SECONDS=900
RESULT_STORAGE_FILE_STORAGE_ROOT_PATH = '/path/to/you/cache'
RESULT_STORAGE_STORES_UNSAFE = True
```