Metadata-Version: 1.1
Name: accrocchio
Version: 0.1.7
Summary: Accrocchio is a library to mark and being notified of smelly code (a.k.a, "accrocchio").
Home-page: https://github.com/fcracker79/accrocchio
Author: fcracker79
Author-email: fcracker79@gmail.com
License: MIT
Description-Content-Type: UNKNOWN
Description: |build status|
        
        accrocchio
        ==========
        
        Accrocchio is a library to mark and being notified of smelly code
        (a.k.a, "accrocchio").
        
        Example
        -------
        
        .. code:: python
        
            from accrocchio.badgeofshame import accrocchio
            from accrocchio import observers
        
        
            class AClassThatSmells(metaclass=accrocchio):
                pass
        
            @accrocchio
            def a_function_that_smells():
                pass
        
        
            accrocchio.how_many()     # here we have 1, as you have declared a smelly class
            AClassThatSmells()
            accrocchio.how_many()     # here we have 2, as you have created an instance of a smelly class
            a_function_that_smells()
            accrocchio.how_many()     # here we have 3, as you have invoked a smelly function
        
            accrocchio.reset()
            accrocchio.how_many()     # here we have 0
        
            # You can also be notified of smelly code execution, such as:
        
            class MyAccrocchioObserver(observers.AccrocchioObserver):
                def on_accrocchio(self):
                    print('Another accrocchio!')
        
                def reset(self):
                    print('Reset accrocchi')
            accrocchio.add_observer(MyAccrocchioObserver())
            a_function_that_smells()   # prints 'Another accrocchio!'
            accrocchio.reset()         # prints 'Reset accrocchi'
        
        The library also implements `Michael Duell's resign
        patterns <http://nishitalab.org/user/paulo/files/resign-patterns.txt>`__.
        
        .. code:: python
        
            from accrocchio.badgeofshame import accrocchio, detonator
        
        
            @accrocchio
            def accrocchio_fun():
                pass
        
        
            @detonator
            def detonator_fun():
                pass
        
        
            accrocchio_fun()
            accrocchio.how_many()     # here we have 1, as you have invoked an accrocchio function
            detonator.how_many()      # here we have 0, as you have never invoked a detonator function
            detonator_fun()
            detonator.how_many()      # here we have 1, as you have invoked a detonator function
            accrocchio.how_many()     # here we have 2, as you have invoked a detonator function, which is an accrocchio
        
        For a full list of the implemented accrocchio resign patterns, please
        consult `Michael Duell's resign
        patterns <http://nishitalab.org/user/paulo/files/resign-patterns.txt>`__.
        
        Some final notes:
        
        1. This library is useful only if a small part of the software is an
           accrocchio
        2. We intentionally left out Python versions before 3.5, as we think
           they are a complete accrocchio.
        3. We intentionally did not pass the accrocchio to the 'on\_accrocchio'
           observer function, as you should treat all the accrocchios the same
           way
        
        .. |build status| image:: https://img.shields.io/travis/fcracker79/accrocchio/master.svg?style=flat-square
           :target: https://travis-ci.org/fcracker79/accrocchio
        
Keywords: accrocchio hinting linting qa
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.5
