From 9a709f446ff92dc981dc76aa38c83a786eea15e2 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Wed, 11 Feb 2026 10:48:02 +0100 Subject: [PATCH] =?UTF-8?q?bump:=20version=201.2.0a61=20=E2=86=92=201.2.0a?= =?UTF-8?q?62?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 11 ++++++++++ pyproject.toml | 2 +- rougail-base-pyproject.toml | 2 +- rougail-pyproject.toml | 4 ++-- src/rougail/__version__.py | 2 +- src/rougail/convert/object_model.py | 33 ++++++++++++----------------- 6 files changed, 29 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc7da1e65..277fac6b9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +## 1.2.0a62 (2026-02-11) + +### Feat + +- structural data in a string + +### Fix + +- structurals data in extra could be a simple file +- allow define an addition variable in a type + ## 1.2.0a61 (2026-02-06) ### Feat diff --git a/pyproject.toml b/pyproject.toml index 6febdd800..92d9945f1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "rougail" -version = "1.2.0a61" +version = "1.2.0a62" [tool.commitizen] name = "cz_conventional_commits" diff --git a/rougail-base-pyproject.toml b/rougail-base-pyproject.toml index e7cee56f5..b34911531 100644 --- a/rougail-base-pyproject.toml +++ b/rougail-base-pyproject.toml @@ -4,7 +4,7 @@ requires = ["flit_core >=3.8.0,<4"] [project] name = "rougail-base" -version = "1.2.0a61" +version = "1.2.0a62" authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}] readme = "README.md" description = "A consistency handling system that was initially designed in the configuration management" diff --git a/rougail-pyproject.toml b/rougail-pyproject.toml index 52547d5c4..3c3240f48 100644 --- a/rougail-pyproject.toml +++ b/rougail-pyproject.toml @@ -4,7 +4,7 @@ requires = ["flit_core >=3.8.0,<4"] [project] name = "rougail" -version = "1.2.0a61" +version = "1.2.0a62" authors = [{name = "Emmanuel Garette", email = "gnunux@gnunux.info"}] description = "A consistency handling system that was initially designed in the configuration management" classifiers = [ @@ -18,7 +18,7 @@ classifiers = [ dependencies = [ "ruamel.yaml ~= 0.18.6", "pydantic ~= 2.9.2", - "rougail-base == 1.2.0a61", + "rougail-base == 1.2.0a62", ] [tool.flit.sdist] diff --git a/src/rougail/__version__.py b/src/rougail/__version__.py index dd04649b0..d87269a6c 100644 --- a/src/rougail/__version__.py +++ b/src/rougail/__version__.py @@ -1 +1 @@ -__version__ = "1.2.0a61" +__version__ = "1.2.0a62" diff --git a/src/rougail/convert/object_model.py b/src/rougail/convert/object_model.py index 6a5a5232b..264ed4f7a 100644 --- a/src/rougail/convert/object_model.py +++ b/src/rougail/convert/object_model.py @@ -111,7 +111,7 @@ class VariableParam(Param): variable: str propertyerror: bool = True whole: bool = False - dynamic: bool = True +# dynamic: bool = True optional: bool = False def to_param( @@ -254,6 +254,7 @@ class Calculation(BaseModel): default_values: Any = None namespace: Optional[str] warnings: Optional[bool] = None + description: Optional[StrictStr] = None xmlfiles: List[str] model_config = ConfigDict(extra="forbid") @@ -298,7 +299,6 @@ class JinjaCalculation(Calculation): jinja: StrictStr params: Optional[List[Param]] = None return_type: BASETYPE = None - description: Optional[StrictStr] = None def _jinja_to_function( self, @@ -719,7 +719,6 @@ class _VariableCalculation(Calculation): class VariableCalculation(_VariableCalculation): attribute_name: Literal["default", "choices", "dynamic"] - description: Optional[StrictStr] = None default: Any = undefined def to_function( @@ -778,7 +777,6 @@ class VariablePropertyCalculation(_VariableCalculation): propertyerror: Union[Literal["transitive"], bool] = True when: Any = undefined when_not: Any = undefined - description: Optional[StrictStr] = None default: bool = False def to_function( @@ -870,7 +868,6 @@ class InformationCalculation(Calculation): attribute_name: Literal["default", "choice", "dynamic"] information: StrictStr variable: Optional[StrictStr] - description: Optional[StrictStr] = None def to_function( self, @@ -928,7 +925,6 @@ class _IdentifierCalculation(Calculation): class IdentifierCalculation(_IdentifierCalculation): attribute_name: Literal["default", "choice", "dynamic"] - description: Optional[StrictStr] = None def to_function( self, @@ -948,7 +944,6 @@ class IdentifierPropertyCalculation(_IdentifierCalculation): attribute_name: Literal[*PROPERTY_ATTRIBUTE] when: Any = undefined when_not: Any = undefined - description: Optional[StrictStr] = None def to_function( self, @@ -991,7 +986,6 @@ class IdentifierPropertyCalculation(_IdentifierCalculation): class IndexCalculation(Calculation): attribute_name: Literal["default", "choice", "dynamic"] - description: Optional[StrictStr] = None def to_function( self, @@ -1011,7 +1005,6 @@ class IndexCalculation(Calculation): class NamespaceCalculation(Calculation): attribute_name: Literal["default", "secret_manager"] - description: Optional[StrictStr] = None def to_function( self, @@ -1048,19 +1041,19 @@ SECRET_BASETYPE_CALC = Union[StrictStr, JinjaCalculation] class Family(BaseModel): name: str # informations - description: Optional[str] = None - help: Optional[str] = None - mode: Optional[str] = None + description: Optional[StrictStr] = None + help: Optional[StrictStr] = None + mode: Optional[StrictStr] = None # validation type: Literal["family", "leadership", "dynamic"] = "family" # properties hidden: Union[bool, Calculation] = False disabled: Union[bool, Calculation] = False # others - namespace: Optional[str] - path: str - version: str - xmlfiles: List[str] = [] + namespace: Optional[StrictStr] + path: StrictStr + version: StrictStr + xmlfiles: List[StrictStr] = [] model_config = ConfigDict(extra="forbid", arbitrary_types_allowed=True) @@ -1074,9 +1067,9 @@ class Dynamic(Family): class Variable(BaseModel): name: str # user informations - description: Optional[str] = None - help: Optional[str] = None - mode: Optional[str] = None + description: Optional[StrictStr] = None + help: Optional[StrictStr] = None + mode: Optional[StrictStr] = None tags: Optional[list] = None examples: Optional[list] = None test: Optional[list] = None @@ -1084,7 +1077,7 @@ class Variable(BaseModel): ## type will be set dynamically in `annotator/value.py`, default is None type: str = None params: Optional[List[Param]] = None - regexp: Optional[str] = None + regexp: Optional[StrictStr] = None choices: Optional[Union[List[BASETYPE_CALC], Calculation]] = None multi: Optional[bool] = None validators: Optional[List[Calculation]] = None