
    .dghy                     b    d Z dZddlZddlZddlZddZ G d d      ZddZd Z G d	 d
      Z	y)z
Provide consistent and up-to-date ``__version__`` strings for
Python packages.

See https://github.com/holoviz/autover for more information.
zJean-Luc Stevens    Nc                 \   i }t         j                  dk(  rt        j                  |d<   t        j                  | ft        j
                  t        j
                  |d|}d |j                         D        \  }}|j                  dk7  st        |      dkD  rt        |j                  |      |S )Nntcreationflags)stdoutstderrcwdc              3   j   K   | ]+  }t        |j                               j                          - y wN)strdecodestrip).0ss     -lib/python3.12/site-packages/param/version.py	<genexpr>zrun_cmd.<locals>.<genexpr>!   s&     I6HS_**,6Hs   13r   )
osname
subprocessCREATE_NO_WINDOWPopenPIPEcommunicate
returncodelen	Exception)argsr   kwargsprocoutputerrors         r   run_cmdr!      s    F	ww$","="=D &#-?? #& %&D Jd6F6F6HIMFE
 !s5zA~//M    c                        e Zd ZdZ fdZ	 	 ddZed        Zed        Zed        Z	ed        Z
ed        Zd	 Zdd
Zd ZddZd Zd Zd Zd ZddZe	 	 dd       Zed        Ze	 	 dd       Z xZS )Versiona  
    A simple approach to Python package versioning that supports PyPI
    releases and additional information when working with version
    control. When obtaining a package from PyPI, the version returned
    is a string-formatted rendering of the supplied release tuple.
    For instance, release (1,0) tagged as ``v1.0`` in the version
    control system will return ``1.0`` for ``str(__version__)``.  Any
    number of items can be supplied in the release tuple, with either
    two or three numeric versioning levels typical.

    During development, a command like ``git describe`` will be used to
    compute the number of commits since the last version tag, the short
    commit hash, and whether the commit is dirty (has changes not yet
    committed). Version tags must start with a lowercase 'v' and have a
    period in them, e.g. v2.0, v0.9.8 or v0.1 and may include the PEP440
    prerelease identifiers of 'a' (alpha) 'b' (beta) or 'rc' (release
    candidate) allowing tags such as v2.0.a3, v0.9.8.b3 or v0.1.rc5.

    Also note that when version control system (VCS) information is
    used, the number of commits since the last version tag is
    determined. This approach is often useful in practice to decide
    which version is newer for a single developer, but will not
    necessarily be reliable when comparing against a different fork or
    branch in a distributed VCS.

    For git, if you want version control information available even in
    an exported archive (e.g. a .zip file from GitHub), you can set
    the following line in the .gitattributes file of your project::

      __init__.py export-subst

    Note that to support pip installation directly from GitHub via git
    archive, a .version file must be tracked by the repo to supply the
    release number (otherwise only the short SHA is available).

    The PEP440 format returned is [N!]N(.N)*[{a|b|rc}N][.postN+SHA]
    where everything before .postN is obtained from the tag, the N in
    .postN is the number of commits since the last tag and the SHA is
    obtained via git describe. This later portion is only shown if the
    commit count since the last tag is non zero. Instead of '.post', an
    alternate valid prefix such as '.rev', '_rev', '_r' or '.r' may be
    supplied.
    c                 d    d|v r|d   d|v r|d   d|v rt        di |S t        | 	  |       S )Nreleasedevcommit_count )OldDeprecatedVersionsuper__new__)clskw	__class__s     r   r,   zVersion.__new__Y   sJ     O9 9RKBuI1b '-"--7?3''r"   c                     || _         || _        |d|v rt        d       || _        ||j	                  d      rdn|| _        d| _        d| _        d| _        d| _	        || _
        || _        || _        y)a1  
        :release:      Release tuple (corresponding to the current VCS tag)
        :commit        Short SHA. Set to '$Format:%h$' for git archive support.
        :fpath:        Set to ``__file__`` to access version control information
        :reponame:     Used to verify VCS repository name.
        Nr(   znWARNING: param.Version now supports PEP440 and a new tag based workflow. See param/version.py for more details$FormatF)fpath_expected_commitprintexpected_release
startswith_commit_commit_count_release_dirty_prereleasearchive_commitreponamecommit_count_prefix)selfr&   r2   commitr=   r>   r<   r   s           r   __init__zVersion.__init__d   s     
 &.F":  C  D ' &&2C2CI2NtU[!+ #6 r"   c                 6    | j                         j                  S )z}
        Either None or one of 'aN' (alpha), 'bN' (beta) or 'rcN'
        (release candidate) where N is an integer.
        )fetchr;   r?   s    r   
prereleasezVersion.prerelease   s     zz|'''r"   c                 6    | j                         j                  S zReturn the release tuplerC   r9   rD   s    r   r&   zVersion.release        zz|$$$r"   c                 6    | j                         j                  S zEA specification for this particular VCS version, e.g. a short git SHArC   r7   rD   s    r   r@   zVersion.commit        zz|###r"   c                 6    | j                         j                  S z3Return the number of commits since the last releaserC   r8   rD   s    r   r(   zVersion.commit_count        zz|)))r"   c                 6    | j                         j                  S z5True if there are uncommited changes, False otherwiserC   r:   rD   s    r   dirtyzVersion.dirty        zz|"""r"   c                     | j                   | S | j                  | _         | j                  s| j                  | _        | S dD ]  }	 | j                  |        | S  | S # t        $ r Y &w xY wz
        Returns a tuple of the major version together with the
        appropriate SHA and dirty bit (for development version only).
        )gitzgit.cmdzgit.exer9   r5   r2   r3   r7   	git_fetchOSErrorr?   cmds     r   rC   zVersion.fetch   {    
 ==$K--zz00DLK 1Cs#  1      A	A('A(c                 P   | j                   }d }	 | j                  t        |ddgt        j                  j                  | j                              d| j                  z   dz   d| j                  z   dz   g}t        fd|D              s$	 | j                         }|| j                  |       |:t        |dd	d
ddgt        j                  j                  | j                              }|r|S 	 | j                  |       y # t        $ r Y ^w xY w# t        $ r}	 | j                         }|| j                  |       | j                         rd | _        |r|cY d }~S |r|| _         Y d }~y # t        $ r' |j                  d   dk(  rt        d      | cY cY d }~S w xY wd }~ww xY w)Nremote-vr   /.git c              3   &   K   | ]  }|v  
 y wr
   r)   )r   mremotess     r   r   z$Version.git_fetch.<locals>.<genexpr>   s     >A1<   describe--long--matchzv[0-9]*.[0-9]*.[0-9]*--dirty   0fatal: No names found, cannot describe anything./Cannot find any git version tags of format v*.*)r7   r=   r!   r   pathdirnamer2   any_output_from_file_update_from_vcsr   _known_staler8   r\   r   )r?   r^   	as_stringcommit_argumentr   repo_matchese1rj   s          @r   r[   zVersion.git_fetch   s   ,,*	}}( "3$"7&(ggoodjj&AC #dmm 3f < !$dmm 3c 9 ; >>>+!%!7!7!9!- 11&9~ #z8Y"99"F%'WW__TZZ%@B -y, 	f%9 %*d*  	//1%))&1$$&)-D&Vm ##2DL 771:!SS#$UVV		sf   A;D #D 0?D 	DD DD 	F%=E-F%	E--(FF F%FF  F%c                     | j                         d}n| j                  }| j                  duxr- | j                  j                  d       xr | j                  |k7  }|rd| _        |S )z
        The commit is known to be from a file (and therefore stale) if a
        SHA is supplied by git archive and doesn't match the parsed commit.
        Nr1   )rv   r@   r<   r6   r8   )r?   r@   known_stales      r   rx   zVersion._known_stale   su    
 !!#+F[[F**$6 9#22==iHH9..&8 	 T*r"   c                 X   	 t         j                  j                  t         j                  j                  | j                        d      }t        |      5 }t        j                  |j                               j                  |d      cddd       S # 1 sw Y   yxY w# t        $ r Y yw xY w)z
        Read the version from a .version file that may exist alongside __init__.py.

        This file can be generated by piping the following output to file:

        git describe --long --match v*.*
        .versionN)r   rs   joinrt   r2   openjsonloadsreadgetr   )r?   entryvfilefs       r   rv   zVersion._output_from_file   so    	GGLL!<jIEezz!&&(+//t<  		s0   AB 3B	B BB B 	B)(B)c                 `   |dd j                  d      }|d   j                  d      }dD ]3  }||d   v s|d   j                  |      }||d   z   | _        |d   |d<   5 t        d |D              | _        t	        |d         | _        t        |d	   dd       | _        |d   d
k(  | _        | S )BUpdate state based on the VCS state e.g the output of git describerp   N-r   .)abrcc              3   2   K   | ]  }t        |        y wr
   intr   els     r   r   z+Version._update_from_vcs.<locals>.<genexpr>  s     :	"c"g	      rU   )	splitr;   tupler9   r   r8   r   r7   r:   )r?   r   r   	dot_splitprefixprefix_splits         r   rw   zVersion._update_from_vcs  s    qr
  %!HNN3'	$F2&(}226:#)L,<#<  ,Q	"	 % :	:: q]58AB<(Ry')r"   c                    | j                         }| j                  |s| j                  d      }|dS |S | j                  4|r2| j                  d      }||S dj                  | j                        S dj                  d | j                  D              }| j                  dn| j                  }| j                  d	k(  r| j                  s||z   S | j                  }| j                  rd
nd}d}|rd}| j                  }|dk7  r| j                  dz   }n3| j                  dvr#| j                  t        | j                        z   }nd}||||dnd|z   ||g}	dj                  |	      S )i  
        Version in x.y.z string format. Does not include the "v"
        prefix of the VCS version tags, for pip compatibility.

        If the commit count is non-zero or the repository is dirty,
        the string representation is equivalent to the output of::

          git describe --long --match v*.* --dirty

        (with "v" prefix removed).
        extracted_directory_tag)r   Nonez0.0.0+g{SHA}-gitarchive)SHAr   c              3   2   K   | ]  }t        |        y wr
   r   r   s     r   r   z"Version.__str__.<locals>.<genexpr>.       :\r3r7\r    r   -dirtyz-gitarchive0)r   Nz+g)rx   r&   rv   formatr<   r   rE   r(   rU   r@   r>   r   )
r?   r~   r   r&   rE   r@   rU   r<   	postcount
componentss
             r   __str__zVersion.__str__  s{    '')<<&*&<&<C\&<&]#4<6YBYY\\!k&*&<&<C\&<&]#&2..,338K8K3LL((:T\\::??2R
!$**Z'' JJB*N((FR0036Ii/003t7H7H3IIIIz9"Nbvu$&
 wwz""r"   c                     t        |       S r
   r   rD   s    r   __repr__zVersion.__repr__G      4yr"   c                 F    dj                  d | j                  D              S )z=Abbreviated string representation of just the release number.r   c              3   2   K   | ]  }t        |        y wr
   r   r   s     r   r   z!Version.abbrev.<locals>.<genexpr>L       7,BB,r   )r   r&   rD   s    r   abbrevzVersion.abbrevJ  s    xx7$,,777r"   c                 b   |r|t        |       k7  rt        d      | j                  rt        d      | j                  $| j                  | j                  k7  rt        d      | j
                  dk7  rt        d      | j                  '| j                  j                  d      st        d      yy)	7  
        Check that the version information is consistent with the VCS
        before doing a release. If supplied with a string version,
        this is also checked against the current version. Should be
        called from setup.py with the declared package version before
        releasing to PyPI.
        7Supplied string version does not match current version.#Current working directory is dirty.N4Declared release does not match current release tag.r   1Please update the VCS version tag before release.r1   3Declared release does not match the VCS version tag)r   r   rU   r5   r&   r(   r3   r6   r?   string_versions     r   verifyzVersion.verifyN  s     nD	9UVV::ABB  ,AVAV1VRSSq OPP!!-))44i@QRR A .r"   c                 Z   ||n|}g d}||vrt        d|z        t        j                  j                  ||d      }t	        |||      }	|r|	j                  d      }
nt        |	      }
|	j                  r|dk(  rt        d      |	j                  r|d	k(  r|
j                  d
d      S |
S )a  
        Helper for use in setup.py to get the version from the .version file (if available)
        or more up-to-date information from git describe (if available).

        Assumes the __init__.py will be found in the directory
        {reponame}/__init__.py relative to setup.py unless pkgname is
        explicitly specified in which case that name is used instead.

        If describe is True, the raw string obtained from git described is
        returned which is useful for updating the .version file.

        The dirty policy can be one of 'report', 'strip', 'raise'. If it is
        'report' the version string may end in '-dirty' if the repository is
        in a dirty state.  If the policy is 'strip', the '-dirty' suffix
        will be stripped out if present. If the policy is 'raise', an
        exception is raised if the repository is in a dirty state. This can
        be useful if you want to make sure packages are not built from a
        dirty repository state.
        )raisereportr   z,get_setup_version dirty policy must be in %rz__init__.py)r2   r=   r<   T)ry   r   zRepository is in a dirty state.r   r   r   )	AssertionErrorr   rs   r   r$   r[   r   rU   replace)r-   
setup_pathr=   rl   rU   pkgnamer<   policiesr2   versionvstrings              r   get_setup_versionzVersion.get_setup_versionh  s    , &o(7.  !ORZ!Z[[Z-@X''$'7G'lG==Ug- !BCC]]ug~??8R00Nr"   c                     t         j                  j                  |      d   }|dz   }|j                  |      r|t	        |      d  }|dvrd|v r|S y )Nr   r   )r   mastermainr   )r   rs   r   r6   r   )r-   r   r=   	setup_dirr   tags         r   extract_directory_tagzVersion.extract_directory_tag  sW    GGMM*-b1	C'CKL)C00cSj
r"   c                    i }d }||n|}	 t         j                  ||d|||      }|||d<   |xt         j                  ||      }|||d<   	 t	        t
        j                  j                  ||d      d      5 }	|	j                  t        j                  d|i             d d d        t         j                  ||d|||      |d	<   	 t	        t
        j                  j                  ||d      d      5 }	|	j                  t        j                  |             d d d        |d	   S # t        $ r Y w xY w# 1 sw Y   xY w# t        $ r t        d       Y w xY w# 1 sw Y   DxY w# t        $ r t        d       Y |d	   S w xY w)
NT)rl   rU   r   r<   git_describer   r   wz6Error in setup_version: could not write .version file.Fversion_string)r$   r   r   r   r   r   rs   r   writer   dumpsr4   )
r-   r   r=   r<   r   rU   infor   r   r   s
             r   setup_versionzVersion.setup_version  s    %o(7	#55j6>?C<A>EES 6 UL ''3^$ &-&C&CJPX&Y#&22I./P"'',,z7JGMQRGGDJJ(ABY'Z[\ N #*";";J<DEJBGDKKY #< #[	Lbggll:w
CSIQ

4() J
 $%%3 $ NM PNOP JI 	LJK$%%	Lse   "D$ +E  9'D4 E  +E& 2%EE& $	D10D14D=9E   EEE#E& &F F)NNNNz.postN)rY   F)r   r
   )Fr   NN)NNr   )__name__
__module____qualname____doc__r,   rA   propertyrE   r&   r@   r(   rU   rC   r[   rx   rv   rw   r   r   r   r   classmethodr   r   r   __classcell__)r/   s   @r   r$   r$   ,   s    *X( HL=A76 ( ( % % $ $ * * # #
./&d  &-#^8S4 >CGK& &R   @D*2)& )&r"   r$   c                     ddl }||n|}||j                  d       t        j                  t        j
                  j                  t        j
                  j                  |             |||      S )a  
    Helper for use in setup.py to get the current version from either
    git describe or the .version file (if available).

    Set pkgname to the package name if it is different from the
    repository name.

    To ensure git information is included in a git archive, add
    setup.py to .gitattributes (in addition to __init__):
    ```
    __init__.py export-subst
    setup.py export-subst
    ```
    Then supply "$Format:%h$" for archive_commit.

    r   NzNNo archive commit available; git archives will not contain version information)r   r<   )warningswarnr$   r   r   rs   rt   abspath)locationr=   r   r<   r   s        r   r   r     se    " !/hwGfg  1J!KH]d  uC   D  Dr"   c                     ddl } ddl}d}d}| j                         }|j                  |       |j	                  dd      }||j                         v r|j	                  |dd|i      n|}d}|d	z   }|j                         D ]5  }	|	j                  |      s|j                  d
|	      j                  d      }7 t        ||||      S )a
  
    As get_setup_version(), but configure via setup.cfg.

    If your project uses setup.cfg to configure setuptools, and hence has
    at least a "name" key in the [metadata] section, you can
    set the version as follows:
    ```
    [metadata]
    name = mypackage
    version = attr: autover.version.get_setup_version2
    ```

    If the repository name is different from the package name, specify
    `reponame` as a [tool:autover] option:
    ```
    [tool:autover]
    reponame = mypackage
    ```

    To ensure git information is included in a git archive, add
    setup.cfg to .gitattributes (in addition to __init__):
    ```
    __init__.py export-subst
    setup.cfg export-subst
    ```

    Then add the following to setup.cfg:
    ```
    [tool:autover.configparser_workaround.archive_commit=$Format:%h$]
    ```

    The above being a section heading rather than just a key is
    because setuptools requires % to be escaped with %, or it can't
    parse setup.cfg...but then git export-subst would not work.

    r   Nz	setup.cfgztool:autovermetadatar   r=   )varsz'.configparser_workaround.archive_commitz.*=\s*(\S*)\s*rp   )r=   r   r<   )
configparserreConfigParserr   r   sectionsr6   matchgroupr   )
r   r   cfgautover_sectionconfigr   r=   r<   archive_commit_keysections
             r   get_setupcfg_versionr     s    J 
C$O&&(F
KKjjF+GSbflfufufwSwvzz/*:g:NzO  ~EH N()RR??$01XX&7@FFqIN % S(7R`aar"   c                       e Zd ZdZ	 	 ddZed        Zed        Zed        Zed        Z	d Z
dd	Zd
 Zd Zd ZddZd Zd Zd ZddZy)r*   a  
    A simple approach to Python package versioning that supports PyPI
    releases and additional information when working with version
    control. When obtaining a package from PyPI, the version returned
    is a string-formatted rendering of the supplied release tuple.
    For instance, release (1,0) tagged as ``v1.0`` in the version
    control system will return ``1.0`` for ``str(__version__)``.  Any
    number of items can be supplied in the release tuple, with either
    two or three numeric versioning levels typical.

    During development, a command like ``git describe`` will be used to
    compute the number of commits since the last version tag, the
    short commit hash, and whether the commit is dirty (has changes
    not yet committed). Version tags must start with a lowercase 'v'
    and have a period in them, e.g. v2.0, v0.9.8 or v0.1.

    Development versions are supported by setting the dev argument to an
    appropriate dev version number. The corresponding tag can be PEP440
    compliant (using .devX) of the form v0.1.dev3, v1.9.0.dev2 etc but
    it doesn't have to be as the dot may be omitted i.e v0.1dev3,
    v1.9.0dev2 etc.

    Also note that when version control system (VCS) information is
    used, the comparison operators take into account the number of
    commits since the last version tag. This approach is often useful
    in practice to decide which version is newer for a single
    developer, but will not necessarily be reliable when comparing
    against a different fork or branch in a distributed VCS.

    For git, if you want version control information available even in
    an exported archive (e.g. a .zip file from GitHub), you can set
    the following line in the .gitattributes file of your project::

      __init__.py export-subst
    Nc                     || _         || _        || _        |dv rdn|| _        || _        d| _        d| _        || _        || _        y)a  
        :release:      Release tuple (corresponding to the current VCS tag)
        :commit        Short SHA. Set to '$Format:%h$' for git archive support.
        :fpath:        Set to ``__file__`` to access version control information
        :reponame:     Used to verify VCS repository name.
        :dev:          Development version number. None if not a development version.
        :commit_count  Commits since last release. Set for dev releases.
        Nz$Format:%h$NF)	r2   r3   r5   r7   r8   r9   r:   r=   r'   )r?   r&   r2   r@   r=   r'   r(   s          r   rA   zOldDeprecatedVersion.__init__C  sP     
 & '%)>>tF) r"   c                 6    | j                         j                  S rG   rH   rD   s    r   r&   zOldDeprecatedVersion.releaseX  rI   r"   c                 6    | j                         j                  S rK   rL   rD   s    r   r@   zOldDeprecatedVersion.commit]  rM   r"   c                 6    | j                         j                  S rO   rP   rD   s    r   r(   z!OldDeprecatedVersion.commit_countb  rQ   r"   c                 6    | j                         j                  S rS   rT   rD   s    r   rU   zOldDeprecatedVersion.dirtyg  rV   r"   c                     | j                   | S | j                  | _         | j                  s| j                  | _        | S dD ]  }	 | j                  |        | S  | S # t        $ r Y &w xY wrX   rZ   r]   s     r   rC   zOldDeprecatedVersion.fetchm  r_   r`   c                    	 | j                   qt        |ddgt        j                  j	                  | j
                              d| j                   z   dz   d| j                   z   dz   g}t        fd|D              s| S t        |dd	d
ddgt        j                  j	                  | j
                              | j                         y # t        $ r)}|j                  d   dk(  rt        d      | cY d }~S d }~ww xY w)Nrb   rc   rd   re   rf   rg   c              3   &   K   | ]  }|v  
 y wr
   r)   )r   ri   r   s     r   r   z1OldDeprecatedVersion.git_fetch.<locals>.<genexpr>  s     =11;rk   rl   rm   rn   zv*.*ro   rp   rq   rr   )
r=   r!   r   rs   rt   r2   ru   r   r   rw   )r?   r^   r{   er   s       @r   r[   zOldDeprecatedVersion.git_fetch  s    	}}( !#x!6%'WW__TZZ%@B #dmm 3f < !$dmm 3c 9 ; ===Kc:xFIV!#!<>F 	f%  	vvayNN QRRK		s$   A<C  :C 	C>C93C>9C>c                    |dd j                  d      }d|d   v rN|d   j                  d      }t        |d         | _        |d   |d<   |d   j                  d      r|d   dd |d<   t	        d |d   j                  d      D              | _        t        |d         | _        t        |d	   dd       | _        |d   d
k(  | _	        | S )r   rp   Nr   r'   r   r   r   c              3   2   K   | ]  }t        |        y wr
   r   r   s     r   r   z8OldDeprecatedVersion._update_from_vcs.<locals>.<genexpr>  s     D0C"c"g0Cr   r   rU   )
r   r   r'   endswithr   r9   r8   r   r7   r:   )r?   r   r   	dev_splits       r   rw   z%OldDeprecatedVersion._update_from_vcs  s    qr
  %E!Hau-I9Q<(DH |E!HQx  %$Q<,aDas0CDD q]58AB<(Ry')r"   c                    | j                   ydj                  d | j                   D              }| j                  d|| j                  fz  n|}| j                  d| j                  vrn| j                  dk(  r| j
                  s|S | j
                  rdnd}d	j                  || j                  r| j                  nd
| j                  |      S )r   r   r   c              3   2   K   | ]  }t        |        y wr
   r   r   s     r   r   z/OldDeprecatedVersion.__str__.<locals>.<genexpr>  r   r   z%s.dev%dr1   r   r   r   z{}-{}-g{}{}x)r&   r   r'   r3   r(   rU   r   r@   )r?   r&   dirty_statuss      r   r   zOldDeprecatedVersion.__str__  s     <<((:T\\::6:hh6J*22PW!!-YdF[F[5[1$TZZN#'::x2##G$BSBST->->Y\ $\; 	;r"   c                     t        |       S r
   r   rD   s    r   r   zOldDeprecatedVersion.__repr__  r   r"   c                     dj                  d | j                  D              | j                  dkD  s| j                  r|z   S dz   S )zv
        Abbreviated string representation, optionally declaring whether it is
        a development version.
        r   c              3   2   K   | ]  }t        |        y wr
   r   r   s     r   r   z.OldDeprecatedVersion.abbrev.<locals>.<genexpr>  r   r   r   r   )r   r&   r(   rU   )r?   
dev_suffixs     r   r   zOldDeprecatedVersion.abbrev  sK    
 xx7$,,77,,q0DJJZH 	HDFH 	Hr"   c                     | j                   s|j                   ry| j                  | j                  | j                  f|j                  |j                  |j                  fk(  S )a[  
        Two versions are considered equivalent if and only if they are
        from the same release, with the same commit count, and are not
        dirty.  Any dirty version is considered different from any
        other version, since it could potentially have any arbitrary
        changes even for the same release and commit count.
        F)rU   r&   r(   r'   r?   others     r   __eq__zOldDeprecatedVersion.__eq__  sO     ::Ut00$((;MM5#5#5uyyAB 	Cr"   c                 |   | j                   |j                   k(  rs| j                  |j                  k(  r| j                  |j                  kD  S d | j                  |j                  fv r| j                  d u S | j                  |j                  kD  S | j                   | j                  f|j                   |j                  fkD  S r
   )r&   r'   r(   r
  s     r   __gt__zOldDeprecatedVersion.__gt__  s    <<5==(xx599$((5+=+===$((EII..xx4''xx%))++LL$"3"34uGYGY7ZZZr"   c                     | |k(  ry| |kD   S )NFr)   r
  s     r   __lt__zOldDeprecatedVersion.__lt__  s    ;u%%r"   c                    |r|t        |       k7  rt        d      | j                  rt        d      | j                  | j                  k7  rt        d      | j
                  dk7  rt        d      | j                  dvrt        d      y)	r   r   r   r   r   r   r   r   N)r   r   rU   r&   r5   r(   r3   r   s     r   r   zOldDeprecatedVersion.verify  s     nD	9UVV::ABB<<4000RSSq OPP  (==QRR >r"   )NNNNNr   )rY   )r   r
   )r   r   r   r   rA   r   r&   r@   r(   rU   rC   r[   rw   r   r   r   r  r  r  r   r)   r"   r   r*   r*     s    "H 9=78* % % $ $ * * # #
.&2$;2H
C	[&Sr"   r*   r
   )NN)
r   
__author__r   r   r   r!   r$   r   r   r*   r)   r"   r   <module>r     sG   $  
 	  &\& \&@D06btiS iSr"   