minecraft-datapack-language 16.0.17__py3-none-any.whl → 16.0.18__py3-none-any.whl

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.
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '16.0.17'
32
- __version_tuple__ = version_tuple = (16, 0, 17)
31
+ __version__ = version = '16.0.18'
32
+ __version_tuple__ = version_tuple = (16, 0, 18)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -915,6 +915,23 @@ class MDLCompiler:
915
915
  left = unwrap(expression.left)
916
916
  right = unwrap(expression.right)
917
917
  op_sym = self._normalize_operator(expression.operator)
918
+ # Treat a leading logical NOT on a comparator operand as negating the entire comparison
919
+ # Example: !$a > 0 => NOT ( $a > 0 )
920
+ if op_sym in (">", ">=", "<", "<=", "==", "!="):
921
+ try:
922
+ from .ast_nodes import UnaryExpression as _UnaryExpr
923
+ except Exception:
924
+ _UnaryExpr = None
925
+ if _UnaryExpr is not None and isinstance(left, _UnaryExpr) and self._normalize_operator(getattr(left, 'operator', None)) == '!':
926
+ # Build condition for (left.operand op right) and invert
927
+ inner = BinaryExpression(left=left.operand, operator=expression.operator, right=right)
928
+ cond_str, inv = self._build_condition(inner)
929
+ return (cond_str, not inv)
930
+ if _UnaryExpr is not None and isinstance(right, _UnaryExpr) and self._normalize_operator(getattr(right, 'operator', None)) == '!':
931
+ # Build condition for (left op right.operand) and invert
932
+ inner = BinaryExpression(left=left, operator=expression.operator, right=right.operand)
933
+ cond_str, inv = self._build_condition(inner)
934
+ return (cond_str, not inv)
918
935
  # Variable vs literal
919
936
  if op_sym and isinstance(left, VariableSubstitution) and isinstance(right, LiteralExpression) and isinstance(right.value, (int, float)):
920
937
  objective = self.variables.get(left.name, left.name)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: minecraft-datapack-language
3
- Version: 16.0.17
3
+ Version: 16.0.18
4
4
  Summary: Compile MDL language with explicit scoping into a Minecraft datapack (1.21+ ready). Features variables, control flow, error handling, and VS Code extension.
5
5
  Project-URL: Homepage, https://www.mcmdl.com
6
6
  Project-URL: Documentation, https://www.mcmdl.com/docs
@@ -1,18 +1,18 @@
1
1
  minecraft_datapack_language/__init__.py,sha256=0KVXBE4ScRaRUrf83aA2tVB-y8A_jplyaxVvtHH6Uw0,1199
2
- minecraft_datapack_language/_version.py,sha256=4SuxrqtqwWUwpm2T-Y1T6GX-kvyCaEpo8lvFEXiyIJM,708
2
+ minecraft_datapack_language/_version.py,sha256=mdkSHoP-7a-SjOHB7GFAkWYMURefj-puFhnmsSxEKLE,708
3
3
  minecraft_datapack_language/ast_nodes.py,sha256=L5izavSeXDr766vsfRvJrcnflXNJyXcy0WSfyJPq2ZA,4484
4
4
  minecraft_datapack_language/cli.py,sha256=R4QZYtox-Da9B8pr_kCg_9qc9aI-ORTah7kMkhsI5tw,10373
5
5
  minecraft_datapack_language/dir_map.py,sha256=HmxFkuvWGkzHF8o_GFb4BpuMCRc6QMw8UbmcAI8JVdY,1788
6
- minecraft_datapack_language/mdl_compiler.py,sha256=L1ECOpZUuVe5j_qAn6KdAQwa6BWB8Bk9vId5lUPKaHo,59374
6
+ minecraft_datapack_language/mdl_compiler.py,sha256=3oF0XjXozma8UugNYSd3BbRADIWDAKYXYkcn_mveGHI,60636
7
7
  minecraft_datapack_language/mdl_errors.py,sha256=r0Gu3KhoX1YLPAVW_iO7Q_fPgaf_Dv9tOGSOdKNSzmw,16114
8
8
  minecraft_datapack_language/mdl_lexer.py,sha256=YuRflOkoMOcjECPAZzoAkJciMks5amWMtGbcTIVKmAs,24166
9
9
  minecraft_datapack_language/mdl_linter.py,sha256=z85xoAglENurCh30bR7kEHZ_JeMxcYaLDcGNRAl-RAI,17253
10
10
  minecraft_datapack_language/mdl_parser.py,sha256=Bwfk1i6PFsMB3Zs7Z6a3fgngPaWPv-KKqQRQUkFRquM,27272
11
11
  minecraft_datapack_language/python_api.py,sha256=Iao1jbdeW6ekeA80BZG6gNqHVjxQJEheB3DbpVsuTZQ,12304
12
12
  minecraft_datapack_language/utils.py,sha256=Aq0HAGlXqj9BUTEjaEilpvzEW0EtZYYMMwOqG9db6dE,684
13
- minecraft_datapack_language-16.0.17.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
14
- minecraft_datapack_language-16.0.17.dist-info/METADATA,sha256=uvJtPRYl3ouhthLXW0TqePW6pg0NveScitUYds1Powo,8344
15
- minecraft_datapack_language-16.0.17.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
16
- minecraft_datapack_language-16.0.17.dist-info/entry_points.txt,sha256=c6vjBeCiyQflvPHBRyBk2nJCSfYt3Oc7Sc9V87ySi_U,108
17
- minecraft_datapack_language-16.0.17.dist-info/top_level.txt,sha256=ADtFI476tbKLLxEAA-aJQAfg53MA3k_DOb0KTFiggfw,28
18
- minecraft_datapack_language-16.0.17.dist-info/RECORD,,
13
+ minecraft_datapack_language-16.0.18.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
14
+ minecraft_datapack_language-16.0.18.dist-info/METADATA,sha256=h_rvudGiJ3j0gffl-lpx0BmXkKs_ycMpjzHeBxnIb_c,8344
15
+ minecraft_datapack_language-16.0.18.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
16
+ minecraft_datapack_language-16.0.18.dist-info/entry_points.txt,sha256=c6vjBeCiyQflvPHBRyBk2nJCSfYt3Oc7Sc9V87ySi_U,108
17
+ minecraft_datapack_language-16.0.18.dist-info/top_level.txt,sha256=ADtFI476tbKLLxEAA-aJQAfg53MA3k_DOb0KTFiggfw,28
18
+ minecraft_datapack_language-16.0.18.dist-info/RECORD,,