Prerequisites
To run this package python3.10 is reccomended. On early stages of developing this project this might not be important, but all further dependencies can require 3.10 version only.
How to install?
Installing this is simple, just write to the terminal:
pip install robustprinter
About
History
This package was born in desparate search for the tool to conveniently print training information to the console. Altough Tensorflow has its own pre-built printer, which is quite nice, pytorch doesn't have such luxuary. Most of my applications depend on torch and I was tired of tedious print statements around my code that was hard to make beautiful.
Main idea is to incapsulate functionality that I may use across different other applications in one package.
Usage
Main classes are Printer and Formatter. Printer regulates what, when and where something must be printed and Formatter regulates how it must be printed. For now package has only DefaultFormatter class – child of Formatter, and all it does is prints beautifully training info.
To see package in work try this code:
import time
import numpy as np
from robustprinter import Printer, formatter
from robustprinter.formatter import DefaultFormatter
class TestFormatter(formatter.Formatter):
def __init__(self) -> None:
super(TestFormatter, self).__init__()
def format(self, data) -> str:
return data
metrics_list = [
'precision', 'recall', 'mAP50', 'mAP50-95', 'accuracy',
'FID', 'loss'
]
def generate_random_metrics(metrics: list) -> dict:
result = dict()
for metric in metrics:
result[metric] = np.random.rand()
return result
if __name__ == '__main__':
print('Start test.')
max_steps = 10
rformatter = DefaultFormatter(max_columns=2)
rprinter = Printer(formatter=rformatter)
rprinter.start()
data = dict()
for epoch in range(3):
data['epoch'] = epoch
for step in range(max_steps):
data['step'] = step + 1
data['max_steps'] = 10
data['partition'] = 'train'
data['metrics'] = generate_random_metrics(metrics=metrics_list)
rprinter.print(data=data)
time.sleep(1)
rprinter.break_loop()
Examples
DefaultFormatter
Contribution
This repository is about designing new formatters and printers. If you have an idea and want to share it – you are welcome!
Release files for robustprinter 0.0.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| robustprinter-0.0.10.tar.gz | 4.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| robustprinter-0.0.10-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.7 kB
Release files / robustprinter-0.0.10.tar.gz
| Download URL | robustprinter-0.0.10.tar.gz |
|---|---|
| Size | 4.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
83d9bd69209e22278ed39f9e3f812cfdf3297d58eb2b8b8278f18307b29386ed
|
|
BLAKE2b-256 checksum How to use checksums |
bde3cec960dd947e5f900c47a7fe2ac46870d5e117b79179ed1ab76cdb6ed168
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.11.6
|
Release files / robustprinter-0.0.10-py3-none-any.whl
| Download URL | robustprinter-0.0.10-py3-none-any.whl |
|---|---|
| Size | 5.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ae6110730bf5e0f18105764f8dfd1650cf471d6b3384070819924a7bdb6c860d
|
|
BLAKE2b-256 checksum How to use checksums |
7849d9a0e9c616ec339222d85f3d0f1aa3acf1c219559d72b5199e7f2c338992
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.11.6
|