a
    $ñ»j
;  ã                   @  sb  d dl mZ d dlZd dlZd dlmZ ddlmZmZ ddl	m
Z
 G dd„ deƒZeG d	d
„ d
ƒƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZddœdd„Zddœdd„Zdddœdd„Zd6ddd d!œd"d#„Zd7d$d$d%d$d&d'd(d$d)dd*œ
d+d,„Zed-ƒeG d.d/„ d/ƒƒƒZed0ƒeG d1d2„ d2ƒƒƒZed3ƒeG d4d5„ d5ƒƒƒZdS )8é    )ÚannotationsN)Ú	dataclassé   )Úevent_classÚT_JSON_DICT)Úioc                      sB   e Zd ZdZddœdd„Zedd dœdd„ƒZ‡ fd	d
„Z‡  ZS )ÚMemoryDumpConfigz_
    Configuration for memory dump.
    Used only when "memory-infra" category is enabled.
    Údict©Úreturnc                 C  s   | S ©N© ©Úselfr   r   ú3E:\soccer\ml_env\Lib\site-packages\mycdp/tracing.pyÚto_json   s    zMemoryDumpConfig.to_json©Újsonr   c                 C  s   | |ƒS r   r   ©Úclsr   r   r   r   Ú	from_json   s    zMemoryDumpConfig.from_jsonc                   s   d  tƒ  ¡ ¡S )NzMemoryDumpConfig({}))ÚformatÚsuperÚ__repr__r   ©Ú	__class__r   r   r      s    zMemoryDumpConfig.__repr__)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úclassmethodr   r   Ú__classcell__r   r   r   r   r      s
   r   c                   @  sœ   e Zd ZU dZded< dZded< dZded< dZded< dZded	< dZ	d
ed< dZ
d
ed< dZd
ed< dZded< ddœdd„Zedd dœdd„ƒZdS )ÚTraceConfigNútyping.Optional[str]Úrecord_modeútyping.Optional[float]Útrace_buffer_size_in_kbútyping.Optional[bool]Úenable_samplingÚenable_systraceÚenable_argument_filterz!typing.Optional[typing.List[str]]Úincluded_categoriesÚexcluded_categoriesÚsynthetic_delaysz!typing.Optional[MemoryDumpConfig]Úmemory_dump_configr   r
   c                 C  sà   t ƒ }| jd ur| j|d< | jd ur.| j|d< | jd urB| j|d< | jd urV| j|d< | jd urj| j|d< | jd urˆdd„ | jD ƒ|d< | jd ur¦d	d„ | jD ƒ|d
< | jd urÄdd„ | jD ƒ|d< | j	d urÜ| j	 
¡ |d< |S )NÚ
recordModeÚtraceBufferSizeInKbÚenableSamplingÚenableSystraceÚenableArgumentFilterc                 S  s   g | ]}|‘qS r   r   ©Ú.0Úir   r   r   Ú
<listcomp>F   ó    z'TraceConfig.to_json.<locals>.<listcomp>ÚincludedCategoriesc                 S  s   g | ]}|‘qS r   r   r4   r   r   r   r7   H   r8   ÚexcludedCategoriesc                 S  s   g | ]}|‘qS r   r   r4   r   r   r   r7   J   r8   ÚsyntheticDelaysÚmemoryDumpConfig)r	   r$   r&   r(   r)   r*   r+   r,   r-   r.   r   )r   r   r   r   r   r   9   s(    













zTraceConfig.to_jsonr   c                 C  s:  | |  dd ¡d ur t|  d¡ƒnd |  dd ¡d ur@t|  d¡ƒnd |  dd ¡d ur`t|  d¡ƒnd |  dd ¡d ur€t|  d¡ƒnd |  dd ¡d ur t|  d¡ƒnd |  dd ¡d urÄdd„ |d D ƒnd |  d	d ¡d urèd
d„ |d	 D ƒnd |  dd ¡d u�rdd„ |d D ƒnd |  dd ¡d u�r2t |  d¡¡nd d�	S )Nr/   r0   r1   r2   r3   r9   c                 S  s   g | ]}t |ƒ‘qS r   ©Ústrr4   r   r   r   r7   l   r8   z)TraceConfig.from_json.<locals>.<listcomp>r:   c                 S  s   g | ]}t |ƒ‘qS r   r=   r4   r   r   r   r7   q   r8   r;   c                 S  s   g | ]}t |ƒ‘qS r   r=   r4   r   r   r   r7   v   r8   r<   )	r$   r&   r(   r)   r*   r+   r,   r-   r.   )Úgetr>   ÚfloatÚboolr   r   r   r   r   r   r   O   s:    ÿÿÿÿÿÿÿÿÿÔzTraceConfig.from_json)r   r   r   r$   Ú__annotations__r&   r(   r)   r*   r+   r,   r-   r.   r   r    r   r   r   r   r   r"   !   s   
r"   c                   @  s:   e Zd ZdZdZdZddœdd„Zedd dœd	d
„ƒZdS )ÚStreamFormatzœ
    Data format of a trace. Can be either the legacy JSON format or the
    protocol buffer format. Note that the JSON format will be deprecated soon.
    r   Úprotor>   r
   c                 C  s   | j S r   ©Úvaluer   r   r   r   r   Š   s    zStreamFormat.to_jsonr   c                 C  s   | |ƒS r   r   r   r   r   r   r   �   s    zStreamFormat.from_jsonN)	r   r   r   r   ÚJSONÚPROTOr   r    r   r   r   r   r   rC   ‚   s   rC   c                   @  s:   e Zd ZdZdZdZddœdd„Zedd dœd	d
„ƒZdS )ÚStreamCompressionz8Compression type to use for traces returned via streams.ÚnoneÚgzipr>   r
   c                 C  s   | j S r   rE   r   r   r   r   r   —   s    zStreamCompression.to_jsonr   c                 C  s   | |ƒS r   r   r   r   r   r   r   š   s    zStreamCompression.from_jsonN)	r   r   r   r   ÚNONEZGZIPr   r    r   r   r   r   r   rI   ’   s   rI   c                   @  s>   e Zd ZdZdZdZdZddœdd„Zedd d	œd
d„ƒZ	dS )ÚMemoryDumpLevelOfDetailz›
    Details exposed when memory request explicitly declared.
    Keep consistent with memory_dump_request_args.h and
    memory_instrumentation.mojom
    Ú
backgroundZlightZdetailedr>   r
   c                 C  s   | j S r   rE   r   r   r   r   r   ©   s    zMemoryDumpLevelOfDetail.to_jsonr   c                 C  s   | |ƒS r   r   r   r   r   r   r   ¬   s    z!MemoryDumpLevelOfDetail.from_jsonN)
r   r   r   r   Z
BACKGROUNDZLIGHTZDETAILEDr   r    r   r   r   r   r   rM   Ÿ   s   rM   c                   @  s>   e Zd ZdZdZdZdZddœdd„Zedd d	œd
d„ƒZ	dS )ÚTracingBackenda‡  
    Backend type to use for tracing. ``chrome`` uses the Chrome-integrated
    tracing service and is supported on all platforms. ``system`` is only
    supported on Chrome OS and uses the Perfetto system tracing service.
    ``auto`` chooses ``system`` when the perfettoConfig provided
    to Tracing.start specifies at least one non-Chrome data source;
    otherwise uses ``chrome``.
    ÚautoÚchromeÚsystemr>   r
   c                 C  s   | j S r   rE   r   r   r   r   r   ¾   s    zTracingBackend.to_jsonr   c                 C  s   | |ƒS r   r   r   r   r   r   r   Á   s    zTracingBackend.from_jsonN)
r   r   r   r   ZAUTOZCHROMEZSYSTEMr   r    r   r   r   r   r   rO   ±   s   rO   z0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]r
   c                  c  s   ddi} | V }dS )zStop trace events collection.ÚmethodzTracing.endNr   ©Úcmd_dictr   r   r   r   ÚendÆ   s    ÿrV   z<typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[str]]c                  c  s    ddi} | V }dd„ |d D ƒS )zw
    Gets supported tracing categories.
    **EXPERIMENTAL**
    :returns: A list of supported tracing categories.
    rS   zTracing.getCategoriesc                 S  s   g | ]}t |ƒ‘qS r   r=   r4   r   r   r   r7   Ú   r8   z"get_categories.<locals>.<listcomp>Ú
categoriesr   rT   r   r   r   Úget_categoriesÎ   s    	ÿrX   r>   )Úsync_idr   c                 c  s"   t ƒ }| |d< d|dœ}|V }dS )z|
    Record a clock sync marker in the trace.
    **EXPERIMENTAL**
    :param sync_id: The ID of this clock sync marker
    ZsyncIdzTracing.recordClockSyncMarker©rS   ÚparamsN©r	   )rY   r[   rU   r   r   r   r   Úrecord_clock_sync_markerÝ   s    þr]   r'   z(typing.Optional[MemoryDumpLevelOfDetail]zCtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[str, bool]])ÚdeterministicÚlevel_of_detailr   c                 c  sV   t ƒ }| dur| |d< |dur*| ¡ |d< d|dœ}|V }t| d¡ƒt| d¡ƒfS )aÒ  
    Request a global memory dump.
    **EXPERIMENTAL**
    :param deterministic: *(Optional)*
     Enables more deterministic results by forcing garbage collection
    :param level_of_detail: *(Optional)*
     Specifies level of details in memory dump. Defaults to "detailed".
    :returns: A tuple with the following items:
        0. **dumpGuid** - GUID of the resulting global memory dump.
        1. **success** - True iff the global memory dump succeeded.
    Nr^   ZlevelOfDetailzTracing.requestMemoryDumprZ   ZdumpGuidÚsuccess)r	   r   r>   r?   rA   )r^   r_   r[   rU   r   r   r   r   Úrequest_memory_dumpî   s    þra   r#   r%   útyping.Optional[StreamFormat]ú"typing.Optional[StreamCompression]ztyping.Optional[TraceConfig]ztyping.Optional[TracingBackend])
rW   ÚoptionsÚbuffer_usage_reporting_intervalÚtransfer_modeÚstream_formatÚstream_compressionÚtrace_configÚperfetto_configÚtracing_backendr   c	                 c  sº   t ƒ }	| dur| |	d< |dur&||	d< |dur6||	d< |durF||	d< |durZ| ¡ |	d< |durn| ¡ |	d< |dur‚| ¡ |	d< |dur’||	d	< |dur¦| ¡ |	d
< d|	dœ}
|
V }dS )aA  
    Start trace events collection.
    :param categories: **(DEPRECATED)** **(EXPERIMENTAL)** *(Optional)*
     Category/tag filter
    :param options: **(DEPRECATED)** **(EXPERIMENTAL)** *(Optional)*
     Tracing options
    :param buffer_usage_reporting_interval: **(EXPERIMENTAL)** *(Optional)*
     If set, the agent will issue bufferUsage events at this interval,
     specified in milliseconds
    :param transfer_mode: *(Optional)*
     Whether to report trace events as series of dataCollected events
     or to save trace to a stream (defaults to ``ReportEvents``).
    :param stream_format: *(Optional)*
     Trace data format to use. This only applies when using ``ReturnAsStream``
     transfer mode (defaults to ``json``).
    :param stream_compression: **(EXPERIMENTAL)** *(Optional)*
     Compression format to use. This only applies when using ``ReturnAsStream``
     transfer mode (defaults to ``none``)
    :param trace_config: *(Optional)*
    :param perfetto_config: **(EXPERIMENTAL)** *(Optional)*
     Base64-encoded serialized perfetto.protos.TraceConfig protobuf message.
     When specified, the parameters `categories`, `options`, `traceConfig`
     are ignored. (Encoded as a base64 string when passed over JSON)
    :param tracing_backend: **(EXPERIMENTAL)** *(Optional)*
    Backend type (defaults to ``auto``)
    NrW   rd   ZbufferUsageReportingIntervalZtransferModeZstreamFormatÚstreamCompressionZtraceConfigZperfettoConfigZtracingBackendzTracing.startrZ   )r	   r   )rW   rd   re   rf   rg   rh   ri   rj   rk   r[   rU   r   r   r   r   Ústart
  s0    %ÿþrm   zTracing.bufferUsagec                   @  s>   e Zd ZU dZded< ded< ded< edd dœdd	„ƒZd
S )ÚBufferUsagez
    **EXPERIMENTAL**
    r%   Úpercent_fullÚevent_countrF   r   r   c                 C  sh   | |  dd ¡d ur t|  d¡ƒnd |  dd ¡d ur@t|  d¡ƒnd |  dd ¡d ur`t|  d¡ƒnd d�S )NZpercentFullZ
eventCountrF   )ro   rp   rF   )r?   r@   r   r   r   r   r   Z  s    ÿÿÿòzBufferUsage.from_jsonN©r   r   r   r   rB   r    r   r   r   r   r   rn   K  s   
rn   zTracing.dataCollectedc                   @  s.   e Zd ZU dZded< edd dœdd„ƒZdS )	ÚDataCollectedzÒ
    **EXPERIMENTAL**
    Contains a bucket of collected trace events.
    When tracing is stopped collected events will be sent as a sequence
    of dataCollected events followed by tracingComplete event.
    ztyping.List[dict]rF   r   r   c                 C  s   | dd„ |d D ƒd�S )Nc                 S  s   g | ]}t |ƒ‘qS r   r\   r4   r   r   r   r7   |  r8   z+DataCollected.from_json.<locals>.<listcomp>rF   rE   r   r   r   r   r   r   z  s    zDataCollected.from_jsonNrq   r   r   r   r   rr   o  s   
rr   zTracing.tracingCompletec                   @  sF   e Zd ZU dZded< ded< ded< ded	< ed
d dœdd„ƒZdS )ÚTracingCompletezˆ
    Signals that tracing is stopped, no trace buffers pending flush,
    and that all data was delivered via dataCollected events.
    rA   Údata_loss_occurredz typing.Optional[io.StreamHandle]Ústreamrb   Útrace_formatrc   rh   r   r   c              	   C  s|   | t | d¡ƒ| dd ¡d ur0tj | d¡¡nd | dd ¡d urRt | d¡¡nd | dd ¡d urtt | d¡¡nd d�S )NZdataLossOccurredru   ZtraceFormatrl   )rt   ru   rv   rh   )rA   r?   r   ZStreamHandler   rC   rI   r   r   r   r   r   �  s    ÿÿÿñzTracingComplete.from_jsonNrq   r   r   r   r   rs     s   
rs   )NN)	NNNNNNNNN)Ú
__future__r   ÚenumÚtypingÚdataclassesr   Úutilr   r   Ú r   r	   r   r"   ÚEnumrC   rI   rM   rO   rV   rX   r]   ra   rm   rn   rr   rs   r   r   r   r   Ú<module>   sJ   `  þ         ÷"A"