
    1
i-                       d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dl	mZ d dlmZ d dlZd dlmZ erd d	lmZ d d
lmZ d%d&dZd%d'dZd%d(dZd)dZd*dZd*dZd+d!Zed"k    r eej        d#d         d$           dS dS ),    )annotationsN)datetime)partial)Any)TYPE_CHECKING)UUID)ULID)Callable)Sequenceprog
str | Nonereturnargparse.ArgumentParserc                   t          j        | t          j        t          j        d                                          d          t          t           j        t          t          j
                    j        dz
  d                                                  fd                               d	d
dt          j                                       d          }|                    dd          }|                    ddd           |                    ddd           |                    ddd           |                    ddd           |                    ddd            |                    d!d"d#           |                    t$                     |                    d$d%          }|                    d&d'           |                    d(d)d*+           |                    d,d)d-+           |                    d.d)d/+           |                    d0d)d1+           |                    d2d3d)d4+           |                    d5d6d)d7+           |                    t&                     S )8Naf  
            Create or inspect ULIDs

            A ULID is a universally unique lexicographically sortable identifier
            with the following structure

               01AN4Z07BY      79KA1307SR9X4MV3
              |----------|    |----------------|
               Timestamp          Randomness
                 48bits             80bits
            z          )width)r   descriptionformatter_classc                ,                                     S N)
print_help)_parsers    C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\ulid/__main__.py<lambda>zmake_parser.<locals>.<lambda>0   s    v'8'8':':     )funcz	--versionz-Vversion)actionr   subcommands)titlebuildz%generate ULIDs from different sources)helpz
--from-intz<int>zcreate from integer)metavarr$   z
--from-hexz<str>z"create from 32 character hex valuez
--from-strz.create from base32 encoded string of length 26z--from-timestampz<int|float>z>create from timestamp either as float in secs or int as millisz--from-datetimez	<iso8601>zTcreate from datetime. The timestamp part of the ULID will be taken from the datetimez--from-uuidz<uuid>z:create from given UUID. The timestamp part will be random.showzshow properties of a ULIDulidz9the ULID to inspect. The special value - reads from stdinz--uuid
store_truezconvert to fully random UUID)r    r$   z--uuid4z$convert to RFC 4122 compliant UUIDv4z--hexzconvert to hexz--intzconvert to intz--timestampz--tszshow timestampz
--datetimez--dtzshow datetime)argparseArgumentParsertextwrapindentdedentstripr   RawDescriptionHelpFormatterminshutilget_terminal_sizecolumnsset_defaultsadd_argumentr'   __version__add_subparsers
add_parserr#   r&   )r   
subparsersbsr   s       @r   make_parserr<      s   $OO
  egg
 
   0 f.0081<cBB	
 
 
%  F2 ::::;;;
T)TEUVVV&&]&;;J4 	 	 	A NN"    
 NN1    
 NN=    
 NNM    
 NNc    
 NNI    
 NNNf+FGGANN6 [N\\\NN8L7UNVVVNN9\8^N___NN7<6FNGGGNN7<6FNGGGNN=&DTNUUUNN<?NSSSNNNMr   argvSequence[str]strc                p    t          |                              |           }|                    |          S r   )r<   
parse_argsr   )r=   r   argss      r   mainrC   d   s-    t''--D99T??r   valueconvertCallable[[str], Any] | Noner   c                    | dk    r0t           j                                                                        n| } | ||           S | S )N-)sysstdinreadliner.   )rD   rE   s     r   from_value_or_stdinrL   i   sG    ,1SLLCI  &&(((eEwu~~Lr   r;   int | floatc                `    	 t          |           S # t          $ r t          |           cY S w xY wr   )int
ValueErrorfloat)r;   s    r   parse_numericrR   p   s<    1vv   Qxxs    --rB   argparse.Namespacec                   | j         .t          j         t          | j         t                              }n| j        't          j        t          | j                            }n| j        't          j        t          | j                            }n| j        -t          j        t          | j        t                              }n{| j        2t          j        t          | j        t          j
                            }nB| j        -t          j        t          | j        t                              }nt                      }t          |          S r   )from_intr	   rL   rO   from_hexfrom_strfrom_timestamprR   from_datetimer   fromisoformat	from_uuidr   r?   rB   r'   s     r   r#   r#   w   s    } }0DDEE		"}0??@@		"}0??@@			("#6t7JM#Z#Z[[			'!"5d6H(J`"a"abb		#~1$.$GGHHvvt99r   c                z   t          j        t          | j                            }| j        rt           |j                              S | j        rt           |j                              S | j	        r|j	        S | j
        rt          t          |                    S | j        rt          |j                  S | j        r|j                                        S t          j        d|d|j	         dt          |           d|j         d|j                                         d                                          S )Nz
        ULID:      z
        Hex:       z
        Int:       z
        Timestamp: z
        Datetime:  z	
        )r	   rW   rL   r'   uuidr?   to_uuiduuid4to_uuid4hexrO   	timestampr   	isoformatr+   r-   r.   r\   s     r   r&   r&      sI   249==>>Dy #<4<>>"""z $=4=??###x xx 3t99~~~ #4>"""} )}&&(((?		 	H	 	 II	 	 N		 	
 M++--	 	 	  eggr   Nonec                 n    t          t          j        dd                    x} t          |            d S d S )N   )rC   rI   r=   print)rD   s    r   
entrypointri      s6    chqrrl###0e 10r   __main__rg   zpython -m ulidr   )r   r   r   r   )r=   r>   r   r   r   r?   )rD   r?   rE   rF   r   r   )r;   r?   r   rM   )rB   rS   r   r?   )r   re   )
__future__r   r)   r1   rI   r+   r   	functoolsr   typingr   r   r^   r   r'   r	   collections.abcr
   r   r<   rC   rL   rR   r#   r&   ri   __name__r=    r   r   <module>rq      s   " " " " " "   



                                              )((((((((((((K K K K K\    
          &   2   
 zD!""'((((( r   