![Ver/TestedPython](https://img.shields.io/pypi/pyversions/object_info)
![Ver/Os](https://img.shields.io/badge/os_development-Windows-blue)
![repo/Created](https://img.shields.io/github/created-at/centroid457/object_info)
![Commit/Last](https://img.shields.io/github/last-commit/centroid457/object_info)
![Tests/GitHubWorkflowStatus](https://github.com/centroid457/object_info/actions/workflows/test_linux.yml/badge.svg)
![Tests/GitHubWorkflowStatus](https://github.com/centroid457/object_info/actions/workflows/test_windows.yml/badge.svg)
![repo/Size](https://img.shields.io/github/repo-size/centroid457/object_info)
![Commit/Count/t](https://img.shields.io/github/commit-activity/t/centroid457/object_info)
![Commit/Count/y](https://img.shields.io/github/commit-activity/y/centroid457/object_info)
![Commit/Count/m](https://img.shields.io/github/commit-activity/m/centroid457/object_info)
# object_info (current v0.2.20/![Ver/Pypi Latest](https://img.shields.io/pypi/v/object_info?label=pypi%20latest))
## DESCRIPTION_SHORT
print info about object (attributes+properties+methods results)
## DESCRIPTION_LONG
Designed to print info about object (properties+methods results)
But why? if we can use debugger directly?
Reason:
1. to get and save standard text info,
it useful to keep this info for future quick eye sight without exact condition like other OS or device/devlist/configuration
2. in debugger we cant see result of methods!
try to see for example information from platform module! it have only methods and no one in object tree in debugger!
```python
import platform
obj = platform
print(platform.platform())
pass # place debug point here
```
3. Useful if you wish to see info from remote SOURCE if connecting directly over ssh for example
## Features
1. print all properties/methods results
2. show exceptions on methods/properties
3. skip names by full/part names and use only by partnames
4. separated collections by groups
********************************************************************************
## License
See the [LICENSE](LICENSE) file for license rights and limitations (MIT).
## Release history
See the [HISTORY.md](HISTORY.md) file for release history.
## Installation
```commandline
pip install object-info
```
## Import
```python
from object_info import *
```
********************************************************************************
## USAGE EXAMPLES
See tests, sourcecode and docstrings for other examples.
------------------------------
### 1. example1.py
```python
from object_info import *
from pytest_aux import *
# =====================================================================================================================
class ClsMain(ClsFullTypes):
attrUpper = "ATTRUPPER"
attrLower = "attrlower"
attrSkipFullName = "attrSkipFullName"
attrSkipPartName = "SkipPartName"
ObjectInfo(
ClsMain(),
log_iter=True,
names__use_only_parts=[],
names__skip_full=["attrSkipFullName", ],
names__skip_parts=["SkipPartName", ],
hide_build_in=None,
).print()
"""
==========================================================================================
----------OBJECTINFO.PRINT--------------------------------------------------------------------------
str(SOURCE)=<__main__.ClsMain object at 0x000001C739A83E00>
repr(SOURCE)=<__main__.ClsMain object at 0x000001C739A83E00>
type(SOURCE)=<class '__main__.ClsMain'>
mro(SOURCE)=['ClsMain', 'ClsFullTypes', 'object']
----------SETTINGS----------------------------------------------------------------------------------
self.NAMES__USE_ONLY_PARTS=[]
self.NAMES__SKIP_FULL=['attrSkipFullName']
self.NAMES__SKIP_PARTS=['init', 'new', 'create', 'enter', 'install', 'set', 'clone', 'copy', 'move', 'next', 'clear', 'reduce', 'close', 'del', 'exit', 'kill', 'exec', 'exec_', 'pyqtConfigure', 'checkout', 'detach', 'run', 'start', 'wait', 'join', 'terminate', 'quit', 'disconnect', 'pop', 'popleft', 'append', 'appendleft', 'extend', 'extendleft', 'add', 'insert', 'reverse', 'rotate', 'sort', 'SkipPartName']
self.HIDE_BUILD_IN=None
self.LOG_ITER=True
self.MAX_LINE_LEN=100
self.MAX_ITER_ITEMS=5
----------log_iter(wait last touched)---------------------------------------------------------------
1: __class__
2: __delattr__
3: __dict__
4: __dir__
5: __doc__
6: __eq__
7: __format__
8: __ge__
9: __getattribute__
10: __getstate__
11: __gt__
12: __hash__
13: __init__
14: __init_subclass__
15: __le__
16: __lt__
17: __module__
18: __ne__
19: __new__
20: __reduce__
21: __reduce_ex__
22: __repr__
23: __setattr__
24: __sizeof__
25: __str__
26: __subclasshook__
27: __weakref__
28: attrBytes
29: attrCls
30: attrClsBoolExx
31: attrClsBoolFalse
32: attrClsBoolTrue
33: attrClsCall
34: attrClsCallExx
35: attrClsCallTrue
36: attrClsGen
37: attrClsIterYield
38: attrDict
39: attrFalse
40: attrFloat
41: attrFunc
42: attrFuncDict
43: attrFuncExx
44: attrFuncGen
45: attrFuncList
46: attrFuncTrue
47: attrGenCompr
48: attrInst
49: attrInstBooExx
50: attrInstBoolFalse
51: attrInstBoolTrue
52: attrInstCall
53: attrInstCallExx
54: attrInstCallTrue
55: attrInstGen
56: attrInstIterYield
57: attrInstMeth
58: attrInt
59: attrList
60: attrListInst
61: attrLower
62: attrNone
63: attrSet
64: attrSkipFullName
65: attrSkipPartName
66: attrStr
67: attrTrue
68: attrTuple
69: attrUpper
70: attrZero
71: classmethodNone
72: methExx
73: methFunc
74: methInt
75: methNone
76: propertyClassmethodNone
77: propertyExx
78: propertyFunc
79: propertyInt
80: propertyNone
81: staticmethodNone
----------SKIPPED_FULLNAMES-------------------------------------------------------------------------
1: attrSkipFullName
----------SKIPPED_PARTNAMES-------------------------------------------------------------------------
1: __delattr__
2: __init__
3: __init_subclass__
4: __new__
5: __reduce__
6: __reduce_ex__
7: __setattr__
8: attrSkipPartName
----------PROPERTIES__ELEMENTARY_SINGLE-------------------------------------------------------------
__doc__ NoneType :None
__module__ str :__main__
__weakref__ NoneType :None
attrBytes bytes :b'bytes'
attrFalse bool :False
attrFloat float :1.1
attrInt int :1
attrLower str :attrlower
attrNone NoneType :None
attrStr str :str
attrTrue bool :True
attrUpper str :ATTRUPPER
attrZero int :0
propertyClassmethodNone NoneType :None
propertyInt int :1
propertyNone NoneType :None
----------PROPERTIES__ELEMENTARY_COLLECTION---------------------------------------------------------
__dict__ dict :{}
attrDict dict :{1: 1}
attrList list :[1, 2, 3]
attrListInst list :[<pytest_aux.primitives.Cls object at 0x000001C74ACE37D0>, <...
Cls : <pytest_aux.primitives.Cls object at 0x000001C74ACE37D0>
Cls : <pytest_aux.primitives.Cls object at 0x000001C74ACE37D0>
Cls : <pytest_aux.primitives.Cls object at 0x000001C74ACE37D0>
int : 1
attrSet set :{1, 2, 3}
attrTuple tuple :(1, 2, 3)
----------PROPERTIES__OBJECTS-----------------------------------------------------------------------
attrGenCompr generator :<generator object <genexpr> at 0x000001C74A47D780>
attrInst ClsEmpty :<pytest_aux.primitives.ClsEmpty object at 0x000001C74ACE35F0>
attrInstBooExx ClsBoolExx :<pytest_aux.primitives.ClsBoolExx object at 0x000001C74ACE37A0>
attrInstBoolFalse ClsBoolFalse:<pytest_aux.primitives.ClsBoolFalse object at 0x000001C74ACE3770>
attrInstBoolTrue ClsBoolTrue :<pytest_aux.primitives.ClsBoolTrue object at 0x000001C74ACE3740>
attrInstGen ClsGen :<pytest_aux.primitives.ClsGen object at 0x000001C74ACE3710>
attrInstIterYield ClsIterYield:<pytest_aux.primitives.ClsIterYield object at 0x000001C74ACE36E0>
----------PROPERTIES__EXX---------------------------------------------------------------------------
propertyExx Exception :Exception('exxMsg')
----------METHODS__ELEMENTARY_SINGLE----------------------------------------------------------------
__getstate__ NoneType :None
__hash__ int :122198590432
__repr__ str :<__main__.ClsMain object at 0x000001C739A83E00>
__sizeof__ int :16
__str__ str :<__main__.ClsMain object at 0x000001C739A83E00>
attrFunc NoneType :None
attrFuncTrue bool :True
attrInstCall NoneType :None
attrInstCallTrue bool :True
attrInstMeth NoneType :None
classmethodNone NoneType :None
methInt int :1
methNone NoneType :None
propertyFunc NoneType :None
staticmethodNone NoneType :None
----------METHODS__ELEMENTARY_COLLECTION------------------------------------------------------------
__dir__ list :['__module__', 'attrUpper', 'attrLower', 'attrSkipFullName',...
str : __module__
str : attrUpper
str : attrLower
str : attrSkipFullName
str : attrSkipPartName
: ...
attrFuncDict dict :{<__main__.ClsMain object at 0x000001C739A83E00>: None}
attrFuncList list :[<__main__.ClsMain object at 0x000001C739A83E00>]
----------METHODS__OBJECTS--------------------------------------------------------------------------
__class__ ClsMain :<__main__.ClsMain object at 0x000001C739C51A60>
__subclasshook__ NotImplementedType:NotImplemented
attrCls ClsEmpty :<pytest_aux.primitives.ClsEmpty object at 0x000001C739E91EB0>
attrClsBoolExx ClsBoolExx :<pytest_aux.primitives.ClsBoolExx object at 0x000001C74ACE2690>
attrClsBoolFalse ClsBoolFalse:<pytest_aux.primitives.ClsBoolFalse object at 0x000001C74ACE27E0>
attrClsBoolTrue ClsBoolTrue :<pytest_aux.primitives.ClsBoolTrue object at 0x000001C74ACE28D0>
attrClsCall ClsCall :<pytest_aux.primitives.ClsCall object at 0x000001C74ACE2990>
attrClsCallExx ClsCallExx :<pytest_aux.primitives.ClsCallExx object at 0x000001C74ACE2A50>
attrClsCallTrue ClsCallTrue :<pytest_aux.primitives.ClsCallTrue object at 0x000001C74ACE2AE0>
attrClsGen ClsGen :<pytest_aux.primitives.ClsGen object at 0x000001C74ACE2B40>
attrClsIterYield ClsIterYield:<pytest_aux.primitives.ClsIterYield object at 0x000001C74ACE2BA0>
attrFuncGen generator :<generator object FUNC_GEN at 0x000001C74ACCE740>
methFunc function :<function FUNC at 0x000001C74ACEA2A0>
----------METHODS__EXX------------------------------------------------------------------------------
__eq__ TypeError :TypeError('expected 1 argument, got 0')
__format__ TypeError :TypeError('ClsMain.__format__() takes exactly one argument (...
__ge__ TypeError :TypeError('expected 1 argument, got 0')
__getattribute__ TypeError :TypeError('expected 1 argument, got 0')
__gt__ TypeError :TypeError('expected 1 argument, got 0')
__le__ TypeError :TypeError('expected 1 argument, got 0')
__lt__ TypeError :TypeError('expected 1 argument, got 0')
__ne__ TypeError :TypeError('expected 1 argument, got 0')
attrFuncExx Exception :Exception('CALLABLE_EXX')
attrInstCallExx Exception :Exception()
methExx Exception :Exception('exxMsg')
==========================================================================================
"""
ObjectInfo(
ClsMain(),
# log_iter=False,
names__use_only_parts="attr",
# names__skip_full=["attrSkipFullName", ],
# names__skip_parts=["SkipPartName", ],
# hide_build_in=None,
# max_line_len=0,
# max_iter_items=0,
).print()
"""
==========================================================================================
----------OBJECTINFO.PRINT--------------------------------------------------------------------------
str(SOURCE)=<__main__.ClsMain object at 0x000001C748B236B0>
repr(SOURCE)=<__main__.ClsMain object at 0x000001C748B236B0>
type(SOURCE)=<class '__main__.ClsMain'>
mro(SOURCE)=['ClsMain', 'ClsFullTypes', 'object']
----------SETTINGS----------------------------------------------------------------------------------
self.NAMES__USE_ONLY_PARTS=['attr']
self.NAMES__SKIP_FULL=['attrSkipFullName']
self.NAMES__SKIP_PARTS=['init', 'new', 'create', 'enter', 'install', 'set', 'clone', 'copy', 'move', 'next', 'clear', 'reduce', 'close', 'del', 'exit', 'kill', 'exec', 'exec_', 'pyqtConfigure', 'checkout', 'detach', 'run', 'start', 'wait', 'join', 'terminate', 'quit', 'disconnect', 'pop', 'popleft', 'append', 'appendleft', 'extend', 'extendleft', 'add', 'insert', 'reverse', 'rotate', 'sort', 'SkipPartName']
self.HIDE_BUILD_IN=None
self.LOG_ITER=None
self.MAX_LINE_LEN=100
self.MAX_ITER_ITEMS=5
----------log_iter(wait last touched)---------------------------------------------------------------
----------SKIPPED_FULLNAMES-------------------------------------------------------------------------
1: attrSkipFullName
----------SKIPPED_PARTNAMES-------------------------------------------------------------------------
1: __delattr__
2: __setattr__
3: attrSkipPartName
----------PROPERTIES__ELEMENTARY_SINGLE-------------------------------------------------------------
attrBytes bytes :b'bytes'
attrFalse bool :False
attrFloat float :1.1
attrInt int :1
attrLower str :attrlower
attrNone NoneType :None
attrStr str :str
attrTrue bool :True
attrUpper str :ATTRUPPER
attrZero int :0
----------PROPERTIES__ELEMENTARY_COLLECTION---------------------------------------------------------
attrDict dict :{1: 1}
attrList list :[1, 2, 3]
attrListInst list :[<pytest_aux.primitives.Cls object at 0x000001C74ACE37D0>, <...
Cls : <pytest_aux.primitives.Cls object at 0x000001C74ACE37D0>
Cls : <pytest_aux.primitives.Cls object at 0x000001C74ACE37D0>
Cls : <pytest_aux.primitives.Cls object at 0x000001C74ACE37D0>
int : 1
attrSet set :{1, 2, 3}
attrTuple tuple :(1, 2, 3)
----------PROPERTIES__OBJECTS-----------------------------------------------------------------------
attrGenCompr generator :<generator object <genexpr> at 0x000001C74A47D780>
attrInst ClsEmpty :<pytest_aux.primitives.ClsEmpty object at 0x000001C74ACE35F0>
attrInstBooExx ClsBoolExx :<pytest_aux.primitives.ClsBoolExx object at 0x000001C74ACE37A0>
attrInstBoolFalse ClsBoolFalse:<pytest_aux.primitives.ClsBoolFalse object at 0x000001C74ACE3770>
attrInstBoolTrue ClsBoolTrue :<pytest_aux.primitives.ClsBoolTrue object at 0x000001C74ACE3740>
attrInstGen ClsGen :<pytest_aux.primitives.ClsGen object at 0x000001C74ACE3710>
attrInstIterYield ClsIterYield:<pytest_aux.primitives.ClsIterYield object at 0x000001C74ACE36E0>
----------PROPERTIES__EXX---------------------------------------------------------------------------
----------METHODS__ELEMENTARY_SINGLE----------------------------------------------------------------
attrFunc NoneType :None
attrFuncTrue bool :True
attrInstCall NoneType :None
attrInstCallTrue bool :True
attrInstMeth NoneType :None
----------METHODS__ELEMENTARY_COLLECTION------------------------------------------------------------
attrFuncDict dict :{<__main__.ClsMain object at 0x000001C748B236B0>: None}
attrFuncList list :[<__main__.ClsMain object at 0x000001C748B236B0>]
----------METHODS__OBJECTS--------------------------------------------------------------------------
attrCls ClsEmpty :<pytest_aux.primitives.ClsEmpty object at 0x000001C74ACE39E0>
attrClsBoolExx ClsBoolExx :<pytest_aux.primitives.ClsBoolExx object at 0x000001C74ACE3A10>
attrClsBoolFalse ClsBoolFalse:<pytest_aux.primitives.ClsBoolFalse object at 0x000001C74ACE3A70>
attrClsBoolTrue ClsBoolTrue :<pytest_aux.primitives.ClsBoolTrue object at 0x000001C74ACE3AA0>
attrClsCall ClsCall :<pytest_aux.primitives.ClsCall object at 0x000001C74ACE3AD0>
attrClsCallExx ClsCallExx :<pytest_aux.primitives.ClsCallExx object at 0x000001C74ACE3B00>
attrClsCallTrue ClsCallTrue :<pytest_aux.primitives.ClsCallTrue object at 0x000001C74ACE3B30>
attrClsGen ClsGen :<pytest_aux.primitives.ClsGen object at 0x000001C74ACE3B60>
attrClsIterYield ClsIterYield:<pytest_aux.primitives.ClsIterYield object at 0x000001C74ACE3B90>
attrFuncGen generator :<generator object FUNC_GEN at 0x000001C74ACCE8E0>
----------METHODS__EXX------------------------------------------------------------------------------
__getattribute__ TypeError :TypeError('expected 1 argument, got 0')
attrFuncExx Exception :Exception('CALLABLE_EXX')
attrInstCallExx Exception :Exception()
==========================================================================================
"""
```
********************************************************************************
Raw data
{
"_id": null,
"home_page": "https://github.com/centroid457/",
"name": "object-info",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": "object info, object attributes, object properties, object methods, print attributes, print properties, print methods",
"author": "Andrei Starichenko",
"author_email": "centroid@mail.ru",
"download_url": "https://files.pythonhosted.org/packages/e1/34/0854a177b0a9695900ffc81b0e0a83e5b3ba3bca76cc748b3940709655f6/object_info-0.2.20.tar.gz",
"platform": null,
"description": "![Ver/TestedPython](https://img.shields.io/pypi/pyversions/object_info)\r\n![Ver/Os](https://img.shields.io/badge/os_development-Windows-blue) \r\n![repo/Created](https://img.shields.io/github/created-at/centroid457/object_info)\r\n![Commit/Last](https://img.shields.io/github/last-commit/centroid457/object_info)\r\n![Tests/GitHubWorkflowStatus](https://github.com/centroid457/object_info/actions/workflows/test_linux.yml/badge.svg)\r\n![Tests/GitHubWorkflowStatus](https://github.com/centroid457/object_info/actions/workflows/test_windows.yml/badge.svg) \r\n![repo/Size](https://img.shields.io/github/repo-size/centroid457/object_info)\r\n![Commit/Count/t](https://img.shields.io/github/commit-activity/t/centroid457/object_info)\r\n![Commit/Count/y](https://img.shields.io/github/commit-activity/y/centroid457/object_info)\r\n![Commit/Count/m](https://img.shields.io/github/commit-activity/m/centroid457/object_info)\r\n\r\n# object_info (current v0.2.20/![Ver/Pypi Latest](https://img.shields.io/pypi/v/object_info?label=pypi%20latest))\r\n\r\n## DESCRIPTION_SHORT\r\nprint info about object (attributes+properties+methods results)\r\n\r\n## DESCRIPTION_LONG\r\nDesigned to print info about object (properties+methods results)\r\n\r\nBut why? if we can use debugger directly? \r\nReason: \r\n1. to get and save standard text info, \r\nit useful to keep this info for future quick eye sight without exact condition like other OS or device/devlist/configuration \r\n2. in debugger we cant see result of methods! \r\ntry to see for example information from platform module! it have only methods and no one in object tree in debugger! \r\n```python\r\nimport platform\r\n\r\nobj = platform\r\nprint(platform.platform())\r\npass # place debug point here\r\n``` \r\n3. Useful if you wish to see info from remote SOURCE if connecting directly over ssh for example\r\n\r\n\r\n## Features\r\n1. print all properties/methods results \r\n2. show exceptions on methods/properties \r\n3. skip names by full/part names and use only by partnames \r\n4. separated collections by groups \r\n\r\n\r\n********************************************************************************\r\n## License\r\nSee the [LICENSE](LICENSE) file for license rights and limitations (MIT).\r\n\r\n\r\n## Release history\r\nSee the [HISTORY.md](HISTORY.md) file for release history.\r\n\r\n\r\n## Installation\r\n```commandline\r\npip install object-info\r\n```\r\n\r\n\r\n## Import\r\n```python\r\nfrom object_info import *\r\n```\r\n\r\n\r\n********************************************************************************\r\n## USAGE EXAMPLES\r\nSee tests, sourcecode and docstrings for other examples. \r\n\r\n------------------------------\r\n### 1. example1.py\r\n```python\r\nfrom object_info import *\r\nfrom pytest_aux import *\r\n\r\n\r\n# =====================================================================================================================\r\nclass ClsMain(ClsFullTypes):\r\n attrUpper = \"ATTRUPPER\"\r\n attrLower = \"attrlower\"\r\n attrSkipFullName = \"attrSkipFullName\"\r\n attrSkipPartName = \"SkipPartName\"\r\n\r\n\r\nObjectInfo(\r\n ClsMain(),\r\n log_iter=True,\r\n names__use_only_parts=[],\r\n names__skip_full=[\"attrSkipFullName\", ],\r\n names__skip_parts=[\"SkipPartName\", ],\r\n hide_build_in=None,\r\n).print()\r\n\"\"\"\r\n==========================================================================================\r\n----------OBJECTINFO.PRINT--------------------------------------------------------------------------\r\nstr(SOURCE)=<__main__.ClsMain object at 0x000001C739A83E00>\r\nrepr(SOURCE)=<__main__.ClsMain object at 0x000001C739A83E00>\r\ntype(SOURCE)=<class '__main__.ClsMain'>\r\nmro(SOURCE)=['ClsMain', 'ClsFullTypes', 'object']\r\n----------SETTINGS----------------------------------------------------------------------------------\r\nself.NAMES__USE_ONLY_PARTS=[]\r\nself.NAMES__SKIP_FULL=['attrSkipFullName']\r\nself.NAMES__SKIP_PARTS=['init', 'new', 'create', 'enter', 'install', 'set', 'clone', 'copy', 'move', 'next', 'clear', 'reduce', 'close', 'del', 'exit', 'kill', 'exec', 'exec_', 'pyqtConfigure', 'checkout', 'detach', 'run', 'start', 'wait', 'join', 'terminate', 'quit', 'disconnect', 'pop', 'popleft', 'append', 'appendleft', 'extend', 'extendleft', 'add', 'insert', 'reverse', 'rotate', 'sort', 'SkipPartName']\r\nself.HIDE_BUILD_IN=None\r\nself.LOG_ITER=True\r\nself.MAX_LINE_LEN=100\r\nself.MAX_ITER_ITEMS=5\r\n----------log_iter(wait last touched)---------------------------------------------------------------\r\n1:\t__class__\r\n2:\t__delattr__\r\n3:\t__dict__\r\n4:\t__dir__\r\n5:\t__doc__\r\n6:\t__eq__\r\n7:\t__format__\r\n8:\t__ge__\r\n9:\t__getattribute__\r\n10:\t__getstate__\r\n11:\t__gt__\r\n12:\t__hash__\r\n13:\t__init__\r\n14:\t__init_subclass__\r\n15:\t__le__\r\n16:\t__lt__\r\n17:\t__module__\r\n18:\t__ne__\r\n19:\t__new__\r\n20:\t__reduce__\r\n21:\t__reduce_ex__\r\n22:\t__repr__\r\n23:\t__setattr__\r\n24:\t__sizeof__\r\n25:\t__str__\r\n26:\t__subclasshook__\r\n27:\t__weakref__\r\n28:\tattrBytes\r\n29:\tattrCls\r\n30:\tattrClsBoolExx\r\n31:\tattrClsBoolFalse\r\n32:\tattrClsBoolTrue\r\n33:\tattrClsCall\r\n34:\tattrClsCallExx\r\n35:\tattrClsCallTrue\r\n36:\tattrClsGen\r\n37:\tattrClsIterYield\r\n38:\tattrDict\r\n39:\tattrFalse\r\n40:\tattrFloat\r\n41:\tattrFunc\r\n42:\tattrFuncDict\r\n43:\tattrFuncExx\r\n44:\tattrFuncGen\r\n45:\tattrFuncList\r\n46:\tattrFuncTrue\r\n47:\tattrGenCompr\r\n48:\tattrInst\r\n49:\tattrInstBooExx\r\n50:\tattrInstBoolFalse\r\n51:\tattrInstBoolTrue\r\n52:\tattrInstCall\r\n53:\tattrInstCallExx\r\n54:\tattrInstCallTrue\r\n55:\tattrInstGen\r\n56:\tattrInstIterYield\r\n57:\tattrInstMeth\r\n58:\tattrInt\r\n59:\tattrList\r\n60:\tattrListInst\r\n61:\tattrLower\r\n62:\tattrNone\r\n63:\tattrSet\r\n64:\tattrSkipFullName\r\n65:\tattrSkipPartName\r\n66:\tattrStr\r\n67:\tattrTrue\r\n68:\tattrTuple\r\n69:\tattrUpper\r\n70:\tattrZero\r\n71:\tclassmethodNone\r\n72:\tmethExx\r\n73:\tmethFunc\r\n74:\tmethInt\r\n75:\tmethNone\r\n76:\tpropertyClassmethodNone\r\n77:\tpropertyExx\r\n78:\tpropertyFunc\r\n79:\tpropertyInt\r\n80:\tpropertyNone\r\n81:\tstaticmethodNone\r\n----------SKIPPED_FULLNAMES-------------------------------------------------------------------------\r\n1:\tattrSkipFullName\r\n----------SKIPPED_PARTNAMES-------------------------------------------------------------------------\r\n1:\t__delattr__\r\n2:\t__init__\r\n3:\t__init_subclass__\r\n4:\t__new__\r\n5:\t__reduce__\r\n6:\t__reduce_ex__\r\n7:\t__setattr__\r\n8:\tattrSkipPartName\r\n----------PROPERTIES__ELEMENTARY_SINGLE-------------------------------------------------------------\r\n__doc__ \tNoneType :None\r\n__module__ \tstr :__main__\r\n__weakref__ \tNoneType :None\r\nattrBytes \tbytes :b'bytes'\r\nattrFalse \tbool :False\r\nattrFloat \tfloat :1.1\r\nattrInt \tint :1\r\nattrLower \tstr :attrlower\r\nattrNone \tNoneType :None\r\nattrStr \tstr :str\r\nattrTrue \tbool :True\r\nattrUpper \tstr :ATTRUPPER\r\nattrZero \tint :0\r\npropertyClassmethodNone\tNoneType :None\r\npropertyInt \tint :1\r\npropertyNone \tNoneType :None\r\n----------PROPERTIES__ELEMENTARY_COLLECTION---------------------------------------------------------\r\n__dict__ \tdict :{}\r\nattrDict \tdict :{1: 1}\r\nattrList \tlist :[1, 2, 3]\r\nattrListInst \tlist :[<pytest_aux.primitives.Cls object at 0x000001C74ACE37D0>, <...\r\n \tCls :\t<pytest_aux.primitives.Cls object at 0x000001C74ACE37D0>\r\n \tCls :\t<pytest_aux.primitives.Cls object at 0x000001C74ACE37D0>\r\n \tCls :\t<pytest_aux.primitives.Cls object at 0x000001C74ACE37D0>\r\n \tint :\t1\r\nattrSet \tset :{1, 2, 3}\r\nattrTuple \ttuple :(1, 2, 3)\r\n----------PROPERTIES__OBJECTS-----------------------------------------------------------------------\r\nattrGenCompr \tgenerator :<generator object <genexpr> at 0x000001C74A47D780>\r\nattrInst \tClsEmpty :<pytest_aux.primitives.ClsEmpty object at 0x000001C74ACE35F0>\r\nattrInstBooExx \tClsBoolExx :<pytest_aux.primitives.ClsBoolExx object at 0x000001C74ACE37A0>\r\nattrInstBoolFalse \tClsBoolFalse:<pytest_aux.primitives.ClsBoolFalse object at 0x000001C74ACE3770>\r\nattrInstBoolTrue \tClsBoolTrue :<pytest_aux.primitives.ClsBoolTrue object at 0x000001C74ACE3740>\r\nattrInstGen \tClsGen :<pytest_aux.primitives.ClsGen object at 0x000001C74ACE3710>\r\nattrInstIterYield \tClsIterYield:<pytest_aux.primitives.ClsIterYield object at 0x000001C74ACE36E0>\r\n----------PROPERTIES__EXX---------------------------------------------------------------------------\r\npropertyExx \tException :Exception('exxMsg')\r\n----------METHODS__ELEMENTARY_SINGLE----------------------------------------------------------------\r\n__getstate__ \tNoneType :None\r\n__hash__ \tint :122198590432\r\n__repr__ \tstr :<__main__.ClsMain object at 0x000001C739A83E00>\r\n__sizeof__ \tint :16\r\n__str__ \tstr :<__main__.ClsMain object at 0x000001C739A83E00>\r\nattrFunc \tNoneType :None\r\nattrFuncTrue \tbool :True\r\nattrInstCall \tNoneType :None\r\nattrInstCallTrue \tbool :True\r\nattrInstMeth \tNoneType :None\r\nclassmethodNone \tNoneType :None\r\nmethInt \tint :1\r\nmethNone \tNoneType :None\r\npropertyFunc \tNoneType :None\r\nstaticmethodNone \tNoneType :None\r\n----------METHODS__ELEMENTARY_COLLECTION------------------------------------------------------------\r\n__dir__ \tlist :['__module__', 'attrUpper', 'attrLower', 'attrSkipFullName',...\r\n \tstr :\t__module__\r\n \tstr :\tattrUpper\r\n \tstr :\tattrLower\r\n \tstr :\tattrSkipFullName\r\n \tstr :\tattrSkipPartName\r\n \t :\t...\r\nattrFuncDict \tdict :{<__main__.ClsMain object at 0x000001C739A83E00>: None}\r\nattrFuncList \tlist :[<__main__.ClsMain object at 0x000001C739A83E00>]\r\n----------METHODS__OBJECTS--------------------------------------------------------------------------\r\n__class__ \tClsMain :<__main__.ClsMain object at 0x000001C739C51A60>\r\n__subclasshook__ \tNotImplementedType:NotImplemented\r\nattrCls \tClsEmpty :<pytest_aux.primitives.ClsEmpty object at 0x000001C739E91EB0>\r\nattrClsBoolExx \tClsBoolExx :<pytest_aux.primitives.ClsBoolExx object at 0x000001C74ACE2690>\r\nattrClsBoolFalse \tClsBoolFalse:<pytest_aux.primitives.ClsBoolFalse object at 0x000001C74ACE27E0>\r\nattrClsBoolTrue \tClsBoolTrue :<pytest_aux.primitives.ClsBoolTrue object at 0x000001C74ACE28D0>\r\nattrClsCall \tClsCall :<pytest_aux.primitives.ClsCall object at 0x000001C74ACE2990>\r\nattrClsCallExx \tClsCallExx :<pytest_aux.primitives.ClsCallExx object at 0x000001C74ACE2A50>\r\nattrClsCallTrue \tClsCallTrue :<pytest_aux.primitives.ClsCallTrue object at 0x000001C74ACE2AE0>\r\nattrClsGen \tClsGen :<pytest_aux.primitives.ClsGen object at 0x000001C74ACE2B40>\r\nattrClsIterYield \tClsIterYield:<pytest_aux.primitives.ClsIterYield object at 0x000001C74ACE2BA0>\r\nattrFuncGen \tgenerator :<generator object FUNC_GEN at 0x000001C74ACCE740>\r\nmethFunc \tfunction :<function FUNC at 0x000001C74ACEA2A0>\r\n----------METHODS__EXX------------------------------------------------------------------------------\r\n__eq__ \tTypeError :TypeError('expected 1 argument, got 0')\r\n__format__ \tTypeError :TypeError('ClsMain.__format__() takes exactly one argument (...\r\n__ge__ \tTypeError :TypeError('expected 1 argument, got 0')\r\n__getattribute__ \tTypeError :TypeError('expected 1 argument, got 0')\r\n__gt__ \tTypeError :TypeError('expected 1 argument, got 0')\r\n__le__ \tTypeError :TypeError('expected 1 argument, got 0')\r\n__lt__ \tTypeError :TypeError('expected 1 argument, got 0')\r\n__ne__ \tTypeError :TypeError('expected 1 argument, got 0')\r\nattrFuncExx \tException :Exception('CALLABLE_EXX')\r\nattrInstCallExx \tException :Exception()\r\nmethExx \tException :Exception('exxMsg')\r\n==========================================================================================\r\n\"\"\"\r\n\r\nObjectInfo(\r\n ClsMain(),\r\n # log_iter=False,\r\n names__use_only_parts=\"attr\",\r\n # names__skip_full=[\"attrSkipFullName\", ],\r\n # names__skip_parts=[\"SkipPartName\", ],\r\n # hide_build_in=None,\r\n # max_line_len=0,\r\n # max_iter_items=0,\r\n).print()\r\n\"\"\"\r\n==========================================================================================\r\n----------OBJECTINFO.PRINT--------------------------------------------------------------------------\r\nstr(SOURCE)=<__main__.ClsMain object at 0x000001C748B236B0>\r\nrepr(SOURCE)=<__main__.ClsMain object at 0x000001C748B236B0>\r\ntype(SOURCE)=<class '__main__.ClsMain'>\r\nmro(SOURCE)=['ClsMain', 'ClsFullTypes', 'object']\r\n----------SETTINGS----------------------------------------------------------------------------------\r\nself.NAMES__USE_ONLY_PARTS=['attr']\r\nself.NAMES__SKIP_FULL=['attrSkipFullName']\r\nself.NAMES__SKIP_PARTS=['init', 'new', 'create', 'enter', 'install', 'set', 'clone', 'copy', 'move', 'next', 'clear', 'reduce', 'close', 'del', 'exit', 'kill', 'exec', 'exec_', 'pyqtConfigure', 'checkout', 'detach', 'run', 'start', 'wait', 'join', 'terminate', 'quit', 'disconnect', 'pop', 'popleft', 'append', 'appendleft', 'extend', 'extendleft', 'add', 'insert', 'reverse', 'rotate', 'sort', 'SkipPartName']\r\nself.HIDE_BUILD_IN=None\r\nself.LOG_ITER=None\r\nself.MAX_LINE_LEN=100\r\nself.MAX_ITER_ITEMS=5\r\n----------log_iter(wait last touched)---------------------------------------------------------------\r\n----------SKIPPED_FULLNAMES-------------------------------------------------------------------------\r\n1:\tattrSkipFullName\r\n----------SKIPPED_PARTNAMES-------------------------------------------------------------------------\r\n1:\t__delattr__\r\n2:\t__setattr__\r\n3:\tattrSkipPartName\r\n----------PROPERTIES__ELEMENTARY_SINGLE-------------------------------------------------------------\r\nattrBytes \tbytes :b'bytes'\r\nattrFalse \tbool :False\r\nattrFloat \tfloat :1.1\r\nattrInt \tint :1\r\nattrLower \tstr :attrlower\r\nattrNone \tNoneType :None\r\nattrStr \tstr :str\r\nattrTrue \tbool :True\r\nattrUpper \tstr :ATTRUPPER\r\nattrZero \tint :0\r\n----------PROPERTIES__ELEMENTARY_COLLECTION---------------------------------------------------------\r\nattrDict \tdict :{1: 1}\r\nattrList \tlist :[1, 2, 3]\r\nattrListInst \tlist :[<pytest_aux.primitives.Cls object at 0x000001C74ACE37D0>, <...\r\n \tCls :\t<pytest_aux.primitives.Cls object at 0x000001C74ACE37D0>\r\n \tCls :\t<pytest_aux.primitives.Cls object at 0x000001C74ACE37D0>\r\n \tCls :\t<pytest_aux.primitives.Cls object at 0x000001C74ACE37D0>\r\n \tint :\t1\r\nattrSet \tset :{1, 2, 3}\r\nattrTuple \ttuple :(1, 2, 3)\r\n----------PROPERTIES__OBJECTS-----------------------------------------------------------------------\r\nattrGenCompr \tgenerator :<generator object <genexpr> at 0x000001C74A47D780>\r\nattrInst \tClsEmpty :<pytest_aux.primitives.ClsEmpty object at 0x000001C74ACE35F0>\r\nattrInstBooExx \tClsBoolExx :<pytest_aux.primitives.ClsBoolExx object at 0x000001C74ACE37A0>\r\nattrInstBoolFalse \tClsBoolFalse:<pytest_aux.primitives.ClsBoolFalse object at 0x000001C74ACE3770>\r\nattrInstBoolTrue \tClsBoolTrue :<pytest_aux.primitives.ClsBoolTrue object at 0x000001C74ACE3740>\r\nattrInstGen \tClsGen :<pytest_aux.primitives.ClsGen object at 0x000001C74ACE3710>\r\nattrInstIterYield \tClsIterYield:<pytest_aux.primitives.ClsIterYield object at 0x000001C74ACE36E0>\r\n----------PROPERTIES__EXX---------------------------------------------------------------------------\r\n----------METHODS__ELEMENTARY_SINGLE----------------------------------------------------------------\r\nattrFunc \tNoneType :None\r\nattrFuncTrue \tbool :True\r\nattrInstCall \tNoneType :None\r\nattrInstCallTrue \tbool :True\r\nattrInstMeth \tNoneType :None\r\n----------METHODS__ELEMENTARY_COLLECTION------------------------------------------------------------\r\nattrFuncDict \tdict :{<__main__.ClsMain object at 0x000001C748B236B0>: None}\r\nattrFuncList \tlist :[<__main__.ClsMain object at 0x000001C748B236B0>]\r\n----------METHODS__OBJECTS--------------------------------------------------------------------------\r\nattrCls \tClsEmpty :<pytest_aux.primitives.ClsEmpty object at 0x000001C74ACE39E0>\r\nattrClsBoolExx \tClsBoolExx :<pytest_aux.primitives.ClsBoolExx object at 0x000001C74ACE3A10>\r\nattrClsBoolFalse \tClsBoolFalse:<pytest_aux.primitives.ClsBoolFalse object at 0x000001C74ACE3A70>\r\nattrClsBoolTrue \tClsBoolTrue :<pytest_aux.primitives.ClsBoolTrue object at 0x000001C74ACE3AA0>\r\nattrClsCall \tClsCall :<pytest_aux.primitives.ClsCall object at 0x000001C74ACE3AD0>\r\nattrClsCallExx \tClsCallExx :<pytest_aux.primitives.ClsCallExx object at 0x000001C74ACE3B00>\r\nattrClsCallTrue \tClsCallTrue :<pytest_aux.primitives.ClsCallTrue object at 0x000001C74ACE3B30>\r\nattrClsGen \tClsGen :<pytest_aux.primitives.ClsGen object at 0x000001C74ACE3B60>\r\nattrClsIterYield \tClsIterYield:<pytest_aux.primitives.ClsIterYield object at 0x000001C74ACE3B90>\r\nattrFuncGen \tgenerator :<generator object FUNC_GEN at 0x000001C74ACCE8E0>\r\n----------METHODS__EXX------------------------------------------------------------------------------\r\n__getattribute__ \tTypeError :TypeError('expected 1 argument, got 0')\r\nattrFuncExx \tException :Exception('CALLABLE_EXX')\r\nattrInstCallExx \tException :Exception()\r\n==========================================================================================\r\n\"\"\"\r\n```\r\n\r\n********************************************************************************\r\n",
"bugtrack_url": null,
"license": null,
"summary": "print info about object (attributes+properties+methods results)",
"version": "0.2.20",
"project_urls": {
"Homepage": "https://github.com/centroid457/",
"Source": "https://github.com/centroid457/object_info"
},
"split_keywords": [
"object info",
" object attributes",
" object properties",
" object methods",
" print attributes",
" print properties",
" print methods"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "36e0e5fdcee7f54ff6b3d25eda2d6b148342215a7e862d8db49f60b614194e7f",
"md5": "8c320a81fbf589a283ee476053d45534",
"sha256": "1db3688e80670af581f57b709773e01df4f6f7c5aa615e97e191637286fff333"
},
"downloads": -1,
"filename": "object_info-0.2.20-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8c320a81fbf589a283ee476053d45534",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 11530,
"upload_time": "2024-08-12T06:54:24",
"upload_time_iso_8601": "2024-08-12T06:54:24.075719Z",
"url": "https://files.pythonhosted.org/packages/36/e0/e5fdcee7f54ff6b3d25eda2d6b148342215a7e862d8db49f60b614194e7f/object_info-0.2.20-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e1340854a177b0a9695900ffc81b0e0a83e5b3ba3bca76cc748b3940709655f6",
"md5": "947e56a3957362608712f055860fa777",
"sha256": "12347d57f02be00ca6cda6243ee1aed77ed101cdcbfcf908f2b1695cac142c5a"
},
"downloads": -1,
"filename": "object_info-0.2.20.tar.gz",
"has_sig": false,
"md5_digest": "947e56a3957362608712f055860fa777",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 16334,
"upload_time": "2024-08-12T06:54:25",
"upload_time_iso_8601": "2024-08-12T06:54:25.808792Z",
"url": "https://files.pythonhosted.org/packages/e1/34/0854a177b0a9695900ffc81b0e0a83e5b3ba3bca76cc748b3940709655f6/object_info-0.2.20.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-12 06:54:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "centroid457",
"github_project": "object_info",
"github_not_found": true,
"lcname": "object-info"
}