- Drop spinner
- Drop deprecated functions
- Drop ability to import all from the package, instead user from
vistir.<module>
.
Drop backports modules vistir.compat
Bug fix
Remove Python2 support
No significant changes.
No significant changes.
No significant changes.
- Fix bug where
rmtree
fails in nonutf-8
system. #116 - Remove unsupported test runners for Python 2.7, 3.5 and 3.6
- Add test runner for Python 3.9
- remove reference to distutils
- Update
vistir
Pipfile.lock after pinningpytest
to prior working version - Remove
pytype
from the lock file as it was faiing to install - Remove
coveralls
from the CI - Remove Azure pipelines #130
vistir.compat
now includes a backport ofos.path.samefile
for use on Windows on python 2.7. #112
- Fixed an issue which caused failures when calling
contextmanagers.atomic_open_for_write
due to assumed permission to callchmod
which may not always be possible. #110 - Fixed several bugs with encoding of stream output on Windows and filesystem paths on OSX as well as Windows. #111
- Reimplemented
vistir.contextmanagers.open_file
to fall back tourllib.urlopen
in the absence ofrequests
, which is now an optional extra. #102
- Fixed a bug which caused
path_to_url
to sometimes fail to properly encode surrogates using utf-8 on windows using python 3. #100
- Added compatibility shim for
TimeoutError
exception handling. #92 - Exceptions are no longer suppressed after being handled during
vistir.misc.run
. #95 - The signal handler for
VistirSpinner
will no longer cause deadlocks whenCTRL_BREAK_EVENTS
occur on windows. #96
- Shortened windows paths will now be properly resolved to the full path by
vistir.path.normalize_path
. #90
- Corrected argument order of
icacls
command for fixing permission issues when removing paths on windows. #86 - Fixed an issue which caused color wrapping of standard streams on windows to fail to surface critical attributes. #88
- Added expanded functionality to assist with the removal of read-only paths on Windows via
icacls
system calls if necessary. #81 - Improved
fs_encode
compatibility shim invistir.compat
for handling of non-UTF8 data. #83
- Fixed a bug with
vistir.misc.echo
accidentally wrapping streams withcolorama
when it was not needed. Fixed a bug with rendering colors in text streams. #82 - Fixed
vistir.misc.to_bytes
implementation to respect supplied encoding. #83 - Blocking calls to
vistir.misc.run
will now properly handleKeyboardInterrupt
events by terminating the subprocess and returning the result. #84
- Added full native support for windows unicode consoles and the extended unicode character set when using
vistir.misc.StreamWrapper
instances viavistir.misc.get_wrapped_stream
andvistir.misc.get_text_stream
. #79
- Fixed a bug which caused test failures due to generated paths on *nix based operating systems which were too long. #65
- Fixed a bug which caused spinner output to sometimes attempt to double encode on python 2, resulting in failed output encoding. #69
- Fixed a bug with the
rmtree
error handler implementation incompat.TemporaryDirectory
which caused cleanup to fail intermittently on windows. #72 - Fixed an issue where paths could sometimes fail to be fs-encoded properly when using backported
NamedTemporaryFile
instances. #74 - Fixed a bug in
vistir.misc.locale_encoding
which caused invocation of a non-existent method calledgetlocaleencoding
which forced all systems to use default encoding ofascii
. #78
- Added a custom cursor hiding implementation to avoid depending on the cursor library, which was re-released under the GPL. #57
- Added a new
vistir.misc.StreamWrapper
class withvistir.misc.get_wrapped_stream()
to wrap existing streams andvistir.contextmanagers.replaced_stream()
to temporarily replace a stream. #48 - Added new entries in
vistir.compat
to support movements tocollections.abc
:Mapping
,Sequence
,Set
,ItemsView
. #51 - Improved
decode_for_output
to handle decoding failures gracefully by moving to anreplace
strategy. Now also allows a translation map to be provided to translate specific non-ascii characters when writing to outputs. #52 - Added support for properly encoding and decoding filesystem paths at the boundaries across python versions and platforms. #53
- Fix bug where FileNotFoundError is not imported from compat for rmtree #46
- Fixed a bug with exception handling during
_create_process
calls. #49 - Environment variables will now be properly passed through to
run
. #55
- Added the ability to always write spinner output to stderr using
write_to_stdout=False
. #40 - Added extra path normalization and comparison utilities. #42
- Remove additional text for ok and fail state #35
- Backported compatibility shims from
CPython
for improved cleanup of readonly temporary directories on cleanup. #38
- Improved handling of readonly path write-bit-setting. #32
- Fixed a bug with encoding of output streams for dummy spinner and formatting exceptions. #33
- Fixed a bug in the spinner implementation resulting in a failure to initialize colorama which could print control characters to the terminal on windows. #30
- Implemented
vistir.misc.create_tracked_tempdir
, which allows for automatically cleaning up resources using weakreferences at interpreter exit. #26
- Fixed a bug with string encodings for terminal colors when using spinners. #27
- Modified spinners to prefer to write to
sys.stderr
by default and to avoid writingNone
, fixed an issue with signal registration on Windows. #28
- Add windows compatible term colors and cursor toggles via custom spinner wrapper. #19
- Added new and improved functionality with fully integrated support for windows async non-unicode spinner. #20
vistir.contextmanager.spinner
andvistir.spin.VistirSpinner
now providewrite_err
to write to standard error from the spinner. #22- Added
vistir.path.create_tracked_tempfile
to the API for weakref-tracked temporary files. #26
- Add compatibility shim for
WindowsError
issues. #18 vistir.contextmanager.spinner
andvistir.spin.VistirSpinner
now providewrite_err
to write to standard error from the spinner. #23- Suppress
ResourceWarning
at runtime if warnings are suppressed in general. #24
- Updated
misc.run
to accept new arguments forspinner
,combine_stderr
, anddisplay_limit
. #16
- Made
yaspin
an optional dependency which can be added as an extra by usingpip install vistir[spinner]
and can be toggled withvistir.misc.run(...nospin=True)
. #12 - Added
verbose
flag tovistir.misc.run()
to provide a way to prevent printing all subprocess output. #13
- Users may now pass
block=False
to create nonblocking subprocess calls tovistir.misc.run()
.vistir.misc.run()
will now provide a spinner when passedspinner=True
. #11
vistir.misc.run()
now provides the full subprocess object without communicating with it when passedreturn_object=True
. #11
Implemented
vistir.path.ensure_mkdir_p
decorator for wrapping the output of a function call to ensure it is created as a directory.Added
vistir.path.create_tracked_tmpdir
functionality for creating a temporary directory which is tracked using anatexit
handler rather than a context manager. #7
- Use native implementation of
os.makedirs
to fix still-brokenmkdir_p
but provide additional error-handling logic. #6
- Fixed an issue which caused
mkdir_p
to use incorrect permissions and throw errors when creating intermediary paths. #6
- Added
mode
parameter tovistir.path.mkdir_p
. #5
- Added support for coverage and tox builds. #2
- Enhanced subprocess runner to reproduce the behavior of pipenv's subprocess runner. #4
- Fixed an issue where
vistir.misc.run
would fail to encode environment variables to the proper filesystem encoding on windows. #1 - Fixed encoding issues when passing commands and environments to
vistir.misc.run()
. #3
- Initial commit and release #0