File manager - Edit - /opt/gsutil/gslib/__pycache__/command.cpython-39.pyc
Back
a +(WgN� � @ sj d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlZddlmZ ddl Z ddl Z ddlZddlZddl Z ddlZddlZddlZddlZddlZddlZddlZddlmZ ddlZdd lmZ dd lmZ ddlmZ ddlmZ dd lmZ ddlm Z ddl!m"Z" ddl#m$Z$ ddl%m&Z& ddl%m'Z' ddl(m)Z) ddl(m*Z* ddl(m+Z+ ddl(m,Z, ddl(m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl2m4Z4 ddl2m5Z5 ddl2m6Z6 ddl2m7Z7 ddl8m9Z9 dd l8m:Z: dd!l8m;Z; dd"l8m<Z< dd#l8m=Z= dd$l>m?Z@ dd%lAmBZB dd&lAmCZC dd'lAmDZD dd(lAmEZE dd)lFmGZG dd*lFmHZH dd+lFmIZI dd,lJmKZK dd-lJmLZL dd.lMmNZN dd/lMmOZO ddlPZdd0lPmQZQ dd1lPmRZR dd2lPmSZS dd3lPmTZT dd4lPmUZU dd5lPmVZV dd6lPmWZW dd7lPmXZX dd8lPmYZY dd9lZm[Z[ dd:l\m]Z] dd;l^m_Z_ dd<l^m`Z` dd=lambZb dd>lamcZc dd?lamdZd dd@lemfZf ddAlgmhZi zddBljmkZl W n em�y� dZlY n0 dCZndDZodEdF� ZpdGdH� ZqdIdJ� ZrdKdL� Zsd�dMdN�ZtdOdP� Zug ZvdQdR� ZwdSdT� ZxdUdV� ZydWZzdXZ{dYdZ� Z|dCZ}d[d\gd[d]gd[d^gd_d]gd_d^gd`d\gd`d]gd`d^gg da�g db�dcd]gddd]gddd^gded]gded^gdf�Z~dgdh� Zdidj� Z�dkdl� Z�edmg dn��Z�G dodp� dpe$e]�Z�G dqdr� dre��Z�G dsdt� dtedtdu��Z�dvdw� Z�G dxdy� dyej��Z�G dzd{� d{e��Z�G d|d}� d}ej��Z�G d~d� de��Z�d�d�� Z�G d�d�� d�e��Z�d�d�� Z�d�d�� Z�d�d�� Z�d�d�� Z�d�d�� Z�d�d�� Z�d�d�� Z�d�d�� Z�dS )�ax Base class for gsutil commands. In addition to base class code, this file contains helpers that depend on base class state (such as GetAndPrintAcl) In general, functions that depend on class state and that are used by multiple commands belong in this file. Functions that don't depend on class state belong in util.py, and non-shared helpers belong in individual subclasses. � )�absolute_import)�print_function)�division)�unicode_literalsN)� namedtuple)� StorageUri)�AccessDeniedException)�ArgumentException)�ServiceException)�CloudApiDelegator)�ApiSelector)�GsutilApiMapFactory)�CommandException)�HelpProvider)�CaptureThreadStatException)�LogPerformanceSummaryParams)�CopyObjectInfo)�CopyObjectsIterator)�NameExpansionIterator)�NameExpansionResult)�SeekAheadNameExpansionIterator)�PluralityCheckableIterator)�SeekAheadThread)�ChildProcessSignalHandler)�GetCaughtSignals)�KillProcess)�MultithreadedMainSignalHandler)�RegisterSignalHandler)�HaveFileUrls)�HaveProviderUrls)�StorageUrlFromString)�UrlsAreForSingleProvider)�UrlsAreMixOfBucketsAndObjects)�storage_v1_messages)�FinalMessage)�MetadataMessage)�PerformanceSummaryMessage)�ProducerThreadMessage)�MainThreadUIQueue)�UIController)�UIThread)�GetFriendlyConfigFilePaths)�!GetMaxConcurrentCompressedUploads)�NO_MAX)�UTF8)� AtomicDict)�$CheckMultiprocessingAvailableAndInit)�multiprocessing_context)�ProcessAndThreadSafeInt)�PutToQueueWithTimeout)�SEEK_AHEAD_JOIN_TIMEOUT)�ShouldProhibitMultiprocessing)�UI_THREAD_JOIN_TIMEOUT)�ZERO_TASKS_TO_DO_ARGUMENT)�RsyncDiffToApply)�GcloudStorageCommandMixin)�GetTermLines)� IS_WINDOWS)�AclTranslation)�GetNonMetadataHeaders)�PRIVATE_DEFAULT_OBJ_ACL)�CreateWildcardIterator)�queue)�Random� i� c C sJ t �| �}|jsFd|_|�t jj� t �� }|�t � d�� |� |� |S )a� Fetches a logger with the given name that resembles 'print' output. Initial Logger Configuration: The logger abides by gsutil -d/-D/-DD/-q options. If none of those options were specified at invocation, the returned logger will display all messages logged with level INFO or above. Log propagation is disabled. If a logger with the specified name has already been created and configured, it is not reconfigured, e.g.: foo = CreateOrGetGsutilLogger('foo') # Creates and configures Logger "foo". foo.setLevel(logging.DEBUG) # Change level from INFO to DEBUG foo = CreateOrGetGsutilLogger('foo') # Does not reset level to INFO. Args: command_name: (str) Command name to create logger for. Returns: A logging.Logger object. Fz%(message)s)�logging� getLogger�handlers� propagate�setLevel�root�level� StreamHandler�setFormatter� Formatter� addHandler)�command_name�logZlog_handler� rP �/opt/gsutil/gslib/command.py�CreateOrGetGsutilLoggert s rR c C s | j �|� d S �N)�logger� exception��cls�erP rP rQ �_DefaultExceptionHandler� s rY c C s<