# Path: ephypype/externals/click/_compat.py
# PY2 = sys.version_info[0] == 2
# CYGWIN = sys.platform.startswith('cygwin')
# APP_ENGINE = ('APPENGINE_RUNTIME' in os.environ and
#               'Development/' in os.environ['SERVER_SOFTWARE'])
# WIN = sys.platform.startswith('win') and not APP_ENGINE
# DEFAULT_COLUMNS = 80
#     DEFAULT_COLUMNS = 79
# def get_filesystem_encoding():
# def _make_text_stream(stream, encoding, errors,
#                       force_readable=False, force_writable=False):
# def is_ascii_encoding(encoding):
# def get_best_encoding(stream):
#     def __init__(self, stream, encoding, errors,
#                  force_readable=False, force_writable=False, **extra):
#         def write(self, x):
#         def writelines(self, lines):
#     def __del__(self):
#     def isatty(self):
#     def __init__(self, stream, force_readable=False, force_writable=False):
#     def __getattr__(self, name):
#     def read1(self, size):
#     def readable(self):
#     def writable(self):
#     def seekable(self):
#     def is_bytes(x):
#     def set_binary_mode(f):
#         def set_binary_mode(f):
#         def set_binary_mode(f):
#     def isidentifier(x):
#     def get_binary_stdin():
#     def get_binary_stdout():
#     def get_binary_stderr():
#     def get_text_stdin(encoding=None, errors=None):
#     def get_text_stdout(encoding=None, errors=None):
#     def get_text_stderr(encoding=None, errors=None):
#     def filename_to_ui(value):
#     def is_bytes(x):
#     def _is_binary_reader(stream, default=False):
#     def _is_binary_writer(stream, default=False):
#     def _find_binary_reader(stream):
#     def _find_binary_writer(stream):
#     def _stream_is_misconfigured(stream):
#     def _is_compatible_text_stream(stream, encoding, errors):
#     def _force_correct_text_reader(text_reader, encoding, errors,
#                                    force_readable=False):
#     def _force_correct_text_writer(text_writer, encoding, errors,
#                                    force_writable=False):
#     def get_binary_stdin():
#     def get_binary_stdout():
#     def get_binary_stderr():
#     def get_text_stdin(encoding=None, errors=None):
#     def get_text_stdout(encoding=None, errors=None):
#     def get_text_stderr(encoding=None, errors=None):
#     def filename_to_ui(value):
# def get_streerror(e, default=None):
# def open_stream(filename, mode='r', encoding=None, errors='strict',
#                 atomic=False):
#     def __init__(self, f, tmp_filename, real_filename):
#     def name(self):
#     def close(self, delete=False):
#     def __getattr__(self, name):
#     def __enter__(self):
#     def __exit__(self, exc_type, exc_value, tb):
#     def __repr__(self):
# def strip_ansi(value):
# def should_strip_ansi(stream=None, color=None):
#     def _get_argv_encoding():
#         def raw_input(prompt=''):
#         def auto_wrap_for_ansi(stream, color=None):
#             def _safe_write(s):
#         def get_winterm_size():
#     def _get_argv_encoding():
# def term_len(x):
# def isatty(stream):
# def _make_cached_stream_func(src_func, wrapper_func):
#     def func():
# class _NonClosingTextIOWrapper(io.TextIOWrapper):
# class _FixupStream(object):
# class _AtomicFile(object):


import os
import sys
import time
import math
import contextlib
    import tempfile
    import subprocess
    import tempfile
        import subprocess
        import tempfile
    import subprocess
            import urllib
            import urllib
            import webbrowser
    import msvcrt
    import tty
    import termios
from ._compat import _default_text_stdout, range_type, PY2, isatty, \
     open_stream, strip_ansi, term_len, get_best_encoding, WIN, int_types, \
     CYGWIN
from .utils import echo
from .exceptions import ClickException
        from .termui import get_terminal_size
    import time of Click down, some infrequently used functionality is placed
    in this module and only imported as needed.

    :copyright: (c) 2014 by Armin Ronacher.
    :license: BSD, see LICENSE for more details.
"""


if os.name == 'nt':
    BEFORE_BAR = '\r'
    AFTER_BAR = '\n'
else:
    BEFORE_BAR = '\r\033[?25l'
    AFTER_BAR = '\033[?25h\n'


def _length_hint(obj):
    """Returns the length hint of an object."""
    try:
        return len(obj)
    except (AttributeError, TypeError):
        try:
            get_hint = type(obj).__length_hint__
        except AttributeError:
            return None
        try:
            hint = get_hint(obj)
        except TypeError:
            return None
        if hint is NotImplemented or \

# Path: ephypype/externals/click/_compat.py
# PY2 = sys.version_info[0] == 2
# CYGWIN = sys.platform.startswith('cygwin')
# APP_ENGINE = ('APPENGINE_RUNTIME' in os.environ and
#               'Development/' in os.environ['SERVER_SOFTWARE'])
# WIN = sys.platform.startswith('win') and not APP_ENGINE
# DEFAULT_COLUMNS = 80
#     DEFAULT_COLUMNS = 79
# def get_filesystem_encoding():
# def _make_text_stream(stream, encoding, errors,
#                       force_readable=False, force_writable=False):
# def is_ascii_encoding(encoding):
# def get_best_encoding(stream):
#     def __init__(self, stream, encoding, errors,
#                  force_readable=False, force_writable=False, **extra):
#         def write(self, x):
#         def writelines(self, lines):
#     def __del__(self):
#     def isatty(self):
#     def __init__(self, stream, force_readable=False, force_writable=False):
#     def __getattr__(self, name):
#     def read1(self, size):
#     def readable(self):
#     def writable(self):
#     def seekable(self):
#     def is_bytes(x):
#     def set_binary_mode(f):
#         def set_binary_mode(f):
#         def set_binary_mode(f):
#     def isidentifier(x):
#     def get_binary_stdin():
#     def get_binary_stdout():
#     def get_binary_stderr():
#     def get_text_stdin(encoding=None, errors=None):
#     def get_text_stdout(encoding=None, errors=None):
#     def get_text_stderr(encoding=None, errors=None):
#     def filename_to_ui(value):
#     def is_bytes(x):
#     def _is_binary_reader(stream, default=False):
#     def _is_binary_writer(stream, default=False):
#     def _find_binary_reader(stream):
#     def _find_binary_writer(stream):
#     def _stream_is_misconfigured(stream):
#     def _is_compatible_text_stream(stream, encoding, errors):
#     def _force_correct_text_reader(text_reader, encoding, errors,
#                                    force_readable=False):
#     def _force_correct_text_writer(text_writer, encoding, errors,
#                                    force_writable=False):
#     def get_binary_stdin():
#     def get_binary_stdout():
#     def get_binary_stderr():
#     def get_text_stdin(encoding=None, errors=None):
#     def get_text_stdout(encoding=None, errors=None):
#     def get_text_stderr(encoding=None, errors=None):
#     def filename_to_ui(value):
# def get_streerror(e, default=None):
# def open_stream(filename, mode='r', encoding=None, errors='strict',
#                 atomic=False):
#     def __init__(self, f, tmp_filename, real_filename):
#     def name(self):
#     def close(self, delete=False):
#     def __getattr__(self, name):
#     def __enter__(self):
#     def __exit__(self, exc_type, exc_value, tb):
#     def __repr__(self):
# def strip_ansi(value):
# def should_strip_ansi(stream=None, color=None):
#     def _get_argv_encoding():
#         def raw_input(prompt=''):
#         def auto_wrap_for_ansi(stream, color=None):
#             def _safe_write(s):
#         def get_winterm_size():
#     def _get_argv_encoding():
# def term_len(x):
# def isatty(stream):
# def _make_cached_stream_func(src_func, wrapper_func):
#     def func():
# class _NonClosingTextIOWrapper(io.TextIOWrapper):
# class _FixupStream(object):
# class _AtomicFile(object):


# Path: ephypype/externals/click/_termui_impl.py
import os
import sys
import time
import math
import contextlib
    import tempfile
    import subprocess
    import tempfile
        import subprocess
        import tempfile
    import subprocess
            import urllib
            import urllib
            import webbrowser
    import msvcrt
    import tty
    import termios
from ._compat import _default_text_stdout, range_type, PY2, isatty, \
     open_stream, strip_ansi, term_len, get_best_encoding, WIN, int_types, \
     CYGWIN
from .utils import echo
from .exceptions import ClickException
        from .termui import get_terminal_size

    import time of Click down, some infrequently used functionality is placed
    in this module and only imported as needed.

    :copyright: (c) 2014 by Armin Ronacher.
    :license: BSD, see LICENSE for more details.
"""


if os.name == 'nt':
    BEFORE_BAR = '\r'
    AFTER_BAR = '\n'
else:
    BEFORE_BAR = '\r\033[?25l'
    AFTER_BAR = '\033[?25h\n'


def _length_hint(obj):
    """Returns the length hint of an object."""
    try:
        return len(obj)
    except (AttributeError, TypeError):
        try:
            get_hint = type(obj).__length_hint__
        except AttributeError:
            return None
        try:
            hint = get_hint(obj)
        except TypeError:
            return None
        if hint is NotImplemented or \

           not isinstance(hint, int_types) or \