coconut-develop 3.1.2.post0.dev5__tar.gz → 3.1.2.post0.dev7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/DOCS.md +3 -3
  2. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/PKG-INFO +39 -28
  3. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/api.py +6 -3
  4. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/command/command.py +2 -1
  5. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/constants.py +10 -10
  6. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/icoconut/root.py +84 -79
  7. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/root.py +1 -1
  8. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/main_test.py +9 -0
  9. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/CONTRIBUTING.md +0 -0
  10. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/FAQ.md +0 -0
  11. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/HELP.md +0 -0
  12. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/LICENSE.txt +0 -0
  13. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/MANIFEST.in +0 -0
  14. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/README.rst +0 -0
  15. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/__coconut__/__init__.py +0 -0
  16. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/__coconut__/__init__.pyi +0 -0
  17. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/__coconut__/py.typed +0 -0
  18. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/_coconut/__init__.py +0 -0
  19. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/_coconut/__init__.pyi +0 -0
  20. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/_coconut/py.typed +0 -0
  21. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/__coconut__.py +0 -0
  22. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/__coconut__.pyi +0 -0
  23. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/__init__.py +0 -0
  24. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/__init__.pyi +0 -0
  25. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/__main__.py +0 -0
  26. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/_pyparsing.py +0 -0
  27. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/api.pyi +0 -0
  28. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/command/__init__.py +0 -0
  29. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/command/__init__.pyi +0 -0
  30. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/command/cli.py +0 -0
  31. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/command/command.pyi +0 -0
  32. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/command/mypy.py +0 -0
  33. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/command/resources/zcoconut.pth +0 -0
  34. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/command/util.py +0 -0
  35. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/command/watch.py +0 -0
  36. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/compiler/__init__.py +0 -0
  37. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/compiler/compiler.py +0 -0
  38. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/compiler/grammar.py +0 -0
  39. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/compiler/header.py +0 -0
  40. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/compiler/matching.py +0 -0
  41. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/compiler/templates/header.py_template +0 -0
  42. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/compiler/util.py +0 -0
  43. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/convenience.py +0 -0
  44. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/convenience.pyi +0 -0
  45. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/exceptions.py +0 -0
  46. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/highlighter.py +0 -0
  47. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/icoconut/__init__.py +0 -0
  48. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/icoconut/__main__.py +0 -0
  49. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/icoconut/coconut/kernel.json +0 -0
  50. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/icoconut/coconut_py/kernel.json +0 -0
  51. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/icoconut/coconut_py2/kernel.json +0 -0
  52. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/icoconut/coconut_py3/kernel.json +0 -0
  53. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/icoconut/embed.py +0 -0
  54. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/integrations.py +0 -0
  55. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/main.py +0 -0
  56. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/py.typed +0 -0
  57. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/requirements.py +0 -0
  58. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/terminal.py +0 -0
  59. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/__init__.py +0 -0
  60. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/__main__.py +0 -0
  61. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/constants_test.py +0 -0
  62. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/cocotest/agnostic/__init__.coco +0 -0
  63. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/cocotest/agnostic/__main__.coco +0 -0
  64. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/cocotest/agnostic/main.coco +0 -0
  65. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/cocotest/agnostic/primary_1.coco +0 -0
  66. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/cocotest/agnostic/primary_2.coco +0 -0
  67. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/cocotest/agnostic/specific.coco +0 -0
  68. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/cocotest/agnostic/suite.coco +0 -0
  69. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/cocotest/agnostic/tutorial.coco +0 -0
  70. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/cocotest/agnostic/util.coco +0 -0
  71. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/cocotest/non_strict/non_strict_test.coco +0 -0
  72. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/cocotest/target_2/py2_test.coco +0 -0
  73. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/cocotest/target_3/py3_test.coco +0 -0
  74. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/cocotest/target_311/py311_test.coco +0 -0
  75. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/cocotest/target_35/py35_test.coco +0 -0
  76. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/cocotest/target_36/py36_test.coco +0 -0
  77. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/cocotest/target_38/py38_test.coco +0 -0
  78. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/cocotest/target_sys/target_sys_test.coco +0 -0
  79. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/extras.coco +0 -0
  80. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/importable.coco +0 -0
  81. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/runnable.coco +0 -0
  82. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/tests/src/runner.coco +0 -0
  83. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut/util.py +0 -0
  84. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/coconut_develop.egg-info/SOURCES.txt +0 -0
  85. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/conf.py +0 -0
  86. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/pyproject.toml +0 -0
  87. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/setup.cfg +0 -0
  88. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/setup.py +0 -0
  89. {coconut_develop-3.1.2.post0.dev5 → coconut_develop-3.1.2.post0.dev7}/xontrib/coconut.py +0 -0
@@ -504,9 +504,9 @@ Coconut integrates with [`xonsh`](https://xon.sh/) to allow the use of Coconut c
504
504
 
505
505
  For an example of using Coconut from `xonsh`:
506
506
  ```
507
- user@computer ~ $ xontrib load coconut
508
- user@computer ~ $ cd ./files
509
- user@computer ~ $ $(ls -la) |> .splitlines() |> len
507
+ user@computer ~ @ xontrib load coconut
508
+ user@computer ~ @ cd ./files
509
+ user@computer ~ @ $(ls -la) |> .splitlines() |> len
510
510
  30
511
511
  ```
512
512
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: coconut-develop
3
- Version: 3.1.2.post0.dev5
3
+ Version: 3.1.2.post0.dev7
4
4
  Summary: Simple, elegant, Pythonic functional programming.
5
5
  Home-page: http://coconut-lang.org
6
6
  Author: Evan Hubinger
@@ -49,7 +49,7 @@ Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "
49
49
  Requires-Dist: ipython>=7.34; (python_version >= "3.7" and python_version < "3.8") and extra == "kernel"
50
50
  Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "kernel"
51
51
  Requires-Dist: ipython>=8.18; (python_version >= "3.9" and python_version < "3.10") and extra == "kernel"
52
- Requires-Dist: ipython>=8.27; python_version >= "3.10" and extra == "kernel"
52
+ Requires-Dist: ipython>=9; python_version >= "3.10" and extra == "kernel"
53
53
  Requires-Dist: ipykernel>=4.10; python_version < "3" and extra == "kernel"
54
54
  Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "kernel"
55
55
  Requires-Dist: ipykernel>=6; python_version >= "3.8" and extra == "kernel"
@@ -62,7 +62,7 @@ Requires-Dist: pywinpty<0.6,>=0.5; (python_version < "3" and os_name == "nt") an
62
62
  Provides-Extra: watch
63
63
  Requires-Dist: watchdog>=0.10; extra == "watch"
64
64
  Provides-Extra: mypy
65
- Requires-Dist: mypy[python2]>=1.11; extra == "mypy"
65
+ Requires-Dist: mypy[python2]>=1.15; extra == "mypy"
66
66
  Requires-Dist: types-backports>=0.1; extra == "mypy"
67
67
  Requires-Dist: typing>=3.10; python_version < "3.5" and extra == "mypy"
68
68
  Provides-Extra: pyright
@@ -72,20 +72,20 @@ Requires-Dist: typing>=3.10; python_version < "3.5" and extra == "pyright"
72
72
  Provides-Extra: xonsh
73
73
  Requires-Dist: xonsh>=0.9; python_version < "3.6" and extra == "xonsh"
74
74
  Requires-Dist: xonsh>=0.11; (python_version >= "3.6" and python_version < "3.9") and extra == "xonsh"
75
- Requires-Dist: xonsh>=0.18; python_version >= "3.9" and extra == "xonsh"
75
+ Requires-Dist: xonsh>=0.19; python_version >= "3.9" and extra == "xonsh"
76
76
  Provides-Extra: numpy
77
77
  Requires-Dist: numpy>=1.16; (python_version < "3" and platform_python_implementation == "CPython") and extra == "numpy"
78
78
  Requires-Dist: numpy>=1.18; (python_version >= "3.4" and python_version < "3.9") and extra == "numpy"
79
79
  Requires-Dist: numpy>=1.26; python_version >= "3.9" and extra == "numpy"
80
80
  Requires-Dist: pandas>=1.1; python_version >= "3.6" and extra == "numpy"
81
- Requires-Dist: xarray>=2024; python_version >= "3.9" and extra == "numpy"
81
+ Requires-Dist: xarray>=2025; python_version >= "3.9" and extra == "numpy"
82
82
  Provides-Extra: jupyter
83
83
  Requires-Dist: ipython>=5.4; python_version < "3" and extra == "jupyter"
84
84
  Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "3.7") and extra == "jupyter"
85
85
  Requires-Dist: ipython>=7.34; (python_version >= "3.7" and python_version < "3.8") and extra == "jupyter"
86
86
  Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "jupyter"
87
87
  Requires-Dist: ipython>=8.18; (python_version >= "3.9" and python_version < "3.10") and extra == "jupyter"
88
- Requires-Dist: ipython>=8.27; python_version >= "3.10" and extra == "jupyter"
88
+ Requires-Dist: ipython>=9; python_version >= "3.10" and extra == "jupyter"
89
89
  Requires-Dist: ipykernel>=4.10; python_version < "3" and extra == "jupyter"
90
90
  Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "jupyter"
91
91
  Requires-Dist: ipykernel>=6; python_version >= "3.8" and extra == "jupyter"
@@ -106,7 +106,7 @@ Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "
106
106
  Requires-Dist: ipython>=7.34; (python_version >= "3.7" and python_version < "3.8") and extra == "jupyterlab"
107
107
  Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "jupyterlab"
108
108
  Requires-Dist: ipython>=8.18; (python_version >= "3.9" and python_version < "3.10") and extra == "jupyterlab"
109
- Requires-Dist: ipython>=8.27; python_version >= "3.10" and extra == "jupyterlab"
109
+ Requires-Dist: ipython>=9; python_version >= "3.10" and extra == "jupyterlab"
110
110
  Requires-Dist: ipykernel>=4.10; python_version < "3" and extra == "jupyterlab"
111
111
  Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "jupyterlab"
112
112
  Requires-Dist: ipykernel>=6; python_version >= "3.8" and extra == "jupyterlab"
@@ -128,7 +128,7 @@ Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "
128
128
  Requires-Dist: ipython>=7.34; (python_version >= "3.7" and python_version < "3.8") and extra == "jupytext"
129
129
  Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "jupytext"
130
130
  Requires-Dist: ipython>=8.18; (python_version >= "3.9" and python_version < "3.10") and extra == "jupytext"
131
- Requires-Dist: ipython>=8.27; python_version >= "3.10" and extra == "jupytext"
131
+ Requires-Dist: ipython>=9; python_version >= "3.10" and extra == "jupytext"
132
132
  Requires-Dist: ipykernel>=4.10; python_version < "3" and extra == "jupytext"
133
133
  Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "jupytext"
134
134
  Requires-Dist: ipykernel>=6; python_version >= "3.8" and extra == "jupytext"
@@ -150,7 +150,7 @@ Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "
150
150
  Requires-Dist: ipython>=7.34; (python_version >= "3.7" and python_version < "3.8") and extra == "all"
151
151
  Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "all"
152
152
  Requires-Dist: ipython>=8.18; (python_version >= "3.9" and python_version < "3.10") and extra == "all"
153
- Requires-Dist: ipython>=8.27; python_version >= "3.10" and extra == "all"
153
+ Requires-Dist: ipython>=9; python_version >= "3.10" and extra == "all"
154
154
  Requires-Dist: ipykernel>=4.10; python_version < "3" and extra == "all"
155
155
  Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "all"
156
156
  Requires-Dist: ipykernel>=6; python_version >= "3.8" and extra == "all"
@@ -161,18 +161,18 @@ Requires-Dist: jedi<0.18,>=0.17; python_version < "3.9" and extra == "all"
161
161
  Requires-Dist: jedi>=0.19; python_version >= "3.9" and extra == "all"
162
162
  Requires-Dist: pywinpty<0.6,>=0.5; (python_version < "3" and os_name == "nt") and extra == "all"
163
163
  Requires-Dist: watchdog>=0.10; extra == "all"
164
- Requires-Dist: mypy[python2]>=1.11; extra == "all"
164
+ Requires-Dist: mypy[python2]>=1.15; extra == "all"
165
165
  Requires-Dist: types-backports>=0.1; extra == "all"
166
166
  Requires-Dist: typing>=3.10; python_version < "3.5" and extra == "all"
167
167
  Requires-Dist: pyright>=1.1; extra == "all"
168
168
  Requires-Dist: xonsh>=0.9; python_version < "3.6" and extra == "all"
169
169
  Requires-Dist: xonsh>=0.11; (python_version >= "3.6" and python_version < "3.9") and extra == "all"
170
- Requires-Dist: xonsh>=0.18; python_version >= "3.9" and extra == "all"
170
+ Requires-Dist: xonsh>=0.19; python_version >= "3.9" and extra == "all"
171
171
  Requires-Dist: numpy>=1.16; (python_version < "3" and platform_python_implementation == "CPython") and extra == "all"
172
172
  Requires-Dist: numpy>=1.18; (python_version >= "3.4" and python_version < "3.9") and extra == "all"
173
173
  Requires-Dist: numpy>=1.26; python_version >= "3.9" and extra == "all"
174
174
  Requires-Dist: pandas>=1.1; python_version >= "3.6" and extra == "all"
175
- Requires-Dist: xarray>=2024; python_version >= "3.9" and extra == "all"
175
+ Requires-Dist: xarray>=2025; python_version >= "3.9" and extra == "all"
176
176
  Requires-Dist: jupyter>=1.1; extra == "all"
177
177
  Requires-Dist: jupyter-console>=5.2; python_version < "3.5" and extra == "all"
178
178
  Requires-Dist: jupyter-console>=6.1; (python_version >= "3.5" and python_version < "3.7") and extra == "all"
@@ -186,7 +186,7 @@ Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "
186
186
  Requires-Dist: ipython>=7.34; (python_version >= "3.7" and python_version < "3.8") and extra == "ipython"
187
187
  Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "ipython"
188
188
  Requires-Dist: ipython>=8.18; (python_version >= "3.9" and python_version < "3.10") and extra == "ipython"
189
- Requires-Dist: ipython>=8.27; python_version >= "3.10" and extra == "ipython"
189
+ Requires-Dist: ipython>=9; python_version >= "3.10" and extra == "ipython"
190
190
  Requires-Dist: ipykernel>=4.10; python_version < "3" and extra == "ipython"
191
191
  Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "ipython"
192
192
  Requires-Dist: ipykernel>=6; python_version >= "3.8" and extra == "ipython"
@@ -204,9 +204,9 @@ Requires-Dist: papermill>=1.2; extra == "ipython"
204
204
  Provides-Extra: docs
205
205
  Requires-Dist: sphinx>=8; extra == "docs"
206
206
  Requires-Dist: pygments>=2.3; python_version < "3.9" and extra == "docs"
207
- Requires-Dist: pygments>=2.18; python_version >= "3.9" and extra == "docs"
207
+ Requires-Dist: pygments>=2.19; python_version >= "3.9" and extra == "docs"
208
208
  Requires-Dist: myst-parser>=4; extra == "docs"
209
- Requires-Dist: pydata-sphinx-theme>=0.15; extra == "docs"
209
+ Requires-Dist: pydata-sphinx-theme>=0.16; extra == "docs"
210
210
  Requires-Dist: sphinxcontrib_applehelp>=2; extra == "docs"
211
211
  Requires-Dist: sphinxcontrib_htmlhelp>=2; extra == "docs"
212
212
  Provides-Extra: tests
@@ -220,7 +220,7 @@ Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "
220
220
  Requires-Dist: ipython>=7.34; (python_version >= "3.7" and python_version < "3.8") and extra == "tests"
221
221
  Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "tests"
222
222
  Requires-Dist: ipython>=8.18; (python_version >= "3.9" and python_version < "3.10") and extra == "tests"
223
- Requires-Dist: ipython>=8.27; python_version >= "3.10" and extra == "tests"
223
+ Requires-Dist: ipython>=9; python_version >= "3.10" and extra == "tests"
224
224
  Requires-Dist: ipykernel>=4.10; python_version < "3" and extra == "tests"
225
225
  Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "tests"
226
226
  Requires-Dist: ipykernel>=6; python_version >= "3.8" and extra == "tests"
@@ -241,7 +241,7 @@ Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "
241
241
  Requires-Dist: ipython>=7.34; (python_version >= "3.7" and python_version < "3.8") and extra == "dev"
242
242
  Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "dev"
243
243
  Requires-Dist: ipython>=8.18; (python_version >= "3.9" and python_version < "3.10") and extra == "dev"
244
- Requires-Dist: ipython>=8.27; python_version >= "3.10" and extra == "dev"
244
+ Requires-Dist: ipython>=9; python_version >= "3.10" and extra == "dev"
245
245
  Requires-Dist: ipykernel>=4.10; python_version < "3" and extra == "dev"
246
246
  Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "dev"
247
247
  Requires-Dist: ipykernel>=6; python_version >= "3.8" and extra == "dev"
@@ -252,18 +252,18 @@ Requires-Dist: jedi<0.18,>=0.17; python_version < "3.9" and extra == "dev"
252
252
  Requires-Dist: jedi>=0.19; python_version >= "3.9" and extra == "dev"
253
253
  Requires-Dist: pywinpty<0.6,>=0.5; (python_version < "3" and os_name == "nt") and extra == "dev"
254
254
  Requires-Dist: watchdog>=0.10; extra == "dev"
255
- Requires-Dist: mypy[python2]>=1.11; extra == "dev"
255
+ Requires-Dist: mypy[python2]>=1.15; extra == "dev"
256
256
  Requires-Dist: types-backports>=0.1; extra == "dev"
257
257
  Requires-Dist: typing>=3.10; python_version < "3.5" and extra == "dev"
258
258
  Requires-Dist: pyright>=1.1; extra == "dev"
259
259
  Requires-Dist: xonsh>=0.9; python_version < "3.6" and extra == "dev"
260
260
  Requires-Dist: xonsh>=0.11; (python_version >= "3.6" and python_version < "3.9") and extra == "dev"
261
- Requires-Dist: xonsh>=0.18; python_version >= "3.9" and extra == "dev"
261
+ Requires-Dist: xonsh>=0.19; python_version >= "3.9" and extra == "dev"
262
262
  Requires-Dist: numpy>=1.16; (python_version < "3" and platform_python_implementation == "CPython") and extra == "dev"
263
263
  Requires-Dist: numpy>=1.18; (python_version >= "3.4" and python_version < "3.9") and extra == "dev"
264
264
  Requires-Dist: numpy>=1.26; python_version >= "3.9" and extra == "dev"
265
265
  Requires-Dist: pandas>=1.1; python_version >= "3.6" and extra == "dev"
266
- Requires-Dist: xarray>=2024; python_version >= "3.9" and extra == "dev"
266
+ Requires-Dist: xarray>=2025; python_version >= "3.9" and extra == "dev"
267
267
  Requires-Dist: jupyter>=1.1; extra == "dev"
268
268
  Requires-Dist: jupyter-console>=5.2; python_version < "3.5" and extra == "dev"
269
269
  Requires-Dist: jupyter-console>=6.1; (python_version >= "3.5" and python_version < "3.7") and extra == "dev"
@@ -273,9 +273,9 @@ Requires-Dist: jupyterlab>=2.2; python_version >= "3.5" and extra == "dev"
273
273
  Requires-Dist: jupytext>=1.8; python_version >= "3" and extra == "dev"
274
274
  Requires-Dist: sphinx>=8; extra == "dev"
275
275
  Requires-Dist: pygments>=2.3; python_version < "3.9" and extra == "dev"
276
- Requires-Dist: pygments>=2.18; python_version >= "3.9" and extra == "dev"
276
+ Requires-Dist: pygments>=2.19; python_version >= "3.9" and extra == "dev"
277
277
  Requires-Dist: myst-parser>=4; extra == "dev"
278
- Requires-Dist: pydata-sphinx-theme>=0.15; extra == "dev"
278
+ Requires-Dist: pydata-sphinx-theme>=0.16; extra == "dev"
279
279
  Requires-Dist: sphinxcontrib_applehelp>=2; extra == "dev"
280
280
  Requires-Dist: sphinxcontrib_htmlhelp>=2; extra == "dev"
281
281
  Requires-Dist: pytest>=3; python_version < "3.6" and extra == "dev"
@@ -284,23 +284,23 @@ Requires-Dist: pytest<8.1,>=8.0; python_version >= "3.8" and extra == "dev"
284
284
  Requires-Dist: pexpect>=4; extra == "dev"
285
285
  Requires-Dist: pytest_remotedata>=0.3; extra == "dev"
286
286
  Requires-Dist: pyparsing<2.4.8,>=2.4.7; extra == "dev"
287
- Requires-Dist: pre-commit>=3; python_version >= "3" and extra == "dev"
287
+ Requires-Dist: pre-commit>=4; python_version >= "3" and extra == "dev"
288
288
  Requires-Dist: requests>=2.32; extra == "dev"
289
289
  Requires-Dist: vprof>=0.36; extra == "dev"
290
- Requires-Dist: py-spy>=0.3; extra == "dev"
290
+ Requires-Dist: py-spy>=0.4; extra == "dev"
291
291
  Requires-Dist: argparse>=1.4; python_version < "2.7"
292
- Requires-Dist: psutil>=6; python_version >= "2.7"
292
+ Requires-Dist: psutil>=7; python_version >= "2.7"
293
293
  Requires-Dist: futures>=3.4; python_version < "3"
294
294
  Requires-Dist: backports.functools-lru-cache>=1.6; python_version < "3"
295
295
  Requires-Dist: prompt_toolkit<2,>=1; python_version < "3"
296
296
  Requires-Dist: prompt_toolkit>=1; python_version >= "3"
297
297
  Requires-Dist: pygments>=2.3; python_version < "3.9"
298
- Requires-Dist: pygments>=2.18; python_version >= "3.9"
298
+ Requires-Dist: pygments>=2.19; python_version >= "3.9"
299
299
  Requires-Dist: typing_extensions>=3.10; python_version < "3.6"
300
300
  Requires-Dist: typing_extensions>=4.1; python_version >= "3.6" and python_version < "3.7"
301
301
  Requires-Dist: dataclasses>=0.8; python_version >= "3.6" and python_version < "3.7"
302
302
  Requires-Dist: typing_extensions>=4.7; python_version >= "3.7" and python_version < "3.8"
303
- Requires-Dist: typing_extensions>=4.12; python_version >= "3.8"
303
+ Requires-Dist: typing_extensions>=4.13; python_version >= "3.8"
304
304
  Requires-Dist: trollius>=2.2; python_version < "3" and platform_python_implementation == "CPython"
305
305
  Requires-Dist: aenum>=3.1.15; python_version < "3.4"
306
306
  Requires-Dist: typing>=3.10; python_version < "3.5"
@@ -309,6 +309,17 @@ Requires-Dist: exceptiongroup>=1; python_version >= "3.7" and python_version < "
309
309
  Requires-Dist: anyio>=3; python_version >= "3.6"
310
310
  Requires-Dist: cPyparsing<2.4.7.2.5,>=2.4.7.2.4.1; platform_python_implementation == "CPython"
311
311
  Requires-Dist: pyparsing<2.4.8,>=2.4.7; platform_python_implementation != "CPython"
312
+ Dynamic: author
313
+ Dynamic: author-email
314
+ Dynamic: classifier
315
+ Dynamic: description
316
+ Dynamic: home-page
317
+ Dynamic: keywords
318
+ Dynamic: license
319
+ Dynamic: license-file
320
+ Dynamic: provides-extra
321
+ Dynamic: requires-dist
322
+ Dynamic: summary
312
323
 
313
324
  |logo| Coconut
314
325
  ==============
@@ -202,12 +202,12 @@ class CoconutImporter(object):
202
202
  command = None
203
203
 
204
204
  def __init__(self, *args):
205
- self.use_cache_dir(default_use_cache_dir)
206
205
  self.set_args(args)
206
+ self.use_cache_dir(default_use_cache_dir)
207
207
 
208
208
  def use_cache_dir(self, use_cache_dir):
209
209
  """Set the cache directory if any to use for compiled Coconut files."""
210
- if use_cache_dir:
210
+ if use_cache_dir and "--no-cache" not in self.args:
211
211
  if not PY34:
212
212
  raise CoconutException("coconut.api.auto_compilation only supports the usage of a cache directory on Python 3.4+")
213
213
  self.cache_dir = coconut_cache_dir
@@ -238,7 +238,10 @@ class CoconutImporter(object):
238
238
 
239
239
  if package:
240
240
  self.cmd(path, *extra_args)
241
- return cache_dir or path
241
+ if cache_dir:
242
+ return os.path.join(cache_dir, "__init__.py")
243
+ else:
244
+ return path
242
245
  else:
243
246
  destpath, = self.cmd(path, *extra_args)
244
247
  return destpath
@@ -24,6 +24,7 @@ import os
24
24
  import time
25
25
  import shutil
26
26
  import random
27
+ import sysconfig
27
28
  from contextlib import contextmanager
28
29
  from subprocess import CalledProcessError
29
30
 
@@ -1078,7 +1079,7 @@ class Command(object):
1078
1079
  def get_jupyter_command(self):
1079
1080
  """Get the correct jupyter command."""
1080
1081
  for jupyter in (
1081
- [sys.executable, "-m", "jupyter"],
1082
+ [os.path.join(sysconfig.get_path("scripts"), "jupyter")],
1082
1083
  [sys.executable, "-m", "ipython"],
1083
1084
  ):
1084
1085
  if PY35: # newer Python versions should only use "jupyter", not "ipython"
@@ -1052,8 +1052,8 @@ all_reqs = {
1052
1052
  # min versions are inclusive
1053
1053
  unpinned_min_versions = {
1054
1054
  "cPyparsing": (2, 4, 7, 2, 4, 1),
1055
- ("pre-commit", "py3"): (3,),
1056
- ("psutil", "py>=27"): (6,),
1055
+ ("pre-commit", "py3"): (4,),
1056
+ ("psutil", "py>=27"): (7,),
1057
1057
  "jupyter": (1, 1),
1058
1058
  "types-backports": (0, 1),
1059
1059
  ("futures", "py<3"): (3, 4),
@@ -1061,27 +1061,27 @@ unpinned_min_versions = {
1061
1061
  "pexpect": (4,),
1062
1062
  ("trollius", "py<3;cpy"): (2, 2),
1063
1063
  "requests": (2, 32),
1064
- ("xarray", "py39"): (2024,),
1064
+ ("xarray", "py39"): (2025,),
1065
1065
  ("dataclasses", "py==36"): (0, 8),
1066
1066
  ("aenum", "py<34"): (3, 1, 15),
1067
- "pydata-sphinx-theme": (0, 15),
1067
+ "pydata-sphinx-theme": (0, 16),
1068
1068
  "myst-parser": (4,),
1069
1069
  "sphinx": (8,),
1070
1070
  "sphinxcontrib_applehelp": (2,),
1071
1071
  "sphinxcontrib_htmlhelp": (2,),
1072
- "mypy[python2]": (1, 11),
1072
+ "mypy[python2]": (1, 15),
1073
1073
  "pyright": (1, 1),
1074
1074
  ("jupyter-console", "py37"): (6, 6),
1075
1075
  ("typing", "py<35"): (3, 10),
1076
- ("typing_extensions", "py>=38"): (4, 12),
1076
+ ("typing_extensions", "py>=38"): (4, 13),
1077
1077
  ("ipykernel", "py38"): (6,),
1078
1078
  ("jedi", "py39"): (0, 19),
1079
- ("pygments", "py>=39"): (2, 18),
1080
- ("xonsh", "py39"): (0, 18),
1079
+ ("pygments", "py>=39"): (2, 19),
1080
+ ("xonsh", "py39"): (0, 19),
1081
1081
  ("async_generator", "py35"): (1, 10),
1082
1082
  ("exceptiongroup", "py37;py<311"): (1,),
1083
- ("ipython", "py>=310"): (8, 27),
1084
- "py-spy": (0, 3),
1083
+ ("ipython", "py>=310"): (9,),
1084
+ "py-spy": (0, 4),
1085
1085
  }
1086
1086
 
1087
1087
  pinned_min_versions = {
@@ -52,8 +52,6 @@ from coconut.compiler.util import should_indent, paren_change, get_comment
52
52
  from coconut.command.util import Runner
53
53
 
54
54
  try:
55
- from IPython.core.inputsplitter import IPythonInputSplitter
56
- from IPython.core.inputtransformer import CoroutineInputTransformer
57
55
  from IPython.core.interactiveshell import InteractiveShellABC
58
56
  from IPython.core.compilerop import CachingCompiler
59
57
  from IPython.terminal.embed import InteractiveShellEmbed
@@ -73,6 +71,12 @@ except ImportError:
73
71
  else:
74
72
  LOAD_MODULE = True
75
73
 
74
+ try:
75
+ from IPython.core.inputsplitter import IPythonInputSplitter
76
+ from IPython.core.inputtransformer import CoroutineInputTransformer
77
+ except ImportError:
78
+ IPythonInputSplitter = None
79
+
76
80
  try:
77
81
  from papermill.translators import (
78
82
  papermill_translators,
@@ -154,89 +158,90 @@ if LOAD_MODULE:
154
158
  compiled = source
155
159
  return super(CoconutCompiler, self).__call__(compiled, *args, **kwargs)
156
160
 
157
- class CoconutSplitter(IPythonInputSplitter, object):
158
- """IPython splitter for Coconut."""
159
-
160
- def __init__(self, *args, **kwargs):
161
- """Version of __init__ that sets up Coconut code compilation."""
162
- super(CoconutSplitter, self).__init__(*args, **kwargs)
163
- self._original_compile, self._compile = self._compile, self._coconut_compile
164
- self.assemble_logical_lines = self._coconut_assemble_logical_lines()
165
-
166
- def _coconut_compile(self, source, *args, **kwargs):
167
- """Version of _compile that checks Coconut code.
168
- None means that the code should not be run as is.
169
- Any other value means that it can."""
170
- if replace_all(source, default_whitespace_chars, "").endswith("\n\n"):
171
- return True
172
- elif should_indent(source):
173
- return None
174
- elif "\n" in source.rstrip():
175
- return None
176
- else:
177
- return True
178
-
179
- @staticmethod
180
- @CoroutineInputTransformer.wrap
181
- def _coconut_assemble_logical_lines():
182
- """Version of assemble_logical_lines() that respects strings/parentheses/brackets/braces."""
183
- line = ""
184
- while True:
185
- line = (yield line)
186
- if not line or line.isspace():
187
- continue
188
-
189
- parts = []
190
- level = 0
191
- while line is not None:
192
-
193
- # get no_strs_line
194
- no_strs_line = None
195
- while no_strs_line is None:
196
- no_strs_line = line.strip()
197
- if no_strs_line:
198
- no_strs_line = COMPILER.remove_strs(no_strs_line)
199
- if no_strs_line is None:
200
- # if we're in the middle of a string, fetch a new line
201
- for _ in range(num_assemble_logical_lines_tries):
202
- new_line = (yield None)
203
- if new_line is not None:
161
+ if IPythonInputSplitter is not None:
162
+ class CoconutSplitter(IPythonInputSplitter, object):
163
+ """IPython splitter for Coconut."""
164
+
165
+ def __init__(self, *args, **kwargs):
166
+ """Version of __init__ that sets up Coconut code compilation."""
167
+ super(CoconutSplitter, self).__init__(*args, **kwargs)
168
+ self._original_compile, self._compile = self._compile, self._coconut_compile
169
+ self.assemble_logical_lines = self._coconut_assemble_logical_lines()
170
+
171
+ def _coconut_compile(self, source, *args, **kwargs):
172
+ """Version of _compile that checks Coconut code.
173
+ None means that the code should not be run as is.
174
+ Any other value means that it can."""
175
+ if replace_all(source, default_whitespace_chars, "").endswith("\n\n"):
176
+ return True
177
+ elif should_indent(source):
178
+ return None
179
+ elif "\n" in source.rstrip():
180
+ return None
181
+ else:
182
+ return True
183
+
184
+ @staticmethod
185
+ @CoroutineInputTransformer.wrap
186
+ def _coconut_assemble_logical_lines():
187
+ """Version of assemble_logical_lines() that respects strings/parentheses/brackets/braces."""
188
+ line = ""
189
+ while True:
190
+ line = (yield line)
191
+ if not line or line.isspace():
192
+ continue
193
+
194
+ parts = []
195
+ level = 0
196
+ while line is not None:
197
+
198
+ # get no_strs_line
199
+ no_strs_line = None
200
+ while no_strs_line is None:
201
+ no_strs_line = line.strip()
202
+ if no_strs_line:
203
+ no_strs_line = COMPILER.remove_strs(no_strs_line)
204
+ if no_strs_line is None:
205
+ # if we're in the middle of a string, fetch a new line
206
+ for _ in range(num_assemble_logical_lines_tries):
207
+ new_line = (yield None)
208
+ if new_line is not None:
209
+ break
210
+ if new_line is None:
211
+ # if we're not able to build a no_strs_line, we should stop doing line joining
212
+ level = 0
213
+ no_strs_line = ""
204
214
  break
205
- if new_line is None:
206
- # if we're not able to build a no_strs_line, we should stop doing line joining
207
- level = 0
208
- no_strs_line = ""
209
- break
210
- else:
211
- line += new_line
212
-
213
- # update paren level
214
- level += paren_change(no_strs_line)
215
-
216
- # put line in parts and break if done
217
- if get_comment(line):
218
- parts.append(line)
219
- break
220
- elif level < 0:
221
- parts.append(line)
222
- elif no_strs_line.endswith("\\"):
223
- parts.append(line[:-1])
224
- else:
225
- parts.append(line)
226
- break
227
-
228
- # if we're not done, fetch a new line
229
- for _ in range(num_assemble_logical_lines_tries):
230
- line = (yield None)
231
- if line is not None:
215
+ else:
216
+ line += new_line
217
+
218
+ # update paren level
219
+ level += paren_change(no_strs_line)
220
+
221
+ # put line in parts and break if done
222
+ if get_comment(line):
223
+ parts.append(line)
224
+ break
225
+ elif level < 0:
226
+ parts.append(line)
227
+ elif no_strs_line.endswith("\\"):
228
+ parts.append(line[:-1])
229
+ else:
230
+ parts.append(line)
232
231
  break
233
232
 
234
- line = ''.join(parts)
233
+ # if we're not done, fetch a new line
234
+ for _ in range(num_assemble_logical_lines_tries):
235
+ line = (yield None)
236
+ if line is not None:
237
+ break
235
238
 
236
- INTERACTIVE_SHELL_CODE = '''
239
+ line = ''.join(parts)
240
+
241
+ INTERACTIVE_SHELL_CODE = ('''
237
242
  input_splitter = CoconutSplitter(line_input_checker=True)
238
243
  input_transformer_manager = CoconutSplitter(line_input_checker=False)
239
-
244
+ ''' if IPythonInputSplitter is not None else "") + '''
240
245
  @override
241
246
  def init_instance_attrs(self):
242
247
  """Version of init_instance_attrs that uses CoconutCompiler."""
@@ -26,7 +26,7 @@ import sys as _coconut_sys
26
26
  VERSION = "3.1.2"
27
27
  VERSION_NAME = None
28
28
  # False for release, int >= 1 for develop
29
- DEVELOP = 5
29
+ DEVELOP = 7
30
30
  ALPHA = False # for pre releases rather than post releases
31
31
 
32
32
  assert DEVELOP is False or DEVELOP >= 1, "DEVELOP must be False or an int >= 1"
@@ -136,11 +136,13 @@ pyston = os.path.join(os.curdir, "pyston")
136
136
  pyprover = os.path.join(os.curdir, "pyprover")
137
137
  prelude = os.path.join(os.curdir, "coconut-prelude")
138
138
  bbopt = os.path.join(os.curdir, "bbopt")
139
+ imp_issue_dir = os.path.join(os.curdir, "coconut-issue")
139
140
 
140
141
  pyston_git = "https://github.com/evhub/pyston.git"
141
142
  pyprover_git = "https://github.com/evhub/pyprover.git"
142
143
  prelude_git = "https://github.com/evhub/coconut-prelude"
143
144
  bbopt_git = "https://github.com/evhub/bbopt.git"
145
+ imp_issue_git = "https://github.com/evhub/coconut-issue.git"
144
146
 
145
147
  coconut_snip = "msg = '<success>'; pmsg = print$(msg); `pmsg`"
146
148
  target_3_snip = "assert super is py_super; print('<success>')"
@@ -1117,6 +1119,13 @@ if TEST_ALL:
1117
1119
  if PYPY and PY2:
1118
1120
  run_pyston()
1119
1121
 
1122
+ def test_imp_issue(self):
1123
+ with using_paths(imp_issue_dir):
1124
+ if not os.path.exists(imp_issue_dir):
1125
+ call(["git", "clone", imp_issue_git])
1126
+ with using_env_vars({"PYTHONPATH": os.pathsep.join([imp_issue_dir, os.environ.get("PYTHONPATH", "")])}):
1127
+ call_coconut(["-r", os.path.join(imp_issue_dir, "main.coco")])
1128
+
1120
1129
 
1121
1130
  # -----------------------------------------------------------------------------------------------------------------------
1122
1131
  # MAIN: