aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorHsiangNianian <i@jyunko.cn>2025-05-07 00:43:29 +0800
committerHsiangNianian <i@jyunko.cn>2025-05-07 00:43:29 +0800
commita661b3ae3b5f6d41cd4d0b7d333285079d9905f9 (patch)
treeb84c81f874742bb99e90fa41bf444203e79f0071
parent013fc7460e77799825b8ae5aff9a4e59feec6453 (diff)
downloadconventional_role_play-a661b3ae3b5f6d41cd4d0b7d333285079d9905f9.tar.gz
conventional_role_play-a661b3ae3b5f6d41cd4d0b7d333285079d9905f9.zip
feat: :art: update rules structure to use a dictionary for improved organization
-rw-r--r--src/conventionalrp/core/parser.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/conventionalrp/core/parser.py b/src/conventionalrp/core/parser.py
index a3dd947..68344de 100644
--- a/src/conventionalrp/core/parser.py
+++ b/src/conventionalrp/core/parser.py
@@ -5,7 +5,7 @@ from typing import List, Dict, Optional
class Parser:
def __init__(self):
- self.rules = []
+ self.rules: Dict[str, List[Dict]] = {}
def load_rules(self, rules_path: str):
"""Load parsing rules."""
@@ -17,10 +17,8 @@ class Parser:
rules = json5.loads(file_content)
- # validation rule format
if rules is None:
raise ValueError(f"Rule file cannot be empty.")
- # to be continue...
self.rules = rules
print(f"Rules loaded: {rules}\n")
@@ -73,6 +71,8 @@ class Parser:
def _match_metadata(self, line: str) -> Optional[Dict]:
"""Match metadata line."""
metadata_rule = self.rules.get("metadata")
+ if isinstance(metadata_rule, list) and metadata_rule:
+ metadata_rule = metadata_rule[0]
if not metadata_rule:
return None