
    	]j                        d Z ddlZddlmZmZmZ ddlZddlmZmZm	Z	m
Z
 	 ddlmZ ej                  ej                  ej                   ej                   ej"                  ej"                  ej$                  ej$                  ej&                  ej&                  ej(                  ej*                  iZdZ	 d	Zd
diZd ZddZd Zd Zy# e$ r  G d de      ZY w xY w)zCommon logging helpers.    N)datetime	timedeltatimezone)LogEntryProtobufEntryStructEntry	TextEntry)LogSeverityc                   4    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
Zy)r
   z#Map severities for non-GAPIC usage.r   d      i,  i  i  iX  i  i   N)__name__
__module____qualname____doc__DEFAULTDEBUGINFONOTICEWARNINGERRORCRITICALALERT	EMERGENCY     J/root/env/lib/python3.12/site-packages/google/cloud/logging_v2/_helpers.pyr
   r
   !   s2    1	r   r
   z%Y-%m-%dT%H:%M:%S.%f%zz4http://metadata.google.internal./computeMetadata/v1/zMetadata-FlavorGooglec                     d| v rt        j                  | ||      S d| v rt        j                  | ||      S d| v rt        j                  | ||      S t	        j                  | ||      S )a*  Detect correct entry type from resource and instantiate.

    Args:
        resource (dict): One entry resource from API response.
        client (~logging_v2.client.Client):
            Client that owns the log entry.
        loggers (dict):
            A mapping of logger fullnames -> loggers.  If the logger
            that owns the entry is not in ``loggers``, the entry
            will have a newly-created logger.

    Returns:
        google.cloud.logging_v2.entries._BaseEntry:
            The entry instance, constructed via the resource
    textPayload)loggersjsonPayloadprotoPayload)r	   from_api_reprr   r   r   )resourceclientr!   s      r   entry_from_resourcer'   ?   sp       &&xII ((67KK!**8VWMM!!(FGDDr   c                     t         | z   }	 t        j                  |t        |      }|j                  t        j
                  j                  k(  r|j                  S 	 y# t        j                  j                  $ r Y yw xY w)a  Retrieve the metadata key in the metadata server.

    See: https://cloud.google.com/compute/docs/storing-retrieving-metadata

    Args:
        metadata_key (str):
            Key of the metadata which will form the url. You can
            also supply query parameters after the metadata key.
            e.g. "tags?alt=json"
        timeout (number): number of seconds to wait for the HTTP request

    Returns:
        str: The value of the metadata key returned by the metadata server.
    )headerstimeoutN)
METADATA_URLrequestsgetMETADATA_HEADERSstatus_codecodesoktext
exceptionsRequestException)metadata_keyr*   urlresponses       r   retrieve_metadata_serverr8   [   sw     
%C	<<-=wO8>>#4#44==  5  //  	s   AA A<;A<c                 .    t         j                  | |       S )zNormalize a Python stdlib severity to LogSeverity enum.

    Args:
        stdlib_level (int): 'levelno' from a :class:`logging.LogRecord`

    Returns:
        int: Corresponding Stackdriver severity.
    )_NORMALIZED_SEVERITIESr-   )stdlib_levels    r   _normalize_severityr<   z   s     "%%lLAAr   c                     t        j                  t        j                        t	        d      z
  }d|j                  t               d}| |} | S d| j                         vr|  d| } | S )zModify the input filter expression to add sensible defaults.

    Args:
        filter_ (str): The original filter expression

    Returns:
        str: sensible default filter string
       )daysztimestamp>=""	timestampz AND )r   nowr   utcr   strftime_TIME_FORMATlower)filter_	yesterdaytime_filters      r   _add_defaults_to_filterrJ      sp     X\\*YA->>I !3!3L!A B!DK N 
GMMO	+IU;-0Nr   )   )r   loggingr   r   r   r,   google.cloud.logging_v2.entriesr   r   r   r	   google.cloud.logging_v2.typesr
   ImportErrorobjectr   r   r   r   r   NOTSETr   r:   rE   r+   r.   r'   r8   r<   rJ   r   r   r   <module>rR      s      2 2  9$ k**MM;$$OO[((LL+""MM;$$NNK''  ( ,E%x0 E8>	BO  f s   C CC