diff options
Diffstat (limited to 'lib/spack/llnl/util')
-rw-r--r-- | lib/spack/llnl/util/argparsewriter.py | 5 | ||||
-rw-r--r-- | lib/spack/llnl/util/filesystem.py | 18 | ||||
-rw-r--r-- | lib/spack/llnl/util/lang.py | 16 | ||||
-rw-r--r-- | lib/spack/llnl/util/tty/__init__.py | 23 | ||||
-rw-r--r-- | lib/spack/llnl/util/tty/colify.py | 7 | ||||
-rw-r--r-- | lib/spack/llnl/util/tty/color.py | 4 | ||||
-rw-r--r-- | lib/spack/llnl/util/tty/log.py | 10 |
7 files changed, 32 insertions, 51 deletions
diff --git a/lib/spack/llnl/util/argparsewriter.py b/lib/spack/llnl/util/argparsewriter.py index a8db508c2f..ad5bf3e83d 100644 --- a/lib/spack/llnl/util/argparsewriter.py +++ b/lib/spack/llnl/util/argparsewriter.py @@ -7,11 +7,10 @@ from __future__ import print_function import argparse import errno +import io import re import sys -from six import StringIO - class Command(object): """Parsed representation of a command from argparse. @@ -181,7 +180,7 @@ class ArgparseRstWriter(ArgparseWriter): self.rst_levels = rst_levels def format(self, cmd): - string = StringIO() + string = io.StringIO() string.write(self.begin_command(cmd.prog)) if cmd.description: diff --git a/lib/spack/llnl/util/filesystem.py b/lib/spack/llnl/util/filesystem.py index 30ecc1ebc8..db83cea6fc 100644 --- a/lib/spack/llnl/util/filesystem.py +++ b/lib/spack/llnl/util/filesystem.py @@ -18,8 +18,6 @@ import tempfile from contextlib import contextmanager from sys import platform as _platform -import six - from llnl.util import tty from llnl.util.lang import dedupe, memoized from llnl.util.symlink import islink, symlink @@ -520,7 +518,7 @@ def chgrp(path, group, follow_symlinks=True): if is_windows: raise OSError("Function 'chgrp' is not supported on Windows") - if isinstance(group, six.string_types): + if isinstance(group, str): gid = grp.getgrnam(group).gr_gid else: gid = group @@ -1017,7 +1015,7 @@ def open_if_filename(str_or_file, mode="r"): If it's a file object, just yields the file object. """ - if isinstance(str_or_file, six.string_types): + if isinstance(str_or_file, str): with open(str_or_file, mode) as f: yield f else: @@ -1602,7 +1600,7 @@ def find(root, files, recursive=True): Returns: list: The files that have been found """ - if isinstance(files, six.string_types): + if isinstance(files, str): files = [files] if recursive: @@ -1666,7 +1664,7 @@ class FileList(collections.abc.Sequence): """ def __init__(self, files): - if isinstance(files, six.string_types): + if isinstance(files, str): files = [files] self.files = list(dedupe(files)) @@ -1762,7 +1760,7 @@ class HeaderList(FileList): def directories(self, value): value = value or [] # Accept a single directory as input - if isinstance(value, six.string_types): + if isinstance(value, str): value = [value] self._directories = [path_to_os_path(os.path.normpath(x))[0] for x in value] @@ -1898,7 +1896,7 @@ def find_headers(headers, root, recursive=False): Returns: HeaderList: The headers that have been found """ - if isinstance(headers, six.string_types): + if isinstance(headers, str): headers = [headers] elif not isinstance(headers, collections.abc.Sequence): message = "{0} expects a string or sequence of strings as the " @@ -2064,7 +2062,7 @@ def find_system_libraries(libraries, shared=True): Returns: LibraryList: The libraries that have been found """ - if isinstance(libraries, six.string_types): + if isinstance(libraries, str): libraries = [libraries] elif not isinstance(libraries, collections.abc.Sequence): message = "{0} expects a string or sequence of strings as the " @@ -2121,7 +2119,7 @@ def find_libraries(libraries, root, shared=True, recursive=False, runtime=True): Returns: LibraryList: The libraries that have been found """ - if isinstance(libraries, six.string_types): + if isinstance(libraries, str): libraries = [libraries] elif not isinstance(libraries, collections.abc.Sequence): message = "{0} expects a string or sequence of strings as the " diff --git a/lib/spack/llnl/util/lang.py b/lib/spack/llnl/util/lang.py index d8f3cc9b9b..6deb224d70 100644 --- a/lib/spack/llnl/util/lang.py +++ b/lib/spack/llnl/util/lang.py @@ -17,9 +17,6 @@ import traceback from datetime import datetime, timedelta from typing import Any, Callable, Iterable, List, Tuple -import six -from six import string_types - # Ignore emacs backups when listing modules ignore_modules = [r"^\.#", "~$"] @@ -200,14 +197,9 @@ def memoized(func): return ret except TypeError as e: # TypeError is raised when indexing into a dict if the key is unhashable. - raise six.raise_from( - UnhashableArguments( - "args + kwargs '{}' was not hashable for function '{}'".format( - key, func.__name__ - ), - ), - e, - ) + raise UnhashableArguments( + "args + kwargs '{}' was not hashable for function '{}'".format(key, func.__name__), + ) from e return _memoized_function @@ -574,7 +566,7 @@ def match_predicate(*args): def match(string): for arg in args: - if isinstance(arg, string_types): + if isinstance(arg, str): if re.search(arg, string): return True elif isinstance(arg, list) or isinstance(arg, tuple): diff --git a/lib/spack/llnl/util/tty/__init__.py b/lib/spack/llnl/util/tty/__init__.py index 7c86411dbe..4b289438fa 100644 --- a/lib/spack/llnl/util/tty/__init__.py +++ b/lib/spack/llnl/util/tty/__init__.py @@ -6,6 +6,7 @@ from __future__ import unicode_literals import contextlib +import io import os import struct import sys @@ -14,10 +15,6 @@ import traceback from datetime import datetime from sys import platform as _platform -import six -from six import StringIO -from six.moves import input - if _platform != "win32": import fcntl import termios @@ -183,7 +180,7 @@ def msg(message, *args, **kwargs): else: cwrite("@*b{%s==>} %s%s" % (st_text, get_timestamp(), cescape(_output_filter(message)))) for arg in args: - print(indent + _output_filter(six.text_type(arg))) + print(indent + _output_filter(str(arg))) def info(message, *args, **kwargs): @@ -201,13 +198,13 @@ def info(message, *args, **kwargs): st_text = process_stacktrace(st_countback) cprint( "@%s{%s==>} %s%s" - % (format, st_text, get_timestamp(), cescape(_output_filter(six.text_type(message)))), + % (format, st_text, get_timestamp(), cescape(_output_filter(str(message)))), stream=stream, ) for arg in args: if wrap: lines = textwrap.wrap( - _output_filter(six.text_type(arg)), + _output_filter(str(arg)), initial_indent=indent, subsequent_indent=indent, break_long_words=break_long_words, @@ -215,7 +212,7 @@ def info(message, *args, **kwargs): for line in lines: stream.write(line + "\n") else: - stream.write(indent + _output_filter(six.text_type(arg)) + "\n") + stream.write(indent + _output_filter(str(arg)) + "\n") def verbose(message, *args, **kwargs): @@ -238,7 +235,7 @@ def error(message, *args, **kwargs): kwargs.setdefault("format", "*r") kwargs.setdefault("stream", sys.stderr) - info("Error: " + six.text_type(message), *args, **kwargs) + info("Error: " + str(message), *args, **kwargs) def warn(message, *args, **kwargs): @@ -247,7 +244,7 @@ def warn(message, *args, **kwargs): kwargs.setdefault("format", "*Y") kwargs.setdefault("stream", sys.stderr) - info("Warning: " + six.text_type(message), *args, **kwargs) + info("Warning: " + str(message), *args, **kwargs) def die(message, *args, **kwargs): @@ -271,7 +268,7 @@ def get_number(prompt, **kwargs): while number is None: msg(prompt, newline=False) ans = input() - if ans == six.text_type(abort): + if ans == str(abort): return None if ans: @@ -336,11 +333,11 @@ def hline(label=None, **kwargs): cols -= 2 cols = min(max_width, cols) - label = six.text_type(label) + label = str(label) prefix = char * 2 + " " suffix = " " + (cols - len(prefix) - clen(label)) * char - out = StringIO() + out = io.StringIO() out.write(prefix) out.write(label) out.write(suffix) diff --git a/lib/spack/llnl/util/tty/colify.py b/lib/spack/llnl/util/tty/colify.py index 73c1daf0d5..4520aad38f 100644 --- a/lib/spack/llnl/util/tty/colify.py +++ b/lib/spack/llnl/util/tty/colify.py @@ -8,11 +8,10 @@ Routines for printing columnar output. See ``colify()`` for more information. """ from __future__ import division, unicode_literals +import io import os import sys -from six import StringIO, text_type - from llnl.util.tty import terminal_size from llnl.util.tty.color import cextra, clen @@ -134,7 +133,7 @@ def colify(elts, **options): ) # elts needs to be an array of strings so we can count the elements - elts = [text_type(elt) for elt in elts] + elts = [str(elt) for elt in elts] if not elts: return (0, ()) @@ -232,7 +231,7 @@ def colify_table(table, **options): def colified(elts, **options): """Invokes the ``colify()`` function but returns the result as a string instead of writing it to an output string.""" - sio = StringIO() + sio = io.StringIO() options["output"] = sio colify(elts, **options) return sio.getvalue() diff --git a/lib/spack/llnl/util/tty/color.py b/lib/spack/llnl/util/tty/color.py index ad6862fc28..83e8316914 100644 --- a/lib/spack/llnl/util/tty/color.py +++ b/lib/spack/llnl/util/tty/color.py @@ -65,8 +65,6 @@ import re import sys from contextlib import contextmanager -import six - class ColorParseError(Exception): """Raised when a color format fails to parse.""" @@ -259,7 +257,7 @@ def cescape(string): Returns: (str): the string with color codes escaped """ - string = six.text_type(string) + string = str(string) string = string.replace("@", "@@") string = string.replace("}", "}}") return string diff --git a/lib/spack/llnl/util/tty/log.py b/lib/spack/llnl/util/tty/log.py index 2d6609c390..0b79dd01ac 100644 --- a/lib/spack/llnl/util/tty/log.py +++ b/lib/spack/llnl/util/tty/log.py @@ -24,8 +24,6 @@ from threading import Thread from types import ModuleType # novm from typing import Optional # novm -from six import StringIO, string_types - import llnl.util.tty as tty termios = None # type: Optional[ModuleType] @@ -308,7 +306,7 @@ class FileWrapper(object): self.file_like = file_like - if isinstance(file_like, string_types): + if isinstance(file_like, str): self.open = True elif _file_descriptors_work(file_like): self.open = False @@ -324,7 +322,7 @@ class FileWrapper(object): if self.file_like: self.file = open(self.file_like, "w", encoding="utf-8") else: - self.file = StringIO() + self.file = io.StringIO() return self.file else: # We were handed an already-open file object. In this case we also @@ -787,7 +785,7 @@ class winlog(object): raise RuntimeError("file argument must be set by __init__ ") # Open both write and reading on logfile - if type(self.logfile) == StringIO: + if type(self.logfile) == io.StringIO: self._ioflag = True # cannot have two streams on tempfile, so we must make our own sys.stdout = self.logfile @@ -1013,7 +1011,7 @@ def _writer_daemon( finally: # send written data back to parent if we used a StringIO - if isinstance(log_file, StringIO): + if isinstance(log_file, io.StringIO): control_pipe.send(log_file.getvalue()) log_file_wrapper.close() close_connection_and_file(read_multiprocess_fd, in_pipe) |