Metadata-Version: 2.1
Name: simple-print
Version: 1.2.0
Summary: Poweful function that will help you with debugging.
Home-page: https://github.com/Sobolev5/simple-print/
Author: Sobolev Andrey
Author-email: email.asobolev@gmail.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: termcolor (==1.1.0)
Requires-Dist: executing (==0.8.1)
Requires-Dist: asttokens (==2.0.5)
Requires-Dist: pika (>=1.3.0)
Requires-Dist: pydantic (>=1.10.2)
Requires-Dist: typing-extensions (>=4.1.0)

# Simple print
Powerful debugging/logging function.
Userful for `bash` console messages (debug) / `rabbitmq` proxy messages (logging).

```no-highlight
https://github.com/Sobolev5/simple-print
```
# Install
To install run:
```no-highlight
pip install simple-print
```
# Remote/local debugging
Add the following line at the top of your *.py file:
```python
from simple_print import sprint 
```
Print your variables:
```python
master = "yoda"
sprint(master)    
sprint(master, c="blue") # colors: grey, red, green, yellow, blue, magenta, cyan, white. 
sprint(master, c="blue", b="on_white") # backgrounds: on_grey, on_red, on_green, on_yellow, on_blue, on_magenta, on_cyan
sprint(master, c="blue", b="on_white", a="bold") # attributes: bold, dark, underline, blink, reverse, concealed
sprint(master, c="blue", b="on_white", a="bold", p=True) # 
my_string = sprint(master, s=True) # return as string
my_string = sprint(master, s=True, p=True) # return as string with path to file 
```
Open development console and see the result:
![](https://github.com/Sobolev5/simple-print/blob/master/screenshots/screenshot.png)
`p` param is `False` by default, but you can override this behavior with `SIMPLE_PRINT_PATH_TO_FILE=True` in your local environment.
### Disable printing
Stop printing:
```sh
export DEBUG=False
```
### Test 
```sh
export DEBUG=True && pytest test/test_print.py -s
```
# Logging messages [RabbitMQ] 
You can log your messages through RabbitMQ queues. 
In this case you need to setup RabbitMQ connection:
```sh
export SIMPLE_PRINT_RABBITMQ_URI="amqp://admin:pass@0.0.0.0:5672/vhost"
```
After this you can send messages to rabbitmq queue `simple_print_queue` (by default):
```python
sprint("see you in simple_print_queue", p=True, broker={"tag": "tag", "msg": {"any_key":"any val"})
sprint("see you in another_queue", p=True, broker={"tag": "tag",  "msg": {"any_key":"any val"}, "queue": "another_queue"})
sprint("see you in Clickhouse", p=True, broker={"tag": "tag",  "msg": {"any_key":"any val"}, "queue": "clickhouse"}) # see instructions below
 ``` 
With DEBUG=False it also works, so you can catch messages on your production server.
To show the last 10 messages from RabbitMQ:
```sh
export SIMPLE_PRINT_RABBITMQ_URI="amqp://admin:pass@0.0.0.0:5672/vhost" && python -c "from simple_print.utils import catch; catch(tag='tag', queue='simple_print_queue', count=10)"
```
### Proxy to Clickhouse from RabbitMQ
Open the `simple_print/clickhouse.py` for further instructions.
### Test 
```sh
export SIMPLE_PRINT_RABBITMQ_URI="amqp://admin:pass@0.0.0.0:5672/vhost" && pytest test/test_broker.py -s
```
# Try my free time tracker
My free time tracker for developers [Workhours.space](https://workhours.space/). 


