semvec/pypi-packages huggingface dataset:
bloom-tui 0.2.0
Utility to make your terminal apps stand out.
Requires Python: >=3.11

# 🌸🎨 Bloom 🎨🌸

[![PyPI version](https://badge.fury.io/py/colourup.svg)](https://badge.fury.io/py/colourup)
[![Static Badge](https://img.shields.io/badge/python-%2B3.12-blue?logo=python&logoColor=blue)](https://www.python.org/downloads/)
![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/piker98988/colourup/python-package.yml)
![GitHub last commit](https://img.shields.io/github/last-commit/piker98988/colourup)

Make your terminal output beautiful with simple, intuitive styling functions.

## ✨ Features

- 🎯 Simple API for common terminal styling needs
- 🌈 16 Foreground & Background colors
- 💫 Text effects (bold, italic, underline, inverse)
- 📏 Centered titles with custom borders
- 🔤 Styled input prompts
- 💻 Windows support via Colorama

## 📦 Installation

```bash
pip install bloom-tui
```

## 🚀 Quick Start

```python
from bloom import title, pinput, selector
from bloom.styles import fg, bg, style

# Create beautiful titles
title(text="Welcome to Bloom!", borderchar="=", borderlen=6)  # ====== Welcome to Bloom! ======

# Styled input prompts (spaces at the end included)
name = pinput("What's your name?", customprefix="→")
# What's your name?
# → 

# Easy selection menus
mySelector = selector.Selector("How are you feeling?", ["good", "bad", "normal"])
mySelector.invoke()
"""
How are you feeling?
 > good
 - bad
 - normal
"""

# Colorful output
print(f"{fg.GREEN}{style.BOLD}Success!{style.RESET}")
print(f"{bg.BLUE}{fg.WHITE}Info message{style.RESET}")
```

## 🎨 Available Styles

### Colors (fg/bg)
Standard: `BLACK` `RED` `GREEN` `YELLOW` `BLUE` `MAGENTA` `CYAN` `WHITE`

Bright: `BBLACK` `BRED` `BGREEN` `BYELLOW` `BBLUE` `BMAGENTA` `BCYAN` `BWHITE`

### Text Effects
- `BOLD` -- **Bold text**
- `ITALIC` -- *Italic text*
- `UNDERLINE` -- Underlined text
- `INVERTED` -- The foreground and background colours are inverted
- `RESET` -- Reset all styles, leave it like default 

> [!TIP]
> Use `style.RESET` at the end of each print to prevent bleeding the style to the next lines

## 🛠️ Development
```bash
# Clone the repository
git clone https://github.com/piker98988/bloom-tui.git
cd bloom-tui

# Create virtual environment
python -m venv venv
source venv/bin/activate  # Linux/Mac
# or
.\venv\Scripts\activate  # Windows

# Install dependencies
pip install -r requirements.txt
```

## 💡 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.

- Fork the repository
- Create your feature branch (`git checkout -b feature/AmazingFeature`)
- Commit your changes (`git commit -m 'Add some AmazingFeature'`)
- Push to the branch (`git push origin feature/AmazingFeature`)
- Open a Pull Request

## 📄 License

This project is licensed under the GNU General Public License v3.0 — see the [LICENSE](LICENSE) file for details.

Copyright (C) 2024 Piker

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
class-inspector 0.3.1
class inspector package
Requires Python: >=3.9

# Read the docs
[class-inspector API docs](https://second-ed.github.io/class_inspector/)

# Custom Validators
Extension of the validators from the attrs library, these allow the use of type checking the constituents of a collection.

### Example attrs validator and the problem this is a solution to*:
```python
possible: list = attr.ib(validator=[instance_of(list)])
not_possible: List[int] = attr.ib(validator=[instance_of(List[int])])
```

This means that we can't validate the members of a collection. However, with the custom validators we can do this:

```python
now_possible: Collection = attr.ib(validator=[validate_generic_of_type(Collection, float)])
```

Meaning we can pass in any object that implements the following dunder methods `[__contains__, __iter__, __len__]` 
AND validate that each member of the collection is a float. This is possible for other types too.

*on closer inspection (ironic given this repo's name) of the attrs API reference this is a solved problem with `deep_iterable()` and `deep_mapping()`. attrs: 2, me: 0

# generated repo map
```
└── class_inspector
    ├── docs
    │   └── source
    │       └── conf.py
    ├── src
    │   └── class_inspector
    │       ├── __init__.py
    │       ├── _logger.py
    │       ├── create_tests.py
    │       ├── cst_walkers.py
    │       ├── custom_validators.py
    │       ├── data_structures.py
    │       ├── guard_conditions.py
    │       ├── transform.py
    │       └── utils.py
    ├── tests
    │   ├── __init__.py
    │   ├── conftest.py
    │   ├── test_create_tests.py
    │   ├── test_custom_validators.py
    │   ├── test_guard_conditions.py
    │   ├── test_transform.py
    │   └── test_utils.py
    ├── README.md
    ├── pyproject.toml
    └── setup.py
::
```
Topsis-shreya-102203070 0.0.1
topsis package for decision making
Keywords: python, video, stream, video stream, camera stream, sockets

# Topsis

TOPSIS is based on the fundamental premise that the best solution has the shortest distance from the positive-ideal solution, and the longest distance from the negative-ideal one. Alternatives are ranked with the use of an overall index calculated based on the distances from the ideal solutions.

It takes 4 arguments :
1.Data.csv file
2.Weights
3.Impacts
4.Result file

Returns file with Topsis Score and Rank

## How to use it?

Open terminal and type pip install Topsis-shreya-102203070

To get started quickly, just use the following:

from topis_pckg.topsis import topsis
topsis('inputfilename','Weights','Impacts','Outputfilename')
make ensure the weights and impacts should be in ""

eg: "1,1,1,1,1" and "+,-,+,-,+"