
    g                      @    d Z ddlZddlZddlmZ ddlmZ ddZddZy)zEHelper functions for loading data from a Google service account file.    N)crypt)
exceptionsc                 P   t        ||ng       }|j                  | j                               }|r3t        j                  dj                  dj                  |                  |r!t        j                  j                  |       }|S t        j                  j                  |       }|S )a  Validates a dictionary containing Google service account data.

    Creates and returns a :class:`google.auth.crypt.Signer` instance from the
    private key specified in the data.

    Args:
        data (Mapping[str, str]): The service account data
        require (Sequence[str]): List of keys required to be present in the
            info.
        use_rsa_signer (Optional[bool]): Whether to use RSA signer or EC signer.
            We use RSA signer by default.

    Returns:
        google.auth.crypt.Signer: A signer created from the private key in the
            service account file.

    Raises:
        MalformedError: if the data was in the wrong format, or if one of the
            required keys is missing.
    zGService account info was not in the expected format, missing fields {}.z, )set
differencekeysr   MalformedErrorformatjoinr   	RSASignerfrom_service_account_infoES256Signer)datarequireuse_rsa_signerkeys_neededmissingsigners         ~/var/www/html/FastMealFinder_FlaskServer-InitialRelease/venv/lib/python3.12/site-packages/google/auth/_service_account_info.py	from_dictr      s    * !4g"=K$$TYY[1G''		' 23
 	
 ::4@ M ""<<TBM    c                     t        j                  | dd      5 }t        j                  |      }|t	        |||      fcddd       S # 1 sw Y   yxY w)a  Reads a Google service account JSON file and returns its parsed info.

    Args:
        filename (str): The path to the service account .json file.
        require (Sequence[str]): List of keys required to be present in the
            info.
        use_rsa_signer (Optional[bool]): Whether to use RSA signer or EC signer.
            We use RSA signer by default.

    Returns:
        Tuple[ Mapping[str, str], google.auth.crypt.Signer ]: The verified
            info and a signer instance.
    rzutf-8)encoding)r   r   N)ioopenjsonloadr   )filenamer   r   	json_filer   s        r   from_filenamer!   @   sN     
3	1 UYyy#YtW^TTU U Us   %AA)NT)__doc__r   r   google.authr   r   r   r!    r   r   <module>r%      s#    L 	   "%PUr   