mapres 2.4a7__tar.gz → 2.4a9__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.4a7
3
+ Version: 2.4a9
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.4-alpha.7"
10
+ version = "2.4-alpha.9"
11
11
  description = "A powerfull mapping utility"
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.9"
@@ -12,6 +12,7 @@ class syntax:
12
12
  paren_dollar = r'\$\(([^)]+)\)' # $(value)
13
13
  colons = r':([^:\n]+):' # :value:
14
14
 
15
+
15
16
  @dataclass
16
17
  class DataMap:
17
18
  '''Core datamap class. Contains logic used to make datamaps'''
@@ -38,13 +39,8 @@ class DataMap:
38
39
  return getattr(cls, '__syntax__', syntax.double_braces)
39
40
 
40
41
 
41
- # decorator
42
- def datamap(
43
- _cls = None,
44
- *,
45
- syntax: str = syntax.double_braces,
46
- mode: bool | str | None = None,
47
- ):
42
+ # main decorator factory
43
+ def datamap(_cls=None, *, syntax=syntax.double_braces, mode=None):
48
44
  '''@datamap decorator with optional values'''
49
45
  def wrap(cls):
50
46
  cls.__syntax__ = syntax
@@ -56,16 +52,40 @@ def datamap(
56
52
  if rules_obj is not None:
57
53
  setattr(cls, 'rules', rules_obj)
58
54
  return dataclass(frozen=False)(cls)
59
- return wrap if _cls is None else wrap(_cls)
60
-
61
-
62
- # decorator shortcuts
63
- datamap.double_braces = datamap(syntax=syntax.double_braces)
64
- datamap.angles = datamap(syntax=syntax.angles)
65
- datamap.dollars = datamap(syntax=syntax.dollars)
66
- datamap.percents = datamap(syntax=syntax.percents)
67
- datamap.at_tags = datamap(syntax=syntax.at_tags)
68
- datamap.hash_tags = datamap(syntax=syntax.hash_tags)
69
- datamap.pipe_tags = datamap(syntax=syntax.pipe_tags)
70
- datamap.paren_dollar = datamap(syntax=syntax.paren_dollar)
71
- datamap.colons = datamap(syntax=syntax.colons)
55
+
56
+ # direct decorator: @datamap(...)
57
+ if _cls is not None:
58
+ return wrap(_cls)
59
+
60
+ # factory: @datamap(...)
61
+ return wrap
62
+
63
+
64
+ # syntax-bound decorator factories
65
+ class _SyntaxFactory:
66
+ def __init__(self, syntax_value):
67
+ self._syntax = syntax_value
68
+
69
+ def __call__(self, **kwargs):
70
+ # allows: @datamap.double_braces(mode='config')
71
+ return datamap(syntax=self._syntax, **kwargs)
72
+
73
+ @property
74
+ def config(self):
75
+ # allows: @datamap.double_braces.config
76
+ return datamap(syntax=self._syntax, mode='config')
77
+
78
+
79
+ # build syntax shortcuts
80
+ datamap.double_braces = _SyntaxFactory(syntax.double_braces)
81
+ datamap.angles = _SyntaxFactory(syntax.angles)
82
+ datamap.dollars = _SyntaxFactory(syntax.dollars)
83
+ datamap.percents = _SyntaxFactory(syntax.percents)
84
+ datamap.at_tags = _SyntaxFactory(syntax.at_tags)
85
+ datamap.hash_tags = _SyntaxFactory(syntax.hash_tags)
86
+ datamap.pipe_tags = _SyntaxFactory(syntax.pipe_tags)
87
+ datamap.paren_dollar = _SyntaxFactory(syntax.paren_dollar)
88
+ datamap.colons = _SyntaxFactory(syntax.colons)
89
+
90
+ # global mode shortcut
91
+ datamap.config = datamap(mode='config')
@@ -116,7 +116,7 @@ class MapResolver:
116
116
  if not ctx:
117
117
  return text
118
118
 
119
- pattern = syntax.braces
119
+ pattern = syntax.double_braces
120
120
  d = ctx
121
121
 
122
122
  def repl(match: re.Match) -> str:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mapres
3
- Version: 2.4a7
3
+ Version: 2.4a9
4
4
  Summary: A powerfull mapping utility
5
5
  Author: iFamished
6
6
  License: MIT
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