File: //lib/python3/dist-packages/twisted/python/__pycache__/usage.cpython-38.pyc
U
s�@g � @ s� d Z ddlmZ ddlmZmZ ddlZddlZddlZddlZddlm Z ddl
Z
ddlmZm
Z
ddlmZ G dd � d e�ZeZG d
d� de�ZG dd
� d
e�ZdZdZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�ZG dd� de�Z G d d!� d!e�Z!G d"d#� d#e�Z"G d$d%� d%e�Z#d.d'd(�Z$d/d)d*�Z%d+d,� Z&d-e&_'dS )0a
twisted.python.usage is a module for parsing/handling the
command line of your program.
For information on how to use it, see
U{http://twistedmatrix.com/projects/core/documentation/howto/options.html},
or doc/core/howto/options.xhtml in your Twisted directory.
� )�print_function)�division�absolute_importN)�path)�reflect�util)�_PY3c @ s e Zd ZdS )�
UsageErrorN)�__name__�
__module__�__qualname__� r
r
�6/usr/lib/python3/dist-packages/twisted/python/usage.pyr s r c @ s e Zd ZdZdd� Zdd� ZdS )�CoerceParameterzE
Utility class that can corce a parameter before storing it.
c C s || _ || _t| jdd�| _dS )zq
@param options: parent Options object
@param coerce: callable used to coerce the value.
� coerceDoc� N)�options�coerce�getattr�doc)�selfr r r
r
r �__init__) s zCoerceParameter.__init__c
C sf |dkrt d|f ��z| �|�}W n0 tk
rT } zt d|f ��W 5 d}~X Y nX || jj|<