mapres 2.2__tar.gz → 2.2.1__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mapres
3
- Version: 2.2
3
+ Version: 2.2.1
4
4
  Summary: A powerfull mapping utility
5
5
  Author: iFamished
6
6
  License: MIT
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
7
7
 
8
8
  [project]
9
9
  name = "mapres"
10
- version = "2.2"
10
+ version = "2.2.1"
11
11
  description = "A powerfull mapping utility"
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.9"
@@ -14,7 +14,6 @@ from .layers import Layer, LayerStack
14
14
  # maps
15
15
  from .maps.color import ColorMap, ascii_colors, mc_colors, strip_colors
16
16
  from .maps.time import TimeMap, time
17
- from .maps.math import MathMap, math
18
17
 
19
18
  # namespaces
20
19
  maps = SimpleNamespace(
@@ -27,10 +26,6 @@ maps = SimpleNamespace(
27
26
  # time
28
27
  TimeMap = TimeMap,
29
28
  time = time,
30
-
31
- # math
32
- MathMap = MathMap,
33
- math = math,
34
29
  )
35
30
 
36
31
  __all__ = [
@@ -50,8 +45,6 @@ __all__ = [
50
45
  'strip_colors',
51
46
  'TimeMap',
52
47
  'time',
53
- 'MathMap',
54
- 'math',
55
48
 
56
49
  # namespaces
57
50
  'maps',
@@ -12,8 +12,4 @@ __all__ = [
12
12
  # time
13
13
  'TimeMap',
14
14
  'time',
15
-
16
- # math
17
- 'MathMap',
18
- 'math'
19
15
  ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mapres
3
- Version: 2.2
3
+ Version: 2.2.1
4
4
  Summary: A powerfull mapping utility
5
5
  Author: iFamished
6
6
  License: MIT
@@ -14,5 +14,4 @@ src/mapres.egg-info/requires.txt
14
14
  src/mapres.egg-info/top_level.txt
15
15
  src/mapres/maps/__init__.py
16
16
  src/mapres/maps/color.py
17
- src/mapres/maps/math.py
18
17
  src/mapres/maps/time.py
@@ -1,58 +0,0 @@
1
- import ast
2
- from mapres.datamap import datamap, syntax
3
-
4
-
5
- def safe_eval(expr: str, ctx: dict):
6
- """
7
- Safely evaluate arithmetic expressions using AST.
8
- Allowed:
9
- - numbers
10
- - names (from ctx)
11
- - + - * / // % **
12
- - parentheses
13
- """
14
- node = ast.parse(expr, mode="eval")
15
-
16
- allowed_nodes = (
17
- ast.Expression, ast.BinOp, ast.UnaryOp,
18
- ast.Num, ast.Name, ast.Load,
19
- ast.Add, ast.Sub, ast.Mult, ast.Div,
20
- ast.FloorDiv, ast.Mod, ast.Pow,
21
- ast.USub, ast.UAdd, ast.Constant,
22
- )
23
-
24
- for sub in ast.walk(node):
25
- if not isinstance(sub, allowed_nodes):
26
- raise ValueError(f"Disallowed expression: {expr}")
27
-
28
- if isinstance(sub, ast.Name) and sub.id not in ctx:
29
- raise KeyError(f"Unknown variable '{sub.id}' in expression '{expr}'")
30
-
31
- return eval(compile(node, "<math>", "eval"), {}, ctx)
32
-
33
-
34
- @datamap(syntax=r"\$\{\{(.+?)\}\}", mode="dynamic")
35
- class MathMap:
36
- expr: str = None
37
-
38
- def __init__(self):
39
- self._ctx = {}
40
-
41
- @property
42
- def providers(self):
43
- return {
44
- "expr": lambda: None
45
- }
46
-
47
- def get_map(self, ctx, resolver):
48
- # store ctx so safe_eval can use it
49
- self._ctx = ctx
50
-
51
- def repl(expr):
52
- return safe_eval(expr, ctx)
53
-
54
- return repl
55
-
56
-
57
- # proxy map
58
- math = MathMap
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