* feat: better stacktraces
* reraise SystemExit to enable proper exit codes and maintain old
behaviour in repl
* dont ignore exceptions when loading rc-files
* update tests with new SyntaxError formatting, new behavior that main
does not throw user exceptions
* pull return out of finally (flake8, B012)
* hide XonshError traces, fix mypy error, enable circumvention of trace suppression
with XONSH_DEBUG in non-interactive use
* fix mypy error
Co-authored-by: Alexander Firbas <alexander.firbas@gmail.com>
* fix: pip -r appends spaces at the end
modularize completing output from subproc-out
* docs:
* fix: flake8
* fix: failing pip comp tests
* refactor: naming xonsh conflicts with actual package
the IDE completions don't work.
we add this naming convention instead.
* feat: option to filter after completion returned
this will help reduce some boilerplate, and we can enrich the filtering
behaviour
* feat: add gh completions
* fix: filtering out completions
* refactor: simplify invoking completer interface
* test: add fixture for xsh with os-env
* test: add tests for gh-completions
* fix: flake error
* fix: mypy errors and update gh completer tests
* fix: handle cross-platform line endings
* feat: include man,bash completer only if available
* todo: improve man page completions
* fix: failing man page tests
* fix: py 3.7 compatibility
* fix: qa error
* fix: stop dir completions
* feat: improve man page completions
now shows descriptions, recognizes more number of options correctly
* fix: update man page completions
* feat: support filtering based on display as well
* Update xonsh/completer.py
Co-authored-by: Gil Forsyth <gforsyth@users.noreply.github.com>
* style:
* test: xfail ptk-shell tests on windows
Co-authored-by: Gil Forsyth <gforsyth@users.noreply.github.com>
* Add uname support
* Changelog addition
* Migration to platform module
* Update uptime.py for the last version
Merge the original uptime module to a single file
Change the bootime() return be stay compatible with xonsh
Add support for Haiku , suppose to close#3882
Add dependency from uptime to support to MacOS 10.10 by add _posix.c file.
* Update uptime.py for the last version
Merge the original uptime module to a single file
Change the bootime() return be stay compatible with xonsh
Add support for Haiku , suppose to close#3882
Add dependency from uptime to support to MacOS 10.10 by add _posix.c file.
* typo fix
* black reformat
* remove usage of print
* black is black
* add original test for uptime
convert original test via 2to3
black reformat tests
* strange syntaxe fixe for flaske8
* black the incredible tool it stop a bug fixe just because it THE tool it want a return for make less readable code
* flake8 the famous tool it permit to stop a big fixe without any information's about the trouble
* workaround about xonsh CI don't respect docstring specs
* RISC OS only comment thing
* black is a good jock in a CI
* black is a good jock in a CI
* roll back uptime.py
* look if we can make it work
* fixe all i understand
* add command in corutils alias
* reformat uptime.py with black
* fixe version
* try with xonsh xp.LIBC lib
* black in a CI is a stupid thing
* stupid Windows and it \r
* use os.linestep
* use newline simple wrapper
* use newline simple wrapper
* use newline simple wrapper
* use newline simple wrapper
* try osx rollback method
* fixe
* fixe
* a test on window via the CI because i haven't the OS
* a test on window via the CI because i haven't the OS
* a test on window via the CI because i haven't the OS
* fix: black: format
* refactor: update uname command
now has auto-completions
* docs: update news item and fix qa error
* refactor: remove unused file
* fix: qa imports
* refactor: update getting boottime
fallback to monotonic time on unix
* fix: update haiku compatibility in uptime
* refactor: add uptime to aliases
* refactor: move xoreutils tests
* fix: call aliases using xonsh
Co-authored-by: Tuux <tuxa@rtnp.org>
Co-authored-by: Noortheen Raja <jnoortheen@gmail.com>
* todo
* test: remove usage of DummyEnv and setting .env attribute on xession fixture
one step closer to making too much of tweaking to xession during tests
* test: fix tests vox and gitstatus-prompt
* docs: update test-fixture usage
* fix: import flake8 error
* test: remove direct access to XSH in tests
* test: remove usage of XSH in test files
* todo
* test: use tmp-dir to create stubs
* refactor: use fixture factory to mock out XonshSession
* refactor: remove direct access of XSH from functions
* refactor: remove direct access of XSH from functions
* fix: qa checks
* refactor: rename variables to match their values
* test: update failing tests because it had no PATH set previously
* fix: remove builtins usage from pyghooks.py
* style:
* refactor: update tests to use fixtures
* fix: env varialbe is setup per function
some tests accidentally update the env variables and that is leaking
into next tests
* fix: failing vox tests
* test: set commands_cache per test
* test: fix failing tests
* fix: failing tests on linux
ptk-highlight
* fix: failing tests on Windows
cwd-prompt
* test: copy env as to not affect original object
* fix: lazily evaluate cmds-cache in pyghooks
* test: fix failing tests
* fix: qa errors import
* test: set commands-cache per test
while caching path results
* test: speedup test_thread_local_swap
* fix: failing tests on windows
* refactor: Execer doesn't control session
* refactor: XSH.unload will take care of reversing builtins attrs set
* test: use env.update over monkeypatch
* Revert "test: use env.update over monkeypatch"
This reverts commit 010a5022247a098f1741966b8af1bf758663480e.
* Refactor: Don't modify XSH in Execer
This is not an invariant change - the __del__ method of the execer now does not unload the session. This is probably what we want - the session should be the final arbiter of when it goes out of scope, and we might need an explicit mechanism to handle this.
* Refactor: make import hook Execer explicit
This is ugly for now, but helps raise the global state modifications to the surface
* Style: run black
* Refactor: add `update_cache` to `CommandsCache`
Previously a lot of internal usage of `all_commands` was for the updating side-effect. Now we make that a separate routine.
* Refactor: remove args from XonshSession constructor
* Refactor: move non stateful XonshSession methods to __init__
* Refactor: don't create custom class for namespace
* Refactor: auto-generate set of default builtins
* Refactor: set session attributes to None in constructor
* Refactor: don't test hasattr for known attribute
* Refactor: add methods to restore and disable Python exit
* Refactor: add initial value for XSH.aliases
* Refactor: don't default getattr for known attribute
* Refactor: make _lastflush a closer and move to `load()`
* Fix: catch $path even if empty.
This shouldn't ever actually manifest itself, but whilst we're here!
* Refactor: support existing usage of install_import_hooks
* Style: run black
* Refactor: remove unneeded import
* Docs: add news item
* Fix: news item
* Refactor: remove unused arg
* docs: fix news item
* fix: no duplicate calls
add helpers properties to completion-context
* refactor: importing a module should not affect the session
the user has to have XSH loaded before
* fix: todo item for testing imphooks
Co-authored-by: Noortheen Raja <jnoortheen@gmail.com>
* feat: update command completions to show description as well
closes#3823
* test: fix failing tests on windows
* fix: failing tests on windows machine
* feat: auto-completion support for source-foreign
* feat: add completions for source-bash/zsh/cmd
* refactor: change the boolean flags names that defaults to True
* feat: create field to define alias-completer
this will resolve checking parser or alias. Now the alias can define how
it completes.
will solve
https://github.com/xonsh/xonsh/pull/4267#discussion_r676066853
* docs:
* fix: mypy error
* fix: rst qa
* style:
* feat: use NumpyDoc to represent Parsed docstring
in cli_utils.py
* feat: set argparse boolean option from default values
* refactor: shorter Arg in annotation
by following convention in cli_utils.py
* fix: get description without Parameters
* fix: qa errors
If a directory was named for example '{RED}', that would get
interpreted as a color string and the prompt would not show the
direcotry name and would color it instead. Using dir names like
'{{foo}}' or simply '{' would break the prompt outright.
There was not much documentation on the prompt formating, but it seems
that escaping a curly by doubling it makes the prompt display all
curlies correctly.
fixes#4381
* feat: improve pip completer
* refactor: optimize imports
* fix: update tests for other completers
* fix: failing tests
* test: fix failing tests
* refactor: make error message clear
exception like KeyError will be more clear now
* qs import
* fix: failing tests on windows
* fix: failing tests on windows
* fix: failing tests on windows
* refactor: optimize imports
* specs: Make sure sub-specs are always captured regardless of $XONSH_CAPTURE_ALWAYS
* procs: Ensure env is used in functional aliases
* news: Add always-capture-aliases
* tests: procs: Skip known issues
* tests: Restore all builtins in the 'xonsh_builtins' fixture
* tests: vc: Use monkeypatch to mock CommandsCache functions
* tests: main: Don't use the local machine's xonshrc
* Fix: EnvPath.add() not maintain uniqueness with Path objects on replace
* Update tools.py
Removed commented out code left in originally
* Add tests for EnvPath.add() function
* Add test for EnvPath.add() function with pathlib path
* Update tests for EnvPath.add() function to support winblows paths
* Fix xontribs meta page so github links clickable and one minor typo
* Update xonsh/xontribs_meta.py
updated as requested
Co-authored-by: Gil Forsyth <gforsyth@users.noreply.github.com>
Co-authored-by: Gil Forsyth <gforsyth@users.noreply.github.com>
* environ: Implement InternalEnvironDict for thread-local overrides
* environ: Make `swap` thread-safe without leaks
Use thread-local storage to override the changes.
This way the changes can't leak to other threads.
* environ: Implement 'get/set_swapped_values' to pass to threads
* procs: Use swapped values in threaded subprocs
This is so the thread will use the same swapped values as the origin one.
* news: Add env-swap-thread-safety
* feat: use ArgParserAlias for history command
* feat: cli-utils: support parsing unknown args
* feat: use _unparsed for getting history slices
* fix: use show cmd as default
* fix: update history-diff to allow new format
* fix: make sure that history files are flushed
* fix: remove unused imports
* docs:
* fix: annotation error in older py versions
* refactor: split dispatch function
so that one can intervene before final call
* fix: py3.6-7 has no mock.call_args.kwargs properties
* fix: update _dispatch_func signature
* test: update tests for history-show parser
* fix: amalgam different import path
* fix: cli_utils not amalgamated
when importing as `from xonsh.cli_utils import ...` it is not lazy
loading
* feat: use ArgparserAlias for xontrib
* test: add test for xontrib-name-completer
* fix: bashisms tests should unload module after tests
* test: make assertion failure message obvious
* fix: failing tests because autovox is already loaded in some py versions
* feat: use ArgparserAlias for xonfig
* test: update test for xonfig completions
* refactor: update docs
* refactor: use function based completer
* fix: remove old import
* docs:
* fix: merge issues
* test: move xsh_with_aliases to root conftest.py
* docs:
* feat: set subparser's prog from func-name
* feat: add colored help formatter and alias builder
closes#4284
* feat: add auto-completion support to argparser
* test: update test for completer
* fix: getting doc from params that have annotation
* refactor: use filter-function for checking alias completions
* doc: add discussion abount check for alias having parser
see discussion on
https://github.com/xonsh/xonsh/pull/4267
* type fix
* refactor: use function based completer
* test: fix failing argparser test
* docs: update news item
* update completion for argparser sub-commands to append_space
from comment on
https://github.com/xonsh/xonsh/pull/4267#discussion_r676044508
* docs: update docstring typo
* refactor: move inspect import to top
* feat: support option strings before positionals
and add env setting for showing completions for options by default
* test: update tests after adding new $ALIAS_COMPLETIONS_OPTIONS_BY_DEFAULT
* add suggested completion_context_parse fixture
* docs: add suggested doc for dispatch function
* refactor: use try/except for import of typing.annotated
* refactor: move complete_argparser_aliases to completers/aliases.py
* refactor: move argparser completer to its own module
* style:
* refactor: rename completer to not clash with argparse
* fix: expand option's descriptions
* fix: add completer/argparser to amalgam