objprint
A library that can print Python objects in human readable format
Install
pip install objprint
Usage
objprint
Use objprint() to print objects.
from objprint import objprint
class Position:
def __init__(self, x, y):
self.x = x
self.y = y
class Player:
def __init__(self):
self.name = "Alice"
self.age = 18
self.items = ["axe", "armor"]
self.coins = {"gold": 1, "silver": 33, "bronze": 57}
self.position = Position(3, 5)
objprint(Player())
<Player 0x7fe44e1e3070
.age = 18,
.coins = {'bronze': 57, 'gold': 1, 'silver': 33},
.items = ['axe', 'armor'],
.name = 'Alice',
.position = <Position
.x = 3,
.y = 5
>
>
add_objprint
If you want to use print() to print your object, you can also use the class decorator
add_objprint to add __str__ method for your class.
from objprint import add_objprint
class Position:
def __init__(self, x, y):
self.x = x
self.y = y
@add_objprint
class Player:
def __init__(self):
self.name = "Alice"
self.age = 18
self.items = ["axe", "armor"]
self.coins = {"gold": 1, "silver": 33, "bronze": 57}
self.position = Position(3, 5)
# This will print the same thing as above
print(Player())
objstr
If you want the str representation of the object, instead of printing it on the screen,
you can use objstr function
from objprint import objstr
s = objstr(my_object)
include/exclude attributes
You can include/exclude attributes using regular expression so objprint will only print
out the attributes you are interested in.
objprint(Player(), include=["name"])
<Player
.name = 'Alice'
>
objprint(Player(), exclude=[".*s"])
<Player 0x7fe44e1e3070
.name = 'Alice',
.age = 18,
.position = <Position
.x = 3,
.y = 5
>
>
If you specify both include and exclude, it will do a inclusive check first, then filter out the attributes
that match exclusive check.
include and exclude arguments work on objprint, objstr and @add_objprint.
config
objprint formats the output based on some configs
config_name(default_value)- this config's explanationdepth(6)- how deepobjprintgoes into nested data structuresindent(2)- the indentationwidth(80)- the maximum width a data structure will be presented as a single lineelements(-1)- the maximum number of elements that will be displayed,-1means no restrictioncolor(True)- whether to use colored schemehonor_existing(True)- whether to use the existing user defined__repr__or__str__method
You can set the configs globally using config function
from objprint import config
config(indent=4)
Or you can do a one time config by passing the arguments into objprint function
from objprint import objprint
objprint(var, indent=4)
install
Maybe you don't want to import objprint in every single file that you want to use. You can
use install to make it globally accessible
from objprint import install
# Now you can use objprint() in any file
install()
# You can specify a name for objprint()
install("op")
op(my_object)
Bugs/Requests
Please send bug reports and feature requests through github issue tracker.
License
Copyright Tian Gao, 2020.
Distributed under the terms of the Apache 2.0 license.
Release files for objprint 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| objprint-0.1.1.tar.gz | 10.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| objprint-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.5 kB
Release files / objprint-0.1.1.tar.gz
| Download URL | objprint-0.1.1.tar.gz |
|---|---|
| Size | 10.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
af9b2c464be3434e39cacb2098b05a54d70c0131db3a4884fcff71d7906f8775
|
|
BLAKE2b-256 checksum How to use checksums |
c8561248e805abac8a54f7e2eca7408f54e452b2e4ba419c418ecb761c3e69ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.10
|
Release files / objprint-0.1.1-py3-none-any.whl
| Download URL | objprint-0.1.1-py3-none-any.whl |
|---|---|
| Size | 10.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
24b5354724ef928a7701113b137d4493c7f981cb379e4d0124bea9bb5d29a26d
|
|
BLAKE2b-256 checksum How to use checksums |
cf073f24490359911dbf3ff93336c1116f0d59f718a534335a48fb2ad51bafdd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.10
|