File: //opt/saltstack/salt/lib/python3.10/site-packages/tornado/__pycache__/util.cpython-310.pyc
o
;j�= � @ sB d Z ddlZddlZddlmZ ddlZddlZddlZddlZddlm Z m
Z
mZmZm
Z
mZmZmZmZmZ ejrOddlZddlmZ ddlmZ ddlZeZeZeZejZG dd� deee f �ZG d d
� d
�Z dede fd
d�Z! d4de deee f de
e
eee f ddfdd�Z"dee
e# e
e$ e
d f dej%fdd�Z&de$de
e' fdd�Z(e)d�Z*dee defdd�Z+e�,dej-�Z.d edefd!d"�Z/G d#d$� d$�Z0G d%d&� d&�Z1d'd(� Z2d)ed*edefd+d,�Z3ej4�5d-�s�ej4�5d.�d/kr�e3Z6nzdd0l7m8Z6 W n e9�y ej4�5d.�d1k�r� e3Z6Y nw d2d3� Z:dS )5a� Miscellaneous utility functions and classes.
This module is used internally by Tornado. It is not necessarily expected
that the functions and classes defined here will be useful to other
applications, but they are documented here in case they are.
The one public-facing part of this module is the `Configurable` class
and its `~Configurable.configure` method, which becomes a part of the
interface of its subclasses, including `.AsyncHTTPClient`, `.IOLoop`,
and `.Resolver`.
� N)�getfullargspec)
�Any�Optional�Dict�Mapping�List�Tuple�Match�Callable�Type�Sequence)�
TracebackType)�Unionc @ s8 e Zd ZdZdedefdd�Zdededdfdd �ZdS )
�
ObjectDictzFMakes a dictionary behave like an object, with attribute-style access.�name�returnc C s"