feat: referentiel projets dynamique + validation nommage by design
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é.
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
#!/usr/bin/env python
|
||||
#coding:utf-8
|
||||
# Author: mozman
|
||||
# Purpose: package definition file
|
||||
# Created: 08.09.2010
|
||||
# License: MIT License
|
||||
# Copyright (c) 2010-2018 Manfred Moitzi
|
||||
|
||||
"""
|
||||
A Python library to create SVG drawings.
|
||||
|
||||
SVG is a language for describing two-dimensional graphics in XML. SVG allows
|
||||
for three types of graphic objects: vector graphic shapes (e.g., paths
|
||||
consisting of straight lines and curves), images and text. Graphical objects
|
||||
can be grouped, styled, transformed and composed into previously rendered
|
||||
objects. The feature set includes nested transformations, clipping paths,
|
||||
alpha masks, filter effects and template objects.
|
||||
|
||||
SVG drawings can be interactive and dynamic. Animations can be defined and
|
||||
triggered either declarative (i.e., by embedding SVG animation elements in
|
||||
SVG content) or via scripting.
|
||||
|
||||
.. seealso:: http://www.w3.org/TR/SVG11/intro.html#AboutSVG
|
||||
|
||||
a simple example::
|
||||
|
||||
import svgwrite
|
||||
|
||||
dwg = svgwrite.Drawing('test.svg', profile='tiny')
|
||||
dwg.add(dwg.line((0, 0), (10, 0), stroke=svgwrite.rgb(10, 10, 16, '%')))
|
||||
dwg.add(dwg.text('Test', insert=(0, 0.2)))
|
||||
dwg.save()
|
||||
|
||||
SVG Version
|
||||
-----------
|
||||
|
||||
You can only create two types of SVG drawings:
|
||||
|
||||
* *SVG 1.2 Tiny Profile*, use Drawing(profile= ``'tiny'``)
|
||||
* *SVG 1.1 Full Profile*, use Drawing(profile= ``'full'``)
|
||||
|
||||
"""
|
||||
from .version import __version__, version
|
||||
VERSION = __version__
|
||||
|
||||
__author__ = "mozman <me@mozman.at>"
|
||||
|
||||
AUTHOR_NAME = 'Manfred Moitzi'
|
||||
AUTHOR_EMAIL = 'me@mozman.at'
|
||||
CYEAR = '2014-2019'
|
||||
|
||||
|
||||
from svgwrite.drawing import Drawing
|
||||
from svgwrite.utils import rgb
|
||||
|
||||
|
||||
class Unit(object):
|
||||
""" Add units to values.
|
||||
"""
|
||||
def __init__(self, unit='cm'):
|
||||
""" Unit constructor
|
||||
|
||||
:param str unit: specify the unit string
|
||||
"""
|
||||
self._unit = unit
|
||||
|
||||
def __rmul__(self, other):
|
||||
""" add unit-string to 'other'. (e.g. 5*cm => '5cm') """
|
||||
return "%s%s" % (other, self._unit)
|
||||
|
||||
def __call__(self, *args):
|
||||
""" Add unit-strings to all arguments.
|
||||
|
||||
:param args: list of values
|
||||
e.g.: cm(1,2,3) => '1cm,2cm,3cm'
|
||||
"""
|
||||
return ','.join(["%s%s" % (arg, self._unit) for arg in args])
|
||||
|
||||
|
||||
cm = Unit('cm')
|
||||
mm = Unit('mm')
|
||||
em = Unit('em')
|
||||
ex = Unit('ex')
|
||||
px = Unit('px')
|
||||
inch = Unit('in')
|
||||
pc = Unit('pc')
|
||||
pt = Unit('pt')
|
||||
percent = Unit('%')
|
||||
deg = Unit('deg')
|
||||
grad = Unit('grad')
|
||||
rad = Unit('rad')
|
||||
Hz = Unit('Hz')
|
||||
kHz = Unit('kHz')
|
||||
Reference in New Issue
Block a user