coconut-develop 3.0.4.post0.dev15__tar.gz → 3.0.4.post0.dev17__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.
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/PKG-INFO +2 -2
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/compiler/grammar.py +3 -4
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/compiler/util.py +5 -2
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/constants.py +32 -39
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/highlighter.py +2 -2
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/root.py +1 -1
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/cocotest/agnostic/primary_2.coco +6 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/cocotest/agnostic/suite.coco +2 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/cocotest/target_3/py3_test.coco +3 -3
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/extras.coco +0 -4
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/CONTRIBUTING.md +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/DOCS.md +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/FAQ.md +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/HELP.md +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/LICENSE.txt +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/MANIFEST.in +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/README.rst +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/__coconut__/__init__.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/__coconut__/__init__.pyi +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/__coconut__/py.typed +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/_coconut/__init__.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/_coconut/__init__.pyi +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/_coconut/py.typed +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/__coconut__.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/__coconut__.pyi +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/__init__.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/__init__.pyi +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/__main__.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/_pyparsing.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/api.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/api.pyi +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/command/__init__.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/command/__init__.pyi +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/command/cli.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/command/command.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/command/command.pyi +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/command/mypy.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/command/resources/zcoconut.pth +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/command/util.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/command/watch.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/compiler/__init__.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/compiler/compiler.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/compiler/header.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/compiler/matching.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/compiler/templates/header.py_template +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/convenience.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/convenience.pyi +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/exceptions.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/icoconut/__init__.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/icoconut/__main__.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/icoconut/coconut/kernel.json +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/icoconut/coconut_py/kernel.json +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/icoconut/coconut_py2/kernel.json +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/icoconut/coconut_py3/kernel.json +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/icoconut/embed.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/icoconut/root.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/integrations.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/main.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/py.typed +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/requirements.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/terminal.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/__init__.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/__main__.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/constants_test.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/main_test.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/cocotest/agnostic/__init__.coco +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/cocotest/agnostic/__main__.coco +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/cocotest/agnostic/main.coco +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/cocotest/agnostic/primary_1.coco +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/cocotest/agnostic/specific.coco +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/cocotest/agnostic/tutorial.coco +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/cocotest/agnostic/util.coco +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/cocotest/non_strict/non_strict_test.coco +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/cocotest/target_2/py2_test.coco +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/cocotest/target_311/py311_test.coco +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/cocotest/target_35/py35_test.coco +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/cocotest/target_36/py36_test.coco +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/cocotest/target_38/py38_test.coco +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/cocotest/target_sys/target_sys_test.coco +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/importable.coco +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/runnable.coco +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/src/runner.coco +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/util.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut_develop.egg-info/SOURCES.txt +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/conf.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/pyproject.toml +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/setup.cfg +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/setup.py +0 -0
- {coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/xontrib/coconut.py +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: coconut-develop
|
|
3
|
-
Version: 3.0.4.post0.
|
|
3
|
+
Version: 3.0.4.post0.dev17
|
|
4
4
|
Summary: Simple, elegant, Pythonic functional programming.
|
|
5
5
|
Home-page: http://coconut-lang.org
|
|
6
6
|
Author: Evan Hubinger
|
|
7
7
|
Author-email: evanjhub@gmail.com
|
|
8
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,_namedtuple_of,reveal_type,reveal_locals,MatchError,
|
|
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,_namedtuple_of,reveal_type,reveal_locals,MatchError,__fmap__,__iter_getitem__,data,match,case,cases,where,addpattern,then,operator,type,copyclosure,λ
|
|
10
10
|
Classifier: Development Status :: 5 - Production/Stable
|
|
11
11
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/compiler/grammar.py
RENAMED
|
@@ -673,9 +673,9 @@ class Grammar(object):
|
|
|
673
673
|
pipe = Literal("|>") | fixto(Literal("\u21a6"), "|>")
|
|
674
674
|
star_pipe = Literal("|*>") | fixto(Literal("*\u21a6"), "|*>")
|
|
675
675
|
dubstar_pipe = Literal("|**>") | fixto(Literal("**\u21a6"), "|**>")
|
|
676
|
-
back_pipe = Literal("<|") |
|
|
677
|
-
back_star_pipe = Literal("<*|") |
|
|
678
|
-
back_dubstar_pipe = Literal("<**|") |
|
|
676
|
+
back_pipe = Literal("<|") | disambiguate_literal("\u21a4", ["\u21a4*", "\u21a4?"], fixesto="<|")
|
|
677
|
+
back_star_pipe = Literal("<*|") | disambiguate_literal("\u21a4*", ["\u21a4**", "\u21a4*?"], fixesto="<*|")
|
|
678
|
+
back_dubstar_pipe = Literal("<**|") | disambiguate_literal("\u21a4**", ["\u21a4**?"], fixesto="<**|")
|
|
679
679
|
none_pipe = Literal("|?>") | fixto(Literal("?\u21a6"), "|?>")
|
|
680
680
|
none_star_pipe = (
|
|
681
681
|
Literal("|?*>")
|
|
@@ -1443,7 +1443,6 @@ class Grammar(object):
|
|
|
1443
1443
|
) + Optional(power_in_impl_call))
|
|
1444
1444
|
impl_call_item = condense(
|
|
1445
1445
|
disallow_keywords(reserved_vars)
|
|
1446
|
-
+ ~any_string
|
|
1447
1446
|
+ ~non_decimal_num
|
|
1448
1447
|
+ atom_item
|
|
1449
1448
|
+ Optional(power_in_impl_call)
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/compiler/util.py
RENAMED
|
@@ -1454,12 +1454,15 @@ def disallow_keywords(kwds, with_suffix=""):
|
|
|
1454
1454
|
return regex_item(r"(?!" + "|".join(to_disallow) + r")").suppress()
|
|
1455
1455
|
|
|
1456
1456
|
|
|
1457
|
-
def disambiguate_literal(literal, not_literals):
|
|
1457
|
+
def disambiguate_literal(literal, not_literals, fixesto=None):
|
|
1458
1458
|
"""Get an item that matchesl literal and not any of not_literals."""
|
|
1459
|
-
|
|
1459
|
+
item = regex_item(
|
|
1460
1460
|
r"(?!" + "|".join(re.escape(s) for s in not_literals) + ")"
|
|
1461
1461
|
+ re.escape(literal)
|
|
1462
1462
|
)
|
|
1463
|
+
if fixesto is not None:
|
|
1464
|
+
item = fixto(item, fixesto)
|
|
1465
|
+
return item
|
|
1463
1466
|
|
|
1464
1467
|
|
|
1465
1468
|
def any_keyword_in(kwds):
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/constants.py
RENAMED
|
@@ -576,45 +576,34 @@ self_match_types = (
|
|
|
576
576
|
)
|
|
577
577
|
|
|
578
578
|
python_builtins = (
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit',
|
|
600
|
-
'TabError', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError',
|
|
601
|
-
'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError',
|
|
602
|
-
'UnicodeWarning', 'UserWarning', 'ValueError', 'VMSError',
|
|
603
|
-
'Warning', 'WindowsError', 'ZeroDivisionError',
|
|
579
|
+
"abs", "aiter", "all", "anext", "any", "ascii",
|
|
580
|
+
"bin", "bool", "breakpoint", "bytearray", "bytes",
|
|
581
|
+
"callable", "chr", "classmethod", "compile", "complex",
|
|
582
|
+
"delattr", "dict", "dir", "divmod",
|
|
583
|
+
"enumerate", "eval", "exec",
|
|
584
|
+
"filter", "float", "format", "frozenset",
|
|
585
|
+
"getattr", "globals",
|
|
586
|
+
"hasattr", "hash", "help", "hex",
|
|
587
|
+
"id", "input", "int", "isinstance", "issubclass", "iter",
|
|
588
|
+
"len", "list", "locals",
|
|
589
|
+
"map", "max", "memoryview", "min",
|
|
590
|
+
"next",
|
|
591
|
+
"object", "oct", "open", "ord",
|
|
592
|
+
"pow", "print", "property",
|
|
593
|
+
"range", "repr", "reversed", "round",
|
|
594
|
+
"set", "setattr", "slice", "sorted", "staticmethod", "str", "sum", "super",
|
|
595
|
+
"tuple", "type",
|
|
596
|
+
"vars",
|
|
597
|
+
"zip",
|
|
598
|
+
"__import__",
|
|
604
599
|
'__name__',
|
|
605
600
|
'__file__',
|
|
606
601
|
'__annotations__',
|
|
607
602
|
'__debug__',
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
# 'BrokenPipeError', 'ConnectionAbortedError', 'ConnectionRefusedError',
|
|
613
|
-
# 'ConnectionResetError', 'FileExistsError', 'FileNotFoundError',
|
|
614
|
-
# 'InterruptedError', 'IsADirectoryError', 'NotADirectoryError',
|
|
615
|
-
# 'PermissionError', 'ProcessLookupError', 'TimeoutError',
|
|
616
|
-
# 'StopAsyncIteration', 'ModuleNotFoundError', 'RecursionError',
|
|
617
|
-
# 'EncodingWarning',
|
|
603
|
+
)
|
|
604
|
+
|
|
605
|
+
python_exceptions = (
|
|
606
|
+
"BaseException", "BaseExceptionGroup", "GeneratorExit", "KeyboardInterrupt", "SystemExit", "Exception", "ArithmeticError", "FloatingPointError", "OverflowError", "ZeroDivisionError", "AssertionError", "AttributeError", "BufferError", "EOFError", "ExceptionGroup", "BaseExceptionGroup", "ImportError", "ModuleNotFoundError", "LookupError", "IndexError", "KeyError", "MemoryError", "NameError", "UnboundLocalError", "OSError", "BlockingIOError", "ChildProcessError", "ConnectionError", "BrokenPipeError", "ConnectionAbortedError", "ConnectionRefusedError", "ConnectionResetError", "FileExistsError", "FileNotFoundError", "InterruptedError", "IsADirectoryError", "NotADirectoryError", "PermissionError", "ProcessLookupError", "TimeoutError", "ReferenceError", "RuntimeError", "NotImplementedError", "RecursionError", "StopAsyncIteration", "StopIteration", "SyntaxError", "IndentationError", "TabError", "SystemError", "TypeError", "ValueError", "UnicodeError", "UnicodeDecodeError", "UnicodeEncodeError", "UnicodeTranslateError", "Warning", "BytesWarning", "DeprecationWarning", "EncodingWarning", "FutureWarning", "ImportWarning", "PendingDeprecationWarning", "ResourceWarning", "RuntimeWarning", "SyntaxWarning", "UnicodeWarning", "UserWarning",
|
|
618
607
|
)
|
|
619
608
|
|
|
620
609
|
# -----------------------------------------------------------------------------------------------------------------------
|
|
@@ -842,12 +831,16 @@ must_use_specific_target_builtins = (
|
|
|
842
831
|
|
|
843
832
|
coconut_exceptions = (
|
|
844
833
|
"MatchError",
|
|
845
|
-
"ExceptionGroup",
|
|
846
|
-
"BaseExceptionGroup",
|
|
847
834
|
)
|
|
848
835
|
|
|
849
|
-
highlight_builtins = coconut_specific_builtins + interp_only_builtins
|
|
850
|
-
|
|
836
|
+
highlight_builtins = coconut_specific_builtins + interp_only_builtins + python_builtins
|
|
837
|
+
highlight_exceptions = coconut_exceptions + python_exceptions
|
|
838
|
+
all_builtins = frozenset(
|
|
839
|
+
python_builtins
|
|
840
|
+
+ python_exceptions
|
|
841
|
+
+ coconut_specific_builtins
|
|
842
|
+
+ coconut_exceptions
|
|
843
|
+
)
|
|
851
844
|
|
|
852
845
|
magic_methods = (
|
|
853
846
|
"__fmap__",
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/highlighter.py
RENAMED
|
@@ -36,7 +36,7 @@ from coconut.constants import (
|
|
|
36
36
|
shebang_regex,
|
|
37
37
|
magic_methods,
|
|
38
38
|
template_ext,
|
|
39
|
-
|
|
39
|
+
highlight_exceptions,
|
|
40
40
|
main_prompt,
|
|
41
41
|
style_env_var,
|
|
42
42
|
default_style,
|
|
@@ -100,7 +100,7 @@ class CoconutLexer(Python3Lexer):
|
|
|
100
100
|
]
|
|
101
101
|
tokens["builtins"] += [
|
|
102
102
|
(words(highlight_builtins, suffix=r"\b"), Name.Builtin),
|
|
103
|
-
(words(
|
|
103
|
+
(words(highlight_exceptions, suffix=r"\b"), Name.Exception),
|
|
104
104
|
]
|
|
105
105
|
tokens["numbers"] = [
|
|
106
106
|
(r"0b[01_]+", Number.Integer),
|
|
@@ -26,7 +26,7 @@ import sys as _coconut_sys
|
|
|
26
26
|
VERSION = "3.0.4"
|
|
27
27
|
VERSION_NAME = None
|
|
28
28
|
# False for release, int >= 1 for develop
|
|
29
|
-
DEVELOP =
|
|
29
|
+
DEVELOP = 17
|
|
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"
|
|
@@ -428,6 +428,12 @@ def primary_test_2() -> bool:
|
|
|
428
428
|
if"0":assert True
|
|
429
429
|
if"0":
|
|
430
430
|
assert True
|
|
431
|
+
b = "b"
|
|
432
|
+
assert "abc".find b == 1
|
|
433
|
+
assert_raises(-> "a" 10, TypeError)
|
|
434
|
+
assert (,) ↤* (1, 2, 3) == (1, 2, 3)
|
|
435
|
+
assert (,) ↤? None is None
|
|
436
|
+
assert (,) ↤*? None is None # type: ignore
|
|
431
437
|
|
|
432
438
|
with process_map.multiple_sequential_calls(): # type: ignore
|
|
433
439
|
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
|
|
@@ -1077,6 +1077,8 @@ forward 2""") == 900
|
|
|
1077
1077
|
assert pickle_round_trip(.method(x=10)) <| (method=x -> x) == 10
|
|
1078
1078
|
assert sq_and_t2p1(10) == (100, 21)
|
|
1079
1079
|
assert first_false_and_last_true([3, 2, 1, 0, "11", "1", ""]) == (0, "1")
|
|
1080
|
+
assert ret_args_kwargs ↤** dict(a=1) == ((), dict(a=1))
|
|
1081
|
+
assert ret_args_kwargs ↤**? None is None
|
|
1080
1082
|
|
|
1081
1083
|
with process_map.multiple_sequential_calls(): # type: ignore
|
|
1082
1084
|
assert process_map(tuple <.. (|>)$(to_sort), qsorts) |> list == [to_sort |> sorted |> tuple] * len(qsorts)
|
|
@@ -27,14 +27,14 @@ def py3_test() -> bool:
|
|
|
27
27
|
čeština = "czech"
|
|
28
28
|
assert čeština == "czech"
|
|
29
29
|
class HasExecMethod:
|
|
30
|
-
def exec(self, x) = x()
|
|
30
|
+
def \exec(self, x) = x()
|
|
31
31
|
has_exec = HasExecMethod()
|
|
32
32
|
assert hasattr(has_exec, "exec")
|
|
33
33
|
assert has_exec.exec(-> 1) == 1
|
|
34
34
|
def exec_rebind_test():
|
|
35
|
-
exec = 1
|
|
35
|
+
\exec = 1
|
|
36
36
|
assert exec + 1 == 2
|
|
37
|
-
def exec(x) = x
|
|
37
|
+
def \exec(x) = x
|
|
38
38
|
assert exec(1) == 1
|
|
39
39
|
return True
|
|
40
40
|
assert exec_rebind_test() is True
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/__coconut__/__init__.py
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/__coconut__/__init__.pyi
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/__coconut__/py.typed
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/_coconut/__init__.py
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/_coconut/__init__.pyi
RENAMED
|
File without changes
|
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/__coconut__.py
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/__coconut__.pyi
RENAMED
|
File without changes
|
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/__init__.pyi
RENAMED
|
File without changes
|
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/_pyparsing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/command/__init__.py
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/command/__init__.pyi
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/command/cli.py
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/command/command.py
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/command/command.pyi
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/command/mypy.py
RENAMED
|
File without changes
|
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/command/util.py
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/command/watch.py
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/compiler/__init__.py
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/compiler/compiler.py
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/compiler/header.py
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/compiler/matching.py
RENAMED
|
File without changes
|
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/convenience.py
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/convenience.pyi
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/exceptions.py
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/icoconut/__init__.py
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/icoconut/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/icoconut/embed.py
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/icoconut/root.py
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/integrations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/requirements.py
RENAMED
|
File without changes
|
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/__init__.py
RENAMED
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
{coconut-develop-3.0.4.post0.dev15 → coconut-develop-3.0.4.post0.dev17}/coconut/tests/main_test.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|