File: //lib/python3/dist-packages/DistUpgrade/__pycache__/utils.cpython-38.pyc
U
�f�c�G � @ s2 d dl mZ d dlmZ d dlmZ d dlmZmZmZ d dl m
Z
d dlZd dlZe�
� d dlZd dlZd dlZd dlZd dlZd dlZd dlZz,d dlmZmZmZmZmZ d dlmZ W n< ek
r� d dlmZmZmZmZmZ d dlmZ Y nX d d l m Z G d
d� de!�Z"dd
� Z#dd� Z$dKdd�Z%dd� Z&dLdd�Z'dd� Z(dd� Z)dd� Z*dd� Z+d d!� Z,d"d#� Z-G d$d%� d%e�Z.dMd&d'�Z/dNd(d)�Z0d*d+� Z1d,d-� Z2d.d/� Z3d0d1� Z4dOd2d3�Z5d4d5� Z6dPd6d7�Z7dQd8d9�Z8d:d;� Z9d<d=� Z:d>d?� Z;d@dA� Z<dBdC� Z=dDdE� Z>dFdG� Z?e@dHk�r.e9ddIdJ� dS )R� )�print_function)�gettext)�ngettext)�S_IMODE�ST_MODE�S_IXUSR)�ceilN)�ProxyHandler�Request�build_opener�install_opener�urlopen)�urlsplit)�copyc @ s* e Zd ZdZd
dd�Zdd� Zdd� Zd S )�
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 C s
|| _ d S �N)�info)�selfr � r �3/usr/lib/python3/dist-packages/DistUpgrade/utils.py�__init__G s zExecutionTime.__init__c C s t � � | _d S r )�time�now�r r r r � __enter__J s zExecutionTime.__enter__c C s t d| jt�� | j f � d S )Nz%s: %s)�printr r r )r �type�value�stackr r r �__exit__M s zExecutionTime.__exit__N)r )�__name__�
__module__�__qualname__�__doc__r r r r r r r r @ s
r c C sJ t | �}t|j�}|jr*|j�|jd�|_|jrB|j�|jd�|_t|�S )Nzhidden-uzhidden-p)r r �uriZusername�replaceZpassword�str)�entryZtmpZ url_partsr r r �)get_string_with_no_auth_from_source_entryQ s
r) c C sF d} zddl }|�� }|�d�} W n tk
r@ t�d� Y nX | S )z+ return True if Unity is currently running Fr Nzcom.canonical.Unityz&could not check for Unity dbus service)�dbusZ
SessionBusZname_has_owner� Exception�logging� exception)Z
unity_runningr* �busr r r �is_unity_running[ s r/ c C s| |st �� }|dkrxd| }t|��}|�� }W 5 Q R X |�d�d �d�d }|| kr\dS t|�d�d �� d �}qdS ) Nr z
/proc/%s/stat�(� �)T� F)�os�getpid�open�read� partition�
rpartition�int�split)Zprocessname�pidZ stat_fileZstat_f�statZcommandr r r �is_child_of_process_nameg s
r>