Commit Graph

5170 Commits

Author SHA1 Message Date
Dave Halter faa2d01593 The memoize decorator doesn't need to magically cache generators as lists.
This makes no sense at all. Explicit is better than implicit.
2017-09-26 18:36:10 +02:00
Dave Halter a0a438fe6f Forgot an iterator in context sets. 2017-09-26 18:32:42 +02:00
Dave Halter e4090910f6 Remove the ParamListener, it was not used anymore. 2017-09-26 18:24:42 +02:00
Dave Halter 00f2f9a90c Fix the final issues with the ContextSet refactoring. 2017-09-26 18:17:19 +02:00
Dave Halter ee52cc7501 Fix most dynamic array issues. 2017-09-26 17:26:33 +02:00
Dave Halter 592f2dac95 A lot more fixes for tests. 2017-09-26 16:29:07 +02:00
Dave Halter 174eff5875 Replace a lot more of empty sets and unite calls. 2017-09-25 23:08:59 +02:00
Dave Halter 921d1008f2 First tests are now passing. 2017-09-25 11:10:09 +02:00
Dave Halter 5328d1e700 Add a ContextSet.
This is not bug free yet, but it's going to be a good abstraction for a lot of small things.
2017-09-25 11:04:09 +02:00
Dave Halter a433ee7a7e Move common to evaluate.utils. 2017-09-20 20:33:01 +02:00
Dave Halter 0c01a3b823 The sys.modules implementation did not work properly with newly created files.
Fixes #886.
2017-09-20 10:06:02 +02:00
Dave Halter 03584ff3f3 Imports can be executed twice without this. 2017-09-19 18:17:07 +02:00
Dave Halter 260aef943a Increase Python's recursion limit
Currently there is still the possiblity that Jedi fails with a recursion error,
because the stack is too small. (see #861) By increasing it we improve the
situation.

Probably we should just be switching away from this extreme amount of recursion
and move to queueing which would also allow to use other algorithms such as
breadth-first-search.
2017-09-18 10:26:42 +02:00
Dave Halter c7dbf95344 Fix recursion issues.
Completely refactored the recursion checker and changed some settings.

Fixes #861.
2017-09-17 21:54:09 +02:00
Dave Halter 0516a8bd35 Get rid of the settings module in recursions. 2017-09-17 14:18:56 +02:00
Dave Halter 2eb715dae8 Mention in the changelog that the recursion settings have been moved. 2017-09-17 14:10:26 +02:00
Dave Halter f4ba71f6a3 Move the recursion limit settings to the recursion module. 2017-09-17 14:08:39 +02:00
Dave Halter f2d24f0259 Remove inspecting the stack in the debugger.
This feature wasn't used anymore and it made debugging a slower by a factor of 10-10000.
2017-09-17 03:03:12 +02:00
Dave Halter c51634b8d4 dict_values should be accessible for CompiledObjects. 2017-09-17 02:48:09 +02:00
Dave Halter 96ad254fcc Typo. 2017-09-17 02:15:49 +02:00
Dave Halter 4b4b2c2122 Fix a small issue surrounding old school classes in Python 2. 2017-09-17 02:09:39 +02:00
Dave Halter 8fcb468539 Jedi was able to go crazy and loop endlessly in certain if/self assignment combinations.
Here we limit type inferance per tree scope. I'm still not sure this is the way
to go, but it looks okay for now and we can still go anther way in the future.
Tests are there.

Fixes #929.
2017-09-17 02:04:42 +02:00
Dave Halter 9dd2027299 Way better support for instantiated classes in REPL
Fixes several issues:

- It was not possible to correctly trace where instances were coming from in a
  REPL. This led to them being pretty much ignored.
- Instances were then just treated as classes and not as actual instances in
  MixedObjects. (However since they were ignored in the first place this
  wasn't really an issue).
- Avoiding the repr bug https://github.com/python/cpython/pull/2132/files in
  Jedi is working a bit differently. We're just never accessing Objects
  directly. This should work around 99.99% of the cases were people are using
  this stuff.

Fixes #872
2017-09-15 01:55:18 +02:00
Dave Halter 63edbdcc5b Better context completions for finally/except/else/elif
Fixes #837
2017-09-15 00:48:56 +02:00
Dave Halter e389c61377 Relative imports with more than one level did not work
Fixes #784.
2017-09-14 22:06:08 +02:00
Dave Halter ab84030ad2 full_name was buggy when used on import error names
Fixes #873.
2017-09-14 20:41:25 +02:00
Dave Halter 2210b11778 Fix some issues with import completion
Fixes #759
2017-09-14 20:09:13 +02:00
Dave Halter 4c2d1ea7e7 Understand context managers correctly
Fixes #812.
2017-09-13 11:00:34 +02:00
Dave Halter 5ff7e3dbbe Actually do goto when follow_imports is used
Fixes #945.
2017-09-13 00:28:49 +02:00
Dave Halter 5a8b9541a7 Add operator.itemgetter support for Python <= 3.3.
Also fixes namedtuple support for these versions.
2017-09-12 23:18:32 +02:00
Dave Halter a8a15114ac Fix namedtuple support
There were a couple issues:
 - namedtuple with one member didn't work
 - namedtuple content access was never possible
 - operator.itemgetter didn't work properly. Corrected py__bool__ for FakeSequence

Fixes #730.
2017-09-12 11:06:39 +02:00
Dave Halter 4a544c29ea Fix a follow_imports (goto) issue. 2017-09-11 23:32:10 +02:00
Dave Halter 619acbd2ca Goto didn't work well on imports in __init__.py files.
Fixes #956.
2017-09-11 21:48:37 +02:00
Dave Halter c05f1d3ccc Completion after as in imports should not be possible.
Fixes #841.
2017-09-10 11:27:57 +02:00
Dave Halter c25a4a00df readlines should be completable.
Fixes #921.
2017-09-10 01:54:50 +02:00
Dave Halter 80284fb14b Gracefully fail in 2.7 because inspect.signature is not available. 2017-09-10 01:36:32 +02:00
Dave Halter 5c6f8bda01 Fix inspect.signature for Python3.4. 2017-09-10 01:34:15 +02:00
Dave Halter d1c85191a0 Start using inspect.signature for CompiledObject params.
Fixes 917 and 924.
2017-09-09 22:29:00 +02:00
Dave Halter c7f225439d Comprehenions can also define self variables.
Also related to #932.
2017-09-09 20:20:05 +02:00
Dave Halter 40f4f032c6 Fix class/def/class nesting definitions
Fixes #932.
2017-09-09 20:13:03 +02:00
Dave Halter 236b860cc7 Add the numpy docstring changes to the changelog. 2017-09-09 19:27:11 +02:00
Dave Halter d47804edef Don't use literal_eval
Using it without control over the input leads to various possible exceptions.
Refs #868.
2017-09-09 19:23:06 +02:00
Dave Halter 3bceef075a Merge branch 'numpydoc' of https://github.com/bcolsen/jedi 2017-09-09 18:50:19 +02:00
Dave Halter 381fedddb4 Fix get_line_code().
Fixes #948.
2017-09-09 18:28:05 +02:00
Dave Halter ef6a1ca10f Fix an issue with choosing the right lines in get_line_code. Refs #948. 2017-09-09 18:10:53 +02:00
Dave Halter 46f306aa11 Add a TODO. 2017-09-09 17:59:53 +02:00
Dave Halter 078b5802d2 Remove unused code. 2017-09-09 17:58:06 +02:00
Dave Halter 077bccadc7 Remove AnonymousFunctionExecution and simplify everything. 2017-09-09 17:58:06 +02:00
Dave Halter 37ec79241c Remove the only param for AnonymousArguments. 2017-09-09 17:58:06 +02:00
Dave Halter 04c4313dc7 Start refactoring arguments. 2017-09-09 17:58:06 +02:00