koatl 0.1.34__tar.gz → 0.1.35__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.
- {koatl-0.1.34 → koatl-0.1.35}/Cargo.lock +1 -1
- {koatl-0.1.34 → koatl-0.1.35}/PKG-INFO +1 -1
- {koatl-0.1.34 → koatl-0.1.35}/koatl/Cargo.toml +1 -1
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/functional/algebra.tl +4 -4
- {koatl-0.1.34 → koatl-0.1.35/koatl}/python/koatl/prelude/iterable.tl +1 -1
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/runtime/classes.py +5 -4
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/virtual.tl +1 -1
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/functional/algebra.tl +4 -4
- {koatl-0.1.34/koatl → koatl-0.1.35}/python/koatl/prelude/iterable.tl +1 -1
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/runtime/classes.py +5 -4
- {koatl-0.1.34 → koatl-0.1.35}/Cargo.toml +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/README.md +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/.github/workflows/CI.yml +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/.gitignore +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/LICENSE +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/README.md +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/__init__.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/__main__.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/cli.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/notebook/__init__.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/notebook/magic.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/__init__.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/functional/__init__.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/functional/async.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/functional/env.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/functional/list.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/functional/memo.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/functional/result.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/io.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/regex.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/runtime/__init__.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/runtime/helpers.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/runtime/meta_finder.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/runtime/record.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/runtime/virtual.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/requirements.txt +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/src/emit_py.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/src/lib.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/coal.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/containers.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/data.txt +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/decorators.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/destructure-for-and-fn.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/destructure.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/escape_ident.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/fstr.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/functions.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/generator.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/if_expr.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/imports.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/loops.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/match.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/nary-list.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/placeholder.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/precedence.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/record.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/scopes.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/semantic_whitespace.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/short_circuit.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/with.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/async.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/aug_assign.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/env.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/iterables.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/list.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/memo.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/result.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/slice.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/try.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/util/__init__.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/util/module0.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/util/module1.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/util/module2.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/parse/arith.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/parse/assign.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/parse/block-comments.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/parse/deco.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/parse/func.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/parse/matches.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/test_e2e.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/test_parse.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/Cargo.toml +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/parser/Cargo.toml +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/parser/src/ast.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/parser/src/lexer.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/parser/src/lib.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/parser/src/parser.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/parser/src/util.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/inference.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/lib.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/main.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/parse_timer.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/parser.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/py/ast.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/py/emit.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/py/mod.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/py/util.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/resolve_scopes.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/transform.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/types.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/util.rs +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/pyproject.toml +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/__init__.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/__main__.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/cli.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/notebook/__init__.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/notebook/magic.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/__init__.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/functional/__init__.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/functional/async.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/functional/env.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/functional/list.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/functional/memo.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/functional/result.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/io.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/regex.tl +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/runtime/__init__.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/runtime/helpers.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/runtime/meta_finder.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/runtime/record.py +0 -0
- {koatl-0.1.34 → koatl-0.1.35}/python/koatl/runtime/virtual.py +0 -0
|
@@ -8,9 +8,9 @@ export Monad = class(Trait):
|
|
|
8
8
|
"""
|
|
9
9
|
__slots__ = ()
|
|
10
10
|
|
|
11
|
-
bind =
|
|
11
|
+
bind = Trait.abstract& (self, f) => None
|
|
12
12
|
|
|
13
|
-
pure = staticmethod&
|
|
13
|
+
pure = staticmethod& Trait.abstract& value => None
|
|
14
14
|
|
|
15
15
|
# Automatically generated implementations.
|
|
16
16
|
map = (self, f) => self.bind(x => self.pure(f(x)))
|
|
@@ -33,7 +33,7 @@ export MonadOnce = class(Monad, Trait):
|
|
|
33
33
|
__slots__ = ()
|
|
34
34
|
|
|
35
35
|
# The default implementation required for `@` syntax that should be overridden by subclasses.
|
|
36
|
-
bind_once =
|
|
36
|
+
bind_once = Trait.abstract& (self, f) => None
|
|
37
37
|
|
|
38
38
|
# An optional, optimized implementation of `bind` that skips deep recursion.
|
|
39
39
|
# TODO: can this be automatically generated from bind_once?
|
|
@@ -69,4 +69,4 @@ export Traversable = class(Trait):
|
|
|
69
69
|
"""
|
|
70
70
|
__slots__ = ()
|
|
71
71
|
|
|
72
|
-
traverse =
|
|
72
|
+
traverse = Trait.abstract& (self, f) => None
|
|
@@ -40,6 +40,7 @@ class MappingMeta(type):
|
|
|
40
40
|
return [(k, v) for k, v in inspect.getmembers(self) if not k.startswith("_")]
|
|
41
41
|
|
|
42
42
|
|
|
43
|
+
# A utility base class to inherit from to enable __getitem__ method lookup on types and thus destructuring.
|
|
43
44
|
class Class(metaclass=MappingMeta):
|
|
44
45
|
pass
|
|
45
46
|
|
|
@@ -104,9 +105,9 @@ class Trait(metaclass=TraitMeta):
|
|
|
104
105
|
fn._property = True
|
|
105
106
|
return property(fn)
|
|
106
107
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
108
|
+
@staticmethod
|
|
109
|
+
def abstract(value):
|
|
110
|
+
return abc.abstractmethod(value)
|
|
110
111
|
|
|
111
112
|
|
|
112
|
-
__all__ = ["Class", "Trait"
|
|
113
|
+
__all__ = ["Class", "Trait"]
|
|
@@ -15,7 +15,7 @@ assert_eq(x.a, 1)
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
SomeTrait = Extension.trait& class(Trait):
|
|
18
|
-
required_method =
|
|
18
|
+
required_method = Trait.abstract& self => ()
|
|
19
19
|
|
|
20
20
|
derived_method = self => self.required_method()
|
|
21
21
|
derived_property = Trait.property& self => self.required_method()
|
|
@@ -8,9 +8,9 @@ export Monad = class(Trait):
|
|
|
8
8
|
"""
|
|
9
9
|
__slots__ = ()
|
|
10
10
|
|
|
11
|
-
bind =
|
|
11
|
+
bind = Trait.abstract& (self, f) => None
|
|
12
12
|
|
|
13
|
-
pure = staticmethod&
|
|
13
|
+
pure = staticmethod& Trait.abstract& value => None
|
|
14
14
|
|
|
15
15
|
# Automatically generated implementations.
|
|
16
16
|
map = (self, f) => self.bind(x => self.pure(f(x)))
|
|
@@ -33,7 +33,7 @@ export MonadOnce = class(Monad, Trait):
|
|
|
33
33
|
__slots__ = ()
|
|
34
34
|
|
|
35
35
|
# The default implementation required for `@` syntax that should be overridden by subclasses.
|
|
36
|
-
bind_once =
|
|
36
|
+
bind_once = Trait.abstract& (self, f) => None
|
|
37
37
|
|
|
38
38
|
# An optional, optimized implementation of `bind` that skips deep recursion.
|
|
39
39
|
# TODO: can this be automatically generated from bind_once?
|
|
@@ -69,4 +69,4 @@ export Traversable = class(Trait):
|
|
|
69
69
|
"""
|
|
70
70
|
__slots__ = ()
|
|
71
71
|
|
|
72
|
-
traverse =
|
|
72
|
+
traverse = Trait.abstract& (self, f) => None
|
|
@@ -40,6 +40,7 @@ class MappingMeta(type):
|
|
|
40
40
|
return [(k, v) for k, v in inspect.getmembers(self) if not k.startswith("_")]
|
|
41
41
|
|
|
42
42
|
|
|
43
|
+
# A utility base class to inherit from to enable __getitem__ method lookup on types and thus destructuring.
|
|
43
44
|
class Class(metaclass=MappingMeta):
|
|
44
45
|
pass
|
|
45
46
|
|
|
@@ -104,9 +105,9 @@ class Trait(metaclass=TraitMeta):
|
|
|
104
105
|
fn._property = True
|
|
105
106
|
return property(fn)
|
|
106
107
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
108
|
+
@staticmethod
|
|
109
|
+
def abstract(value):
|
|
110
|
+
return abc.abstractmethod(value)
|
|
110
111
|
|
|
111
112
|
|
|
112
|
-
__all__ = ["Class", "Trait"
|
|
113
|
+
__all__ = ["Class", "Trait"]
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|