coconut-develop 3.1.1.post0.dev6__tar.gz → 3.1.2.post0.dev1__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 (91) hide show
  1. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/DOCS.md +7 -7
  2. coconut-develop-3.1.2.post0.dev1/PKG-INFO +141 -0
  3. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/compiler/templates/header.py_template +19 -4
  4. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/constants.py +21 -9
  5. coconut-develop-3.1.2.post0.dev1/coconut/icoconut/coconut/kernel.json +11 -0
  6. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/requirements.py +2 -1
  7. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/root.py +17 -6
  8. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/main_test.py +2 -1
  9. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/cocotest/agnostic/primary_2.coco +3 -0
  10. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/extras.coco +4 -5
  11. coconut-develop-3.1.1.post0.dev6/PKG-INFO +0 -141
  12. coconut-develop-3.1.1.post0.dev6/coconut/icoconut/coconut/kernel.json +0 -11
  13. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/CONTRIBUTING.md +0 -0
  14. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/FAQ.md +0 -0
  15. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/HELP.md +0 -0
  16. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/LICENSE.txt +0 -0
  17. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/MANIFEST.in +0 -0
  18. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/README.rst +0 -0
  19. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/__coconut__/__init__.py +0 -0
  20. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/__coconut__/__init__.pyi +0 -0
  21. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/__coconut__/py.typed +0 -0
  22. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/_coconut/__init__.py +0 -0
  23. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/_coconut/__init__.pyi +0 -0
  24. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/_coconut/py.typed +0 -0
  25. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/__coconut__.py +0 -0
  26. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/__coconut__.pyi +0 -0
  27. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/__init__.py +0 -0
  28. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/__init__.pyi +0 -0
  29. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/__main__.py +0 -0
  30. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/_pyparsing.py +0 -0
  31. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/api.py +0 -0
  32. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/api.pyi +0 -0
  33. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/command/__init__.py +0 -0
  34. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/command/__init__.pyi +0 -0
  35. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/command/cli.py +0 -0
  36. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/command/command.py +0 -0
  37. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/command/command.pyi +0 -0
  38. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/command/mypy.py +0 -0
  39. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/command/resources/zcoconut.pth +0 -0
  40. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/command/util.py +0 -0
  41. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/command/watch.py +0 -0
  42. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/compiler/__init__.py +0 -0
  43. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/compiler/compiler.py +0 -0
  44. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/compiler/grammar.py +0 -0
  45. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/compiler/header.py +0 -0
  46. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/compiler/matching.py +0 -0
  47. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/compiler/util.py +0 -0
  48. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/convenience.py +0 -0
  49. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/convenience.pyi +0 -0
  50. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/exceptions.py +0 -0
  51. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/highlighter.py +0 -0
  52. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/icoconut/__init__.py +0 -0
  53. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/icoconut/__main__.py +0 -0
  54. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/icoconut/coconut_py/kernel.json +0 -0
  55. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/icoconut/coconut_py2/kernel.json +0 -0
  56. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/icoconut/coconut_py3/kernel.json +0 -0
  57. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/icoconut/embed.py +0 -0
  58. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/icoconut/root.py +0 -0
  59. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/integrations.py +0 -0
  60. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/main.py +0 -0
  61. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/py.typed +0 -0
  62. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/terminal.py +0 -0
  63. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/__init__.py +0 -0
  64. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/__main__.py +0 -0
  65. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/constants_test.py +0 -0
  66. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/cocotest/agnostic/__init__.coco +0 -0
  67. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/cocotest/agnostic/__main__.coco +0 -0
  68. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/cocotest/agnostic/main.coco +0 -0
  69. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/cocotest/agnostic/primary_1.coco +0 -0
  70. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/cocotest/agnostic/specific.coco +0 -0
  71. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/cocotest/agnostic/suite.coco +0 -0
  72. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/cocotest/agnostic/tutorial.coco +0 -0
  73. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/cocotest/agnostic/util.coco +0 -0
  74. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/cocotest/non_strict/non_strict_test.coco +0 -0
  75. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/cocotest/target_2/py2_test.coco +0 -0
  76. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/cocotest/target_3/py3_test.coco +0 -0
  77. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/cocotest/target_311/py311_test.coco +0 -0
  78. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/cocotest/target_35/py35_test.coco +0 -0
  79. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/cocotest/target_36/py36_test.coco +0 -0
  80. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/cocotest/target_38/py38_test.coco +0 -0
  81. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/cocotest/target_sys/target_sys_test.coco +0 -0
  82. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/importable.coco +0 -0
  83. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/runnable.coco +0 -0
  84. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/tests/src/runner.coco +0 -0
  85. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut/util.py +0 -0
  86. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/coconut_develop.egg-info/SOURCES.txt +0 -0
  87. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/conf.py +0 -0
  88. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/pyproject.toml +0 -0
  89. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/setup.cfg +0 -0
  90. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/setup.py +0 -0
  91. {coconut-develop-3.1.1.post0.dev6 → coconut-develop-3.1.2.post0.dev1}/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
 
@@ -0,0 +1,141 @@
1
+ Metadata-Version: 2.1
2
+ Name: coconut-develop
3
+ Version: 3.1.2.post0.dev1
4
+ Summary: Simple, elegant, Pythonic functional programming.
5
+ Home-page: http://coconut-lang.org
6
+ Author: Evan Hubinger
7
+ Author-email: evanjhub@gmail.com
8
+ License: Apache 2.0
9
+ Keywords: functional,programming,language,compiler,pattern,pattern-matching,algebraic,data type,data types,lambda,lambdas,lazy,evaluation,lazy list,lazy lists,tail,recursion,call,recursive,recursive_iterator,infix,function,composition,compose,partial,application,currying,curry,pipeline,pipe,unicode,operator,operators,frozenset,literal,syntax,destructuring,assignment,fold,datamaker,prepattern,iterator,generator,none,coalesce,coalescing,statement,lru_cache,memoization,backport,typing,embed,PEP 622,overrides,islice,itertools,functools,TYPE_CHECKING,Expected,breakpoint,help,reduce,takewhile,dropwhile,tee,count,makedata,consume,process_map,thread_map,addpattern,recursive_generator,fmap,starmap,reiterable,scan,groupsof,memoize,zip_longest,override,flatten,ident,call,safe_call,flip,const,lift,lift_apart,all_equal,collectby,mapreduce,multi_enumerate,cartesian_product,multiset,cycle,windowsof,and_then,and_then_await,async_map,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_breakpoint,py_min,py_max,_namedtuple_of,reveal_type,reveal_locals,MatchError,CoconutWarning,__fmap__,__iter_getitem__,data,match,case,cases,where,addpattern,then,operator,type,copyclosure,λ
10
+ Classifier: Development Status :: 5 - Production/Stable
11
+ Classifier: License :: OSI Approved :: Apache Software License
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Topic :: Software Development
14
+ Classifier: Topic :: Software Development :: Code Generators
15
+ Classifier: Topic :: Software Development :: Compilers
16
+ Classifier: Topic :: Software Development :: Interpreters
17
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
18
+ Classifier: Topic :: Utilities
19
+ Classifier: Environment :: Console
20
+ Classifier: Operating System :: OS Independent
21
+ Classifier: Programming Language :: Python
22
+ Classifier: Programming Language :: Python :: 2
23
+ Classifier: Programming Language :: Python :: 2.6
24
+ Classifier: Programming Language :: Python :: 2.7
25
+ Classifier: Programming Language :: Python :: 3
26
+ Classifier: Programming Language :: Python :: 3.2
27
+ Classifier: Programming Language :: Python :: 3.3
28
+ Classifier: Programming Language :: Python :: 3.4
29
+ Classifier: Programming Language :: Python :: 3.5
30
+ Classifier: Programming Language :: Python :: 3.6
31
+ Classifier: Programming Language :: Python :: 3.7
32
+ Classifier: Programming Language :: Python :: 3.8
33
+ Classifier: Programming Language :: Python :: 3.9
34
+ Classifier: Programming Language :: Python :: 3.10
35
+ Classifier: Programming Language :: Python :: 3.11
36
+ Classifier: Programming Language :: Python :: 3.12
37
+ Classifier: Programming Language :: Other
38
+ Classifier: Programming Language :: Other Scripting Engines
39
+ Classifier: Programming Language :: Python :: Implementation :: CPython
40
+ Classifier: Programming Language :: Python :: Implementation :: PyPy
41
+ Classifier: Framework :: IPython
42
+ Classifier: Framework :: Jupyter
43
+ Classifier: Typing :: Typed
44
+ Provides-Extra: kernel
45
+ Provides-Extra: watch
46
+ Provides-Extra: mypy
47
+ Provides-Extra: pyright
48
+ Provides-Extra: xonsh
49
+ Provides-Extra: numpy
50
+ Provides-Extra: jupyter
51
+ Provides-Extra: jupyterlab
52
+ Provides-Extra: jupytext
53
+ Provides-Extra: all
54
+ Provides-Extra: ipython
55
+ Provides-Extra: docs
56
+ Provides-Extra: tests
57
+ Provides-Extra: dev
58
+ License-File: LICENSE.txt
59
+
60
+ |logo| Coconut
61
+ ==============
62
+
63
+ ..
64
+ <insert toctree here>
65
+
66
+ .. |logo| image:: https://github.com/evhub/coconut/raw/gh-pages/favicon-32x32.png
67
+
68
+ .. image:: https://opencollective.com/coconut/backers/badge.svg
69
+ :alt: Backers on Open Collective
70
+ :target: #backers
71
+ .. image:: https://opencollective.com/coconut/sponsors/badge.svg
72
+ :alt: Sponsors on Open Collective
73
+ :target: #sponsors
74
+ .. image:: https://badges.gitter.im/evhub/coconut.svg
75
+ :alt: Join the chat at https://gitter.im/evhub/coconut
76
+ :target: https://gitter.im/evhub/coconut?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
77
+
78
+ Coconut (`coconut-lang.org`__) is a variant of Python_ that **adds on top of Python syntax** new features for simple, elegant, Pythonic **functional programming**.
79
+
80
+ __ Coconut_
81
+ .. _Coconut: http://coconut-lang.org/
82
+
83
+ Coconut is developed on GitHub_ and hosted on PyPI_. Installing Coconut is as easy as opening a command prompt and entering::
84
+
85
+ pip install coconut
86
+
87
+ To help you get started, check out these links for more information about Coconut:
88
+
89
+ - Tutorial_: If you're new to Coconut, a good place to start is Coconut's **tutorial**.
90
+ - Documentation_: If you're looking for info about a specific feature, check out Coconut's **documentation**.
91
+ - `Online Interpreter`_: If you want to try Coconut in your browser, check out Coconut's **online interpreter**.
92
+ - FAQ_: If you have general questions about Coconut—like who Coconut is built for and whether or not you should use it—Coconut's frequently asked questions are often the best place to start.
93
+ - `Create a New Issue <https://github.com/evhub/coconut/issues/new>`_: If you're having a problem with Coconut, creating a new issue detailing the problem will allow it to be addressed as soon as possible.
94
+ - Gitter_: For any questions, concerns, or comments about anything Coconut-related, ask around at Coconut's Gitter, a GitHub-integrated chat room for Coconut developers.
95
+ - Releases_: Want to know what's been added in recent Coconut versions? Check out the release log for all the new features and fixes.
96
+
97
+ .. _Python: https://www.python.org/
98
+ .. _PyPI: https://pypi.python.org/pypi/coconut
99
+ .. _Tutorial: http://coconut.readthedocs.io/en/latest/HELP.html
100
+ .. _Documentation: http://coconut.readthedocs.io/en/latest/DOCS.html
101
+ .. _`Online Interpreter`: https://cs121-team-panda.github.io/coconut-interpreter
102
+ .. _FAQ: http://coconut.readthedocs.io/en/latest/FAQ.html
103
+ .. _GitHub: https://github.com/evhub/coconut
104
+ .. _Gitter: https://gitter.im/evhub/coconut
105
+ .. _Releases: https://github.com/evhub/coconut/releases
106
+
107
+ Credits
108
+ +++++++
109
+
110
+ Contributors
111
+ ------------
112
+
113
+ This project exists thanks to all the people who contribute! `Become a contributor`__.
114
+
115
+ .. image:: https://opencollective.com/coconut/contributors.svg?width=890&button=false
116
+ :target: https://github.com/evhub/coconut/graphs/contributors
117
+
118
+ __ Contributor_
119
+ .. _Contributor: http://coconut.readthedocs.io/en/develop/CONTRIBUTING.html
120
+
121
+ Backers
122
+ -------
123
+
124
+ Thank you to all our backers! `Become a backer`__.
125
+
126
+ .. image:: https://opencollective.com/coconut/backers.svg?width=890
127
+ :target: https://opencollective.com/coconut#backers
128
+
129
+ __ Backer_
130
+ .. _Backer: https://opencollective.com/coconut#backer
131
+
132
+ Sponsors
133
+ --------
134
+
135
+ Support Coconut by becoming a sponsor. Your logo will show up here with a link to your website. `Become a sponsor`__.
136
+
137
+ .. image:: https://opencollective.com/XX/sponsor/0/avatar.svg
138
+ :target: https://opencollective.com/coconut/sponsor/0/website
139
+
140
+ __ Sponsor_
141
+ .. _Sponsor: https://opencollective.com/coconut#sponsor
@@ -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")
@@ -2220,7 +2220,22 @@ class _coconut_SupportsInv(_coconut.typing.Protocol):
2220
2220
  """
2221
2221
  def __invert__(self):
2222
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)
2223
2238
  {def_async_map}
2224
2239
  {def_aliases}
2225
2240
  _coconut_self_match_types = {self_match_types}
2226
- _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}
@@ -101,6 +101,10 @@ XONSH = (
101
101
  and not (PYPY and PY39)
102
102
  and (PY38 or not PY36)
103
103
  )
104
+ NUMPY = (
105
+ not PYPY
106
+ and (PY2 or PY34)
107
+ )
104
108
 
105
109
  py_version_str = sys.version.split()[0]
106
110
 
@@ -1024,6 +1028,9 @@ all_reqs = {
1024
1028
  ("pygments", "py>=39"),
1025
1029
  "myst-parser",
1026
1030
  "pydata-sphinx-theme",
1031
+ # these are necessary to fix a sphinx error
1032
+ "sphinxcontrib_applehelp",
1033
+ "sphinxcontrib_htmlhelp",
1027
1034
  ),
1028
1035
  "numpy": (
1029
1036
  ("numpy", "py<3;cpy"),
@@ -1037,6 +1044,7 @@ all_reqs = {
1037
1044
  ("pytest", "py>=36;py<38"),
1038
1045
  ("pytest", "py38"),
1039
1046
  "pexpect",
1047
+ "pytest_remotedata", # fixes a pytest error
1040
1048
  ),
1041
1049
  }
1042
1050
 
@@ -1044,22 +1052,23 @@ all_reqs = {
1044
1052
  unpinned_min_versions = {
1045
1053
  "cPyparsing": (2, 4, 7, 2, 4, 0),
1046
1054
  ("pre-commit", "py3"): (3,),
1047
- ("psutil", "py>=27"): (5,),
1048
- "jupyter": (1, 0),
1055
+ ("psutil", "py>=27"): (6,),
1056
+ "jupyter": (1, 1),
1049
1057
  "types-backports": (0, 1),
1050
1058
  ("futures", "py<3"): (3, 4),
1051
1059
  ("argparse", "py<27"): (1, 4),
1052
1060
  "pexpect": (4,),
1053
1061
  ("trollius", "py<3;cpy"): (2, 2),
1054
1062
  "requests": (2, 32),
1055
- ("numpy", "py39"): (1, 26),
1056
1063
  ("xarray", "py39"): (2024,),
1057
1064
  ("dataclasses", "py==36"): (0, 8),
1058
1065
  ("aenum", "py<34"): (3, 1, 15),
1059
1066
  "pydata-sphinx-theme": (0, 15),
1060
- "myst-parser": (3,),
1061
- "sphinx": (7,),
1062
- "mypy[python2]": (1, 10),
1067
+ "myst-parser": (4,),
1068
+ "sphinx": (8,),
1069
+ "sphinxcontrib_applehelp": (2,),
1070
+ "sphinxcontrib_htmlhelp": (2,),
1071
+ "mypy[python2]": (1, 11),
1063
1072
  "pyright": (1, 1),
1064
1073
  ("jupyter-console", "py37"): (6, 6),
1065
1074
  ("typing", "py<35"): (3, 10),
@@ -1067,14 +1076,16 @@ unpinned_min_versions = {
1067
1076
  ("ipykernel", "py38"): (6,),
1068
1077
  ("jedi", "py39"): (0, 19),
1069
1078
  ("pygments", "py>=39"): (2, 18),
1070
- ("xonsh", "py39"): (0, 16),
1079
+ ("xonsh", "py39"): (0, 18),
1071
1080
  ("async_generator", "py35"): (1, 10),
1072
1081
  ("exceptiongroup", "py37;py<311"): (1,),
1073
- ("ipython", "py>=310"): (8, 25),
1082
+ ("ipython", "py>=310"): (8, 27),
1074
1083
  "py-spy": (0, 3),
1075
1084
  }
1076
1085
 
1077
1086
  pinned_min_versions = {
1087
+ # don't upgrade this; some extensions implicitly require numpy<2
1088
+ ("numpy", "py39"): (1, 26),
1078
1089
  # don't upgrade this; it breaks xonsh
1079
1090
  ("pytest", "py38"): (8, 0),
1080
1091
  # don't upgrade these; they break on Python 3.9
@@ -1088,7 +1099,7 @@ pinned_min_versions = {
1088
1099
  # don't upgrade these; they break on Python 3.6
1089
1100
  ("anyio", "py36"): (3,),
1090
1101
  ("xonsh", "py>=36;py<39"): (0, 11),
1091
- ("pandas", "py36"): (1,),
1102
+ ("pandas", "py36"): (1, 1),
1092
1103
  ("jupyter-client", "py36"): (7, 1, 2),
1093
1104
  ("typing_extensions", "py==36"): (4, 1),
1094
1105
  ("pytest", "py>=36;py<38"): (7,),
@@ -1121,6 +1132,7 @@ pinned_min_versions = {
1121
1132
  "papermill": (1, 2),
1122
1133
  ("numpy", "py<3;cpy"): (1, 16),
1123
1134
  ("backports.functools-lru-cache", "py<3"): (1, 6),
1135
+ "pytest_remotedata": (0, 3),
1124
1136
  # don't upgrade this; it breaks with old IPython versions
1125
1137
  ("jedi", "py<39"): (0, 17),
1126
1138
  # Coconut requires pyparsing 2
@@ -0,0 +1,11 @@
1
+ {
2
+ "argv": [
3
+ "python",
4
+ "-m",
5
+ "coconut.icoconut",
6
+ "-f",
7
+ "{connection_file}"
8
+ ],
9
+ "display_name": "Coconut",
10
+ "language": "coconut"
11
+ }
@@ -25,6 +25,7 @@ from coconut.integrations import embed
25
25
  from coconut.constants import (
26
26
  CPYTHON,
27
27
  PY34,
28
+ NUMPY,
28
29
  IPY,
29
30
  MYPY,
30
31
  XONSH,
@@ -249,7 +250,7 @@ extras.update({
249
250
  "docs": unique_wrt(get_reqs("docs"), requirements),
250
251
  "tests": uniqueify_all(
251
252
  get_reqs("tests"),
252
- extras["numpy"],
253
+ extras["numpy"] if NUMPY else [],
253
254
  extras["jupyter"] if IPY else [],
254
255
  extras["mypy"] if MYPY else [],
255
256
  extras["xonsh"] if XONSH else [],
@@ -23,10 +23,10 @@ import sys as _coconut_sys
23
23
  # VERSION:
24
24
  # -----------------------------------------------------------------------------------------------------------------------
25
25
 
26
- VERSION = "3.1.1"
26
+ VERSION = "3.1.2"
27
27
  VERSION_NAME = None
28
28
  # False for release, int >= 1 for develop
29
- DEVELOP = 6
29
+ DEVELOP = 1
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 = (
@@ -1092,7 +1093,7 @@ if TEST_ALL:
1092
1093
  if not PYPY or PY2:
1093
1094
  def test_prelude(self):
1094
1095
  with using_paths(prelude):
1095
- comp_prelude()
1096
+ comp_prelude(expect_retcode=None)
1096
1097
  if MYPY and PY38:
1097
1098
  run_prelude()
1098
1099
 
@@ -488,6 +488,9 @@ def primary_test_2() -> bool:
488
488
  assert False
489
489
  assert x == 12
490
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
491
494
 
492
495
  with process_map.multiple_sequential_calls(): # type: ignore
493
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
@@ -7,8 +7,7 @@ os.environ["COCONUT_USE_COLOR"] = "False"
7
7
  from coconut.__coconut__ import consume as coc_consume
8
8
  from coconut.constants import (
9
9
  IPY,
10
- PY2,
11
- PY34,
10
+ NUMPY,
12
11
  PY35,
13
12
  PY36,
14
13
  PY39,
@@ -762,13 +761,13 @@ def test_xarray() -> bool:
762
761
 
763
762
 
764
763
  def test_extras() -> bool:
765
- if not PYPY and (PY2 or PY34):
764
+ if NUMPY:
766
765
  assert test_numpy() is True
767
766
  print(".", end="")
768
- if not PYPY and PY36:
767
+ if NUMPY and PY36:
769
768
  assert test_pandas() is True # .
770
769
  print(".", end="")
771
- if not PYPY and PY39:
770
+ if NUMPY and PY39:
772
771
  assert test_xarray() is True # ..
773
772
  print(".") # newline bc we print stuff after this
774
773
  assert test_setup_none() is True # ...
@@ -1,141 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: coconut-develop
3
- Version: 3.1.1.post0.dev6
4
- Summary: Simple, elegant, Pythonic functional programming.
5
- Home-page: http://coconut-lang.org
6
- Author: Evan Hubinger
7
- Author-email: evanjhub@gmail.com
8
- License: Apache 2.0
9
- Description: |logo| Coconut
10
- ==============
11
-
12
- ..
13
- <insert toctree here>
14
-
15
- .. |logo| image:: https://github.com/evhub/coconut/raw/gh-pages/favicon-32x32.png
16
-
17
- .. image:: https://opencollective.com/coconut/backers/badge.svg
18
- :alt: Backers on Open Collective
19
- :target: #backers
20
- .. image:: https://opencollective.com/coconut/sponsors/badge.svg
21
- :alt: Sponsors on Open Collective
22
- :target: #sponsors
23
- .. image:: https://badges.gitter.im/evhub/coconut.svg
24
- :alt: Join the chat at https://gitter.im/evhub/coconut
25
- :target: https://gitter.im/evhub/coconut?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
26
-
27
- Coconut (`coconut-lang.org`__) is a variant of Python_ that **adds on top of Python syntax** new features for simple, elegant, Pythonic **functional programming**.
28
-
29
- __ Coconut_
30
- .. _Coconut: http://coconut-lang.org/
31
-
32
- Coconut is developed on GitHub_ and hosted on PyPI_. Installing Coconut is as easy as opening a command prompt and entering::
33
-
34
- pip install coconut
35
-
36
- To help you get started, check out these links for more information about Coconut:
37
-
38
- - Tutorial_: If you're new to Coconut, a good place to start is Coconut's **tutorial**.
39
- - Documentation_: If you're looking for info about a specific feature, check out Coconut's **documentation**.
40
- - `Online Interpreter`_: If you want to try Coconut in your browser, check out Coconut's **online interpreter**.
41
- - FAQ_: If you have general questions about Coconut—like who Coconut is built for and whether or not you should use it—Coconut's frequently asked questions are often the best place to start.
42
- - `Create a New Issue <https://github.com/evhub/coconut/issues/new>`_: If you're having a problem with Coconut, creating a new issue detailing the problem will allow it to be addressed as soon as possible.
43
- - Gitter_: For any questions, concerns, or comments about anything Coconut-related, ask around at Coconut's Gitter, a GitHub-integrated chat room for Coconut developers.
44
- - Releases_: Want to know what's been added in recent Coconut versions? Check out the release log for all the new features and fixes.
45
-
46
- .. _Python: https://www.python.org/
47
- .. _PyPI: https://pypi.python.org/pypi/coconut
48
- .. _Tutorial: http://coconut.readthedocs.io/en/latest/HELP.html
49
- .. _Documentation: http://coconut.readthedocs.io/en/latest/DOCS.html
50
- .. _`Online Interpreter`: https://cs121-team-panda.github.io/coconut-interpreter
51
- .. _FAQ: http://coconut.readthedocs.io/en/latest/FAQ.html
52
- .. _GitHub: https://github.com/evhub/coconut
53
- .. _Gitter: https://gitter.im/evhub/coconut
54
- .. _Releases: https://github.com/evhub/coconut/releases
55
-
56
- Credits
57
- +++++++
58
-
59
- Contributors
60
- ------------
61
-
62
- This project exists thanks to all the people who contribute! `Become a contributor`__.
63
-
64
- .. image:: https://opencollective.com/coconut/contributors.svg?width=890&button=false
65
- :target: https://github.com/evhub/coconut/graphs/contributors
66
-
67
- __ Contributor_
68
- .. _Contributor: http://coconut.readthedocs.io/en/develop/CONTRIBUTING.html
69
-
70
- Backers
71
- -------
72
-
73
- Thank you to all our backers! `Become a backer`__.
74
-
75
- .. image:: https://opencollective.com/coconut/backers.svg?width=890
76
- :target: https://opencollective.com/coconut#backers
77
-
78
- __ Backer_
79
- .. _Backer: https://opencollective.com/coconut#backer
80
-
81
- Sponsors
82
- --------
83
-
84
- Support Coconut by becoming a sponsor. Your logo will show up here with a link to your website. `Become a sponsor`__.
85
-
86
- .. image:: https://opencollective.com/XX/sponsor/0/avatar.svg
87
- :target: https://opencollective.com/coconut/sponsor/0/website
88
-
89
- __ Sponsor_
90
- .. _Sponsor: https://opencollective.com/coconut#sponsor
91
-
92
- Keywords: functional,programming,language,compiler,pattern,pattern-matching,algebraic,data type,data types,lambda,lambdas,lazy,evaluation,lazy list,lazy lists,tail,recursion,call,recursive,recursive_iterator,infix,function,composition,compose,partial,application,currying,curry,pipeline,pipe,unicode,operator,operators,frozenset,literal,syntax,destructuring,assignment,fold,datamaker,prepattern,iterator,generator,none,coalesce,coalescing,statement,lru_cache,memoization,backport,typing,embed,PEP 622,overrides,islice,itertools,functools,TYPE_CHECKING,Expected,breakpoint,help,reduce,takewhile,dropwhile,tee,count,makedata,consume,process_map,thread_map,addpattern,recursive_generator,fmap,starmap,reiterable,scan,groupsof,memoize,zip_longest,override,flatten,ident,call,safe_call,flip,const,lift,lift_apart,all_equal,collectby,mapreduce,multi_enumerate,cartesian_product,multiset,cycle,windowsof,and_then,and_then_await,async_map,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_breakpoint,py_min,py_max,_namedtuple_of,reveal_type,reveal_locals,MatchError,CoconutWarning,__fmap__,__iter_getitem__,data,match,case,cases,where,addpattern,then,operator,type,copyclosure,λ
93
- Platform: UNKNOWN
94
- Classifier: Development Status :: 5 - Production/Stable
95
- Classifier: License :: OSI Approved :: Apache Software License
96
- Classifier: Intended Audience :: Developers
97
- Classifier: Topic :: Software Development
98
- Classifier: Topic :: Software Development :: Code Generators
99
- Classifier: Topic :: Software Development :: Compilers
100
- Classifier: Topic :: Software Development :: Interpreters
101
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
102
- Classifier: Topic :: Utilities
103
- Classifier: Environment :: Console
104
- Classifier: Operating System :: OS Independent
105
- Classifier: Programming Language :: Python
106
- Classifier: Programming Language :: Python :: 2
107
- Classifier: Programming Language :: Python :: 2.6
108
- Classifier: Programming Language :: Python :: 2.7
109
- Classifier: Programming Language :: Python :: 3
110
- Classifier: Programming Language :: Python :: 3.2
111
- Classifier: Programming Language :: Python :: 3.3
112
- Classifier: Programming Language :: Python :: 3.4
113
- Classifier: Programming Language :: Python :: 3.5
114
- Classifier: Programming Language :: Python :: 3.6
115
- Classifier: Programming Language :: Python :: 3.7
116
- Classifier: Programming Language :: Python :: 3.8
117
- Classifier: Programming Language :: Python :: 3.9
118
- Classifier: Programming Language :: Python :: 3.10
119
- Classifier: Programming Language :: Python :: 3.11
120
- Classifier: Programming Language :: Python :: 3.12
121
- Classifier: Programming Language :: Other
122
- Classifier: Programming Language :: Other Scripting Engines
123
- Classifier: Programming Language :: Python :: Implementation :: CPython
124
- Classifier: Programming Language :: Python :: Implementation :: PyPy
125
- Classifier: Framework :: IPython
126
- Classifier: Framework :: Jupyter
127
- Classifier: Typing :: Typed
128
- Provides-Extra: kernel
129
- Provides-Extra: watch
130
- Provides-Extra: mypy
131
- Provides-Extra: pyright
132
- Provides-Extra: xonsh
133
- Provides-Extra: numpy
134
- Provides-Extra: jupyter
135
- Provides-Extra: jupyterlab
136
- Provides-Extra: jupytext
137
- Provides-Extra: all
138
- Provides-Extra: ipython
139
- Provides-Extra: docs
140
- Provides-Extra: tests
141
- Provides-Extra: dev
@@ -1,11 +0,0 @@
1
- {
2
- "argv": [
3
- "python",
4
- "-m",
5
- "coconut.icoconut",
6
- "-f",
7
- "{connection_file}"
8
- ],
9
- "display_name": "Coconut",
10
- "language": "coconut"
11
- }