• R/O
  • SSH

提交

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Castle: The best Real-Time/Embedded/HighTech language EVER. Attempt 2


Commit MetaInfo

修订版43d9cfa74f236e001b636cd47d89b714ad8f8da9 (tree)
时间2023-10-20 22:22:22
作者Albert Mietus < albert AT mietus DOT nl >
CommiterAlbert Mietus < albert AT mietus DOT nl >

Log Message

NameSpace/NamedNode: REFACTOR: new module: namednode - move code from init.py tp namednodes.py

更改概述

差异

diff -r 5e4cf28b8e9a -r 43d9cfa74f23 castle/aigr/__init__.py
--- a/castle/aigr/__init__.py Fri Oct 20 15:08:54 2023 +0200
+++ b/castle/aigr/__init__.py Fri Oct 20 15:22:22 2023 +0200
@@ -1,10 +1,9 @@
11 # (C) Albert Mietus, 2023. Part of Castle/CCastle project
22
33 from __future__ import annotations
4+from dataclasses import dataclass
45
5-from dataclasses import dataclass, KW_ONLY
6-from dataclasses import field as dc_field
7-import typing as PTH # Python TypeHints
6+
87
98 class AIGR: # Abstract Intermediate Graph Representation
109 def __new__(cls, *args, **kwargs):
@@ -12,25 +11,14 @@
1211 raise NotImplementedError(f"Instantiate a subclass of {cls}, not the `Abstract Intermediate Graph Representation`` itself")
1312 return super().__new__(cls)
1413
15-@dataclass
16-class NamedNode(AIGR):
17- name :str
18- _: KW_ONLY
19- _ns :PTH.Optional[NameSpace]=dc_field(init=None, default=None) #type: ignore[call-overload]
2014
21- def register_in_NS(self, ns):
22- self._ns = ns
23-
24-
25-
26-class NameError(AttributeError):pass
2715
2816 @dataclass
2917 class _Marker:
3018 msg :str=""
3119
32-
3320 from .events import *
3421 from .protocols import *
3522 from .interfaces import *
3623 from .namespaces import *
24+from .namednodes import *
diff -r 5e4cf28b8e9a -r 43d9cfa74f23 castle/aigr/events.py
--- a/castle/aigr/events.py Fri Oct 20 15:08:54 2023 +0200
+++ b/castle/aigr/events.py Fri Oct 20 15:22:22 2023 +0200
@@ -9,8 +9,8 @@
99
1010 import typing as PTH # Python TypeHints
1111 from dataclasses import dataclass, KW_ONLY
12-from . import NamedNode
1312 from .aid import TypedParameter # Castle/AIGR type
13+from .namednodes import *
1414
1515 __all__ = ['Event']
1616
diff -r 5e4cf28b8e9a -r 43d9cfa74f23 castle/aigr/interfaces.py
--- a/castle/aigr/interfaces.py Fri Oct 20 15:08:54 2023 +0200
+++ b/castle/aigr/interfaces.py Fri Oct 20 15:22:22 2023 +0200
@@ -4,9 +4,10 @@
44 from enum import Enum
55 from dataclasses import dataclass, KW_ONLY
66 from dataclasses import field as dc_field
7-from . import AIGR, NamedNode
7+from . import AIGR
88 from .protocols import Protocol
99 from .aid import TypedParameter # Castle/AIGR types
10+from .namednodes import *
1011
1112 __all__ = ['PortDirection', 'Port', 'ComponentInterface']
1213
diff -r 5e4cf28b8e9a -r 43d9cfa74f23 castle/aigr/namednodes.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/castle/aigr/namednodes.py Fri Oct 20 15:22:22 2023 +0200
@@ -0,0 +1,25 @@
1+# (C) Albert Mietus, 2023. Part of Castle/CCastle project
2+
3+from __future__ import annotations
4+
5+__all__ = ['NameError', 'NamedNode']
6+
7+from dataclasses import dataclass, KW_ONLY
8+from dataclasses import field as dc_field
9+import typing as PTH # Python TypeHints
10+
11+from . import AIGR
12+
13+
14+
15+class NameError(AttributeError):pass
16+
17+@dataclass
18+class NamedNode(AIGR):
19+ name :str
20+ _: KW_ONLY
21+ _ns :PTH.Optional[NameSpace]=dc_field(init=None, default=None) #type: ignore[call-overload]
22+
23+ def register_in_NS(self, ns):
24+ self._ns = ns
25+
diff -r 5e4cf28b8e9a -r 43d9cfa74f23 castle/aigr/namespaces.py
--- a/castle/aigr/namespaces.py Fri Oct 20 15:08:54 2023 +0200
+++ b/castle/aigr/namespaces.py Fri Oct 20 15:22:22 2023 +0200
@@ -13,11 +13,10 @@
1313 from enum import Enum
1414 from dataclasses import dataclass, KW_ONLY
1515 from dataclasses import field as dc_field
16-
16+from .namednodes import *
1717
18-from . import AIGR, _Marker, NamedNode, NameError
18+from . import AIGR, _Marker
1919
20-#class GENERATED(_Marker):pass
2120 GENERATED=_Marker('No Source as it is GENERATED')
2221
2322
diff -r 5e4cf28b8e9a -r 43d9cfa74f23 castle/aigr/protocols.py
--- a/castle/aigr/protocols.py Fri Oct 20 15:08:54 2023 +0200
+++ b/castle/aigr/protocols.py Fri Oct 20 15:22:22 2023 +0200
@@ -7,9 +7,11 @@
77 from enum import Enum
88 from dataclasses import dataclass, KW_ONLY
99 from dataclasses import field as dc_field
10-from . import AIGR, NamedNode
10+from . import AIGR
1111 from .events import Event
1212 from .aid import TypedParameter, Argument # Castle/AIGR types
13+
14+from .namednodes import *
1315 from .namespaces import NameSpace
1416
1517 __all__ = ['ProtocolKind', 'Protocol', 'EventProtocol']