-
-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RFC] Upgrade Jedi #179
[RFC] Upgrade Jedi #179
Conversation
Rebased, for anybody wanting to use this already. |
OK. I will use it. |
See #184 for a version that only uses Jedi, and allows for changing |
Closing in favor of #184. |
…64ecf * rplugin/python3/deoplete/vendored/parso bc8566e...7064ecf (86): > Don't use invalid escape sequences in regex, see davidhalter/jedi-vim#843 > Use a setuptools that still supports py33 > 3.1 release notes > Use one simple functions to check for funcdefs in diff parser > Make sure to treat async funcdefs the same way as normal funcdefs > Fix an issue in the diff parser > Asterisks in function definitions may be at the end of a func without a comma, fixes deoplete-plugins#44 > Remove some TODOs that were fixed > Error recovery should not match the whole line in case of an invalid token, fixes deoplete-plugins#40 > docs: enable searchbox > Merge branch 'pgen' > Merge branch 'master' of github.com:davidhalter/parso > Add docstring > Add some comments > Use a set instead of dict if it's not necessary > Simplify some code > Some refactorings for simplicity > Use NFAArc as a class > Some more renames > Another rename > Rename > Move the grammar parsing to a separate module > More renames > Rename > Separate generating dfas from parsing > Cleanup some names > Remove some code that is not used anymore > Some cleanups and documentation > Move out some more functions out of classes > Some more refactorings for clarification > Factor out start_symbol into a better position > Refactor out dfas > Document pgen grammars a bit better > addarc -> add_arc > Refactor some things in pgen > Move some initializations > Change license again. The year shouldn't matter > Make first private > Change copyright years > Remove some code from the grammar > Separate the grammar generation from the grammar parsing > In pgen now everything is named grammar and not c > Better recovery for online classes and functions > Fix one-line error recovery for all things that are using a suite > Add a debug function for first tokens > Not testing Python 3.3 anymore on travis. It seems to be broken > Add a changelog for 0.2.1 > Push the version > The diff parser was slighly off with prefixes, fixes #1121 > A better repr for the endmarker > Merge branch 'master' of github.com:davidhalter/parso > Fix a prefix issue with error leafs. > Don't test python 2.6 in tox by default, because the newer pip versions don't support it anymore > Set a release date > Fix whitespace issues with prefixes > Use proper leafs for fstring start/end > Fix a Python 2 related issue. > Forgot to delete another print. WTF I'm tired > Unfortunately forgot to delete a print > Start to write a changelog for 0.2.0 > Merge branch 'fstrings' > A comparison was slightly off > Ignore the pytest cache > Fix an error message change in Python 3.7 > Fix an issue in the diff parser about endmarker newlines > Remove the copyright for good > Remove copyright years from documentation. (Closes: deoplete-plugins#25) > Fix typo: containes→contains > tox: use older pytest only for py26/py33 > Merge branch 'master' of github.com:davidhalter/parso > Don't use a newer pytest version > The tags should be annotated if possible > Bump version for the next release > Use 3.7-dev not 3.7 for travis > Don't use py37 in tox but on travis > Add the v0.1.1 changes to the changelog > Python 3.7 should be tested as well > Use os.path.join instead of a slash > Load from cache even when code was given > Support async for statement > Iter raise statements in a Function (deoplete-plugins#16) > tox.ini: prefer pytest without a dot > Clarify what a prefix is > Docstring for BaseNode.get_leaf_for_position > Correct seperator for param anotation docstring > Fix Name role in PythonMixin.get_name_of_position docstring
…c166 * rplugin/python3/deoplete/vendored/jedi dd924a2...f6bc166 (507): > Add max line length 100 to the config for flake8 > tests: use monkeypatch.setenv > Don't test Python 3.3 on appveyor anymore, it's getting really hard to get all the right dependencies for it, because 3.3 is deprecated everywhere. > Mention that it's ok to have a line length of 100 characters in our files. > Don't use invalid escape sequences in regex, see davidhalter/jedi-vim#843 > subprocess: listen: exit normally with EOFError > Script: improve ValueError for column > The sys path might be lazy or not in a venv > The encoding parameter should be used again (includes test), fixes #1167 > Remove source_encoding from documentation (see #1167) > Actually use the fast_parser setting again > Use an import name list as long as possible > Different _load_module API > Directly load modules if possible, with this it's not necessary anymore to use dotted_from_fs_path, also fixes #1013. > Don't mutate the sys.path. This is pretty nasty bug that fixes #1148 > Don't follow builtin imports anymore by default when follow_imports is on (goto) > Add a changelog entry for the include_builtins change > additional_module_paths in usages never actually worked > Add include_builtins to usages, fixes #1131. > Finally make it possible to use auto_import_modules for packages > Test auto_import_modules in a very basic way > Fix a bug about fstring completion > Comprehensions are also possible arguments. Fixes 1146 > Merge branch 'parso' > Force unicode when listing module names > Use highest possible pickle protocol > Include stderr with "subprocess has crashed" exception (#1124) > Set stdout and stdin to binary mode on Python 2 and Windows > Use system default buffering on Python 2 > Use cPickle on Python 2 if available > Add tests for DefaultDict support. > Add support for DefaultDict on jedi_typing.py. > Parse correct AST attribute for version > Replace distutils.spawn.find_executable with shutil.which > Add an error message, see also #1139. > Dict comprehension items call should now work, fixes #1129 > Fix flow analysis test > Fix a wrong branch check, fixes #1128 > Drop 3.3 tests from travis > A simple yield should not cause an error, fixes #1117 > Travis: report coverage also to codecov.io > Fix _get_numpy_doc_string_cls: use cache > Fix namespace autocompletion error > Travis: remove TOXENV=cov from allowed failures > Environment._get_version: add msgs with exceptions > None/False/True are atom non-terminals in the syntax tree, fixes #1103 > When searching submodules, use all of __path__, fixes #1105 > Specially crafted docstrings sometimes lead to errors, fixes #1103 > Follow up from the last async issue, fixes more related things about #1092. > Fix an async funcdef issue, fixes 1092. > In some very rare cases it was possible to get an interpreter crash because of this bug. Fixes #1087 > Start using our own monkeypatch function for some things > Include function return type annotation in docstring if it is present > Don't catch IndexError where we don't have to > Extend create_environment to accept an executable path > check_fs: handle FileNotFoundError > Finally fix all the get_system_environment issues > Fix a test > There's really no bin/activate needed for an environment to work > Document get_sys_path and change the signature of get_system_environment a bit > Rework the time cache. > Cache default environment > Require parso 0.2.0 at least > Set a release date > Don't install the latest pip version anymore in appveyor > Fix some references > Mention Virtualenv support in readme and features > Title case for Mänu :) > Better overview over functions in the documentation > A small docs correction > Remove the old static analysis stuff. It was never really used > Fix a lot of old docs code that doesn't exist anymore > Remove the old parser documentation (that's now part of parso) > Don't call it the plugin API anymore, that's confusing > Reorder some functions > Adda lot of environment documentation to sphinx > find_python_environments -> find_system_environments > A small refactoring > Remove from_executable, were not really using it, yet. > For the second time in a row it's called creationflags not creation_flags > Refactor something small > Remove an unnecessary else > CREATE_NO_WINDOW was introduced in Python 3.7 and didn't exist before > The SameEnvironment should not load by default if it's a portable > Do binary comparisons to get virtualenvs working and not just venvs > Use the correct parameter name for creation flags > Add a way to generalize Popen > Check the windows environments in a better way > Fix some issues with the latest changes > DefaultEnvironment -> SameEnvironment > Better docs for Environment > Some docstrings > Make the Environment clearly non-public > Make some names public > Make sure Windows environments are safe > Fix the module_name issue again > Write a test for #1079 to avoid a regression in the future. > Cleanup some of the module cache stuff > Do not cache unimportable compiled module (#1079) > Merge branch 'master' of github.com:davidhalter/jedi > Multiple inheritance completion in Python 2 did not work > Give the run.py script an environment parameter > Fix an import > Merge the environment changes for Windows > Better tests for venvs > Write a test for venvs > Obviously Python 3 syntax cannot be used in Python 2 > Update the changelog about f-strings > Use the latest parso version from master. > Better goto definition for fstrings > Fix an issue around the new grammar > Fix some fstring issues for now > Make a few modifications to always use the latest environment available. > Better tests for fstrings > With the changes in parso, f-strings are now completable > With the changes in parso, f-strings are now completable > Fix lambda dynamic param searches, fixes #1070 > Cleanup the namespace lookups so that it also works for Python 3.7 > Add a note about the fixed Windows tests in the changelog > Add micbou to AUTHORS > Add a badge for AppVeyor. Running tests for Windows > Add comment explaining why test_versions is disabled on Windows > Add JEDI_TEST_ENVIRONMENT_EXECUTABLE for AppVeyor > Add AppVeyor configuration > Improve venv_and_pths test > Properly raise broken pipe exception > Remove SourceLair from products, because it's a paid product > Add a note to the readme. > Fix another windows issue > Merge branch 'master' of github.com:davidhalter/jedi > Merge the windows fixes > Some code cleanup > Fix another error that surfaced in pandas > Fix an issue with docstrings that contain errors > Upgrade the wx widgets paths > Somehow forgot about subscriptlist. Just ignore those for now. > Fix the first issue in #1010 > colorama should always color, even if it's not a shell > os.path.join completion speed test is sometimes slow, so give it a bit more of time > Fix some code_lines issues > Remove stdout/stderr from subprocesses (redirected to /dev/null) > Add the module_path again > Clean up the namedtuple test for #1060 > All modules now have a code_lines attribute, see #1062 > The release date for 0.12.0 should not be set, yet. See #1061. > And now remove a pep0484 function that is no longer needed > Some more code to a function > More rewriting of the pep0484 logic > Start moving some of the pep0484 comment code around > Cleanup some instance stuff > Better docs for funciton annotations > Fix an error in param comments > Catch parser errors instead of error recovery when splitting param comments > Merge branch 'function_comment' of https://github.com/wilfred/jedi into mypy-comments > Fix a few version issues in tests > Use inspect.Parameter.kind for better differentiation between param types > Fix REPL completion param name completion > Add keyword argument test for #292 > Fix an interpreter test in Python 2 > Clean up zombie subprocesses, fixes #1048 > Fix an issue around __dir__ in the interpreter > Fix doctest for replstartup > Fix shell completion issues and documentation > Merge branch 'master' of github.com:davidhalter/jedi > Fix issues with default parameters in functions and classes > Correct mistakes of lambda names > eval_element -> eval_node > Use the correct class for params when used in names. Fixes #1006 > Get rid of a regex warning, where escaping was not properly used in a normal string > Get rid of the imp library import in Python3 to avoid warnings, fixes #1001 > Don't need the tests from deoplete-plugins#122 > Refactor the namespace package tests > Add a failing test for nested PEP420 namespace packages > Include __init__.py files in search for the project directory, fixes #773 > Add pytest cache to gitignore > Improve some documentation/a failing doctest > Fix the recursion error with globals > Always pop nodes in recursion detector > Globals should be looked up with the same priority as other defined nodes. > fix set.append syntax error > Add a few bits to the changelog > Autocompletion in comments should at least not fail > Fix the last async issue > Fix a few numpydocs tests > Fix some more await things > Fix a yield from test > AbstractIterableMixin -> IterableMixin > Support generator returns when used with yield from. > Show in a test that something doesn't work properly around async analysis > A few documentation improvements > Try to make the whole Builtin overwriting more abstract > Fix a small remaining issue in Python 2 > Reorder tests to make the async stuff pass on all python versions > Fix for all python versions > Getting more edget cases work in 3.6 for async > Fix an issue with async for > Use the await method properly and just use it instead of some crazy things > Refactor the way builtins can be overwritten by jedi's own contexts > Move all the asynchronous contexts to a separate module > Fix the merge issues. Now async stuff should at least partially work > Merge the async branch > Get rid of an unused import > Add the name always to the script module > Add the travere_parents function to a utility directory > Fix Python 2 old-school relative imports > Use the project path as a prefix, because many times it's used as a higher priority than other stuff > Move the buildout_project stuff to a separate examples folder > Rename of buildout stuff > Small rename > Use generators instead of complicated return of lists > Some more sys path corrections. > Generalize the use of smart import paths > Better handling of smart sys path > Some simplifications > Add comments to implicit namespaces and fix some minor things. > Merge the implicit namespace improvement (pkgutils.itermodules modification) > Relative imports should be working again even when used in more special occasions. Fixes #973 > parent_module is not needed for loading modules > Try to avoid CachedMetaClass for modules > DOn't check the parser cache, that's parso's responsibility > Better module loading > Try to put all module loading in one place including namespace packages > Unify load_module access > Prepare a test to eventually solve a relative import problem > Add a module cache that has a bit more capabilites > print_to_stderr needs to be used with one argument > Print errors that happen when importing certain objects > Use unicode literals, to avoid potential issues > Merge branch 'master' of github.com:davidhalter/jedi > Fix some more dict.get/dict.values stuff > Implememnt dict.values for FakeDict to avoid a recursion error. Fixes #1014. > Add better error reporting > Use a better string > Add better debugging for an assert, see also #1010 > Make some things clearer about lazy contexts > Finding the autocompletion stack is a bit more complicated than I initially thought > Move the ahead of time tests to the pep0526 file > Fix an issue where a default value was wrongly used > Update the ahead of time tests > Fix the last remaining issues with ahead of time annotations, see #982 > Fix a bug related to a wrong parametrization at one point > Merge branch 'master' of https://github.com/johannesmik/jedi > Force unicode on django paths > Forgot to add the examples folder > Fix a goto_assignments issue with a better internal API > Merge remote-tracking branch 'origin/master' into virtualenv > Disable predefined name analysis (if stmts) for all non-analysis tasks > Remove something that obviously never happened > Reorder some open flags for Python 2 > inspect.signature throws weird errors sometimes, just make it a bit simpler > Fix the implicit namespace test > Undo most of the namespace changes and use module again > Differentiate between namespace and module as a type > Use Scripts for virtualenvs instead of bin for windows > Refactor django path support > Fix project path finding > Add a repr for Project > Use the PathFinder, because the FileFinder doesn't work without suffixes > Create the importer stuff Python2.7 and 3.3 > Trying to use the import machinery to import jedi/parso in python3.4+ > Better reporting of internal errors > Better error handling for subprocesses > Another merge with master > Get rid of a cwd to tmpdir, because with the subprocess it doesn't behave the same depending on which tests you run first > Hopefully the last merge with master > Merge with master again > Merge with master > Get rid of some potential issues when using pandas interactively > Clarity > Remove the get_default_project caching > Add a comment about why the project is None in the subprocess > evaluate.project doesn't exist anymore. Eliminated code that used it > At the moment, don't allow projects as an input to script > Remove the old project > Make the new project API fully work in tests > Try to migrate to the new project API > Refactor to make configuratios of sys paths easier > Use the evaluate.project sys path stuff for api.project > Cache the default project > A possible introduction for projects > Check for safe and unsafe environments when searching for them > Sith still used NotFoundError which doesn't exist anymore in jedi > Ignore pypy in travis for now > A path to ignore in coveragerc was wrong > Allowing the cov tests did not properly work. Trying again. > Somehow previously removed the allowed failurs of TOXENV=cov > Try to put env variables on one line > Coverage was unfortunately excluded > Merge with master > Add a comment to refactoring that it's not in active development > Change coveragerc a bit > Use Python3.4 for coverage. > Correct the issue about has_zlib > Move the zip tests to the environment > Only execute the zipimport tests fully if zlib is available for the environment Python. > Some tests that involved jedi were actually a bit wrong and only worked in certain environments. > Skip some 3.3 tests for travis > Skipping was done wrong > Try a bit more if modifying the PATH is now possible. > A comparison was wrong > A new version of the travis install script > Try to use the virtual env that was defined in the VIRTUAL_ENV variable, if possible. > If a subprocess gets killed by an OOM killer or whatever it should respawn and raise an InternalError > Merge Subprocess and CompiledSubprocess > Try to recover from errors that are happening in subprocesses > Move the default environment around > More travis trying > Better debugging for travis > Forgot to add the executable bit to the travis installer. > Experiment with travis and installing packages differently > The tags should be annotated if possible > Remove 2.6 from travis > Correct the travis file > Some refactoring to finally get tests working with py27 and 3 environments > Use the parser to check for certain namedtuple features > Use unicode strings in test to pass some tests in Python 2 > Use Script everywhere where cwd_at is used, otherwise Python 2.7 is annoying > The given sys_path gets converted to unicode now in py2 > Try to avoid the pth tests not working because of the created virtualenv in tox > Test if virtualenvs and pth files work > Move the module name searching to the subprocess > Move the last test out of test_regressions and delete the file > Move most of the regression tests into other test files > Cleanup test_regression tests > Move test_integration_keywrod to test_api/test_keyword > Cleanup the docstring tests > More test_evaluate Script fixtures > stdlib fixture conversions > More Script fixture conversions in test_evaluate > Migrate parso integration to script fixture > Use Script in more places > Use the Script fixture more generally > Differentiate between different Python versions in a specific test > Start replacing Script calls with a fixture > Monkeypatch the Unpickler in Python3.3 > Try to pass the environment variable for JEDI_TEST_ENVIRONMENT to pytest over tox > Correct the two last unicode issues > Some repr went crazy > Make it more clear for debugging where dynamic search ended > Fix pep0484 comments > Better display of descriptors > Remove some of the last py27 errors that were caused in combination with 3.6 > Forgot to cast a map to a list > Fixing more py27 stuff > More unicode literals > Use force_unicode for all sys paths > Add a print_to_stderr function in compatibility > Some more small improvements for Python 2 > There were a few bugs in the previous commit > Use unicode in way more cases > Use unicode always for getting special objects > Skip the correct tests > Always use the parser of the environment > Try to test on travis with different jedi test environment variables > Try adding more automated tests to travis > Fix potential issues with py2 analysis > Check for bytes and unicode in dicts for Python 2 > Eliminate is_py3 usages > Don't use python_version directly on evaluator anymore > Use unicode always in getattr > Fix an issue with the new behavior of special methods > Fix some more py36 to py27 issues > Refactor some things regarding Python 2 support > Also don't cast do a string for other names > Casting to str is not necessary > Skip tests according to the current environment > Remove unused keyword code > Do more comparisons in the subprocess > Use unicode in compiled access > Remove unused code > Refactor allowed_getattr_callback a bit to not raise random errors. > The default of one function was not actually used > The string_name of a Name should always be unicode > Refactor a bit and force unicode in some places and use an appropriate function name for it > Fix a test fail because of the unicode changes > The environment selection had a bug > More unicode conversions > Don't use getattr, use the abstractions > More unicode conversions > Avoid execution of Jedi in test setup > Start using a lot more unicode literals for Python 2 > Make it possible to explicitly state the version in pytest for different envs > Use unicode sys paths always > Don't cast bytes to strings when unpickling > By default enable cross Python version tests in tox > Skip more tests if it's necessary. > Move the import logic to the subprocess > Move even more import stuff to a separate function > Move some import parts around to refactor it > Make ImplicitNamespaceContext a bit cleaner > Change two tests that were written in a strange way > Add a way to skip typing tests in non default environments > Use better error messages for import errors > Start using the new virtualenv code > Start using the correct parser for each environment > Add a way to specify environments in tox > Fix sys_path propagation for builtins load_module > A small refactoring > Merge branch 'master' into virtualenv > evaluate/docstrings.py > Don't import numpydoc in the beginning > Ignore the build directory for pytest > Refactor environments a bit > Make it possible to get the right version parser for a certain environment > api.virtualenv -> api.environment > DefaultEnvironment -> get_default_environment > Better support for searching python environments > Add an optimization around compiled dir() > Fix a potential issue in evaluate/stdlib > Cache the subprocess results > Remove unit test class from speed tests > Make get_repr static in access. > There was a bug in creating modules in a subprocess > Fix the Python 2.7 tests > Don't try to pickle ellipsis > Ignore __main__ modules > Use builtins_module instead of BUILTINS > Don't use the pickler modification anymore. That doesn't work in other python versions and was in general a bit hard to do > Remove the last test failures. > Get the subprocess mostly working > Don't use the create function anymore in compiled > Use even more subprocess accesses > Use the subprocess access to create acceses > Use access handles everywhere > Create a way of accessing access objects through a subprocess > Use a class instead of a dict in get_special_objects > Move get_special_object > Move load_module a bit around > Move another usage of create to builtin_from_name > Use sys.modules instead of __import__ > Remove unused code > Start creating access objects in a different way > Use create_simple_object for a lot of use cases > Move some of the compiled.create calls to compiled.builtin_from_name > Move some stuff from compiled to context > Remove stuff from CompiledObject that didn't belong there and wasn't used > create_from_access -> _create_from_access > Refactor a bit more and remove the parent_context parameter from create_from_access > Isolate fake stuff a bit more > Simplify an if > Rewrite bases > Use create only for non access objects > Some simplification of _create_from_access > Remove the old now unused fake code > Fake context python code is now not the base for a lot of things anymore. It just gets executed. > Rename SelfNameFilter to SelfAttributeFilter > Simplify one if statement > Refactor LazyInstanceName -> SelfName > Fix all tests except fake docstring stuff > Fix a slice test with a better helper function > Fix a few more tests > Creating objects works now a bit better but is a huge mess. > Get a lot of tests passing > Make params work with access > Add an access abstraction (only array tests work, yet) > The check if we should add type completions is now a bit more obvious > Eliminate CompiledObject.type > Make some faked things private > Cleanup some compiled stuff. > Progress in executing builtin stuff in submodules. > Exceptions now also work over the subprocess. > Finally got compiled_objects and the access to them working > Progress when working with evaluators > Make the subprocesses work and return the right sys paths for the different versions > Make it possible to connect to a subprocess to get the sys path > Subprocess progress > Use types instead of special objects (see also #988) > Some subprocess progress > virtualenv progress > Remove unused code > One more usages test. > Usages fix for more complex situations > Some minor refactorings. > Using additional_dynamic_modules sometimes led to weird behavior of using modules twice. > Simplify usages. It should also work way better, now. > Remove the disabling of dynamic flow information > Small sys path refactoring. > Fix a small test error > Remove a possible security issue > Move a function around > Better English > Remove documentation about caveats that are not realy 100% true anymore. > Use sys path mostly from project and move some sys path stuff around. > Move the initial sys path generation into a new project class. > Move arguments to a separate module. > Common instance objects are now directly accessible > Directly importing FunctionContext. > Move lazy contexts to a separate module not in contexts > Move iterable to context/iterable. > Import simplification. > AbstractSequence -> AbstractIterable. > Move the special method filter from iterable to filters. > ClassContext is now importable from context. > Move the base Context stuff to another module to keep context free for imports. > Don't use a star import. > Move the lazy contexts to a separate module. > Also move the class to the context package. > Move the namespace to a separate module. > Remove the function context to a separate module. > Move an import of a function. > Move instance module to the context package. > Move the ModuleContext to a separate module. > Move context to base.py > Move context.py to a separate package. > Find packages differently in setup.py > Move a BaseContext to jedi.common.context. > Merge branch 'values'
OK. Please rebase the branch. |
Please test it before at least (where you can update it yourself). |
(I am using deoplete and deoplete-jedi in manual mode currently / not enabled by default, so am not really testing/using this myself) |
I have tested it and it works. |
@blueyed Ping. I want to merge the branch. |
@Shougo |
Merged. |
Upgrade Jedi to 0.12.1+ (current master).
Fixes #156.