B 0@s\dZddlmZddlZddlZddlZddZddZdd Ze d krXe ed d dS) z patchlevel.py ~~~~~~~~~~~~~ Extract version info from Include/patchlevel.h. Adapted from Doc/tools/getversioninfo. :copyright: 2007-2008 by Georg Brandl. :license: Python license. )print_functionNc Cstj|ddd}td}i}t|>}x6|D].}||}|dk r0|dd\}}|||<q0WWdQRXd|d|d f} } t|d } | d t | 7} |d } d ddd} | dkr| | | t t|d7} | | fS)Nz..ZIncludez patchlevel.hz6\s*#define\s+([a-zA-Z][a-zA-Z_0-9]*)\s+([a-zA-Z_0-9]+)z%s.%sZPY_MAJOR_VERSIONZPY_MINOR_VERSIONZPY_MICRO_VERSION.ZPY_RELEASE_LEVELabZrc)ZPY_RELEASE_LEVEL_ALPHAZPY_RELEASE_LEVEL_BETAZPY_RELEASE_LEVEL_GAMMAZPY_RELEASE_LEVEL_FINALZPY_RELEASE_SERIAL) ospathjoinrecompileopenmatchgroupintstr)ZsrcdirZ patchlevel_hZrxdflinemnamevaluereleaseversionmicrolevelsuffixesrD/opt/alt/python37/lib64/python3.7/Doc/tools/extensions/patchlevel.pyget_header_version_infos&     rcCsPtj\}}}}}d||f}}|d|7}|dkrH|d|d|f7}||fS)Nz%s.%sz.%sfinalz%s%sr)sys version_info)majorminorrrserialrrrrrget_sys_version_info1s  r&c CsFytdSttfk r@t\}}td|tjd||fSXdS)NrzYCan't get version info from Include/patchlevel.h, using version of this interpreter (%s).)file)rIOErrorOSErrorr&printr!stderr)rrrrrget_version_info:s r,__main__rr) __doc__Z __future__rrr r!rr&r,__name__r*rrrr s