Dave Halter
6ddc242746
Ignore some errors that are happening when the Python process ends and its subprocesses are cleaned up
2018-08-21 01:28:13 +02:00
Dave Halter
705f561bdb
Sometimes when terminating, the subprocess module is already gone and equals None.
2018-08-10 19:32:54 +02:00
Dave Halter
3d55b2d826
Subprocess error reporting improvements
2018-08-05 12:50:17 +02:00
Dave Halter
72f2a9e4a5
Prefer Python 3 import over 2
2018-08-04 12:07:41 +02:00
Dave Halter
b91203820c
Now it's actually possible to specify a pytest environment for the same Python version
2018-08-04 02:00:13 +02:00
Dave Halter
fd8f254ce1
Fix an issue with stderr debugging of subprocesses
2018-08-03 23:51:58 +02:00
Dave Halter
1c76359291
stderr of the child processes should be printed in debug output
...
This fixes #1169 . It might have a bit of a different intention, but at least it's now possible to see output of the subprocess and it's not just a black hole.
2018-08-03 13:35:21 +02:00
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