Skip to content

Commit 30d68f9

Browse files
committed
[GR-21590] Update imports
PullRequest: graalpython/1330
2 parents 322ae3c + 7671583 commit 30d68f9

File tree

81 files changed

+792
-281
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+792
-281
lines changed

README.md

Lines changed: 35 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,40 @@
11
# GraalVM Implementation of Python
22

33
This is an early-stage experimental implementation of Python. A primary goal is
4-
to support SciPy and its constituent libraries. This Python implementation
5-
currently aims to be compatible with Python 3.8, but it is a long way from
6-
there, and it is very likely that any Python program that requires any packages
7-
at all will hit something unsupported. At this point, the Python implementation
8-
is made available for experimentation and curious end-users.
4+
to support SciPy and its constituent libraries. GraalPython can usually execute
5+
pure Python code faster than CPython (but not when C extensions are
6+
involved). GraalPython currently aims to be compatible
7+
with Python 3.8, but it is a long way from there, and it is very likely that any
8+
Python program that uses more features of standard library modules or external
9+
packages will hit something unsupported. At this point, the Python
10+
implementation is made available for experimentation and curious end-users.
911

1012
### Trying it
1113

12-
To try it, you can use the bundled releases from
13-
[www.graalvm.org](https://www.graalvm.org/downloads/). For more information and
14-
some examples of what you can do with it, check out the
15-
[reference](https://www.graalvm.org/reference-manual/python/).
14+
The easiest option to try GraalPython is
15+
[Pyenv](https://github.com/pyenv/pyenv/), the Python version manager. It allows
16+
you to easily install different GraalPython releases. To get version 20.2, for
17+
example, just run `pyenv install graalpython-20.2`.
1618

17-
### Create a virtual environment
19+
To try GraalPython with a full GraalVM, including the support for Java embedding
20+
and interop with other languages, you can use the bundled releases from
21+
[www.graalvm.org](https://www.graalvm.org/downloads/).
1822

19-
The best way of using the GraalVM implementation of Python is out of a virtual environment. This generates
20-
wrapper scripts and makes the implementation usable from shell as standard Python interpreter. To do so
21-
execute the following in the project directory:
23+
If you want to build GraalPython from source, checkout this repository and the
24+
[mx](https://github.com/graalvm/mx) build tool, and run `mx --dy /compiler
25+
python-gvm` in the `graalpython` repository root. If the build is fine, it will
26+
print the full path to the `graalpython` executable as the last line of output.
2227

23-
Build GraalPython:
28+
For more information and some examples of what you can do with GraalPython,
29+
check out the [reference](https://www.graalvm.org/reference-manual/python/).
2430

25-
```
26-
mx build
27-
```
31+
### Create a virtual environment
2832

29-
Create the venv:
33+
The best way of using the GraalVM implementation of Python is out of a virtual
34+
environment. To create the venv, run the following:
3035

3136
```
32-
mx python -m venv <dir-to-venv>
37+
graalpython -m venv <dir-to-venv>
3338
```
3439

3540
To activate the environment in your shell session call:
@@ -47,28 +52,28 @@ At the moment not enough of the standard library is implemented to run the
4752
standard package installers for many packages. As a convenience, we provide a
4853
simple module to install packages that we know to be working (including
4954
potential patches required for those packages). Try the following to find out
50-
more:
55+
which packages are at least partially supported and tested by us in our CI:
5156

5257
```
53-
graalpython -m ginstall --help
58+
graalpython -m ginstall install --help
5459
```
5560

56-
As a slightly more exciting example, try:
61+
As a slightly exciting example, try:
5762

5863
```
59-
graalpython -m ginstall install numpy
64+
graalpython -m ginstall install pandas
6065
```
6166

62-
If all goes well (also consider native dependencies of NumPy), you should be
63-
able to `import numpy` afterwards.
67+
If all goes well (also consider native dependencies of NumPy), you should be
68+
able to `import numpy` and `import pandas` afterwards.
6469

6570
Support for more extension modules is high priority for us. We are actively
6671
building out our support for the Python C API to make extensions such as NumPy,
67-
SciPy, Scikit-learn, Pandas, Tensorflow and the like work. This work means that
68-
some other extensions might also already work, but we're not actively testing
69-
other extensions right now and cannot promise anything. Note that to try
70-
extensions on this implementation, you have to download, build, and install them
71-
manually for now.
72+
SciPy, Scikit-learn, Pandas, Tensorflow and the like work fully. This work means
73+
that some other extensions might also already work, but we're not actively
74+
testing other extensions right now and cannot promise anything. Note that to try
75+
other extensions on this implementation, you have to download, build, and
76+
install them manually for now.
7277

7378
### Polyglot Usage
7479

graalpython/com.oracle.graal.python.test/src/com/oracle/graal/python/test/parser/ParserTestBase.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@
5151
import com.oracle.graal.python.test.PythonTests;
5252
import com.oracle.truffle.api.TruffleFile;
5353
import com.oracle.truffle.api.frame.Frame;
54+
import com.oracle.truffle.api.interop.ExceptionType;
55+
import com.oracle.truffle.api.interop.InteropLibrary;
56+
import com.oracle.truffle.api.interop.UnsupportedMessageException;
5457
import com.oracle.truffle.api.nodes.Node;
5558
import com.oracle.truffle.api.source.Source;
5659
import java.io.File;
@@ -127,7 +130,7 @@ public void checkSyntaxError(String source) throws Exception {
127130
try {
128131
parse(source, name.getMethodName(), PythonParser.ParserMode.File);
129132
} catch (PException e) {
130-
thrown = e.isSyntaxError();
133+
thrown = isSyntaxError(e);
131134
}
132135

133136
assertTrue("Expected SyntaxError was not thrown.", thrown);
@@ -138,7 +141,7 @@ public void checkSyntaxErrorMessageContains(String source, String expectedMessag
138141
try {
139142
parse(source, name.getMethodName(), PythonParser.ParserMode.File);
140143
} catch (PException e) {
141-
thrown = e.isSyntaxError();
144+
thrown = isSyntaxError(e);
142145
Assert.assertTrue("The expected message:\n\"" + expectedMessage + "\"\nwas not found in\n\"" + e.getMessage() + "\"", e.getMessage().contains(expectedMessage));
143146
}
144147

@@ -150,13 +153,17 @@ public void checkSyntaxErrorMessage(String source, String expectedMessage) throw
150153
try {
151154
parse(source, name.getMethodName(), PythonParser.ParserMode.File);
152155
} catch (PException e) {
153-
thrown = e.isSyntaxError();
156+
thrown = isSyntaxError(e);
154157
Assert.assertEquals(expectedMessage, e.getMessage());
155158
}
156159

157160
assertTrue("Expected SyntaxError was not thrown.", thrown);
158161
}
159162

163+
private static boolean isSyntaxError(PException e) throws UnsupportedMessageException {
164+
return InteropLibrary.getUncached().getExceptionType(e) == ExceptionType.PARSE_ERROR;
165+
}
166+
160167
public void saveNewTreeResult(File testFile, boolean goldenFileNextToTestFile) throws Exception {
161168
assertTrue("The test files " + testFile.getAbsolutePath() + " was not found.", testFile.exists());
162169
TruffleFile src = context.getEnv().getInternalTruffleFile(testFile.getAbsolutePath());

graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_bigmem.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,9 @@
6262
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_encode
6363
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_encode_ascii
6464
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_encode_raw_unicode_escape
65+
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_encode_utf7
6566
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_endswith
67+
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_expandtabs
6668
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_find
6769
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_format
6870
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_index
@@ -87,11 +89,14 @@
8789
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_rstrip
8890
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_split_large
8991
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_split_small
92+
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_splitlines
9093
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_startswith
9194
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_strip
95+
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_swapcase
9296
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_title
9397
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_translate
9498
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_unicode_repr
99+
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_unicode_repr_wide
95100
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_upper
96101
*graalpython.lib-python.3.test.test_bigmem.StrTest.test_zfill
97102
*graalpython.lib-python.3.test.test_bigmem.TupleTest.test_compare

graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_builtin.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
*graalpython.lib-python.3.test.test_builtin.BuiltinTest.test_all
22
*graalpython.lib-python.3.test.test_builtin.BuiltinTest.test_any
3+
*graalpython.lib-python.3.test.test_builtin.BuiltinTest.test_ascii
34
*graalpython.lib-python.3.test.test_builtin.BuiltinTest.test_bin
45
*graalpython.lib-python.3.test.test_builtin.BuiltinTest.test_bug_27936
56
*graalpython.lib-python.3.test.test_builtin.BuiltinTest.test_bytearray_extend_error
@@ -21,8 +22,11 @@
2122
*graalpython.lib-python.3.test.test_builtin.BuiltinTest.test_filter
2223
*graalpython.lib-python.3.test.test_builtin.BuiltinTest.test_filter_pickle
2324
*graalpython.lib-python.3.test.test_builtin.BuiltinTest.test_general_eval
25+
*graalpython.lib-python.3.test.test_builtin.BuiltinTest.test_getattr
26+
*graalpython.lib-python.3.test.test_builtin.BuiltinTest.test_hasattr
2427
*graalpython.lib-python.3.test.test_builtin.BuiltinTest.test_hex
2528
*graalpython.lib-python.3.test.test_builtin.BuiltinTest.test_id
29+
*graalpython.lib-python.3.test.test_builtin.BuiltinTest.test_import
2630
*graalpython.lib-python.3.test.test_builtin.BuiltinTest.test_isinstance
2731
*graalpython.lib-python.3.test.test_builtin.BuiltinTest.test_issubclass
2832
*graalpython.lib-python.3.test.test_builtin.BuiltinTest.test_map
@@ -57,6 +61,7 @@
5761
*graalpython.lib-python.3.test.test_builtin.TestBreakpoint.test_envar_unimportable
5862
*graalpython.lib-python.3.test.test_builtin.TestSorted.test_basic
5963
*graalpython.lib-python.3.test.test_builtin.TestSorted.test_inputtypes
64+
*graalpython.lib-python.3.test.test_builtin.TestType.test_bad_args
6065
*graalpython.lib-python.3.test.test_builtin.TestType.test_new_type
6166
*graalpython.lib-python.3.test.test_builtin.TestType.test_type_doc
6267
*graalpython.lib-python.3.test.test_builtin.TestType.test_type_nokwargs

graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_calendar.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
*graalpython.lib-python.3.test.test_calendar.CommandLineTestCase.test_html_output_year_css
1515
*graalpython.lib-python.3.test.test_calendar.CommandLineTestCase.test_html_output_year_encoding
1616
*graalpython.lib-python.3.test.test_calendar.CommandLineTestCase.test_illegal_arguments
17+
*graalpython.lib-python.3.test.test_calendar.CommandLineTestCase.test_option_encoding
1718
*graalpython.lib-python.3.test.test_calendar.LeapdaysTestCase.test_no_leapdays
1819
*graalpython.lib-python.3.test.test_calendar.LeapdaysTestCase.test_no_leapdays_upper_boundary
1920
*graalpython.lib-python.3.test.test_calendar.LeapdaysTestCase.test_no_range
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
*graalpython.lib-python.3.test.test_capi.CAPITest.test_c_type_with_matrix_multiplication
2+
*graalpython.lib-python.3.test.test_capi.CAPITest.test_mapping_keys_values_items
3+
*graalpython.lib-python.3.test.test_capi.CAPITest.test_mapping_keys_values_items_bad_arg
4+
*graalpython.lib-python.3.test.test_capi.CAPITest.test_memoryview_from_NULL_pointer
5+
*graalpython.lib-python.3.test.test_capi.CAPITest.test_negative_refcount
6+
*graalpython.lib-python.3.test.test_capi.CAPITest.test_return_null_without_error
7+
*graalpython.lib-python.3.test.test_capi.CAPITest.test_return_result_with_error
8+
*graalpython.lib-python.3.test.test_capi.CAPITest.test_subprocess_fork_exec
9+
*graalpython.lib-python.3.test.test_capi.PyMemDefaultTests.test_api_misuse
10+
*graalpython.lib-python.3.test.test_capi.PyMemDefaultTests.test_buffer_overflow
11+
*graalpython.lib-python.3.test.test_capi.PyMemDefaultTests.test_pymem_malloc_without_gil
12+
*graalpython.lib-python.3.test.test_capi.PyMemDefaultTests.test_pyobject_forbidden_bytes_is_freed
13+
*graalpython.lib-python.3.test.test_capi.PyMemDefaultTests.test_pyobject_freed_is_freed
14+
*graalpython.lib-python.3.test.test_capi.PyMemDefaultTests.test_pyobject_malloc_without_gil
15+
*graalpython.lib-python.3.test.test_capi.PyMemDefaultTests.test_pyobject_null_is_freed
16+
*graalpython.lib-python.3.test.test_capi.PyMemDefaultTests.test_pyobject_uninitialized_is_freed
17+
*graalpython.lib-python.3.test.test_capi.PyMemPymallocDebugTests.test_api_misuse
18+
*graalpython.lib-python.3.test.test_capi.PyMemPymallocDebugTests.test_buffer_overflow
19+
*graalpython.lib-python.3.test.test_capi.PyMemPymallocDebugTests.test_pymem_malloc_without_gil
20+
*graalpython.lib-python.3.test.test_capi.PyMemPymallocDebugTests.test_pyobject_forbidden_bytes_is_freed
21+
*graalpython.lib-python.3.test.test_capi.PyMemPymallocDebugTests.test_pyobject_freed_is_freed
22+
*graalpython.lib-python.3.test.test_capi.PyMemPymallocDebugTests.test_pyobject_malloc_without_gil
23+
*graalpython.lib-python.3.test.test_capi.PyMemPymallocDebugTests.test_pyobject_null_is_freed
24+
*graalpython.lib-python.3.test.test_capi.PyMemPymallocDebugTests.test_pyobject_uninitialized_is_freed
25+
*graalpython.lib-python.3.test.test_capi.Test_testcapi.test_datetime_capi
26+
*graalpython.lib-python.3.test.test_capi.Test_testcapi.test_decref_doesnt_leak
27+
*graalpython.lib-python.3.test.test_capi.Test_testcapi.test_dict_iteration
28+
*graalpython.lib-python.3.test.test_capi.Test_testcapi.test_empty_argparse
29+
*graalpython.lib-python.3.test.test_capi.Test_testcapi.test_incref_decref_API
30+
*graalpython.lib-python.3.test.test_capi.Test_testcapi.test_incref_doesnt_leak
31+
*graalpython.lib-python.3.test.test_capi.Test_testcapi.test_long_api
32+
*graalpython.lib-python.3.test.test_capi.Test_testcapi.test_long_as_size_t
33+
*graalpython.lib-python.3.test.test_capi.Test_testcapi.test_longlong_api
34+
*graalpython.lib-python.3.test.test_capi.Test_testcapi.test_null_strings
35+
*graalpython.lib-python.3.test.test_capi.Test_testcapi.test_sizeof_c_types
36+
*graalpython.lib-python.3.test.test_capi.Test_testcapi.test_string_from_format
37+
*graalpython.lib-python.3.test.test_capi.Test_testcapi.test_structseq_newtype_doesnt_leak
38+
*graalpython.lib-python.3.test.test_capi.Test_testcapi.test_with_docstring
39+
*graalpython.lib-python.3.test.test_capi.Test_testcapi.test_xdecref_doesnt_leak
40+
*graalpython.lib-python.3.test.test_capi.Test_testcapi.test_xincref_doesnt_leak

graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_cgi.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,4 @@
1818
*graalpython.lib-python.3.test.test_cgi.CgiTests.test_parse_header
1919
*graalpython.lib-python.3.test.test_cgi.CgiTests.test_parse_multipart
2020
*graalpython.lib-python.3.test.test_cgi.CgiTests.test_parse_multipart_without_content_length
21+
*graalpython.lib-python.3.test.test_cgi.CgiTests.test_strict

graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_cmd_line.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
*graalpython.lib-python.3.test.test_cmd_line.CmdLineTest.test_del___main__
44
*graalpython.lib-python.3.test.test_cmd_line.CmdLineTest.test_directories
55
*graalpython.lib-python.3.test.test_cmd_line.CmdLineTest.test_empty_PYTHONPATH_issue16309
6+
*graalpython.lib-python.3.test.test_cmd_line.CmdLineTest.test_large_PYTHONPATH
67
*graalpython.lib-python.3.test.test_cmd_line.CmdLineTest.test_non_ascii
78
*graalpython.lib-python.3.test.test_cmd_line.CmdLineTest.test_output_newline
89
*graalpython.lib-python.3.test.test_cmd_line.CmdLineTest.test_run_module_bug1764407
10+
*graalpython.lib-python.3.test.test_cmd_line.CmdLineTest.test_unbuffered_input

graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_cmd_line_script.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,9 @@
22
*graalpython.lib-python.3.test.test_cmd_line_script.CmdLineTest.test_dash_m_bad_pyc
33
*graalpython.lib-python.3.test.test_cmd_line_script.CmdLineTest.test_dash_m_error_code_is_one
44
*graalpython.lib-python.3.test.test_cmd_line_script.CmdLineTest.test_dash_m_errors
5+
*graalpython.lib-python.3.test.test_cmd_line_script.CmdLineTest.test_dash_m_init_traceback
6+
*graalpython.lib-python.3.test.test_cmd_line_script.CmdLineTest.test_dash_m_main_traceback
7+
*graalpython.lib-python.3.test.test_cmd_line_script.CmdLineTest.test_directory_error
8+
*graalpython.lib-python.3.test.test_cmd_line_script.CmdLineTest.test_issue20500_exit_with_exception_value
9+
*graalpython.lib-python.3.test.test_cmd_line_script.CmdLineTest.test_issue20884
510
*graalpython.lib-python.3.test.test_cmd_line_script.CmdLineTest.test_nonexisting_script

graalpython/com.oracle.graal.python.test/src/tests/unittest_tags/test_codecencodings_cn.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@
66
*graalpython.lib-python.3.test.test_codecencodings_cn.Test_GB18030.test_streamwriter_reset_no_pending
77
*graalpython.lib-python.3.test.test_codecencodings_cn.Test_GB18030.test_xmlcharrefreplace
88
*graalpython.lib-python.3.test.test_codecencodings_cn.Test_GB2312.test_chunkcoding
9+
*graalpython.lib-python.3.test.test_codecencodings_cn.Test_GB2312.test_errorhandle
910
*graalpython.lib-python.3.test.test_codecencodings_cn.Test_GB2312.test_incrementaldecoder
1011
*graalpython.lib-python.3.test.test_codecencodings_cn.Test_GB2312.test_incrementalencoder
1112
*graalpython.lib-python.3.test.test_codecencodings_cn.Test_GB2312.test_streamwriter
1213
*graalpython.lib-python.3.test.test_codecencodings_cn.Test_GB2312.test_streamwriter_reset_no_pending
1314
*graalpython.lib-python.3.test.test_codecencodings_cn.Test_GBK.test_chunkcoding
15+
*graalpython.lib-python.3.test.test_codecencodings_cn.Test_GBK.test_errorhandle
1416
*graalpython.lib-python.3.test.test_codecencodings_cn.Test_GBK.test_incrementaldecoder
1517
*graalpython.lib-python.3.test.test_codecencodings_cn.Test_GBK.test_incrementalencoder
1618
*graalpython.lib-python.3.test.test_codecencodings_cn.Test_GBK.test_streamwriter

0 commit comments

Comments
 (0)