feat: add integer type which will replace number type
This commit is contained in:
parent
319f9eab1f
commit
3c33c1927a
16 changed files with 78 additions and 24 deletions
|
|
@ -51,7 +51,7 @@ from rougail.convert.object_model import (
|
|||
NamespaceParam,
|
||||
Param,
|
||||
)
|
||||
from rougail.tiramisu import normalize_family
|
||||
from rougail.tiramisu import normalize_family, RENAME_TYPE
|
||||
from rougail.utils import undefined
|
||||
|
||||
from .upgrade import RougailUpgrade
|
||||
|
|
@ -91,7 +91,7 @@ class RougailOutputFormatter:
|
|||
) -> None:
|
||||
self.basic_types = {
|
||||
str: "string",
|
||||
int: "number",
|
||||
int: "integer",
|
||||
bool: "boolean",
|
||||
float: "float",
|
||||
}
|
||||
|
|
@ -281,13 +281,18 @@ class RougailOutputFormatter:
|
|||
force_keys = list(yaml_data)
|
||||
multi = obj.multi or isinstance(obj.default, list)
|
||||
type_ = obj.type
|
||||
if type_ in RENAME_TYPE:
|
||||
type_ = RENAME_TYPE[type_]
|
||||
for attr, default_value in self.get_attributes(
|
||||
self.rougail.variable, ["name", "path", "namespace", "version", "xmlfiles"]
|
||||
).items():
|
||||
try:
|
||||
value = getattr(obj, attr)
|
||||
except AttributeError:
|
||||
continue
|
||||
if attr == "type":
|
||||
value = type_
|
||||
else:
|
||||
try:
|
||||
value = getattr(obj, attr)
|
||||
except AttributeError:
|
||||
continue
|
||||
if attr not in force_keys and value == default_value:
|
||||
continue
|
||||
value = self.object_to_yaml(attr, type_, value, multi, path)
|
||||
|
|
@ -300,7 +305,7 @@ class RougailOutputFormatter:
|
|||
if "type" in variable and variable["type"] in [
|
||||
"string",
|
||||
"boolean",
|
||||
"number",
|
||||
"integer",
|
||||
"float",
|
||||
]:
|
||||
if variable["default"] and isinstance(variable["default"], list):
|
||||
|
|
@ -405,6 +410,10 @@ class RougailOutputFormatter:
|
|||
for v in value:
|
||||
new_value = self.object_to_yaml(key, type_, v, multi, object_path)
|
||||
if key == "params":
|
||||
if "min_number" in new_value:
|
||||
new_value["min_integer"] = new_value.pop("min_number")
|
||||
if "max_number" in new_value:
|
||||
new_value["max_integer"] = new_value.pop("max_number")
|
||||
new_values.update(new_value)
|
||||
else:
|
||||
new_values.append(new_value)
|
||||
|
|
@ -428,7 +437,10 @@ class RougailOutputFormatter:
|
|||
else:
|
||||
jinja["jinja"] = LiteralScalarString(jinja_values)
|
||||
if value.return_type:
|
||||
jinja["return_type"] = value.return_type
|
||||
return_type = value.return_type
|
||||
if return_type in RENAME_TYPE:
|
||||
return_type = RENAME_TYPE[return_type]
|
||||
jinja["return_type"] = return_type
|
||||
if value.description:
|
||||
if "\n" in value.description:
|
||||
jinja["description"] = LiteralScalarString(value.description.strip())
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ class RougailUpgrade:
|
|||
new_root[key] = value
|
||||
for typ, obj in {
|
||||
"boolean": bool,
|
||||
"number": int,
|
||||
"integer": int,
|
||||
"string": str,
|
||||
"float": float,
|
||||
}.items():
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ var:
|
|||
{% for n in trange(0, 10) %}
|
||||
{{ n }}
|
||||
{% endfor %}
|
||||
return_type: number
|
||||
return_type: integer
|
||||
description: choices is 0 to 9
|
||||
default: 9
|
||||
...
|
||||
|
|
|
|||
16
tests/results/00_6integer/rougail/00-base.yml
Normal file
16
tests/results/00_6integer/rougail/00-base.yml
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
version: 1.1
|
||||
|
||||
var1: 0 # the first variable
|
||||
|
||||
var2: 0 # the second variable
|
||||
|
||||
var3: 0 # the third variable
|
||||
|
||||
var4: 10 # this forth variable
|
||||
|
||||
var5: 10 # the fifth variable
|
||||
|
||||
var6: 10 # the sixth variable
|
||||
...
|
||||
|
|
@ -9,7 +9,7 @@ var:
|
|||
{% for item in trange(0, 10) %}
|
||||
{{ item }}
|
||||
{%- endfor %}
|
||||
return_type: number
|
||||
return_type: integer
|
||||
description: choice for 0 to 9
|
||||
default: 9
|
||||
...
|
||||
|
|
|
|||
15
tests/results/00_9default_number/rougail/00-base.yml
Normal file
15
tests/results/00_9default_number/rougail/00-base.yml
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
version: 1.1
|
||||
|
||||
var:
|
||||
description: a variable
|
||||
choices:
|
||||
jinja: |-
|
||||
{% for item in trange(0, 10) %}
|
||||
{{ item }}
|
||||
{%- endfor %}
|
||||
return_type: integer
|
||||
description: choice for 0 to 9
|
||||
default: 9
|
||||
...
|
||||
|
|
@ -5,7 +5,7 @@ version: 1.1
|
|||
int:
|
||||
description: A limited number
|
||||
params:
|
||||
min_number: 0
|
||||
max_number: 100
|
||||
min_integer: 0
|
||||
max_integer: 100
|
||||
default: 10
|
||||
...
|
||||
|
|
|
|||
11
tests/results/04_0type_param_integer/rougail/00-base.yml
Normal file
11
tests/results/04_0type_param_integer/rougail/00-base.yml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
%YAML 1.2
|
||||
---
|
||||
version: 1.1
|
||||
|
||||
int:
|
||||
description: A limited integer
|
||||
params:
|
||||
min_integer: 0
|
||||
max_integer: 100
|
||||
default: 10
|
||||
...
|
||||
|
|
@ -3,8 +3,8 @@
|
|||
version: 1.1
|
||||
|
||||
int:
|
||||
description: A number
|
||||
type: number
|
||||
description: An integer
|
||||
type: integer
|
||||
validators:
|
||||
- jinja: |-
|
||||
{% if _.int > 100 %}
|
||||
|
|
|
|||
|
|
@ -5,10 +5,10 @@ version: 1.1
|
|||
general: # a family
|
||||
|
||||
int:
|
||||
description: a first number
|
||||
description: a first integer
|
||||
test:
|
||||
- 5
|
||||
type: number
|
||||
type: integer
|
||||
validators:
|
||||
- jinja: |-
|
||||
{% if _.int == int2 %}
|
||||
|
|
@ -29,5 +29,5 @@ general: # a family
|
|||
variable: _.int3
|
||||
optional: true
|
||||
|
||||
int2: 1 # a second number
|
||||
int2: 1 # a second integer
|
||||
...
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ leader:
|
|||
|
||||
follower1:
|
||||
description: a follower
|
||||
type: number
|
||||
type: integer
|
||||
default:
|
||||
type: index
|
||||
...
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ leader:
|
|||
|
||||
follower1:
|
||||
description: a follower
|
||||
type: number
|
||||
type: integer
|
||||
default:
|
||||
jinja: >-
|
||||
{{ index }}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ bool: false # a boolean variable
|
|||
|
||||
int1:
|
||||
description: first integer variable
|
||||
type: number
|
||||
type: integer
|
||||
default:
|
||||
jinja: >-
|
||||
{% if rougail.bool %}
|
||||
|
|
@ -18,7 +18,7 @@ int1:
|
|||
|
||||
int2:
|
||||
description: second integer variable
|
||||
type: number
|
||||
type: integer
|
||||
default:
|
||||
jinja: >-
|
||||
{% if not rougail.bool %}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ var:
|
|||
test:
|
||||
- 1
|
||||
- 2
|
||||
type: number
|
||||
type: integer
|
||||
multi: true
|
||||
mandatory: false
|
||||
|
||||
|
|
@ -15,7 +15,7 @@ excludes = [
|
|||
]
|
||||
|
||||
test_ok = get_structures_list(excludes)
|
||||
# test_ok = [Path('../rougail-tests/structures/60_6family_dynamic_sub_dynamic_1_0_2')]
|
||||
# test_ok = [Path('../rougail-tests/structures/04_0type_param')]
|
||||
|
||||
|
||||
def idfn(fixture_value):
|
||||
|
|
|
|||
Loading…
Reference in a new issue