943acbc573
Durcit la convention de nommage des projets (dérive constatée : 'Sliding Automation', 'code_versioning'... au lieu des formes canoniques). - trilium_api.py : projets_canoniques() lit le référentiel = valeurs du label projet sur les notes de type=projet (source unique, pas de constante en dur). Note-projet CodeVersioning créée (manquait). - mcp_server.py : _valider_projet() branché dans les 6 tools de création (add_decision/history/backlog, new_conversation, create_entite, add_skill). Refuse un projet non canonique (suggestion si faute) ou inconnu (renvoi au processus de création de projet). Ne verrouille pas si référentiel illisible. - lint_audit.py : VAL-nommage aligné sur le référentiel (attrape casse, espace ET snake_case ; l'ancien 'contient un espace' ratait code_versioning). - Données : 79 notes ré-étiquetées vers les 3 formes canoniques. Quality by design : l'erreur de nommage devient impossible à l'écriture, le Lint n'est plus que le filet de sécurité.
50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
|
|
class Node(object):
|
|
def __init__(self, tag, value, start_mark, end_mark):
|
|
self.tag = tag
|
|
self.value = value
|
|
self.start_mark = start_mark
|
|
self.end_mark = end_mark
|
|
def __repr__(self):
|
|
value = self.value
|
|
#if isinstance(value, list):
|
|
# if len(value) == 0:
|
|
# value = '<empty>'
|
|
# elif len(value) == 1:
|
|
# value = '<1 item>'
|
|
# else:
|
|
# value = '<%d items>' % len(value)
|
|
#else:
|
|
# if len(value) > 75:
|
|
# value = repr(value[:70]+u' ... ')
|
|
# else:
|
|
# value = repr(value)
|
|
value = repr(value)
|
|
return '%s(tag=%r, value=%s)' % (self.__class__.__name__, self.tag, value)
|
|
|
|
class ScalarNode(Node):
|
|
id = 'scalar'
|
|
def __init__(self, tag, value,
|
|
start_mark=None, end_mark=None, style=None):
|
|
self.tag = tag
|
|
self.value = value
|
|
self.start_mark = start_mark
|
|
self.end_mark = end_mark
|
|
self.style = style
|
|
|
|
class CollectionNode(Node):
|
|
def __init__(self, tag, value,
|
|
start_mark=None, end_mark=None, flow_style=None):
|
|
self.tag = tag
|
|
self.value = value
|
|
self.start_mark = start_mark
|
|
self.end_mark = end_mark
|
|
self.flow_style = flow_style
|
|
|
|
class SequenceNode(CollectionNode):
|
|
id = 'sequence'
|
|
|
|
class MappingNode(CollectionNode):
|
|
id = 'mapping'
|
|
|