Edit File: Trace.pyc
� ��^c�����������@���s����d��Z��d�d�l�Z�d�d�l�Z�d�d�d�������YZ�d�d�d�������YZ�d�d�d�������YZ�d �e�f�d �������YZ�e�d�d�i�d�d�6��Z�d ����Z �e �d�k�r��e ����n��d�S(���s?���Tracing metaclass. XXX This is very much a work in progress. i����Nt���TraceMetaClassc�����������B���s>���e��Z�d��Z�d�Z�d����Z�d����Z�d����Z�d����Z�d�Z �RS(���sU��Metaclass for tracing. Classes defined using this metaclass have an automatic tracing feature -- by setting the __trace_output__ instance (or class) variable to a file object, trace messages about all calls are written to the file. The trace formatting can be changed by defining a suitable __trace_call__ method. i����c���������C���s(���|�|��_��|�|��_�|�|��_�d�|��_�d��S(���Ni���(���t���__name__t ���__bases__t���_TraceMetaClass__dictt���_TraceMetaClass__inited(���t���selft���namet���basest���dict(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyt���__init__���s���� c���������C���si���y�|��j��|�SWnS�t�k �rd�x6�|��j�D]+�}�y�|�j�|���SWq)�t�k �rS�q)�Xq)�Wt�|���n�Xd��S(���N(���R���t���KeyErrorR���t���__getattr__t���AttributeError(���R���R���t���base(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyR������s���� c���������C���s*���|��j��s�|�|��j�|�<n �|�|��j�|�<d��S(���N(���R���t���__dict__R���(���R���R���t���value(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyt���__setattr__(���s���� c���������O���sZ���t�����}�|�j�|����y�|�j�d���}�Wn�t�k �rE�d����}�n�Xt�|�|�|���|�S(���NR ���c�����������S���s���d��S(���N(���t���None(����(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyt���<lambda>4���t����(���t���TracingInstancet ���__meta_init__R���R���t���apply(���R���t���argst���kwt���instt���init(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyt���__call__.���s���� N( ���R���t ���__module__t���__doc__R���R ���R���R���R���R���t���__trace_output__(����(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyR���� ���s��� R���c�����������B���s)���e��Z�d��Z�d����Z�d����Z�d����Z�RS(���s9���Helper class to represent an instance of a tracing class.c���������G���s���|�j��|�d�|���d��S(���Ns��� (���t���write(���R���t���fpt���fmtR���(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyt���__trace_call__=���s����c���������C���s ���|�|��_��d��S(���N(���t���_TracingInstance__class(���R���t���klass(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyR���@���s����c���������C���s����y�|��j��j�|���}�Wn�t�k �r2�t�|���n�Xt�|���t�j�k�rL�|�S|��j��j�d�|�}�|��j�sv�|�d�k�r��t�|�|�|����St �|�|�|����Sd��S(���Nt���.R"���( ���R#���R���R���t���typet���typest���FunctionTypeR���R���t���NotTracingWrappert���TracingWrapper(���R���R���t���rawt���fullname(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyR���C���s���� (���R���R���R���R"���R���R���(����(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyR���:���s��� R)���c�����������B���s���e��Z�d�����Z�d����Z�RS(���c���������C���s���|�|��_��|�|��_�|�|��_�d��S(���N(���R���t���funcR���(���R���R���R-���R���(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyR ���S���s���� c���������O���s���t��|��j�|��j�f�|�|���S(���N(���R���R-���R���(���R���R���R���(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyR���W���s����(���R���R���R ���R���(����(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyR)���R���s��� R*���c�����������B���s���e��Z�d�����Z�RS(���c���������O���s����|��j��j�|��j��j�d�|��j�|��j��|�|���y#�t�|��j�|��j��f�|�|���}�WnM�t�j����\�}�}�}�|��j��j�|��j��j�d�|��j�|�|���|�|�|���n'�X|��j��j�|��j��j�d�|��j�|���|�Sd��S(���Ns#���calling %s, inst=%s, args=%s, kw=%ss'���returning from %s with exception %s: %ss���returning from %s with value %s(���R���R"���R���R���R���R-���t���syst���exc_info(���R���R���R���t���rvt���tt���vt���tb(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyR���[���s����# (���R���R���R���(����(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyR*���Z���s���t���TracedR���c����������C���s����d�t��f�d�������Ya�d�t�f�d�������Ya�t�d���}��|��GH|��j�GH|��j�d���GH|��j�d���GH|��j�d���GH|��j�d ���GH|��j�d ���GH|��j�GHt�j�GHt�j�GHt�j�GHt�j�GHt����}�|�GH|�j�d���GH|�j�d���GH|�j�GHd��S(���Nt���Cc�����������B���s/���e��Z�d��d���Z�d����Z�d����Z�e�j�Z�RS(���i����c���������S���s ���|�|��_��d��S(���N(���t���x(���R���R6���(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyR ���s���R���c���������S���s ���|�|��_��d��S(���N(���R6���(���R���R6���(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyt���m1t���R���c���������S���s���|��j��|�S(���N(���R6���(���R���t���y(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyt���m2u���R���(���R���R���R ���R7���R9���R.���t���stdoutR���(����(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyR5���r���s��� t���Dc�����������B���s���e��Z�d�����Z�d�Z�RS(���c���������S���s���d�|�f�GHt��j�|��|���S(���Ns���D.m2(%r)(���R5���R9���(���R���R8���(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyR9���x���s����N(���R���R���R9���R���R���(����(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyR;���w���s��� i���id���i ���i!���i���i���(���R4���R5���R;���R6���R7���R9���R ���(���R6���R8���(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyt���_testp���s(���� t���__main__(����(����(����(����(���R���R'���R.���R����R���R)���R*���R���R4���R<���R���(����(����(����s.���/usr/lib64/python2.7/Demo/metaclasses/Trace.pyt���<module>���s���1