coconut-develop 3.1.1.post0.dev5__tar.gz → 3.1.1.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.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/DOCS.md +7 -7
  2. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/PKG-INFO +162 -159
  3. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/__coconut__/__init__.pyi +12 -0
  4. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/compiler/compiler.py +18 -14
  5. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/compiler/header.py +2 -2
  6. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/compiler/templates/header.py_template +23 -9
  7. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/constants.py +17 -10
  8. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/root.py +16 -5
  9. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/main_test.py +9 -10
  10. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/cocotest/agnostic/primary_2.coco +4 -0
  11. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/CONTRIBUTING.md +0 -0
  12. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/FAQ.md +0 -0
  13. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/HELP.md +0 -0
  14. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/LICENSE.txt +0 -0
  15. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/MANIFEST.in +0 -0
  16. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/README.rst +0 -0
  17. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/__coconut__/__init__.py +0 -0
  18. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/__coconut__/py.typed +0 -0
  19. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/_coconut/__init__.py +0 -0
  20. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/_coconut/__init__.pyi +0 -0
  21. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/_coconut/py.typed +0 -0
  22. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/__coconut__.py +0 -0
  23. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/__coconut__.pyi +0 -0
  24. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/__init__.py +0 -0
  25. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/__init__.pyi +0 -0
  26. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/__main__.py +0 -0
  27. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/_pyparsing.py +0 -0
  28. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/api.py +0 -0
  29. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/api.pyi +0 -0
  30. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/command/__init__.py +0 -0
  31. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/command/__init__.pyi +0 -0
  32. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/command/cli.py +0 -0
  33. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/command/command.py +0 -0
  34. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/command/command.pyi +0 -0
  35. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/command/mypy.py +0 -0
  36. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/command/resources/zcoconut.pth +0 -0
  37. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/command/util.py +0 -0
  38. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/command/watch.py +0 -0
  39. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/compiler/__init__.py +0 -0
  40. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/compiler/grammar.py +0 -0
  41. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/compiler/matching.py +0 -0
  42. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/compiler/util.py +0 -0
  43. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/convenience.py +0 -0
  44. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/convenience.pyi +0 -0
  45. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/exceptions.py +0 -0
  46. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/highlighter.py +0 -0
  47. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/icoconut/__init__.py +0 -0
  48. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/icoconut/__main__.py +0 -0
  49. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/icoconut/coconut/kernel.json +0 -0
  50. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/icoconut/coconut_py/kernel.json +0 -0
  51. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/icoconut/coconut_py2/kernel.json +0 -0
  52. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/icoconut/coconut_py3/kernel.json +0 -0
  53. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/icoconut/embed.py +0 -0
  54. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/icoconut/root.py +0 -0
  55. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/integrations.py +0 -0
  56. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/main.py +0 -0
  57. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/py.typed +0 -0
  58. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/requirements.py +0 -0
  59. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/terminal.py +0 -0
  60. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/__init__.py +0 -0
  61. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/__main__.py +0 -0
  62. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/constants_test.py +0 -0
  63. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/cocotest/agnostic/__init__.coco +0 -0
  64. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/cocotest/agnostic/__main__.coco +0 -0
  65. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/cocotest/agnostic/main.coco +0 -0
  66. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/cocotest/agnostic/primary_1.coco +0 -0
  67. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/cocotest/agnostic/specific.coco +0 -0
  68. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/cocotest/agnostic/suite.coco +0 -0
  69. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/cocotest/agnostic/tutorial.coco +0 -0
  70. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/cocotest/agnostic/util.coco +0 -0
  71. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/cocotest/non_strict/non_strict_test.coco +0 -0
  72. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/cocotest/target_2/py2_test.coco +0 -0
  73. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/cocotest/target_3/py3_test.coco +0 -0
  74. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/cocotest/target_311/py311_test.coco +0 -0
  75. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/cocotest/target_35/py35_test.coco +0 -0
  76. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/cocotest/target_36/py36_test.coco +0 -0
  77. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/cocotest/target_38/py38_test.coco +0 -0
  78. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/cocotest/target_sys/target_sys_test.coco +0 -0
  79. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/extras.coco +0 -0
  80. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/importable.coco +0 -0
  81. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/runnable.coco +0 -0
  82. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/tests/src/runner.coco +0 -0
  83. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut/util.py +0 -0
  84. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/coconut_develop.egg-info/SOURCES.txt +0 -0
  85. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/conf.py +0 -0
  86. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/pyproject.toml +0 -0
  87. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/setup.cfg +0 -0
  88. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/setup.py +0 -0
  89. {coconut_develop-3.1.1.post0.dev5 → coconut_develop-3.1.1.post0.dev7}/xontrib/coconut.py +0 -0
@@ -1737,7 +1737,7 @@ The syntax for a statement lambda is
1737
1737
  ```
1738
1738
  [async|match|copyclosure] def (arguments) => statement; statement; ...
1739
1739
  ```
1740
- where `arguments` can be standard function arguments or [pattern-matching function definition](#pattern-matching-functions) arguments and `statement` can be an assignment statement or a keyword statement. Note that the `async`, `match`, and [`copyclosure`](#copyclosure-functions) keywords can be combined and can be in any order.
1740
+ where `arguments` can be standard function arguments or [pattern-matching function definition](#pattern-matching-functions) arguments and `statement` can be any non-compound statement—that is, any statement that doesn't open a code block below it (so `def x => assert x` is fine but `def x => if x: True` is not). Note that the `async`, `match`, and [`copyclosure`](#copyclosure-functions) keywords can be combined and can be in any order.
1741
1741
 
1742
1742
  If the last `statement` (not followed by a semicolon) in a statement lambda is an `expression`, it will automatically be returned.
1743
1743
 
@@ -3805,9 +3805,9 @@ _Can’t be done quickly without Coconut’s iterable indexing, which requires m
3805
3805
 
3806
3806
  #### `reduce`
3807
3807
 
3808
- **reduce**(_function_, _iterable_[, _initial_], /)
3808
+ **reduce**(_function_, _iterable_[, _initial_])
3809
3809
 
3810
- Coconut re-introduces Python 2's `reduce` built-in, using the `functools.reduce` version.
3810
+ Coconut re-introduces Python 2's `reduce` built-in, using the `functools.reduce` version. Additionally, unlike `functools.reduce`, Coconut's `reduce` always supports keyword arguments.
3811
3811
 
3812
3812
  ##### Python Docs
3813
3813
 
@@ -3937,9 +3937,9 @@ result = itertools.zip_longest(range(5), range(10))
3937
3937
 
3938
3938
  #### `takewhile`
3939
3939
 
3940
- **takewhile**(_predicate_, _iterable_, /)
3940
+ **takewhile**(_predicate_, _iterable_)
3941
3941
 
3942
- Coconut provides `itertools.takewhile` as a built-in under the name `takewhile`.
3942
+ Coconut provides `itertools.takewhile` as a built-in under the name `takewhile`. Additionally, unlike `itertools.takewhile`, Coconut's `takewhile` always supports keyword arguments.
3943
3943
 
3944
3944
  ##### Python Docs
3945
3945
 
@@ -3971,9 +3971,9 @@ negatives = itertools.takewhile(lambda x: x < 0, numiter)
3971
3971
 
3972
3972
  #### `dropwhile`
3973
3973
 
3974
- **dropwhile**(_predicate_, _iterable_, /)
3974
+ **dropwhile**(_predicate_, _iterable_)
3975
3975
 
3976
- Coconut provides `itertools.dropwhile` as a built-in under the name `dropwhile`.
3976
+ Coconut provides `itertools.dropwhile` as a built-in under the name `dropwhile`. Additionally, unlike `itertools.dropwhile`, Coconut's `dropwhile` always supports keyword arguments.
3977
3977
 
3978
3978
  ##### Python Docs
3979
3979
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: coconut-develop
3
- Version: 3.1.1.post0.dev5
3
+ Version: 3.1.1.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.25; python_version >= "3.10" and extra == "kernel"
52
+ Requires-Dist: ipython>=8.27; 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.10; extra == "mypy"
65
+ Requires-Dist: mypy[python2]>=1.11; 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,226 +72,229 @@ 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.16; python_version >= "3.9" and extra == "xonsh"
75
+ Requires-Dist: xonsh>=0.18; 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
- Requires-Dist: numpy>=1.26; python_version >= "3.9" and extra == "numpy"
80
- Requires-Dist: pandas>=1; python_version >= "3.6" and extra == "numpy"
79
+ Requires-Dist: numpy>=2; python_version >= "3.9" and extra == "numpy"
80
+ Requires-Dist: pandas>=1.16; python_version >= "3.6" and extra == "numpy"
81
81
  Requires-Dist: xarray>=2024; python_version >= "3.9" and extra == "numpy"
82
82
  Provides-Extra: jupyter
83
- Requires-Dist: jedi<0.18,>=0.17; python_version < "3.9" and extra == "jupyter"
84
- Requires-Dist: jupyter-client<6.1.13,>=6.1.12; (python_version >= "3.5" and python_version < "3.6") and extra == "jupyter"
85
- Requires-Dist: jupyter>=1.0; extra == "jupyter"
86
- Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "jupyter"
87
- Requires-Dist: jupyter-client>=7.1.2; python_version >= "3.6" and extra == "jupyter"
88
- Requires-Dist: jupyter-console>=6.1; (python_version >= "3.5" and python_version < "3.7") and extra == "jupyter"
83
+ Requires-Dist: ipython>=5.4; python_version < "3" and extra == "jupyter"
84
+ Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "3.7") and extra == "jupyter"
89
85
  Requires-Dist: ipython>=7.34; (python_version >= "3.7" and python_version < "3.8") and extra == "jupyter"
90
- Requires-Dist: ipython>=8.25; python_version >= "3.10" and extra == "jupyter"
86
+ Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "jupyter"
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"
91
89
  Requires-Dist: ipykernel>=4.10; python_version < "3" and extra == "jupyter"
92
- Requires-Dist: pywinpty<0.6,>=0.5; (python_version < "3" and os_name == "nt") and extra == "jupyter"
90
+ Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "jupyter"
93
91
  Requires-Dist: ipykernel>=6; python_version >= "3.8" and extra == "jupyter"
94
92
  Requires-Dist: jupyter-client>=5.3; python_version < "3.5" and extra == "jupyter"
95
- Requires-Dist: jupyter-console>=5.2; python_version < "3.5" and extra == "jupyter"
96
- Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "jupyter"
97
- Requires-Dist: ipython>=8.18; (python_version >= "3.9" and python_version < "3.10") and extra == "jupyter"
98
- Requires-Dist: papermill>=1.2; extra == "jupyter"
93
+ Requires-Dist: jupyter-client<6.1.13,>=6.1.12; (python_version >= "3.5" and python_version < "3.6") and extra == "jupyter"
94
+ Requires-Dist: jupyter-client>=7.1.2; python_version >= "3.6" and extra == "jupyter"
95
+ Requires-Dist: jedi<0.18,>=0.17; python_version < "3.9" and extra == "jupyter"
99
96
  Requires-Dist: jedi>=0.19; python_version >= "3.9" and extra == "jupyter"
97
+ Requires-Dist: pywinpty<0.6,>=0.5; (python_version < "3" and os_name == "nt") and extra == "jupyter"
98
+ Requires-Dist: jupyter>=1.1; extra == "jupyter"
99
+ Requires-Dist: jupyter-console>=5.2; python_version < "3.5" and extra == "jupyter"
100
+ Requires-Dist: jupyter-console>=6.1; (python_version >= "3.5" and python_version < "3.7") and extra == "jupyter"
100
101
  Requires-Dist: jupyter-console>=6.6; python_version >= "3.7" and extra == "jupyter"
101
- Requires-Dist: ipython>=5.4; python_version < "3" and extra == "jupyter"
102
- Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "3.7") and extra == "jupyter"
102
+ Requires-Dist: papermill>=1.2; extra == "jupyter"
103
103
  Provides-Extra: jupyterlab
104
- Requires-Dist: jedi<0.18,>=0.17; python_version < "3.9" and extra == "jupyterlab"
105
- Requires-Dist: jupyter-client<6.1.13,>=6.1.12; (python_version >= "3.5" and python_version < "3.6") and extra == "jupyterlab"
106
- Requires-Dist: jupyter>=1.0; extra == "jupyterlab"
107
- Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "jupyterlab"
108
- Requires-Dist: jupyter-client>=7.1.2; python_version >= "3.6" and extra == "jupyterlab"
109
- Requires-Dist: jupyter-console>=6.1; (python_version >= "3.5" and python_version < "3.7") and extra == "jupyterlab"
104
+ Requires-Dist: ipython>=5.4; python_version < "3" and extra == "jupyterlab"
105
+ Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "3.7") and extra == "jupyterlab"
110
106
  Requires-Dist: ipython>=7.34; (python_version >= "3.7" and python_version < "3.8") and extra == "jupyterlab"
111
- Requires-Dist: ipython>=8.25; python_version >= "3.10" and extra == "jupyterlab"
107
+ Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "jupyterlab"
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"
112
110
  Requires-Dist: ipykernel>=4.10; python_version < "3" and extra == "jupyterlab"
113
- Requires-Dist: pywinpty<0.6,>=0.5; (python_version < "3" and os_name == "nt") and extra == "jupyterlab"
114
- Requires-Dist: jupyterlab>=2.2; python_version >= "3.5" and extra == "jupyterlab"
111
+ Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "jupyterlab"
115
112
  Requires-Dist: ipykernel>=6; python_version >= "3.8" and extra == "jupyterlab"
116
113
  Requires-Dist: jupyter-client>=5.3; python_version < "3.5" and extra == "jupyterlab"
117
- Requires-Dist: jupyter-console>=5.2; python_version < "3.5" and extra == "jupyterlab"
118
- Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "jupyterlab"
119
- Requires-Dist: ipython>=8.18; (python_version >= "3.9" and python_version < "3.10") and extra == "jupyterlab"
120
- Requires-Dist: papermill>=1.2; extra == "jupyterlab"
114
+ Requires-Dist: jupyter-client<6.1.13,>=6.1.12; (python_version >= "3.5" and python_version < "3.6") and extra == "jupyterlab"
115
+ Requires-Dist: jupyter-client>=7.1.2; python_version >= "3.6" and extra == "jupyterlab"
116
+ Requires-Dist: jedi<0.18,>=0.17; python_version < "3.9" and extra == "jupyterlab"
121
117
  Requires-Dist: jedi>=0.19; python_version >= "3.9" and extra == "jupyterlab"
118
+ Requires-Dist: pywinpty<0.6,>=0.5; (python_version < "3" and os_name == "nt") and extra == "jupyterlab"
119
+ Requires-Dist: jupyter>=1.1; extra == "jupyterlab"
120
+ Requires-Dist: jupyter-console>=5.2; python_version < "3.5" and extra == "jupyterlab"
121
+ Requires-Dist: jupyter-console>=6.1; (python_version >= "3.5" and python_version < "3.7") and extra == "jupyterlab"
122
122
  Requires-Dist: jupyter-console>=6.6; python_version >= "3.7" and extra == "jupyterlab"
123
- Requires-Dist: ipython>=5.4; python_version < "3" and extra == "jupyterlab"
124
- Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "3.7") and extra == "jupyterlab"
123
+ Requires-Dist: papermill>=1.2; extra == "jupyterlab"
124
+ Requires-Dist: jupyterlab>=2.2; python_version >= "3.5" and extra == "jupyterlab"
125
125
  Provides-Extra: jupytext
126
- Requires-Dist: jedi<0.18,>=0.17; python_version < "3.9" and extra == "jupytext"
127
- Requires-Dist: jupyter-client<6.1.13,>=6.1.12; (python_version >= "3.5" and python_version < "3.6") and extra == "jupytext"
128
- Requires-Dist: jupyter>=1.0; extra == "jupytext"
129
- Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "jupytext"
130
- Requires-Dist: jupyter-client>=7.1.2; python_version >= "3.6" and extra == "jupytext"
131
- Requires-Dist: jupyter-console>=6.1; (python_version >= "3.5" and python_version < "3.7") and extra == "jupytext"
126
+ Requires-Dist: ipython>=5.4; python_version < "3" and extra == "jupytext"
127
+ Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "3.7") and extra == "jupytext"
132
128
  Requires-Dist: ipython>=7.34; (python_version >= "3.7" and python_version < "3.8") and extra == "jupytext"
133
- Requires-Dist: ipython>=8.25; python_version >= "3.10" and extra == "jupytext"
129
+ Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "jupytext"
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"
134
132
  Requires-Dist: ipykernel>=4.10; python_version < "3" and extra == "jupytext"
135
- Requires-Dist: pywinpty<0.6,>=0.5; (python_version < "3" and os_name == "nt") and extra == "jupytext"
133
+ Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "jupytext"
136
134
  Requires-Dist: ipykernel>=6; python_version >= "3.8" and extra == "jupytext"
137
135
  Requires-Dist: jupyter-client>=5.3; python_version < "3.5" and extra == "jupytext"
138
- Requires-Dist: jupytext>=1.8; python_version >= "3" and extra == "jupytext"
139
- Requires-Dist: jupyter-console>=5.2; python_version < "3.5" and extra == "jupytext"
140
- Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "jupytext"
141
- Requires-Dist: ipython>=8.18; (python_version >= "3.9" and python_version < "3.10") and extra == "jupytext"
142
- Requires-Dist: papermill>=1.2; extra == "jupytext"
136
+ Requires-Dist: jupyter-client<6.1.13,>=6.1.12; (python_version >= "3.5" and python_version < "3.6") and extra == "jupytext"
137
+ Requires-Dist: jupyter-client>=7.1.2; python_version >= "3.6" and extra == "jupytext"
138
+ Requires-Dist: jedi<0.18,>=0.17; python_version < "3.9" and extra == "jupytext"
143
139
  Requires-Dist: jedi>=0.19; python_version >= "3.9" and extra == "jupytext"
140
+ Requires-Dist: pywinpty<0.6,>=0.5; (python_version < "3" and os_name == "nt") and extra == "jupytext"
141
+ Requires-Dist: jupyter>=1.1; extra == "jupytext"
142
+ Requires-Dist: jupyter-console>=5.2; python_version < "3.5" and extra == "jupytext"
143
+ Requires-Dist: jupyter-console>=6.1; (python_version >= "3.5" and python_version < "3.7") and extra == "jupytext"
144
144
  Requires-Dist: jupyter-console>=6.6; python_version >= "3.7" and extra == "jupytext"
145
- Requires-Dist: ipython>=5.4; python_version < "3" and extra == "jupytext"
146
- Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "3.7") and extra == "jupytext"
145
+ Requires-Dist: papermill>=1.2; extra == "jupytext"
146
+ Requires-Dist: jupytext>=1.8; python_version >= "3" and extra == "jupytext"
147
147
  Provides-Extra: all
148
- Requires-Dist: numpy>=1.18; (python_version >= "3.4" and python_version < "3.9") and extra == "all"
149
- Requires-Dist: pandas>=1; python_version >= "3.6" and extra == "all"
150
- Requires-Dist: jedi<0.18,>=0.17; python_version < "3.9" and extra == "all"
151
- Requires-Dist: xarray>=2024; python_version >= "3.9" and extra == "all"
152
- Requires-Dist: jupyter-client<6.1.13,>=6.1.12; (python_version >= "3.5" and python_version < "3.6") and extra == "all"
153
- Requires-Dist: jupyter>=1.0; extra == "all"
154
- Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "all"
155
- Requires-Dist: pyright>=1.1; extra == "all"
156
- Requires-Dist: jupyter-client>=7.1.2; python_version >= "3.6" and extra == "all"
157
- Requires-Dist: jupyter-console>=6.1; (python_version >= "3.5" and python_version < "3.7") and extra == "all"
158
- Requires-Dist: numpy>=1.26; python_version >= "3.9" and extra == "all"
148
+ Requires-Dist: ipython>=5.4; python_version < "3" and extra == "all"
149
+ Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "3.7") and extra == "all"
159
150
  Requires-Dist: ipython>=7.34; (python_version >= "3.7" and python_version < "3.8") and extra == "all"
160
- Requires-Dist: ipython>=8.25; python_version >= "3.10" and extra == "all"
151
+ Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "all"
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"
161
154
  Requires-Dist: ipykernel>=4.10; python_version < "3" and extra == "all"
162
- Requires-Dist: pywinpty<0.6,>=0.5; (python_version < "3" and os_name == "nt") and extra == "all"
163
- Requires-Dist: jupyterlab>=2.2; python_version >= "3.5" and extra == "all"
155
+ Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "all"
164
156
  Requires-Dist: ipykernel>=6; python_version >= "3.8" and extra == "all"
165
- Requires-Dist: numpy>=1.16; (python_version < "3" and platform_python_implementation == "CPython") and extra == "all"
166
157
  Requires-Dist: jupyter-client>=5.3; python_version < "3.5" and extra == "all"
167
- Requires-Dist: xonsh>=0.9; python_version < "3.6" and extra == "all"
168
- Requires-Dist: xonsh>=0.11; (python_version >= "3.6" and python_version < "3.9") and extra == "all"
169
- Requires-Dist: jupytext>=1.8; python_version >= "3" and extra == "all"
170
- Requires-Dist: watchdog>=0.10; extra == "all"
171
- Requires-Dist: jupyter-console>=5.2; python_version < "3.5" and extra == "all"
172
- Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "all"
173
- Requires-Dist: mypy[python2]>=1.10; extra == "all"
174
- Requires-Dist: xonsh>=0.16; python_version >= "3.9" and extra == "all"
175
- Requires-Dist: ipython>=8.18; (python_version >= "3.9" and python_version < "3.10") and extra == "all"
176
- Requires-Dist: papermill>=1.2; extra == "all"
158
+ Requires-Dist: jupyter-client<6.1.13,>=6.1.12; (python_version >= "3.5" and python_version < "3.6") and extra == "all"
159
+ Requires-Dist: jupyter-client>=7.1.2; python_version >= "3.6" and extra == "all"
160
+ Requires-Dist: jedi<0.18,>=0.17; python_version < "3.9" and extra == "all"
177
161
  Requires-Dist: jedi>=0.19; python_version >= "3.9" and extra == "all"
162
+ Requires-Dist: pywinpty<0.6,>=0.5; (python_version < "3" and os_name == "nt") and extra == "all"
163
+ Requires-Dist: watchdog>=0.10; extra == "all"
164
+ Requires-Dist: mypy[python2]>=1.11; extra == "all"
178
165
  Requires-Dist: types-backports>=0.1; extra == "all"
179
166
  Requires-Dist: typing>=3.10; python_version < "3.5" and extra == "all"
167
+ Requires-Dist: pyright>=1.1; extra == "all"
168
+ Requires-Dist: xonsh>=0.9; python_version < "3.6" and extra == "all"
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"
171
+ Requires-Dist: numpy>=1.16; (python_version < "3" and platform_python_implementation == "CPython") and extra == "all"
172
+ Requires-Dist: numpy>=1.18; (python_version >= "3.4" and python_version < "3.9") and extra == "all"
173
+ Requires-Dist: numpy>=2; python_version >= "3.9" and extra == "all"
174
+ Requires-Dist: pandas>=1.16; python_version >= "3.6" and extra == "all"
175
+ Requires-Dist: xarray>=2024; python_version >= "3.9" and extra == "all"
176
+ Requires-Dist: jupyter>=1.1; extra == "all"
177
+ Requires-Dist: jupyter-console>=5.2; python_version < "3.5" and extra == "all"
178
+ Requires-Dist: jupyter-console>=6.1; (python_version >= "3.5" and python_version < "3.7") and extra == "all"
180
179
  Requires-Dist: jupyter-console>=6.6; python_version >= "3.7" and extra == "all"
181
- Requires-Dist: ipython>=5.4; python_version < "3" and extra == "all"
182
- Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "3.7") and extra == "all"
180
+ Requires-Dist: papermill>=1.2; extra == "all"
181
+ Requires-Dist: jupyterlab>=2.2; python_version >= "3.5" and extra == "all"
182
+ Requires-Dist: jupytext>=1.8; python_version >= "3" and extra == "all"
183
183
  Provides-Extra: ipython
184
- Requires-Dist: jedi<0.18,>=0.17; python_version < "3.9" and extra == "ipython"
185
- Requires-Dist: jupyter-client<6.1.13,>=6.1.12; (python_version >= "3.5" and python_version < "3.6") and extra == "ipython"
186
- Requires-Dist: jupyter>=1.0; extra == "ipython"
187
- Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "ipython"
188
- Requires-Dist: jupyter-client>=7.1.2; python_version >= "3.6" and extra == "ipython"
189
- Requires-Dist: jupyter-console>=6.1; (python_version >= "3.5" and python_version < "3.7") and extra == "ipython"
184
+ Requires-Dist: ipython>=5.4; python_version < "3" and extra == "ipython"
185
+ Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "3.7") and extra == "ipython"
190
186
  Requires-Dist: ipython>=7.34; (python_version >= "3.7" and python_version < "3.8") and extra == "ipython"
191
- Requires-Dist: ipython>=8.25; python_version >= "3.10" and extra == "ipython"
187
+ Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "ipython"
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"
192
190
  Requires-Dist: ipykernel>=4.10; python_version < "3" and extra == "ipython"
193
- Requires-Dist: pywinpty<0.6,>=0.5; (python_version < "3" and os_name == "nt") and extra == "ipython"
191
+ Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "ipython"
194
192
  Requires-Dist: ipykernel>=6; python_version >= "3.8" and extra == "ipython"
195
193
  Requires-Dist: jupyter-client>=5.3; python_version < "3.5" and extra == "ipython"
196
- Requires-Dist: jupyter-console>=5.2; python_version < "3.5" and extra == "ipython"
197
- Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "ipython"
198
- Requires-Dist: ipython>=8.18; (python_version >= "3.9" and python_version < "3.10") and extra == "ipython"
199
- Requires-Dist: papermill>=1.2; extra == "ipython"
194
+ Requires-Dist: jupyter-client<6.1.13,>=6.1.12; (python_version >= "3.5" and python_version < "3.6") and extra == "ipython"
195
+ Requires-Dist: jupyter-client>=7.1.2; python_version >= "3.6" and extra == "ipython"
196
+ Requires-Dist: jedi<0.18,>=0.17; python_version < "3.9" and extra == "ipython"
200
197
  Requires-Dist: jedi>=0.19; python_version >= "3.9" and extra == "ipython"
198
+ Requires-Dist: pywinpty<0.6,>=0.5; (python_version < "3" and os_name == "nt") and extra == "ipython"
199
+ Requires-Dist: jupyter>=1.1; extra == "ipython"
200
+ Requires-Dist: jupyter-console>=5.2; python_version < "3.5" and extra == "ipython"
201
+ Requires-Dist: jupyter-console>=6.1; (python_version >= "3.5" and python_version < "3.7") and extra == "ipython"
201
202
  Requires-Dist: jupyter-console>=6.6; python_version >= "3.7" and extra == "ipython"
202
- Requires-Dist: ipython>=5.4; python_version < "3" and extra == "ipython"
203
- Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "3.7") and extra == "ipython"
203
+ Requires-Dist: papermill>=1.2; extra == "ipython"
204
204
  Provides-Extra: docs
205
- Requires-Dist: sphinx>=7; extra == "docs"
206
- Requires-Dist: myst-parser>=3; extra == "docs"
207
- Requires-Dist: pydata-sphinx-theme>=0.15; extra == "docs"
208
- Requires-Dist: pygments>=2.18; python_version >= "3.9" and extra == "docs"
205
+ Requires-Dist: sphinx>=8; extra == "docs"
209
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"
208
+ Requires-Dist: myst-parser>=4; extra == "docs"
209
+ Requires-Dist: pydata-sphinx-theme>=0.15; extra == "docs"
210
+ Requires-Dist: sphinxcontrib_applehelp>=2; extra == "docs"
211
+ Requires-Dist: sphinxcontrib_htmlhelp>=2; extra == "docs"
210
212
  Provides-Extra: tests
213
+ Requires-Dist: pytest>=3; python_version < "3.6" and extra == "tests"
214
+ Requires-Dist: pytest>=7; (python_version >= "3.6" and python_version < "3.8") and extra == "tests"
215
+ Requires-Dist: pytest<8.1,>=8.0; python_version >= "3.8" and extra == "tests"
216
+ Requires-Dist: pexpect>=4; extra == "tests"
217
+ Requires-Dist: pytest_remotedata>=0.4; extra == "tests"
218
+ Requires-Dist: numpy>=1.16; (python_version < "3" and platform_python_implementation == "CPython") and extra == "tests"
211
219
  Requires-Dist: numpy>=1.18; (python_version >= "3.4" and python_version < "3.9") and extra == "tests"
212
- Requires-Dist: pandas>=1; python_version >= "3.6" and extra == "tests"
213
- Requires-Dist: jedi<0.18,>=0.17; python_version < "3.9" and extra == "tests"
220
+ Requires-Dist: numpy>=2; python_version >= "3.9" and extra == "tests"
221
+ Requires-Dist: pandas>=1.16; python_version >= "3.6" and extra == "tests"
214
222
  Requires-Dist: xarray>=2024; python_version >= "3.9" and extra == "tests"
215
- Requires-Dist: jupyter-client<6.1.13,>=6.1.12; (python_version >= "3.5" and python_version < "3.6") and extra == "tests"
216
- Requires-Dist: jupyter>=1.0; extra == "tests"
217
- Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "tests"
218
- Requires-Dist: pexpect>=4; extra == "tests"
219
- Requires-Dist: jupyter-client>=7.1.2; python_version >= "3.6" and extra == "tests"
220
- Requires-Dist: jupyter-console>=6.1; (python_version >= "3.5" and python_version < "3.7") and extra == "tests"
221
- Requires-Dist: numpy>=1.26; python_version >= "3.9" and extra == "tests"
223
+ Requires-Dist: ipython>=5.4; python_version < "3" and extra == "tests"
224
+ Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "3.7") and extra == "tests"
222
225
  Requires-Dist: ipython>=7.34; (python_version >= "3.7" and python_version < "3.8") and extra == "tests"
223
- Requires-Dist: ipython>=8.25; python_version >= "3.10" and extra == "tests"
226
+ Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "tests"
227
+ Requires-Dist: ipython>=8.18; (python_version >= "3.9" and python_version < "3.10") and extra == "tests"
228
+ Requires-Dist: ipython>=8.27; python_version >= "3.10" and extra == "tests"
224
229
  Requires-Dist: ipykernel>=4.10; python_version < "3" and extra == "tests"
225
- Requires-Dist: pywinpty<0.6,>=0.5; (python_version < "3" and os_name == "nt") and extra == "tests"
230
+ Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "tests"
226
231
  Requires-Dist: ipykernel>=6; python_version >= "3.8" and extra == "tests"
227
- Requires-Dist: numpy>=1.16; (python_version < "3" and platform_python_implementation == "CPython") and extra == "tests"
228
232
  Requires-Dist: jupyter-client>=5.3; python_version < "3.5" and extra == "tests"
229
- Requires-Dist: xonsh>=0.9; python_version < "3.6" and extra == "tests"
230
- Requires-Dist: xonsh>=0.11; (python_version >= "3.6" and python_version < "3.9") and extra == "tests"
231
- Requires-Dist: jupyter-console>=5.2; python_version < "3.5" and extra == "tests"
232
- Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "tests"
233
- Requires-Dist: pytest>=7; (python_version >= "3.6" and python_version < "3.8") and extra == "tests"
234
- Requires-Dist: xonsh>=0.16; python_version >= "3.9" and extra == "tests"
235
- Requires-Dist: ipython>=8.18; (python_version >= "3.9" and python_version < "3.10") and extra == "tests"
236
- Requires-Dist: papermill>=1.2; extra == "tests"
233
+ Requires-Dist: jupyter-client<6.1.13,>=6.1.12; (python_version >= "3.5" and python_version < "3.6") and extra == "tests"
234
+ Requires-Dist: jupyter-client>=7.1.2; python_version >= "3.6" and extra == "tests"
235
+ Requires-Dist: jedi<0.18,>=0.17; python_version < "3.9" and extra == "tests"
237
236
  Requires-Dist: jedi>=0.19; python_version >= "3.9" and extra == "tests"
238
- Requires-Dist: pytest<8.1,>=8.0; python_version >= "3.8" and extra == "tests"
237
+ Requires-Dist: pywinpty<0.6,>=0.5; (python_version < "3" and os_name == "nt") and extra == "tests"
238
+ Requires-Dist: jupyter>=1.1; extra == "tests"
239
+ Requires-Dist: jupyter-console>=5.2; python_version < "3.5" and extra == "tests"
240
+ Requires-Dist: jupyter-console>=6.1; (python_version >= "3.5" and python_version < "3.7") and extra == "tests"
239
241
  Requires-Dist: jupyter-console>=6.6; python_version >= "3.7" and extra == "tests"
240
- Requires-Dist: pytest>=3; python_version < "3.6" and extra == "tests"
241
- Requires-Dist: ipython>=5.4; python_version < "3" and extra == "tests"
242
- Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "3.7") and extra == "tests"
242
+ Requires-Dist: papermill>=1.2; extra == "tests"
243
243
  Provides-Extra: dev
244
- Requires-Dist: numpy>=1.18; (python_version >= "3.4" and python_version < "3.9") and extra == "dev"
245
- Requires-Dist: pandas>=1; python_version >= "3.6" and extra == "dev"
246
- Requires-Dist: jedi<0.18,>=0.17; python_version < "3.9" and extra == "dev"
247
- Requires-Dist: xarray>=2024; python_version >= "3.9" and extra == "dev"
248
- Requires-Dist: vprof>=0.36; extra == "dev"
249
- Requires-Dist: jupyter-client<6.1.13,>=6.1.12; (python_version >= "3.5" and python_version < "3.6") and extra == "dev"
250
- Requires-Dist: jupyter>=1.0; extra == "dev"
251
- Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "dev"
252
- Requires-Dist: pyright>=1.1; extra == "dev"
253
- Requires-Dist: pexpect>=4; extra == "dev"
254
- Requires-Dist: jupyter-client>=7.1.2; python_version >= "3.6" and extra == "dev"
255
- Requires-Dist: pygments>=2.3; python_version < "3.9" and extra == "dev"
256
- Requires-Dist: jupyter-console>=6.1; (python_version >= "3.5" and python_version < "3.7") and extra == "dev"
257
- Requires-Dist: numpy>=1.26; python_version >= "3.9" and extra == "dev"
244
+ Requires-Dist: ipython>=5.4; python_version < "3" and extra == "dev"
245
+ Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "3.7") and extra == "dev"
258
246
  Requires-Dist: ipython>=7.34; (python_version >= "3.7" and python_version < "3.8") and extra == "dev"
259
- Requires-Dist: ipython>=8.25; python_version >= "3.10" and extra == "dev"
247
+ Requires-Dist: ipython>=8.12; (python_version >= "3.8" and python_version < "3.9") and extra == "dev"
248
+ Requires-Dist: ipython>=8.18; (python_version >= "3.9" and python_version < "3.10") and extra == "dev"
249
+ Requires-Dist: ipython>=8.27; python_version >= "3.10" and extra == "dev"
260
250
  Requires-Dist: ipykernel>=4.10; python_version < "3" and extra == "dev"
261
- Requires-Dist: pywinpty<0.6,>=0.5; (python_version < "3" and os_name == "nt") and extra == "dev"
262
- Requires-Dist: pygments>=2.18; python_version >= "3.9" and extra == "dev"
263
- Requires-Dist: jupyterlab>=2.2; python_version >= "3.5" and extra == "dev"
264
- Requires-Dist: py-spy>=0.3; extra == "dev"
251
+ Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "dev"
265
252
  Requires-Dist: ipykernel>=6; python_version >= "3.8" and extra == "dev"
266
- Requires-Dist: pyparsing<2.4.8,>=2.4.7; extra == "dev"
267
- Requires-Dist: numpy>=1.16; (python_version < "3" and platform_python_implementation == "CPython") and extra == "dev"
268
- Requires-Dist: requests>=2.32; extra == "dev"
269
253
  Requires-Dist: jupyter-client>=5.3; python_version < "3.5" and extra == "dev"
254
+ Requires-Dist: jupyter-client<6.1.13,>=6.1.12; (python_version >= "3.5" and python_version < "3.6") and extra == "dev"
255
+ Requires-Dist: jupyter-client>=7.1.2; python_version >= "3.6" and extra == "dev"
256
+ Requires-Dist: jedi<0.18,>=0.17; python_version < "3.9" and extra == "dev"
257
+ Requires-Dist: jedi>=0.19; python_version >= "3.9" and extra == "dev"
258
+ Requires-Dist: pywinpty<0.6,>=0.5; (python_version < "3" and os_name == "nt") and extra == "dev"
259
+ Requires-Dist: watchdog>=0.10; extra == "dev"
260
+ Requires-Dist: mypy[python2]>=1.11; extra == "dev"
261
+ Requires-Dist: types-backports>=0.1; extra == "dev"
262
+ Requires-Dist: typing>=3.10; python_version < "3.5" and extra == "dev"
263
+ Requires-Dist: pyright>=1.1; extra == "dev"
270
264
  Requires-Dist: xonsh>=0.9; python_version < "3.6" and extra == "dev"
271
265
  Requires-Dist: xonsh>=0.11; (python_version >= "3.6" and python_version < "3.9") and extra == "dev"
272
- Requires-Dist: jupytext>=1.8; python_version >= "3" and extra == "dev"
273
- Requires-Dist: watchdog>=0.10; extra == "dev"
266
+ Requires-Dist: xonsh>=0.18; python_version >= "3.9" and extra == "dev"
267
+ Requires-Dist: numpy>=1.16; (python_version < "3" and platform_python_implementation == "CPython") and extra == "dev"
268
+ Requires-Dist: numpy>=1.18; (python_version >= "3.4" and python_version < "3.9") and extra == "dev"
269
+ Requires-Dist: numpy>=2; python_version >= "3.9" and extra == "dev"
270
+ Requires-Dist: pandas>=1.16; python_version >= "3.6" and extra == "dev"
271
+ Requires-Dist: xarray>=2024; python_version >= "3.9" and extra == "dev"
272
+ Requires-Dist: jupyter>=1.1; extra == "dev"
274
273
  Requires-Dist: jupyter-console>=5.2; python_version < "3.5" and extra == "dev"
275
- Requires-Dist: sphinx>=7; extra == "dev"
276
- Requires-Dist: ipykernel>=5.5; (python_version >= "3" and python_version < "3.8") and extra == "dev"
277
- Requires-Dist: pre-commit>=3; python_version >= "3" and extra == "dev"
278
- Requires-Dist: mypy[python2]>=1.10; extra == "dev"
279
- Requires-Dist: pytest>=7; (python_version >= "3.6" and python_version < "3.8") and extra == "dev"
280
- Requires-Dist: xonsh>=0.16; python_version >= "3.9" and extra == "dev"
281
- Requires-Dist: ipython>=8.18; (python_version >= "3.9" and python_version < "3.10") and extra == "dev"
274
+ Requires-Dist: jupyter-console>=6.1; (python_version >= "3.5" and python_version < "3.7") and extra == "dev"
275
+ Requires-Dist: jupyter-console>=6.6; python_version >= "3.7" and extra == "dev"
282
276
  Requires-Dist: papermill>=1.2; extra == "dev"
283
- Requires-Dist: jedi>=0.19; python_version >= "3.9" and extra == "dev"
284
- Requires-Dist: myst-parser>=3; extra == "dev"
285
- Requires-Dist: pytest<8.1,>=8.0; python_version >= "3.8" and extra == "dev"
286
- Requires-Dist: types-backports>=0.1; extra == "dev"
287
- Requires-Dist: typing>=3.10; python_version < "3.5" and extra == "dev"
277
+ Requires-Dist: jupyterlab>=2.2; python_version >= "3.5" and extra == "dev"
278
+ Requires-Dist: jupytext>=1.8; python_version >= "3" and extra == "dev"
279
+ Requires-Dist: sphinx>=8; extra == "dev"
280
+ Requires-Dist: pygments>=2.3; python_version < "3.9" and extra == "dev"
281
+ Requires-Dist: pygments>=2.18; python_version >= "3.9" and extra == "dev"
282
+ Requires-Dist: myst-parser>=4; extra == "dev"
288
283
  Requires-Dist: pydata-sphinx-theme>=0.15; extra == "dev"
289
- Requires-Dist: jupyter-console>=6.6; python_version >= "3.7" and extra == "dev"
284
+ Requires-Dist: sphinxcontrib_applehelp>=2; extra == "dev"
285
+ Requires-Dist: sphinxcontrib_htmlhelp>=2; extra == "dev"
290
286
  Requires-Dist: pytest>=3; python_version < "3.6" and extra == "dev"
291
- Requires-Dist: ipython>=5.4; python_version < "3" and extra == "dev"
292
- Requires-Dist: ipython<7.10,>=7.9; (python_version >= "3" and python_version < "3.7") and extra == "dev"
287
+ Requires-Dist: pytest>=7; (python_version >= "3.6" and python_version < "3.8") and extra == "dev"
288
+ Requires-Dist: pytest<8.1,>=8.0; python_version >= "3.8" and extra == "dev"
289
+ Requires-Dist: pexpect>=4; extra == "dev"
290
+ Requires-Dist: pytest_remotedata>=0.4; extra == "dev"
291
+ Requires-Dist: pyparsing<2.4.8,>=2.4.7; extra == "dev"
292
+ Requires-Dist: pre-commit>=3; python_version >= "3" and extra == "dev"
293
+ Requires-Dist: requests>=2.32; extra == "dev"
294
+ Requires-Dist: vprof>=0.36; extra == "dev"
295
+ Requires-Dist: py-spy>=0.3; extra == "dev"
293
296
  Requires-Dist: argparse>=1.4; python_version < "2.7"
294
- Requires-Dist: psutil>=5; python_version >= "2.7"
297
+ Requires-Dist: psutil>=6; python_version >= "2.7"
295
298
  Requires-Dist: futures>=3.4; python_version < "3"
296
299
  Requires-Dist: backports.functools-lru-cache>=1.6; python_version < "3"
297
300
  Requires-Dist: prompt_toolkit<2,>=1; python_version < "3"
@@ -1865,6 +1865,18 @@ def _coconut_mk_anon_namedtuple(
1865
1865
  fields: _t.Tuple[_t.Text, ...],
1866
1866
  types: _t.Optional[_t.Tuple[_t.Any, ...]] = None,
1867
1867
  ) -> _t.Callable[..., _t.Tuple[_t.Any, ...]]: ...
1868
+ @_t.overload
1869
+ def _coconut_mk_anon_namedtuple(
1870
+ fields: _t.Tuple[_t.Text, ...],
1871
+ types: _t.Optional[_t.Tuple[_t.Any, ...]],
1872
+ of_args: _T,
1873
+ ) -> _T: ...
1874
+ @_t.overload
1875
+ def _coconut_mk_anon_namedtuple(
1876
+ fields: _t.Tuple[_t.Text, ...],
1877
+ *,
1878
+ of_args: _T,
1879
+ ) -> _T: ...
1868
1880
 
1869
1881
 
1870
1882
  # @_t.overload
@@ -3493,25 +3493,30 @@ def __new__(_coconut_cls, {all_args}):
3493
3493
 
3494
3494
  return self.assemble_data(decorators, name, namedtuple_call, inherit, extra_stmts, stmts, base_args, paramdefs)
3495
3495
 
3496
- def make_namedtuple_call(self, name, namedtuple_args, types=None):
3496
+ def make_namedtuple_call(self, name, namedtuple_args, types=None, of_args=None):
3497
3497
  """Construct a namedtuple call."""
3498
3498
  if types:
3499
3499
  wrapped_types = [
3500
3500
  self.wrap_typedef(types.get(i, "_coconut.typing.Any"), for_py_typedef=False)
3501
3501
  for i in range(len(namedtuple_args))
3502
3502
  ]
3503
- if name is None:
3504
- return "_coconut_mk_anon_namedtuple(" + tuple_str_of(namedtuple_args, add_quotes=True) + ", " + tuple_str_of(wrapped_types) + ")"
3505
- else:
3506
- return '_coconut.typing.NamedTuple("' + name + '", [' + ", ".join(
3507
- '("' + argname + '", ' + wrapped_type + ")"
3508
- for argname, wrapped_type in zip(namedtuple_args, wrapped_types)
3509
- ) + "])"
3510
3503
  else:
3511
- if name is None:
3512
- return "_coconut_mk_anon_namedtuple(" + tuple_str_of(namedtuple_args, add_quotes=True) + ")"
3513
- else:
3514
- return '_coconut.collections.namedtuple("' + name + '", ' + tuple_str_of(namedtuple_args, add_quotes=True) + ')'
3504
+ wrapped_types = None
3505
+ if name is None:
3506
+ return (
3507
+ "_coconut_mk_anon_namedtuple("
3508
+ + tuple_str_of(namedtuple_args, add_quotes=True)
3509
+ + ("" if wrapped_types is None else ", " + tuple_str_of(wrapped_types))
3510
+ + ("" if of_args is None else ", of_args=" + tuple_str_of(of_args) + "")
3511
+ + ")"
3512
+ )
3513
+ elif wrapped_types is None:
3514
+ return '_coconut.collections.namedtuple("' + name + '", ' + tuple_str_of(namedtuple_args, add_quotes=True) + ')' + ("" if of_args is None else tuple_str_of(of_args))
3515
+ else:
3516
+ return '_coconut.typing.NamedTuple("' + name + '", [' + ", ".join(
3517
+ '("' + argname + '", ' + wrapped_type + ")"
3518
+ for argname, wrapped_type in zip(namedtuple_args, wrapped_types)
3519
+ ) + "])" + ("" if of_args is None else tuple_str_of(of_args))
3515
3520
 
3516
3521
  def assemble_data(self, decorators, name, namedtuple_call, inherit, extra_stmts, stmts, match_args, paramdefs=()):
3517
3522
  """Create a data class definition from the given components.
@@ -3617,8 +3622,7 @@ def __hash__(self):
3617
3622
  names.append(name)
3618
3623
  items.append(item)
3619
3624
 
3620
- namedtuple_call = self.make_namedtuple_call(None, names, types)
3621
- return namedtuple_call + "(" + ", ".join(items) + ")"
3625
+ return self.make_namedtuple_call(None, names, types, of_args=items)
3622
3626
 
3623
3627
  def single_import(self, loc, path, imp_as, type_ignore=False):
3624
3628
  """Generate import statements from a fully qualified import and the name to bind it to."""
@@ -458,10 +458,10 @@ raise _coconut.RuntimeError("_namedtuple_of is not available on Python < 3.6 (us
458
458
  ''',
459
459
  indent=1,
460
460
  ),
461
- set_nt_match_args=pycondition(
461
+ set_NT_match_args=pycondition(
462
462
  (3, 10),
463
463
  if_lt=r'''
464
- nt.__match_args__ = nt._fields
464
+ NT.__match_args__ = _coconut.property(lambda self: self._fields)
465
465
  ''',
466
466
  indent=1,
467
467
  newline=True,
@@ -62,7 +62,7 @@ class _coconut{object}:{COMMENT.EVERYTHING_HERE_MUST_BE_COPIED_TO_STUB_FILE}
62
62
  fmappables = list, tuple, dict, set, frozenset, bytes, bytearray
63
63
  abc.Sequence.register(collections.deque)
64
64
  Ellipsis, NotImplemented, NotImplementedError, Exception, AttributeError, ImportError, IndexError, KeyError, NameError, TypeError, ValueError, StopIteration, RuntimeError, all, any, bool, bytes, callable, chr, classmethod, complex, dict, enumerate, filter, float, frozenset, getattr, hasattr, hash, id, int, isinstance, issubclass, iter, len, list, locals, globals, map, min, max, next, object, ord, property, range, reversed, set, setattr, slice, str, sum, super, tuple, type, vars, zip, repr, print{comma_bytearray} = Ellipsis, NotImplemented, NotImplementedError, Exception, AttributeError, ImportError, IndexError, KeyError, NameError, TypeError, ValueError, StopIteration, RuntimeError, all, any, bool, bytes, callable, chr, classmethod, complex, dict, enumerate, filter, float, frozenset, getattr, hasattr, hash, id, int, isinstance, issubclass, iter, len, list, locals, globals, map, {lstatic}min{rstatic}, {lstatic}max{rstatic}, next, object, ord, property, range, reversed, set, setattr, slice, str, sum, {lstatic}super{rstatic}, tuple, type, vars, zip, {lstatic}repr{rstatic}, {lstatic}print{rstatic}{comma_bytearray}
65
- @_coconut.functools.wraps(_coconut.functools.partial)
65
+ @_coconut_wraps(_coconut.functools.partial)
66
66
  def _coconut_partial(_coconut_func, *args, **kwargs):
67
67
  partial_func = _coconut.functools.partial(_coconut_func, *args, **kwargs)
68
68
  partial_func.__name__ = _coconut.getattr(_coconut_func, "__name__", None)
@@ -182,7 +182,7 @@ class _coconut_tail_call(_coconut_baseclass):
182
182
  return (self.__class__, (self.func, self.args, self.kwargs))
183
183
  _coconut_tco_func_dict = _coconut.weakref.WeakValueDictionary()
184
184
  def _coconut_tco(func):
185
- @_coconut.functools.wraps(func)
185
+ @_coconut_wraps(func)
186
186
  def tail_call_optimized_func(*args, **kwargs):
187
187
  call_func = func
188
188
  while True:{COMMENT.weakrefs_necessary_for_ignoring_functools_wraps_decorators}
@@ -209,7 +209,7 @@ def _coconut_tco(func):
209
209
  tail_call_optimized_func.__qualname__ = _coconut.getattr(func, "__qualname__", None)
210
210
  _coconut_tco_func_dict[_coconut.id(tail_call_optimized_func)] = tail_call_optimized_func
211
211
  return tail_call_optimized_func
212
- @_coconut.functools.wraps(_coconut.itertools.tee)
212
+ @_coconut_wraps(_coconut.itertools.tee)
213
213
  def tee(iterable, n=2):
214
214
  if n < 0:
215
215
  raise _coconut.ValueError("tee: n cannot be negative")
@@ -2017,17 +2017,16 @@ collectby.using_threads = _coconut_partial(_coconut_parallel_mapreduce, collectb
2017
2017
  def _namedtuple_of(**kwargs):
2018
2018
  """Construct an anonymous namedtuple of the given keyword arguments."""
2019
2019
  {namedtuple_of_implementation}
2020
- def _coconut_mk_anon_namedtuple(fields, types=None, of_kwargs=None):
2020
+ def _coconut_mk_anon_namedtuple(fields, types=None, of_kwargs={empty_dict}, of_args=()):
2021
2021
  if types is None:
2022
2022
  NT = _coconut.collections.namedtuple("_namedtuple_of", fields)
2023
2023
  else:
2024
2024
  NT = _coconut.typing.NamedTuple("_namedtuple_of", [(f, t) for f, t in _coconut.zip(fields, types)])
2025
2025
  _coconut.copyreg.pickle(NT, lambda nt: (_coconut_mk_anon_namedtuple, (nt._fields, types, nt._asdict())))
2026
- if of_kwargs is None:
2027
- nt = NT
2026
+ {set_NT_match_args} if of_kwargs or of_args:
2027
+ return NT(*of_args, **of_kwargs)
2028
2028
  else:
2029
- nt = NT(**of_kwargs)
2030
- {set_nt_match_args} return nt
2029
+ return NT
2031
2030
  def _coconut_ndim(arr):
2032
2031
  arr_mod = _coconut_get_base_module(arr)
2033
2032
  if (arr_mod in _coconut.numpy_modules or _coconut.hasattr(arr.__class__, "__matconcat__")) and _coconut.hasattr(arr, "ndim"):
@@ -2221,7 +2220,22 @@ class _coconut_SupportsInv(_coconut.typing.Protocol):
2221
2220
  """
2222
2221
  def __invert__(self):
2223
2222
  raise _coconut.NotImplementedError("Protocol methods cannot be called at runtime ((~) in a typing context is a Protocol)")
2223
+ @_coconut_wraps(_coconut.functools.reduce)
2224
+ def reduce(function, iterable, initial=_coconut_sentinel):
2225
+ if initial is _coconut_sentinel:
2226
+ return _coconut.functools.reduce(function, iterable)
2227
+ return _coconut.functools.reduce(function, iterable, initial)
2228
+ class takewhile(_coconut.itertools.takewhile{comma_object}):
2229
+ __slots__ = ()
2230
+ __doc__ = _coconut.itertools.takewhile.__doc__
2231
+ def __new__(cls, predicate, iterable):
2232
+ return _coconut.itertools.takewhile.__new__(cls, predicate, iterable)
2233
+ class dropwhile(_coconut.itertools.dropwhile{comma_object}):
2234
+ __slots__ = ()
2235
+ __doc__ = _coconut.itertools.dropwhile.__doc__
2236
+ def __new__(cls, predicate, iterable):
2237
+ return _coconut.itertools.dropwhile.__new__(cls, predicate, iterable)
2224
2238
  {def_async_map}
2225
2239
  {def_aliases}
2226
2240
  _coconut_self_match_types = {self_match_types}
2227
- _coconut_Expected, _coconut_MatchError, _coconut_cartesian_product, _coconut_count, _coconut_cycle, _coconut_enumerate, _coconut_flatten, _coconut_fmap, _coconut_filter, _coconut_groupsof, _coconut_ident, _coconut_lift, _coconut_map, _coconut_mapreduce, _coconut_multiset, _coconut_range, _coconut_reiterable, _coconut_reversed, _coconut_scan, _coconut_starmap, _coconut_tee, _coconut_windowsof, _coconut_zip, _coconut_zip_longest, TYPE_CHECKING, reduce, takewhile, dropwhile = Expected, MatchError, cartesian_product, count, cycle, enumerate, flatten, fmap, filter, groupsof, ident, lift, map, mapreduce, multiset, range, reiterable, reversed, scan, starmap, tee, windowsof, zip, zip_longest, False, _coconut.functools.reduce, _coconut.itertools.takewhile, _coconut.itertools.dropwhile{COMMENT.anything_added_here_should_be_copied_to_stub_file}
2241
+ TYPE_CHECKING, _coconut_Expected, _coconut_MatchError, _coconut_cartesian_product, _coconut_count, _coconut_cycle, _coconut_enumerate, _coconut_flatten, _coconut_fmap, _coconut_filter, _coconut_groupsof, _coconut_ident, _coconut_lift, _coconut_map, _coconut_mapreduce, _coconut_multiset, _coconut_range, _coconut_reiterable, _coconut_reversed, _coconut_scan, _coconut_starmap, _coconut_tee, _coconut_windowsof, _coconut_zip, _coconut_zip_longest = False, Expected, MatchError, cartesian_product, count, cycle, enumerate, flatten, fmap, filter, groupsof, ident, lift, map, mapreduce, multiset, range, reiterable, reversed, scan, starmap, tee, windowsof, zip, zip_longest{COMMENT.anything_added_here_should_be_copied_to_stub_file}
@@ -666,7 +666,7 @@ prompt_multiline = False
666
666
  prompt_vi_mode = get_bool_env_var(vi_mode_env_var, False)
667
667
  prompt_wrap_lines = True
668
668
  prompt_history_search = True
669
- prompt_use_suggester = not PY2
669
+ prompt_use_suggester = False
670
670
 
671
671
  base_dir = os.path.dirname(os.path.abspath(fixpath(__file__)))
672
672
 
@@ -1024,6 +1024,9 @@ all_reqs = {
1024
1024
  ("pygments", "py>=39"),
1025
1025
  "myst-parser",
1026
1026
  "pydata-sphinx-theme",
1027
+ # these are necessary to fix a sphinx error
1028
+ "sphinxcontrib_applehelp",
1029
+ "sphinxcontrib_htmlhelp",
1027
1030
  ),
1028
1031
  "numpy": (
1029
1032
  ("numpy", "py<3;cpy"),
@@ -1037,6 +1040,7 @@ all_reqs = {
1037
1040
  ("pytest", "py>=36;py<38"),
1038
1041
  ("pytest", "py38"),
1039
1042
  "pexpect",
1043
+ "pytest_remotedata", # fixes a pytest error
1040
1044
  ),
1041
1045
  }
1042
1046
 
@@ -1044,22 +1048,24 @@ all_reqs = {
1044
1048
  unpinned_min_versions = {
1045
1049
  "cPyparsing": (2, 4, 7, 2, 4, 0),
1046
1050
  ("pre-commit", "py3"): (3,),
1047
- ("psutil", "py>=27"): (5,),
1048
- "jupyter": (1, 0),
1051
+ ("psutil", "py>=27"): (6,),
1052
+ "jupyter": (1, 1),
1049
1053
  "types-backports": (0, 1),
1050
1054
  ("futures", "py<3"): (3, 4),
1051
1055
  ("argparse", "py<27"): (1, 4),
1052
1056
  "pexpect": (4,),
1053
1057
  ("trollius", "py<3;cpy"): (2, 2),
1054
1058
  "requests": (2, 32),
1055
- ("numpy", "py39"): (1, 26),
1059
+ ("numpy", "py39"): (2,),
1056
1060
  ("xarray", "py39"): (2024,),
1057
1061
  ("dataclasses", "py==36"): (0, 8),
1058
1062
  ("aenum", "py<34"): (3, 1, 15),
1059
1063
  "pydata-sphinx-theme": (0, 15),
1060
- "myst-parser": (3,),
1061
- "sphinx": (7,),
1062
- "mypy[python2]": (1, 10),
1064
+ "myst-parser": (4,),
1065
+ "sphinx": (8,),
1066
+ "sphinxcontrib_applehelp": (2,),
1067
+ "sphinxcontrib_htmlhelp": (2,),
1068
+ "mypy[python2]": (1, 11),
1063
1069
  "pyright": (1, 1),
1064
1070
  ("jupyter-console", "py37"): (6, 6),
1065
1071
  ("typing", "py<35"): (3, 10),
@@ -1067,11 +1073,12 @@ unpinned_min_versions = {
1067
1073
  ("ipykernel", "py38"): (6,),
1068
1074
  ("jedi", "py39"): (0, 19),
1069
1075
  ("pygments", "py>=39"): (2, 18),
1070
- ("xonsh", "py39"): (0, 16),
1076
+ ("xonsh", "py39"): (0, 18),
1071
1077
  ("async_generator", "py35"): (1, 10),
1072
1078
  ("exceptiongroup", "py37;py<311"): (1,),
1073
- ("ipython", "py>=310"): (8, 25),
1079
+ ("ipython", "py>=310"): (8, 27),
1074
1080
  "py-spy": (0, 3),
1081
+ "pytest_remotedata": (0, 4),
1075
1082
  }
1076
1083
 
1077
1084
  pinned_min_versions = {
@@ -1088,7 +1095,7 @@ pinned_min_versions = {
1088
1095
  # don't upgrade these; they break on Python 3.6
1089
1096
  ("anyio", "py36"): (3,),
1090
1097
  ("xonsh", "py>=36;py<39"): (0, 11),
1091
- ("pandas", "py36"): (1,),
1098
+ ("pandas", "py36"): (1, 16),
1092
1099
  ("jupyter-client", "py36"): (7, 1, 2),
1093
1100
  ("typing_extensions", "py==36"): (4, 1),
1094
1101
  ("pytest", "py>=36;py<38"): (7,),
@@ -26,7 +26,7 @@ import sys as _coconut_sys
26
26
  VERSION = "3.1.1"
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"
@@ -59,11 +59,23 @@ def _get_target_info(target):
59
59
  # HEADER:
60
60
  # -----------------------------------------------------------------------------------------------------------------------
61
61
 
62
+ _base_header = r'''
63
+ import functools as _coconut_functools
64
+ _coconut_getattr = getattr
65
+ def _coconut_wraps(base_func):
66
+ def wrap(new_func):
67
+ new_func_module = _coconut_getattr(new_func, "__module__")
68
+ _coconut_functools.update_wrapper(new_func, base_func)
69
+ if new_func_module is not None:
70
+ new_func.__module__ = new_func_module
71
+ return new_func
72
+ return wrap
73
+ '''
74
+
62
75
  # if a new assignment is added below, a new builtins import should be added alongside it
63
76
  _base_py3_header = r'''from builtins import chr, dict, hex, input, int, map, object, oct, open, print, range, str, super, zip, filter, reversed, enumerate, repr
64
77
  py_bytes, py_chr, py_dict, py_hex, py_input, py_int, py_map, py_object, py_oct, py_open, py_print, py_range, py_str, py_super, py_zip, py_filter, py_reversed, py_enumerate, py_repr, py_min, py_max = bytes, chr, dict, hex, input, int, map, object, oct, open, print, range, str, super, zip, filter, reversed, enumerate, repr, min, max
65
78
  _coconut_py_str, _coconut_py_super, _coconut_py_dict, _coconut_py_min, _coconut_py_max = str, super, dict, min, max
66
- from functools import wraps as _coconut_wraps
67
79
  exec("_coconut_exec = exec")
68
80
  '''
69
81
 
@@ -71,7 +83,6 @@ exec("_coconut_exec = exec")
71
83
  _base_py2_header = r'''from __builtin__ import chr, dict, hex, input, int, map, object, oct, open, print, range, str, super, zip, filter, reversed, enumerate, raw_input, xrange, repr, long
72
84
  py_bytes, py_chr, py_dict, py_hex, py_input, py_int, py_map, py_object, py_oct, py_open, py_print, py_range, py_str, py_super, py_zip, py_filter, py_reversed, py_enumerate, py_raw_input, py_xrange, py_repr, py_min, py_max = bytes, chr, dict, hex, input, int, map, object, oct, open, print, range, str, super, zip, filter, reversed, enumerate, raw_input, xrange, repr, min, max
73
85
  _coconut_py_raw_input, _coconut_py_xrange, _coconut_py_int, _coconut_py_long, _coconut_py_print, _coconut_py_str, _coconut_py_super, _coconut_py_unicode, _coconut_py_repr, _coconut_py_dict, _coconut_py_bytes, _coconut_py_min, _coconut_py_max = raw_input, xrange, int, long, print, str, super, unicode, repr, dict, bytes, min, max
74
- from functools import wraps as _coconut_wraps
75
86
  from collections import Sequence as _coconut_Sequence
76
87
  from future_builtins import *
77
88
  chr, str = unichr, unicode
@@ -353,7 +364,7 @@ _py37_py38_extras = '''class _coconut_dict_base(_coconut_py_dict):
353
364
  __doc__ = getattr(_coconut_py_dict, "__doc__", "<see help(py_dict)>")''' + _finish_dict_def
354
365
 
355
366
  _py26_extras = '''if _coconut_sys.version_info < (2, 7):
356
- import functools as _coconut_functools, copy_reg as _coconut_copy_reg
367
+ import copy_reg as _coconut_copy_reg
357
368
  def _coconut_new_partial(func, args, keywords):
358
369
  return _coconut_functools.partial(func, *(args if args is not None else ()), **(keywords if keywords is not None else {}))
359
370
  _coconut_copy_reg.constructor(_coconut_new_partial)
@@ -392,7 +403,7 @@ def _get_root_header(version="universal"):
392
403
  ''' + _indent(_get_root_header("3"))
393
404
 
394
405
  version_info = _get_target_info(version)
395
- header = ""
406
+ header = _base_header
396
407
 
397
408
  if version.startswith("3"):
398
409
  header += _base_py3_header
@@ -168,6 +168,7 @@ ignore_mypy_errs_with = (
168
168
  "tutorial.py",
169
169
  "unused 'type: ignore' comment",
170
170
  "site-packages/numpy",
171
+ ".py: error:"
171
172
  )
172
173
 
173
174
  ignore_atexit_errors_with = (
@@ -1054,11 +1055,8 @@ class TestCompilation(unittest.TestCase):
1054
1055
  }):
1055
1056
  run()
1056
1057
 
1057
- def test_keep_lines(self):
1058
- run(["--keep-lines"])
1059
-
1060
- def test_strict(self):
1061
- run(["--strict"])
1058
+ def test_strict_keep_lines(self):
1059
+ run(["--strict", "--keep-lines"])
1062
1060
 
1063
1061
  def test_and(self):
1064
1062
  run(["--and"]) # src and dest built by comp
@@ -1111,11 +1109,12 @@ if TEST_ALL:
1111
1109
  # if PY38:
1112
1110
  # run_pyprover()
1113
1111
 
1114
- def test_pyston(self):
1115
- with using_paths(pyston):
1116
- comp_pyston(["--no-tco"])
1117
- if PYPY and PY2:
1118
- run_pyston()
1112
+ if PY312: # reduce test load
1113
+ def test_pyston(self):
1114
+ with using_paths(pyston):
1115
+ comp_pyston(["--no-tco"])
1116
+ if PYPY and PY2:
1117
+ run_pyston()
1119
1118
 
1120
1119
 
1121
1120
  # -----------------------------------------------------------------------------------------------------------------------
@@ -487,6 +487,10 @@ def primary_test_2() -> bool:
487
487
  match (x=) in (x=13, y=13):
488
488
  assert False
489
489
  assert x == 12
490
+ assert (x=1).__match_args__ == ('x',) # type: ignore
491
+ assert reduce(function=(+), iterable=range(5), initial=-1) == 9 # type: ignore
492
+ assert takewhile(predicate=ident, iterable=[1, 2, 1, 0, 1]) |> list == [1, 2, 1] # type: ignore
493
+ assert dropwhile(predicate=(not), iterable=range(5)) |> list == [1, 2, 3, 4] # type: ignore
490
494
 
491
495
  with process_map.multiple_sequential_calls(): # type: ignore
492
496
  assert map((+), range(3), range(4)$[:-1], strict=True) |> list == [0, 2, 4] == process_map((+), range(3), range(4)$[:-1], strict=True) |> list # type: ignore