Metadata-Version: 2.3
Name: nurgapy
Version: 0.1.0
Summary: This lightweight Python library provides reusable utility functions to simplify common development tasks.
License: MIT
Author: nurgalive
Author-email: github@nurgalive.com
Requires-Python: >=3.12
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: pytest (>=8.3.4,<9.0.0)
Description-Content-Type: text/markdown

# nurgapy

```bash  _   _                       ____
 | \ | |_   _ _ __ __ _  __ _|  _ \ _   _
 |  \| | | | | '__/ _` |/ _` | |_) | | | |
 | |\  | |_| | | | (_| | (_| |  __/| |_| |
 |_| \_|\__,_|_|  \__, |\__,_|_|    \__, |
                  |___/             |___/
```

Small convenience Python library.

Rationality to build this library, that I don't want to copy over this code to multiple projects.

Currently, `nurgapy` library consists two functions:
- `tyme` - it is a small wrapper function, which is used for measuring execution time of functions. Also works for the class functions.
- `trackbar` - it is a simple progress bar, which just works without many imports. Inspired by [stackoverflow post](https://stackoverflow.com/a/34482761/15059130). There is well-known `tqdm` library, but it prevents user from using `print` statements. For simple use-cases this progress bar should be enough. There is another nice library `alive-progress`, which does not have this issue and many others. But I just wanted to have some simple progress bar, which lives in the single library with other convenience functions.

## Getting started
This project uses Poetry for the package management.

Install Poetry (if not installed)
```
curl -sSL https://install.python-poetry.org | python3 -
```

Install dependencies
```
poetry install
```

Run the project example
```
poetry run src/main.py
```

## Running tests

Run tests using pytest.

```bash
poetry run pytest -v
```

`-s` - will print the `print()` statements. Use it for debug.

## Roadmap
- [x] ~~Add basic code~~
- [x] ~~Add pre-commit hook~~
    - Add more rules to pre-commit
- [x] ~~Add public API to the `init.py`~~
- [x] ~~Add tests~~
- [ ] Add tests automation [Nox](https://nox.thea.codes/en/stable/)
- [ ] Add badges
    - [ ] test coverage ([coveralls](https://coveralls.io/))
- [x] Add packaging
- [ ] Publish nurgapy to pip
- [ ] Add a runner, which automatically publishes a new version to pip
- [ ] Add `documentation` folder

Progress bar
- [ ] Add percentages
- [ ] Flexible size
- [ ] Progress bar runs in the independent thread

