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.
Files changed (121) hide show
  1. {koatl-0.1.34 → koatl-0.1.35}/Cargo.lock +1 -1
  2. {koatl-0.1.34 → koatl-0.1.35}/PKG-INFO +1 -1
  3. {koatl-0.1.34 → koatl-0.1.35}/koatl/Cargo.toml +1 -1
  4. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/functional/algebra.tl +4 -4
  5. {koatl-0.1.34 → koatl-0.1.35/koatl}/python/koatl/prelude/iterable.tl +1 -1
  6. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/runtime/classes.py +5 -4
  7. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/virtual.tl +1 -1
  8. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/functional/algebra.tl +4 -4
  9. {koatl-0.1.34/koatl → koatl-0.1.35}/python/koatl/prelude/iterable.tl +1 -1
  10. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/runtime/classes.py +5 -4
  11. {koatl-0.1.34 → koatl-0.1.35}/Cargo.toml +0 -0
  12. {koatl-0.1.34 → koatl-0.1.35}/README.md +0 -0
  13. {koatl-0.1.34 → koatl-0.1.35}/koatl/.github/workflows/CI.yml +0 -0
  14. {koatl-0.1.34 → koatl-0.1.35}/koatl/.gitignore +0 -0
  15. {koatl-0.1.34 → koatl-0.1.35}/koatl/LICENSE +0 -0
  16. {koatl-0.1.34 → koatl-0.1.35}/koatl/README.md +0 -0
  17. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/__init__.py +0 -0
  18. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/__main__.py +0 -0
  19. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/cli.py +0 -0
  20. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/notebook/__init__.py +0 -0
  21. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/notebook/magic.py +0 -0
  22. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/__init__.tl +0 -0
  23. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/functional/__init__.tl +0 -0
  24. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/functional/async.tl +0 -0
  25. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/functional/env.tl +0 -0
  26. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/functional/list.tl +0 -0
  27. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/functional/memo.tl +0 -0
  28. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/functional/result.tl +0 -0
  29. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/io.tl +0 -0
  30. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/prelude/regex.tl +0 -0
  31. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/runtime/__init__.py +0 -0
  32. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/runtime/helpers.py +0 -0
  33. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/runtime/meta_finder.py +0 -0
  34. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/runtime/record.py +0 -0
  35. {koatl-0.1.34 → koatl-0.1.35}/koatl/python/koatl/runtime/virtual.py +0 -0
  36. {koatl-0.1.34 → koatl-0.1.35}/koatl/requirements.txt +0 -0
  37. {koatl-0.1.34 → koatl-0.1.35}/koatl/src/emit_py.rs +0 -0
  38. {koatl-0.1.34 → koatl-0.1.35}/koatl/src/lib.rs +0 -0
  39. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/coal.tl +0 -0
  40. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/containers.tl +0 -0
  41. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/data.txt +0 -0
  42. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/decorators.tl +0 -0
  43. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/destructure-for-and-fn.tl +0 -0
  44. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/destructure.tl +0 -0
  45. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/escape_ident.tl +0 -0
  46. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/fstr.tl +0 -0
  47. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/functions.tl +0 -0
  48. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/generator.tl +0 -0
  49. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/if_expr.tl +0 -0
  50. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/imports.tl +0 -0
  51. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/loops.tl +0 -0
  52. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/match.tl +0 -0
  53. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/nary-list.tl +0 -0
  54. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/placeholder.tl +0 -0
  55. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/precedence.tl +0 -0
  56. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/record.tl +0 -0
  57. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/scopes.tl +0 -0
  58. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/semantic_whitespace.tl +0 -0
  59. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/short_circuit.tl +0 -0
  60. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/base/with.tl +0 -0
  61. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/async.tl +0 -0
  62. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/aug_assign.tl +0 -0
  63. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/env.tl +0 -0
  64. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/iterables.tl +0 -0
  65. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/list.tl +0 -0
  66. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/memo.tl +0 -0
  67. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/result.tl +0 -0
  68. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/slice.tl +0 -0
  69. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/prelude/try.tl +0 -0
  70. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/util/__init__.py +0 -0
  71. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/util/module0.tl +0 -0
  72. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/util/module1.tl +0 -0
  73. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/e2e/util/module2.tl +0 -0
  74. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/parse/arith.tl +0 -0
  75. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/parse/assign.tl +0 -0
  76. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/parse/block-comments.tl +0 -0
  77. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/parse/deco.tl +0 -0
  78. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/parse/func.tl +0 -0
  79. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/parse/matches.tl +0 -0
  80. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/test_e2e.py +0 -0
  81. {koatl-0.1.34 → koatl-0.1.35}/koatl/tests/test_parse.py +0 -0
  82. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/Cargo.toml +0 -0
  83. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/parser/Cargo.toml +0 -0
  84. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/parser/src/ast.rs +0 -0
  85. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/parser/src/lexer.rs +0 -0
  86. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/parser/src/lib.rs +0 -0
  87. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/parser/src/parser.rs +0 -0
  88. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/parser/src/util.rs +0 -0
  89. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/inference.rs +0 -0
  90. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/lib.rs +0 -0
  91. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/main.rs +0 -0
  92. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/parse_timer.rs +0 -0
  93. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/parser.rs +0 -0
  94. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/py/ast.rs +0 -0
  95. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/py/emit.rs +0 -0
  96. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/py/mod.rs +0 -0
  97. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/py/util.rs +0 -0
  98. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/resolve_scopes.rs +0 -0
  99. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/transform.rs +0 -0
  100. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/types.rs +0 -0
  101. {koatl-0.1.34 → koatl-0.1.35}/koatl-core/src/util.rs +0 -0
  102. {koatl-0.1.34 → koatl-0.1.35}/pyproject.toml +0 -0
  103. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/__init__.py +0 -0
  104. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/__main__.py +0 -0
  105. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/cli.py +0 -0
  106. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/notebook/__init__.py +0 -0
  107. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/notebook/magic.py +0 -0
  108. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/__init__.tl +0 -0
  109. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/functional/__init__.tl +0 -0
  110. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/functional/async.tl +0 -0
  111. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/functional/env.tl +0 -0
  112. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/functional/list.tl +0 -0
  113. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/functional/memo.tl +0 -0
  114. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/functional/result.tl +0 -0
  115. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/io.tl +0 -0
  116. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/prelude/regex.tl +0 -0
  117. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/runtime/__init__.py +0 -0
  118. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/runtime/helpers.py +0 -0
  119. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/runtime/meta_finder.py +0 -0
  120. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/runtime/record.py +0 -0
  121. {koatl-0.1.34 → koatl-0.1.35}/python/koatl/runtime/virtual.py +0 -0
@@ -99,7 +99,7 @@ checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd"
99
99
 
100
100
  [[package]]
101
101
  name = "koatl"
102
- version = "0.1.34"
102
+ version = "0.1.35"
103
103
  dependencies = [
104
104
  "ariadne",
105
105
  "koatl-core",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: koatl
3
- Version: 0.1.34
3
+ Version: 0.1.35
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: Implementation :: PyPy
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "koatl"
3
- version = "0.1.34"
3
+ version = "0.1.35"
4
4
  edition = "2021"
5
5
 
6
6
  [lib]
@@ -8,9 +8,9 @@ export Monad = class(Trait):
8
8
  """
9
9
  __slots__ = ()
10
10
 
11
- bind = Abstract& (self, f) => None
11
+ bind = Trait.abstract& (self, f) => None
12
12
 
13
- pure = staticmethod& Abstract& value => None
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 = Abstract& (self, f) => None
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 = Abstract& (self, f) => None
72
+ traverse = Trait.abstract& (self, f) => None
@@ -3,7 +3,7 @@ import builtins
3
3
  import .functional.(Traversable, Ok, Err, Memo, Async, AsyncMemo, Result)
4
4
 
5
5
  export Iterable = Extension.trait& class(Traversable, Trait):
6
- iter = Abstract
6
+ iter = Trait.abstract& self => None
7
7
 
8
8
  skip = (self, n) =>
9
9
  let it = self.iter
@@ -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
- Abstract = lambda value: abc.abstractmethod(value)
109
- Abstract.__isabstractmethod__ = True
108
+ @staticmethod
109
+ def abstract(value):
110
+ return abc.abstractmethod(value)
110
111
 
111
112
 
112
- __all__ = ["Class", "Trait", "Abstract"]
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 = Abstract
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 = Abstract& (self, f) => None
11
+ bind = Trait.abstract& (self, f) => None
12
12
 
13
- pure = staticmethod& Abstract& value => None
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 = Abstract& (self, f) => None
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 = Abstract& (self, f) => None
72
+ traverse = Trait.abstract& (self, f) => None
@@ -3,7 +3,7 @@ import builtins
3
3
  import .functional.(Traversable, Ok, Err, Memo, Async, AsyncMemo, Result)
4
4
 
5
5
  export Iterable = Extension.trait& class(Traversable, Trait):
6
- iter = Abstract
6
+ iter = Trait.abstract& self => None
7
7
 
8
8
  skip = (self, n) =>
9
9
  let it = self.iter
@@ -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
- Abstract = lambda value: abc.abstractmethod(value)
109
- Abstract.__isabstractmethod__ = True
108
+ @staticmethod
109
+ def abstract(value):
110
+ return abc.abstractmethod(value)
110
111
 
111
112
 
112
- __all__ = ["Class", "Trait", "Abstract"]
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