U ar@sdddlmZmZmZddlmZddlmZddlm Z m Z ee dddddGd d d e Z d S) )absolute_importdivisionprint_function)total_ordering)astuple)attribattrsFT)eqorderslotsfrozenc@s\eZdZdZeedZeedZeedZee dZ e ddZ ddZ ddZd d Zd S) VersionInfoa A version object that can be compared to tuple of length 1--4: >>> attr.VersionInfo(19, 1, 0, "final") <= (19, 2) True >>> attr.VersionInfo(19, 1, 0, "final") < (19, 1, 1) True >>> vi = attr.VersionInfo(19, 2, 0, "final") >>> vi < (19, 1, 1) False >>> vi < (19,) False >>> vi == (19, 2,) True >>> vi == (19, 2, 1) False .. versionadded:: 19.2 )typecCsL|d}t|dkr |d|t|dt|dt|d|ddS)z6 Parse *s* and return a _VersionInfo. .finalrr)yearminormicro releaselevel)splitlenappendint)clssvr/Users/jalaguru/Documents/Proserv/artifacts/aws_dms_cdk_automation/aws-dms-cdk-automation/venv/lib/python3.8/site-packages/attr/_version_info.py_from_version_string%s    z VersionInfo._from_version_stringcCsX|j|jkrt|}t|ts"tdt|kr:dks@ntt|dt||fS)z Ensure *other* is a tuple of a valid length. Returns a possibly transformed *other* and ourselves as a tuple of the same length as *other*. rN) __class__r isinstancetupleNotImplementedErrorr)selfotherrrr _ensure_tuple2s  zVersionInfo._ensure_tuplecCs4z||\}}Wntk r*tYSX||kSNr)r&NotImplementedr'r(usZthemrrr __eq__Es  zVersionInfo.__eq__cCs4z||\}}Wntk r*tYSX||kSr*r+r-rrr __lt__Ms  zVersionInfo.__lt__N)__name__ __module__ __qualname____doc__rrrrrstrr classmethodr!r)r/r0rrrr r s     rN) __future__rrr functoolsrZ_funcsr_makerr objectrrrrr s