get_default_project() loads the first .jedi/project.json above the analysed file, which can be part of a checked out repository. Its environment_path was executed with safe=False and its load_unsafe_extensions was honoured. Loaded projects now check the binary like find_virtualenvs and ignore load_unsafe_extensions.
In Python 3.14, typing.Union changed its repr from 'typing.Union[X, Y]'
to 'X | Y' (PEP 604), breaking annotation inference.
Changes:
- Use getattr() instead of safe_getattr() for __module__ retrieval
(getattr_static fails on Union types in Python 3.14)
- Add fallback to typing.get_origin() when regex fails to match
- Normalize Union display back to 'Union[X, Y]' format for consistency
- Update test expectations for invalid annotation edge case in 3.14
Fixes: https://github.com/davidhalter/jedi/issues/2064
In Python 3.13 the `locals` function now returns a fresh mapping
each time it's called (when called in a function). We thus need
to store a reference to the mapping being used, rather than
re-fetching it each time.
Since we don't actually need to modify the locals within the scope
of the test function itself, it suffices to use our own mapping
here rather than the result of calling `locals`, which fully
isolates this test from the nature of that function.
Fixes https://github.com/davidhalter/jedi/issues/2002
* properties with setters are now reported as 'property' for completion
* code cleanups
* fixed test
* fixed tests
* Revert "fixed test"
This reverts commit a80c955a489bce4a649452f7db49e59eab3ba38c.
* code quality cleanup
* so picky
* Revert "Revert "fixed test""
This reverts commit 58dfc5292e9df5415a212f6bf28356e76d515157.
* updated test per maintainer comments #1983
* removed extra char
Python 3.11 has changed typing so that unions now return forward
refrences instead of erroring, and typing.Any is now an _AnyMeta class.
Correct the parameters for both of those.
Fixes#1858