�
QKfE � � � d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dl m Z
d dl mZ d dlm
Z
d dlmZmZmZ d dlmZ d dlmZmZmZmZmZ d dlZd dlZ ej8 � G d � d
e� Z G d� d� Zd
� Z d� Z!d.d�Z"d� Z#d/d�Z$d� Z%d� Z&d� Z'd� Z(d� Z)d� Z* G d� de� Z+d.d�Z,d.d�Z-d� Z.d� Z/d� Z0d� Z1d.d �Z2d!� Z3d.d"�Z4d.d#�Z5d$� Z6d%� Z7d&� Z8d'� Z9d(� Z:d)� Z;d*� Z<e=d+k( r e6dd,d-� yy)0� N)�copy)�gettext)�ngettext)�ceil)�S_IMODE�S_IXUSR�ST_MODE)�urlsplit)�ProxyHandler�Request�build_opener�install_opener�urlopenc �$ � e Zd ZdZdd�Zd� Zd� Zy)�
ExecutionTimez�
Helper that can be used in with statements to have a simple
measure of the timing of a particular block of code, e.g.
with ExecutionTime("db flush"):
db.flush()
c � � || _ y �N)�info)�selfr s �3/usr/lib/python3/dist-packages/DistUpgrade/utils.py�__init__zExecutionTime.__init__< |