U
    "FZhG                     @   s   d Z dZddlmZ ddlZddlZG dd deZejZdZ	dZ
dZd	ZeZe	Ze
ZeZeZd
ZdaG dd deZdd Zdd ZdS )zProtobuf Runtime versions and validators.

It should only be accessed by Protobuf gencodes and tests. DO NOT USE it
elsewhere.
zshaod@google.com (Dennis Shao)    )EnumNc                   @   s   e Zd ZdZdZdS )Domain      N)__name__
__module____qualname__ZGOOGLE_INTERNALPUBLIC r
   r
   f/home/aprabhat/apps/x.techxrdev.in/venv/lib/python3.8/site-packages/google/protobuf/runtime_version.pyr      s   r             c                   @   s   e Zd ZdZdS )VersionErrorz&Exception class for version violation.N)r   r   r   __doc__r
   r
   r
   r   r   -   s   r   c                 C   s   t | d S )N)r   )msgr
   r
   r   _ReportVersionError1   s    r   c           
   	   C   sj  t d}|dk	r"| dkr"dS t dt dt t }| d| d| | }|dk sj|dk sj|dk rxtd| d}	| tkrt	d| d	| j
 d
tj
 d |tkr|td krttk rtd|||f  td7 an t	d| d	| d
| d|	  t|k st|kr<t|k r<t	d| d	| d
| d|	  |tkrft	d| d	| d
| d|	  dS )a  Function to validate versions.

  Args:
    gen_domain: The domain where the code was generated from.
    gen_major: The major version number of the gencode.
    gen_minor: The minor version number of the gencode.
    gen_patch: The patch version number of the gencode.
    gen_suffix: The version suffix e.g. '-dev', '-rc1' of the gencode.
    location: The proto location that causes the version violation.

  Raises:
    VersionError: if gencode version is invalid or incompatible with the
    runtime.
  Z*TEMPORARILY_DISABLE_PROTOBUF_VERSION_CHECKNtrue.r   zInvalid gencode version: z`See Protobuf version guarantees at https://protobuf.dev/support/cross-version-runtime-guarantee.zBDetected mismatched Protobuf Gencode/Runtime domains when loading z
: gencode z	 runtime z2. Cross-domain usage of Protobuf is not supported.r   zProtobuf gencode version %s is exactly one major version older than the runtime version %s at %s. Please update the gencode to avoid compatibility violations in the next runtime release.zIDetected mismatched Protobuf Gencode/Runtime major versions when loading z". Same major version is required. zEDetected incompatible Protobuf Gencode/Runtime versions when loading zC. Runtime version cannot be older than the linked gencode version. zKDetected mismatched Protobuf Gencode/Runtime version suffixes when loading z%. Version suffixes must be the same. )osgetenvlowerMAJORMINORPATCHSUFFIXr   DOMAINr   name_warning_count_MAX_WARNING_COUNTwarningswarn)
Z
gen_domainZ	gen_majorZ	gen_minorZ	gen_patchZ
gen_suffixlocationZdisable_flagversionZgen_versionerror_promptr
   r
   r   ValidateProtobufRuntimeVersion5   sB    


r&   )r   
__author__enumr   r   r!   r   r	   Z
OSS_DOMAINZ	OSS_MAJORZ	OSS_MINORZ	OSS_PATCHZ
OSS_SUFFIXr   r   r   r   r   r    r   	Exceptionr   r   r&   r
   r
   r
   r   <module>   s(   