
    Vh                       d Z ddlmZ ddlZddlZddlZddlZddlZdZdZ	dez   dz   e	z   dz   Z
d	Zed
z   ez   d
z   ez   Zde
z   dz   e
z   dz   Zdez   dz   ez   dz   Zdez   ez   ez   dz   Zd Zd Zd Zd Zedk(  r e        yy)Retrieve collection detail.    )annotationsNz(?:0|[1-9][0-9]*)z (?:[0-9]*[a-zA-Z-][a-zA-Z0-9-]*)z(?:|)z[a-zA-Z0-9-]+z\.z(?:-z(?:\.z)*)?z(?:\+^$c                r    | yt        j                  t        |       st        dj	                  |             y)zPRaise exception if the provided version is not None or a valid semantic version.NzoInvalid version number "{0}". Collection version numbers must follow semantic versioning (https://semver.org/).)rematchSEMVER_REGULAR_EXPRESSION	Exceptionformatversions    e/home/dcms/DCMS/lib/python3.12/site-packages/ansible_test/_util/controller/tools/collection_detail.pyvalidate_versionr      s=    88-w7 LLRFSZO] 	] 8    c                   t         j                  j                  | d      }t         j                  j                  |      sy	 t	        |d      5 }t        j                  |      }ddd       j                  d      xs i }t        |j                  d            }t        |d          |S # 1 sw Y   IxY w# t        $ r>}t        dj                  t         j                  j                  |      |            dd}~ww xY w)	z:Return collection information from the MANIFEST.json file.zMANIFEST.jsonNutf-8encodingcollection_infor   r   {0}: {1})ospathjoinexistsopenjsonloadgetdictr   r   r   basename)collection_pathmanifest_pathmanifest_filemanifestr   resultexs          r   read_manifest_jsonr*   #   s    GGLL/BM77>>-(Z-'2 	0myy/H	0 #,,'89?R#''	2
 		*+ M	0 	0  Z
))"''*:*:=*I2NOUYYZs1   B9 B-%AB9 -B62B9 9	D 9C;;D c                   t         j                  j                  | d      }t         j                  j                  |      sy	 t	        |d      5 }t        j                  |      }ddd       t        j                  d            }t        |d          |S # 1 sw Y   4xY w# t        $ r>}t        dj                  t         j                  j                  |      |            dd}~ww xY w)z7Return collection information from the galaxy.yml file.z
galaxy.ymlNr   r   r   r   r   )r   r   r   r   r   yaml	safe_loadr"   r!   r   r   r   r#   )r$   galaxy_pathgalaxy_filegalaxyr(   r)   s         r   read_galaxy_ymlr1   :   s    '',,=K77>>+&	X+0 	1K^^K0F	1 JJy)
 		*+ M	1 	1  X
))"''*:*:;*GLMSWWXs0   B$ B%1B$ B!B$ $	C+-9C&&C+c                    t         j                  d   } 	 t        |       xs t        |       xs i }t        t        j                  |             y# t        $ r%}t        dj                  |            }Y d}~Hd}~ww xY w)r      z{0})errorN)
sysargvr*   r1   r   r"   r   printr   dumps)r$   r(   r)   s      r   mainr9   O   si    hhqkO
#O4^8X^\^ 
$**V
  
,,r"

s   A 	A>A99A>__main__)__doc__
__future__r   r   r   r
   r5   r,   NUMERIC_IDENTIFIERALPHANUMERIC_IDENTIFIERPRE_RELEASE_IDENTIFIERBUILD_IDENTIFIERVERSION_COREPRE_RELEASEBUILDr   r   r*   r1   r9   __name__ r   r   <module>rF      s    ! "  	 	 
  * = "44t;>UUX\\ # !E),>>FI[[..9<RRU\\##h.1AAGK </+=EL ].* zF r   