File: //proc/thread-self/root/lib64/python2.7/site-packages/mercurial/registrar.pyo
�
1�3\c @@ s d d l m Z d d l m Z m Z m Z m Z e j Z d e f d � � YZ
d e
f d � � YZ d Z d e
f d
� � YZ
d e
f d � � YZ d
e
f d � � YZ d e f d � � YZ d e f d � � YZ d e f d � � YZ d e
f d � � YZ d S( i ( t absolute_importi ( t configitemst errort pycompatt utilt _funcregistrarbasec B@ sV e Z d Z d d � Z d � Z d � Z d � Z d � Z d Z d � Z
d � Z RS( s� Base of decorator to register a function for specific purpose
This decorator stores decorated functions into own dict 'table'.
The least derived class can be defined by overriding 'formatdoc',
for example::
class keyword(_funcregistrarbase):
_docformat = ":%s: %s"
This should be used as below:
keyword = registrar.keyword()
@keyword('bar')
def barfunc(*args, **kwargs):
'''Explanation of bar keyword ....
'''
pass
In this case:
- 'barfunc' is stored as 'bar' in '_table' of an instance 'keyword' above
- 'barfunc.__doc__' becomes ":bar: Explanation of bar keyword"
c C@ s% | d k r i | _ n | | _ d S( N( t Nonet _table( t selft table( ( s9 /usr/lib64/python2.7/site-packages/mercurial/registrar.pyt __init__2 s c @ s � � � � f d � S( Nc @ s � j | � � � � S( N( t _doregister( t func( t argst declt kwargsR ( s9 /usr/lib64/python2.7/site-packages/mercurial/registrar.pyt <lambda>9 t ( ( R R R
R ( ( R
R R R s9 /usr/lib64/python2.7/site-packages/mercurial/registrar.pyt __call__8 s c O@ s� | j | � } | | j k r: d | } t j | � � n | j r� t j | d � r� t j | j � j � } | | _
t j | j | | � � | _ n | | j | <| j
| | | | � | S( Ns% duplicate registration for name: "%s"t _origdoc( t _getnameR R t ProgrammingErrort __doc__R t safehasattrR t sysbytest stripR t sysstrt
_formatdoct _extrasetup( R R R R
R t namet msgt doc( ( s9 /usr/lib64/python2.7/site-packages/mercurial/registrar.pyR ; s
!
c C@ s+ | j d � } | d k r# | | S| Sd S( sI Parse function declaration and return the name of function in it
t (i N( t find( R R t i( ( s9 /usr/lib64/python2.7/site-packages/mercurial/registrar.pyt _parsefuncdeclL s c C@ s | S( s� Return the name of the registered function from decl
Derived class should override this, if it allows more
descriptive 'decl' string than just a name.
( ( R R ( ( s9 /usr/lib64/python2.7/site-packages/mercurial/registrar.pyR U s c C@ s | j | | f S( s� Return formatted document of the registered function for help
'doc' is '__doc__.strip()' of the registered function.
( t
_docformat( R R R ( ( s9 /usr/lib64/python2.7/site-packages/mercurial/registrar.pyR _ s c C@ s d S( s>