1
0
forked from VimPlug/jedi
Commit Graph

52 Commits

Author SHA1 Message Date
Dave Halter
1e796fc08d Environments are now always created on request
The issue was that if something changed about the environment (e.g. version
switch) or sys.path change, re-creating the environment was possible, but did
not involve the change. The environments have now a __del__ function that
deletes the subprocess after every time an Environment is garbage collected.
2018-07-15 17:49:17 +02:00
Daniel Hahler
2fc91ceb64 Improve Environment
It only takes `executable` and gets all the information from the
subprocess directly.

Fixes https://github.com/davidhalter/jedi/issues/1107.
2018-07-15 17:49:17 +02:00
Daniel Hahler
87d7c59c6e subprocess: listen: exit normally with EOFError
This is an expected case, since the parent closed normally, and
therefore the subprocess should exit with 0.
2018-07-11 12:56:55 +02:00
micbou
282c6a2ba1 Use highest possible pickle protocol 2018-06-23 14:45:34 +02:00
Daniel Hahler
ea71dedaa1 Include stderr with "subprocess has crashed" exception (#1124)
* Include stderr with "subprocess has crashed" exception

This does not add it to the other similar exception raised from `kill`,
since this should be something like "was killed already" anyway.

* fixup! Include stderr with "subprocess has crashed" exception
2018-06-23 11:37:43 +02:00
micbou
106b11f1af Set stdout and stdin to binary mode on Python 2 and Windows 2018-06-22 00:08:53 +02:00
micbou
f9e90e863b Use system default buffering on Python 2 2018-06-21 19:50:51 +02:00
Dave Halter
83d635cbac Add a way to generalize Popen 2018-04-13 10:17:30 +02:00
Dave Halter
b5bc25fc0b Fix another windows issue 2018-03-23 01:21:07 +01:00
Dave Halter
c8bb41662e Merge the windows fixes 2018-03-23 00:55:23 +01:00
Dave Halter
094affaf84 Remove stdout/stderr from subprocesses (redirected to /dev/null)
This means that the subprocess should now not crash anymore because of people
writing to stdout in c modules and stderr should be empty.

Fixes #793.
2018-03-17 14:14:00 +01:00
Dave Halter
378a5846db Clean up zombie subprocesses, fixes #1048 2018-03-12 20:06:02 +01:00
T.Rzepka
99130e7664 Fix for Python 2 and 3 on Windows, see #1037. 2018-02-17 13:49:10 +01:00
T.Rzepka
446de51402 Revert "Fix for Python 2 on Windows, see #1037."
This reverts commit b38d31b99d.
2018-02-17 12:09:35 +01:00
T.Rzepka
b38d31b99d Fix for Python 2 on Windows, see #1037. 2018-02-11 22:37:57 +01:00
Dave Halter
fef594373a Better reporting of internal errors 2018-01-20 22:56:51 +01:00
Dave Halter
41b24ab46b Better error handling for subprocesses
I don't really understand why this wasn't an issue before, but it looks like we have to
catch both IOError and and socket.error in Python2.
2018-01-20 22:56:26 +01:00
Dave Halter
263989c0ab Add a comment about why the project is None in the subprocess 2018-01-17 19:12:58 +01:00
Dave Halter
4e4f75c882 evaluate.project doesn't exist anymore. Eliminated code that used it 2018-01-17 19:11:20 +01:00
Dave Halter
9b5e3447d9 Make the new project API fully work in tests 2018-01-17 09:54:11 +01:00
Dave Halter
fe813292cf Try to migrate to the new project API 2018-01-16 23:56:35 +01:00
Dave Halter
2a0e8f91d3 A possible introduction for projects 2018-01-15 23:57:08 +01:00
Dave Halter
bcb3f02a01 If a subprocess gets killed by an OOM killer or whatever it should respawn and raise an InternalError 2018-01-02 00:56:22 +01:00
Dave Halter
7ff6871548 Merge Subprocess and CompiledSubprocess 2018-01-02 00:33:30 +01:00
Dave Halter
927aa2bd91 Try to recover from errors that are happening in subprocesses 2018-01-02 00:24:15 +01:00
Dave Halter
59c44fe499 Use force_unicode for all sys paths 2017-12-29 01:28:23 +01:00
Dave Halter
05b2906dcc Some more small improvements for Python 2 2017-12-28 23:58:19 +01:00
Dave Halter
ba81aa16a2 Use unicode in way more cases 2017-12-28 23:19:17 +01:00
Dave Halter
d1d4986667 Eliminate is_py3 usages 2017-12-28 01:55:39 +01:00
Dave Halter
6b6795c40c Don't use python_version directly on evaluator anymore 2017-12-28 01:44:59 +01:00
Dave Halter
40f1354f67 More unicode conversions 2017-12-24 03:35:15 +01:00
Dave Halter
7bfca5bcd7 Don't cast bytes to strings when unpickling 2017-12-23 21:18:04 +01:00
Dave Halter
96a67f9a4c Start using the correct parser for each environment 2017-12-19 19:19:35 +01:00
Dave Halter
fe3e8a0867 Refactor environments a bit 2017-12-17 18:47:28 +01:00
Dave Halter
9d094b68f3 Cache the subprocess results 2017-12-14 22:23:59 +01:00
Dave Halter
e03afc60ef Make get_repr static in access. 2017-12-13 19:16:29 +01:00
Dave Halter
b196c6849b Don't try to pickle ellipsis 2017-12-11 20:55:34 +01:00
Dave Halter
afb73876ac Don't use the pickler modification anymore. That doesn't work in other python versions and was in general a bit hard to do 2017-12-10 18:39:03 +01:00
Dave Halter
aa7319dba5 Remove the last test failures. 2017-12-09 17:38:45 +01:00
Dave Halter
649225333f Get the subprocess mostly working 2017-12-08 09:44:12 +01:00
Dave Halter
f09ca9fc20 Use access handles everywhere 2017-12-06 14:46:27 +01:00
Dave Halter
7db6d11c49 Create a way of accessing access objects through a subprocess 2017-12-06 14:18:10 +01:00
Dave Halter
37533c5d51 Cleanup some compiled stuff. 2017-11-22 19:04:02 +01:00
Dave Halter
96a0003cb5 Progress in executing builtin stuff in submodules. 2017-11-20 21:02:40 +01:00
Dave Halter
87452639ad Exceptions now also work over the subprocess. 2017-11-17 01:54:05 +01:00
Dave Halter
4a7d715a57 Finally got compiled_objects and the access to them working 2017-11-17 01:42:27 +01:00
Dave Halter
73576b2a8b Progress when working with evaluators 2017-11-17 01:21:38 +01:00
Dave Halter
4136dcaf08 Make the subprocesses work and return the right sys paths for the different versions 2017-11-15 08:58:13 +01:00
Dave Halter
96149d2e6a Make it possible to connect to a subprocess to get the sys path 2017-11-14 18:25:37 +01:00
Dave Halter
46b81dfa6d Subprocess progress
Also add an enviornment variable to Script
2017-11-13 00:40:32 +01:00