semvec/pypi-packages huggingface dataset:
disnake-compass 1.1.0
An extension for disnake aimed at making component interactions with listeners somewhat less cumbersome.
Requires Python: >=3.10

NOTE
====

disnake-compass
===============

An extension for [disnake](https://github.com/DisnakeDev/disnake) aimed at making component interactions with listeners somewhat less cumbersome.  
Requires disnake version 2.10.0 or above and python 3.10.0 or above.

Key Features
------------
- Smoothly integrates with disnake,
- Intuitive dataclass-like syntax to declare component classes,
- Fully stateless and persistent by permanently storing state inside custom ids,
- Custom id matching, parsing, conversion and creation are all managed for you,
- Highly customisable!

Installing
----------

**Python 3.10 or higher and disnake 2.10.0 or higher are required**

To install the extension, run the following command in your command prompt/shell:

``` sh
# Linux/macOS
python3 -m pip install -U disnake-compass

# Windows
py -3 -m pip install -U disnake-compass
```
It can then be imported as
```py
import disnake_compass
```

Examples
--------
A very simple component that increments its label each time you click it can be written as follows:

```py
import disnake
from disnake.ext import commands
import disnake_compass


bot = commands.InteractionBot()
manager = disnake_compass.get_manager()
manager.add_to_client(bot)


@manager.register
class MyButton(disnake_compass.RichButton):
    count: int

    async def callback(self, interaction: disnake.MessageInteraction[disnake.Client]) -> None:
        self.count += 1
        self.label = str(self.count)

        await interaction.response.edit_message(components=self)


@bot.slash_command()
async def test_button(interaction: disnake.CommandInteraction[disnake.Client]) -> None:
    component = await MyButton(label="0", count=0).as_ui_component()

    await interaction.send(components=component)


bot.run("TOKEN")
```

For extra examples, please see [the examples folder](https://github.com/DisnakeCommunity/disnake-compass/tree/docs/examples).

To-Do
-----
- Implement modals,
- Improve Cog support by somehow injecting the cog instance,
- Contribution guidelines,

Contributing
------------
Any contributions are welcome, feel free to open an issue or submit a pull request if you would like to see something added. Contribution guidelines will come soon.
pyspoa 0.3.2
Python bindings to spoa

# pyspoa

![test-pyspoa](https://github.com/nanoporetech/pyspoa/workflows/test-pyspoa/badge.svg) [![PyPI version](https://badge.fury.io/py/pyspoa.svg)](https://badge.fury.io/py/pyspoa)

Python bindings to [spoa](https://github.com/rvaser/spoa).

## Installation

```bash
$ pip install pyspoa
```

## Usage

```python
>>> from spoa import poa
>>>
>>> consensus, msa = poa(['AACTTATA', 'AACTTATG', 'AACTATA'])
>>> consensus
'AACTTATA'
>>> msa
['AACTTATA-', 'AACTTAT-G', 'AAC-TATA-']
>>> print(os.linesep.join(msa))
AACTTATA-
AACTTAT-G
AAC-TATA-
```

## Developer Quick Start

```bash
$ git clone --recursive https://github.com/nanoporetech/pyspoa.git
$ cd pyspoa
$ python3 -m venv pyspoa
$ source pyspoa/bin/activate
(pyspoa) $ make build
```

### Licence and Copyright
(c) 2019 Oxford Nanopore Technologies Ltd.

pyspoa is distributed under the terms of the MIT License.  If a copy of the License
was not distributed with this file, You can obtain one at https://github.com/nanoporetech/pyspoa

### Research Release

Research releases are provided as technology demonstrators to provide early access to features or stimulate Community development of tools. Support for this software will be minimal and is only provided directly by the developers. Feature requests, improvements, and discussions are welcome and can be implemented by forking and pull requests. However much as we would like to rectify every issue and piece of feedback users may have, the developers may have limited resource for support of this software. Research releases may be unstable and subject to rapid iteration by Oxford Nanopore Technologies.