Package: object-info
object_info (v0.2.1)DESCRIPTION_SHORTprint info about object (attributes+properties+methods results)DESCRIPTION_LONGDesigned to print info about object (properties+methods results)But why? if we can use debugger directly?Reason: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/configurationin 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!importplatformobj=platformprint(platform.platform())pass# place debug point hereUseful if you wish to see info from remote SOURCE if connecting directly over ssh for exampleFeaturesprint all properties/methods resultsshow exceptions on methods/propertiesskip names by full/part names and use only by partnamesseparated collections by groupsLicenseSee theLICENSEfile for license rights and limitations (MIT).Release historySee theHISTORY.mdfile for release history.Installationpip install object-infoImportfromobject_infoimport*USAGE EXAMPLESSee tests and sourcecode for other examples.1. example1.pyfromobject_infoimport*classCls0:attr1=1classCls1:ATTR_UPPERCASE="UPPERCASE"attrSkipFullName="attrSkipFullName"attrSkipPartName="SkipPartName"attrNone=NoneattrInt=1attrFloat=2.2attrClass=Cls0attrObj=Cls0()attrSet={1,2,3}attrList=[1,2,3]attrTuple=(1,2,3)attrDict={1:1}attrListObj=[*[Cls0(),]*5,1]@propertydefpropertyInt(self):return1@propertydefpropertyExx(self):raiseException("exxMsg")defmethInt(self):return1defmethExx(self):raiseException("exxMsg")ObjectInfo(Cls1(),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__.Cls1 object at 0x0000011EFDE34A90>repr(SOURCE)=<__main__.Cls1 object at 0x0000011EFDE34A90>----------SETTINGS----------------------------------------------------------------------------------self.NAMES__USE_ONLY_PARTS=[]self.NAMES__SKIP_FULL=['checkout', 'detach', 'run', 'start', 'wait', 'join', 'terminate', 'quit', 'disconnect', 'exec', 'exec_', 'pyqtConfigure', 'pop', 'popleft', 'append', 'appendleft', 'extend', 'extendleft', 'add', 'insert', 'reverse', 'rotate', 'sort', 'attrSkipFullName', 'attrSkipFullName']self.NAMES__SKIP_PARTS=['init', 'new', 'create', 'enter', 'install', 'set', 'clone', 'copy', 'move', 'next', 'clear', 'reduce', 'close', 'del', 'exit', 'kill', 'SkipPartName', 'SkipPartName']self.HIDE_BUILD_IN=Noneself.LOG_ITER=Trueself.MAX_LINE_LEN=100self.MAX_ITER_ITEMS=5----------log_iter(wait last touched)---------------------------------------------------------------1:		ATTR_UPPERCASE2:		__class__3:		__delattr__4:		__dict__5:		__dir__6:		__doc__7:		__eq__8:		__format__9:		__ge__10:		__getattribute__11:		__getstate__12:		__gt__13:		__hash__14:		__init__15:		__init_subclass__16:		__le__17:		__lt__18:		__module__19:		__ne__20:		__new__21:		__reduce__22:		__reduce_ex__23:		__repr__24:		__setattr__25:		__sizeof__26:		__slotnames__27:		__str__28:		__subclasshook__29:		__weakref__30:		attrClass31:		attrDict32:		attrFloat33:		attrInt34:		attrList35:		attrListObj36:		attrNone37:		attrObj38:		attrSet39:		attrSkipFullName40:		attrSkipPartName41:		attrTuple42:		methExx43:		methInt44:		propertyExx45:		propertyInt----------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-------------------------------------------------------------ATTR_UPPERCASE      	str         :UPPERCASE__doc__             	NoneType    :None__module__          	str         :__main____weakref__         	NoneType    :NoneattrFloat           	float       :2.2attrInt             	int         :1attrNone            	NoneType    :NonepropertyInt         	int         :1----------PROPERTIES__ELEMENTARY_COLLECTION---------------------------------------------------------__dict__            	dict        :{}__slotnames__       	list        :[]attrDict            	dict        :{1: 1}attrList            	list        :[1, 2, 3]attrListObj         	list        :[<__main__.Cls0 object at 0x0000011EFDFB70D0>, <__main__.Cls0 o...Cls0        :	<__main__.Cls0 object at 0x0000011EFDFB70D0>Cls0        :	<__main__.Cls0 object at 0x0000011EFDFB70D0>Cls0        :	<__main__.Cls0 object at 0x0000011EFDFB70D0>Cls0        :	<__main__.Cls0 object at 0x0000011EFDFB70D0>Cls0        :	<__main__.Cls0 object at 0x0000011EFDFB70D0>:	...attrSet             	set         :{1, 2, 3}attrTuple           	tuple       :(1, 2, 3)----------PROPERTIES__OBJECTS-----------------------------------------------------------------------attrObj             	Cls0        :<__main__.Cls0 object at 0x0000011EFDFB7050>__repr()    :<__main__.Cls0 object at 0x0000011EFDFB7050>----------PROPERTIES__EXX---------------------------------------------------------------------------propertyExx         	Exception   :Exception('exxMsg')----------METHODS__ELEMENTARY_SINGLE----------------------------------------------------------------__getstate__        	NoneType    :None__hash__            	int         :77038761129__repr__            	str         :<__main__.Cls1 object at 0x0000011EFDE34A90>__sizeof__          	int         :24__str__             	str         :<__main__.Cls1 object at 0x0000011EFDE34A90>methInt             	int         :1----------METHODS__ELEMENTARY_COLLECTION------------------------------------------------------------__dir__             	list        :['__module__', 'ATTR_UPPERCASE', 'attrSkipFullName', 'attrSkipP...str         :	__module__str         :	ATTR_UPPERCASEstr         :	attrSkipFullNamestr         :	attrSkipPartNamestr         :	attrNone:	...----------METHODS__OBJECTS--------------------------------------------------------------------------__class__           	Cls1        :<__main__.Cls1 object at 0x0000011EFE5CD490>__repr()    :<__main__.Cls1 object at 0x0000011EFE5CD490>__subclasshook__    	NotImplementedType:NotImplemented__repr()    :NotImplementedattrClass           	Cls0        :<__main__.Cls0 object at 0x0000011EFE5CD790>__repr()    :<__main__.Cls0 object at 0x0000011EFE5CD790>----------METHODS__EXX------------------------------------------------------------------------------__eq__              	TypeError   :TypeError('expected 1 argument, got 0')__format__          	TypeError   :TypeError('Cls1.__format__() takes exactly one argument (0 give...__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')methExx             	Exception   :Exception('exxMsg')===================================================================================================="""ObjectInfo(Cls1(),log_iter=False,names__use_only_parts="attr",# names__skip_full=["attrSkipFullName", ],# names__skip_parts=["SkipPartName", ],# hide_build_in=None,).print()"""====================================================================================================----------OBJECTINFO.PRINT--------------------------------------------------------------------------str(SOURCE)=<__main__.Cls1 object at 0x0000011EFE5CD910>repr(SOURCE)=<__main__.Cls1 object at 0x0000011EFE5CD910>----------SETTINGS----------------------------------------------------------------------------------self.NAMES__USE_ONLY_PARTS=['attr']self.NAMES__SKIP_FULL=['checkout', 'detach', 'run', 'start', 'wait', 'join', 'terminate', 'quit', 'disconnect', 'exec', 'exec_', 'pyqtConfigure', 'pop', 'popleft', 'append', 'appendleft', 'extend', 'extendleft', 'add', 'insert', 'reverse', 'rotate', 'sort', 'attrSkipFullName', 'attrSkipFullName']self.NAMES__SKIP_PARTS=['init', 'new', 'create', 'enter', 'install', 'set', 'clone', 'copy', 'move', 'next', 'clear', 'reduce', 'close', 'del', 'exit', 'kill', 'SkipPartName', 'SkipPartName']self.HIDE_BUILD_IN=Noneself.LOG_ITER=Falseself.MAX_LINE_LEN=100self.MAX_ITER_ITEMS=5----------log_iter(wait last touched)-------------------------------------------------------------------------SKIPPED_FULLNAMES-------------------------------------------------------------------------1:		attrSkipFullName----------SKIPPED_PARTNAMES-------------------------------------------------------------------------1:		__delattr__2:		__setattr__3:		attrSkipPartName----------PROPERTIES__ELEMENTARY_SINGLE-------------------------------------------------------------ATTR_UPPERCASE      	str         :UPPERCASEattrFloat           	float       :2.2attrInt             	int         :1attrNone            	NoneType    :None----------PROPERTIES__ELEMENTARY_COLLECTION---------------------------------------------------------attrDict            	dict        :{1: 1}attrList            	list        :[1, 2, 3]attrListObj         	list        :[<__main__.Cls0 object at 0x0000011EFDFB70D0>, <__main__.Cls0 o...Cls0        :	<__main__.Cls0 object at 0x0000011EFDFB70D0>Cls0        :	<__main__.Cls0 object at 0x0000011EFDFB70D0>Cls0        :	<__main__.Cls0 object at 0x0000011EFDFB70D0>Cls0        :	<__main__.Cls0 object at 0x0000011EFDFB70D0>Cls0        :	<__main__.Cls0 object at 0x0000011EFDFB70D0>:	...attrSet             	set         :{1, 2, 3}attrTuple           	tuple       :(1, 2, 3)----------PROPERTIES__OBJECTS-----------------------------------------------------------------------attrObj             	Cls0        :<__main__.Cls0 object at 0x0000011EFDFB7050>__repr()    :<__main__.Cls0 object at 0x0000011EFDFB7050>----------PROPERTIES__EXX-------------------------------------------------------------------------------------METHODS__ELEMENTARY_SINGLE--------------------------------------------------------------------------METHODS__ELEMENTARY_COLLECTION----------------------------------------------------------------------METHODS__OBJECTS--------------------------------------------------------------------------attrClass           	Cls0        :<__main__.Cls0 object at 0x0000011EFE5CDE50>__repr()    :<__main__.Cls0 object at 0x0000011EFE5CDE50>----------METHODS__EXX------------------------------------------------------------------------------__getattribute__    	TypeError   :TypeError('expected 1 argument, got 0')===================================================================================================="""