← Back
Editing: util.cpython-38.pyc
U ��W[m � @ s� d dl mZmZmZ d dlZd dlZd dlZd dlZzd dlZd dl Z W n e k rd d ZZ Y nX zd dlmZmZ W n e k r� d ZZY nX d dl mZmZ d dlmZ d dlmZ d dlmZmZ d dlmZ eed d dd �dd d� eG dd� d��Zdd� ZdSdd�Zdd� Zdd� Zdd� Zdd� ZdTd d!�Z d"d#� Z!d$d%� Z"dUd)d*�Z#d+d,� Z$g g fd-d.�Z%eG d/d0� d0��Z&d1d2� Z'G d3d4� d4e(�Z)G d5d6� d6e(�Z*eG d7d8� d8��Z+eG d9d:� d:��Z,zd d;lm-Z. W n e k �r� dZ.Y nX e.dk�rd<d=� Z-nd>d=� Z-dVd@dA�Z/G dBdC� dCe(�Z0dDdE� Z1dFdG� Z2dHdI� Z3dJdK� Z4dLdM� Z5dNdO� Z6dPdQ� Z7dddddd!d#d*ddd,d.d0d2d4d8d:dAdCdGdIdKdMdOdEdQdRgZ8e�r�dCd*gZ9e8dd� D ]"Z:e:e9k�r�e8�;e:� e<� e:= �q�[:[9dS )W� )�division�absolute_import�print_functionN)� setgroups� getgroups)�_PY3�unicode)�Version)�deprecatedModuleAttribute)� _oldStyle� _replaceIf)�OrderedDictZTwisted� � z$Use collections.OrderedDict instead.ztwisted.python.utilr c @ s� e Zd ZdZd0dd�Zdd� Zdd � Zd d� Zdd � Zdd� Z e Z dd� Zdd� Zdd� Z dd� Zd1dd�Zdd� Zdd� Zdd� Zd d!� Zd"d#� Zd$d%� Zd&d'� Zd(d)� Zd*d+� Zd,d-� Zd.d/� ZdS )2�InsensitiveDicta Dictionary, that has case-insensitive keys. Normally keys are retained in their original form when queried with .keys() or .items(). If initialized with preserveCase=0, keys are both looked up in lowercase and returned in lowercase by .keys() and .items(). N� c C s i | _ || _|r| �|� dS )zD Create an empty dictionary, or update from 'dict'. N)�data�preserve�update)�self�dictr � r �5/usr/lib/python3/dist-packages/twisted/python/util.py�__init__0 s zInsensitiveDict.__init__c C s | � |�}| j|= d S �N��_lowerOrReturnr �r �key�kr r r �__delitem__: s zInsensitiveDict.__delitem__c C s$ t |t�st |t�r|�� S |S d S r )� isinstance�bytesr �lower�r r r r r r ? s zInsensitiveDict._lowerOrReturnc C s | � |�}| j| d S )zI Retrieve the value associated with 'key' (in any case). r r r r r r �__getitem__F s zInsensitiveDict.__getitem__c C s | � |�}||f| j|<