semvec/pypi-packages huggingface dataset:
cliasi 0.4.2
Have a nice looking, simple cli in seconds
Requires Python: >=3.10

# cliasi (cli easy)

![GitHub issues](https://img.shields.io/github/issues/IgnyteX-Labs/cliasi)
![PyPI](https://img.shields.io/pypi/v/cliasi)

Output pretty command line text without hassle.
<br>This is mostly a collection of pretty print commands

View the [documentation here](https://cliasi.readthedocs.io/).

### Installation
```shell
pip install cliasi
uv add cliasi
```

## Basic Usage

```python
from cliasi import cli

cli.success("It works!")
# > ✔ [CLI] | It works!

cli.messages_stay_in_one_line = True
# The next few lines will get overwritten
cli.info("blah")
cli.warn("doing something dangerous")
# > ! [CLI] | doing something dangerous
```

Read more about different message types and see visualizations in the documentation
[here](https://cliasi.readthedocs.io/en/latest/message_types.html).

### Animations

One of the main features of cliasi is the ability to display animations while waiting
for something to finish.

```python
# File: examples/readme_demo.py
from cliasi import cli

# This will wait for three seconds and display an animation
task = cli.animate_message_non_blocking(
    "Saving files...",
    message_right="[CTRL-C to abort]",
    messages_stay_in_one_line=True
)
do_stuff()
task.update("Files saved, waiting for process to quit", message_right="70%")
tell_process_to_quit()
task.stop()
cli.success("Process quit", message_right="100%")
```

![readme_demo](docs/source/_static/asciinema/readme_demo.gif)

### Catching exceptions

cliasi also catches exceptions and displays them in a pretty way.
This then looks something like this:

```python
# exception_message.py
import cliasi

# Importing cliasi automatically installs the logging handler
raise ValueError("An example error")
```

Example CLI output (uncolored,
see colored version in
[docs](https://cliasi.readthedocs.io/en/latest/message_types.html)):

```text
X [CLI] | Uncaught exception:
X [CLI] | Traceback (most recent call last):
        |   File "examples/exception_message.py", line 4, in <module>
        |     raise ValueError("An example error")
        | ValueError: An example error
```

### Other features

cliasi has many more features like:

- Logging integration
- Custom message alignments
- Customizable progressbars (with `PBCalculationMode`)
- And more!

### Contributing:

This is just a fun project of mine mainly to try out python packaging.
If you would like to contribute or have a feature-request,
please [open an issue or pull request](https://github.com/Qrashi/cliasi/issues/new).
biobricks 0.4.0
Biobricks automates bioinformatics data.
Requires Python: >=3.9

# BioBricks
<!-- badges: start -->
[![codecov](https://codecov.io/gh/biobricks-ai/biobricks/branch/master/graph/badge.svg?token=J041MF0JKG)](https://codecov.io/gh/biobricks-ai/biobricks)
<!-- badges: end -->

BioBricks makes loading data from biological datasets easy.

```bash
pipx install biobricks
```

# initialize
To get started configure biobricks with a path for bricks and a biobricks.ai token:
```
biobricks configure
> Choose path to store bricks: <input a local path>
> Input a token from biobricks.ai/token: <this is your access token>
```

# Install and Use Bricks

To install a brick the command line command:
```sh
> biobricks install tox21
```

You can then use the brick in python as below:
```python
import biobricks as bb
bb.assets('tox21') # get the paths for the 'tox21' brick
```

To list the bricks currently available visit [status.biobricks.ai](https://status.biobricks.ai)
bisque-metadoc 0.6.6.1
Bisque Metadoc
Requires Python: >=3.8

# ViQi Metadoc

Representation of hierarchical documents with various "rendering" and query options.
For doc communication between server/clients.

## Install

`pip install bisque-metadoc`

## Usage

`Metadoc` provides a unified interface for working with hierarchical metadata in various formats (XML, JSON, Python dicts).

### Creating a Metadoc

```python
from bq.metadoc.formats import Metadoc

# Create a new document
doc = Metadoc(tag="resource", name="my_image", type="image")

# Add child tags
doc.add_tag("author", value="John Doe")
doc.add_tag("description", value="A sample image")

# Create from Natural XML
xml_str = '<resource name="test"><child>123</child></resource>'
doc = Metadoc.from_naturalxml(xml_str)

# Create from Python dictionary
data = {"resource": {"@name": "test", "child": "123"}}
doc = Metadoc.from_dict(data)
```

### Accessing Data

`Metadoc` supports attribute-style access and automatic type conversion.

```python
print(doc.tag)         # "resource"
print(doc.name)        # "test"
print(doc.child.value) # 123 (automatically converted to int if type is set)

# Iterating over children
for child in doc:
    print(child.tag, child.value)
```

### Path Queries

Simplified path queries automatically handle the internal mapping of custom tags.

```python
# Finds all tags named "author" anywhere in the document
authors = doc.path_query("//author")
```

### Formats and Serialization

`Metadoc` supports multiple serialization formats:

*   **Natural XML**: Standard XML where data names are used as tags.
*   **Tag XML**: Bisque "System" XML where values are stored in attributes and generic `<tag name="...">` elements are used for custom metadata.
*   **Natural JSON**: Idiomatic JSON dictionaries (attributes prefixed with `@`).
*   **Ordered JSON**: A round-trippable JSON structure that preserves element order using an `@children` list.

```python
# To XML string
print(doc.to_naturalxml())
print(doc.to_tagxml())

# To JSON string or dict
print(doc.to_json())
print(doc.to_dict())

# To/From Ordered JSON (preserves order and mixed content)
ordered_json = doc.to_ordered_json()
doc2 = Metadoc.from_ordered_json(ordered_json)
```

## Documentation

* [Metadoc](https://viqi.gitlab.io/viqi-common/viqi_metadoc/)
apologiesserver 0.2.2
Websocket server to interactively play the Apologies game
Requires Python: <4,>=3.11

# Apologies Server

[![pypi](https://img.shields.io/pypi/v/apologiesserver.svg)](https://pypi.org/project/apologiesserver/)
[![license](https://img.shields.io/pypi/l/apologiesserver.svg)](https://github.com/pronovic/apologies-server/blob/master/LICENSE)
[![wheel](https://img.shields.io/pypi/wheel/apologiesserver.svg)](https://pypi.org/project/apologiesserver/)
[![python](https://img.shields.io/pypi/pyversions/apologiesserver.svg)](https://pypi.org/project/apologiesserver/)
[![docs](https://readthedocs.org/projects/apologies-server/badge/?version=stable&style=flat)](https://apologies-server.readthedocs.io/en/stable/)
[![coverage](https://coveralls.io/repos/github/pronovic/apologies-server/badge.svg?branch=master)](https://coveralls.io/github/pronovic/apologies-server?branch=master)

[Apologies Server](https://github.com/pronovic/apologies-server) is a [Websocket](https://en.wikipedia.org/wiki/WebSocket) server interface used to interactively play a multi-player game using the [Apologies](https://github.com/pronovic/apologies) library.  The Apologies library implements a game similar to the [Sorry](https://en.wikipedia.org/wiki/Sorry!_(game)) board game.  

I originally developed this code in mid-2020 during COVID-enforced downtime, as
part of an effort to write a UI to play the Apologies board game in a web
browser.  However, Javascript moves really fast, and by mid-2021, my UI
implementation was already partially obsolete, and I abandoned work on it.

This code is still a reasonable example of how to build a Websocket server
including a state machine to manage board game state.  However, its main
purpose was to support the process of building that web UI, so it's not
designed or architected for production use.  It doesn't really look like
something I would write today, given the benefit of more experience with async
design patterns in Python.  But, it works.

See the [documentation](https://apologies-server.readthedocs.io/en/stable/design.html) for notes about the public interface and the event model.

## Prototype Code
glint-mask-tools 4.1.0.dev2
Create masks for specular reflection in UAV and aerial imagery
Requires Python: >=3.9

# Glint Mask Generator

<div style="overflow: hidden; display: flex; justify-content:flex-start; gap:10px;">
<a href="https://github.com/HakaiInstitute/GlintMaskGenerator/actions/workflows/test_code.yml">
    <img alt="Tests" src="https://github.com/HakaiInstitute/GlintMaskGenerator/actions/workflows/test_code.yml/badge.svg"/>
</a>

<a href="https://github.com/HakaiInstitute/GlintMaskGenerator/blob/main/LICENSE.txt">
    <img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-black.svg" height="20px" />
</a>

<a href="https://badge.fury.io/py/glint-mask-tools">
    <img alt="PyPI version" src="https://badge.fury.io/py/glint-mask-tools.svg" height="20">
</a>

<a href="https://zenodo.org/badge/latestdoi/266147098">
    <img src="https://zenodo.org/badge/266147098.svg" alt="DOI">
</a>
</div>

<p align="center">
    <img src="./docs/images/glint.gif" alt="GlintMaskGenerator" />
</p>

<p align="center">
    <i>A Utility for Generating Glint Masks for SfM Software</i>
</p>

<h1 align="center">
    <a href="https://glintmaskgenerator.readthedocs.io">&#9758; Read the Docs &#9756;</a>
</h1>

## License
GlintMaskGenerator is released under a MIT license, as found in the [LICENSE](LICENSE) file.

## Citation

Research using these tools or code should cite the following resources

```bibtext
@article{Cavanaugh2021,
	title        = {An Automated Method for Mapping Giant Kelp Canopy Dynamics from UAV},
	author       = {Cavanaugh, K.C. and Cavanaugh, K.C. and Bell, T.W. and Hockridge, E.G.},
	year         = 2021,
	journal      = {Front. Environ. Sci.},
	volume       = {8:587354},
	doi          = {10.3389/fenvs.2020.587354}
}
@misc{Denouden2021,
	title        = {GlintMaskGenerator},
	author       = {Denouden, T. and Timmer, B. and Reshitnyk, L.},
	year         = 2021,
	journal      = {GitHub repository},
	publisher    = {GitHub},
	doi          = {10.21966/3cpa-2e10},
	howpublished = {\url{https://github.com/HakaiInstitute/GlintMaskGenerator}},
	commit       = {8cb19e55f128da86bf0dbd312bc360ac89fe71c3}
}
```

## Development

See [DEVELOPMENT.md](DEVELOPMENT.md) for development and software maintenance instructions.