/usr/lib/python3/dist-packages/logfury-0.1.2.egg-info/PKG-INFO is in python3-logfury 0.1.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 | Metadata-Version: 1.1
Name: logfury
Version: 0.1.2
Summary: Toolkit for responsible, low-boilerplate logging of library method calls
Home-page: https://github.com/ppolewicz/logfury
Author: Pawel Polewicz
Author-email: p.polewicz@gmail.com
License: BSD
Download-URL: https://github.com/ppolewicz/logfury/tarball/0.1.2
Description-Content-Type: UNKNOWN
Description: ========
Logfury
========
Logfury is for python library maintainers. It allows for responsible, low-boilerplate logging of method calls.
*****************
License
*****************
BSD 3-clause
*****************************
whats with the weird import
*****************************
.. sourcecode:: python
from logfury.v0_1 import DefaultTraceMeta
If you were to use logfury in your library, any change to the API could potentially break your program. Nobody wants that.
Thanks to this import trick I can keep the 0.1.x API very stable. At the same time I can change the functionality of the library and change default behavior of version 0.2.x etc, without changing the name of the package. This way YOU decide when to adopt potentially incompatible API changes, by incrementing the API version on import.
*****************
Installation
*****************
^^^^^^^^^^^^^^^^^^^^
Current stable
^^^^^^^^^^^^^^^^^^^^
::
pip install logfury
^^^^^^^^^^^^^^^^^^^^
Development version
^^^^^^^^^^^^^^^^^^^^
::
git clone git@github.com:ppolewicz/logfury.git
python setup.py install
*****************
Basic usage
*****************
^^^^^^^^^^^^^^^^^^^^^^^^^^^
DefaultTraceMeta metaclass
^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. sourcecode:: pycon
>>> import logging
>>> import six
>>>
>>> from logfury.v0_1 import DefaultTraceMeta, limit_trace_arguments, disable_trace
>>>
>>>
>>> logging.basicConfig()
>>> logger = logging.getLogger(__name__)
>>> logger.setLevel(logging.DEBUG)
>>>
>>>
>>> @six.add_metaclass(DefaultTraceMeta)
>>> class Foo(object):
... def baz(self, a, b, c=None):
... return True
... def get_blah(self):
... return 5
... def _hello(self):
... pass
... @disable_trace
... def world(self):
... pass
... def __repr__(self):
... return '<%s object>' % (self.__class__.__name__,)
...
>>> class Bar(Foo):
... def baz(self, a, b, c=None):
... b += 1
... return super(Bar, self).baz(a, b, c)
... def world(self):
... pass
... @limit_trace_arguments(skip=['password'])
... def secret(self, password, other):
... pass
... @limit_trace_arguments(only=['other'])
... def secret2(self, password, other):
... pass
...
>>> a = Foo()
>>> a.baz(1, 2, 3)
DEBUG:__main__:calling Foo.baz(self=<Foo object>, a=1, b=2, c=3)
>>> a.baz(4, b=8)
DEBUG:__main__:calling Foo.baz(self=<Foo object>, a=4, b=8)
>>> a.get_blah() # nothing happens, since v0_1.DefaultTraceMeta does not trace "get_.*"
>>> a._hello() # nothing happens, since v0_1.DefaultTraceMeta does not trace "_.*"
>>> a.world() # nothing happens, since v0_1.DefaultTraceMeta does not trace "_.*"
>>> b = Bar()
>>> b.baz(4, b=8) # tracing is inherited
DEBUG:__main__:calling Bar.baz(self=<Bar object>, a=4, b=8)
DEBUG:__main__:calling Foo.baz(self=<Bar object>, a=4, b=9, c=None)
>>> b.world() # nothing happens, since Foo.world() tracing was disabled and Bar inherited it
>>> b.secret('correct horse battery staple', 'Hello world!')
DEBUG:__main__:calling Bar.secret(self=<Bar object>, other='Hello world!') (hidden args: password)
>>> b.secret2('correct horse battery staple', 'Hello world!')
DEBUG:__main__:calling Bar.secret2(other='Hello world!') (hidden args: self, password)
^^^^^^^^^^^^^^^^^^^^
trace_call decorator
^^^^^^^^^^^^^^^^^^^^
.. sourcecode:: pycon
>>> import logging
>>> from logfury import *
>>> logging.basicConfig()
>>> logger = logging.getLogger(__name__)
>>>
>>> @trace_call(logger)
... def foo(a, b, c=None):
... return True
...
>>> foo(1, 2, 3)
True
>>> logger.setLevel(logging.DEBUG)
>>> foo(1, 2, 3)
DEBUG:__main__:calling foo(a=1, b=2, c=3)
True
>>> foo(1, b=2)
DEBUG:__main__:calling foo(a=1, b=2)
True
>>>
Keywords: logging,tracing
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Logging
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: Jython
Classifier: Programming Language :: Python :: Implementation :: PyPy
|