Skip to content

Commit 346d250

Browse files
committed
Use Real instead of float for numbers, to avoid integers triggering validation errors
1 parent a989656 commit 346d250

3 files changed

Lines changed: 8 additions & 2 deletions

File tree

pipeline/src/properties.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
from datetime import datetime, date
88
from collections import defaultdict
9+
from numbers import Real
910
from typing import Optional, Union, Iterable
1011

1112
from .registry import lookup
@@ -172,6 +173,8 @@ def deserialize_item(item):
172173
return IRI(item)
173174
elif float in self.types:
174175
return item
176+
elif Real in self.types:
177+
return item
175178
elif int in self.types:
176179
return item
177180
elif datetime in self.types:

pipeline/tests/utils.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
Utility functions and constants for openMINDS tests
33
"""
44

5+
from numbers import Real
56
import random
67
import string
78
from datetime import date, datetime
@@ -34,7 +35,7 @@ def build_fake_node(cls, depth=0):
3435
# todo: check for property.formatting
3536
value = "".join(random.choices(string.printable, k=random.randint(0, 40)))
3637
data[property.name] = value
37-
elif float in property.types:
38+
elif Real in property.types:
3839
value = 100 * random.random()
3940
data[property.name] = value
4041
elif int in property.types:

pipeline/translator.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from datetime import date, time, datetime
22
import json
3+
from numbers import Real
34
import os.path
45
import re
56
from typing import List, Optional, Dict
@@ -87,7 +88,7 @@ def get_type(property):
8788
type_map = {
8889
"string": "str",
8990
"integer": "int",
90-
"number": "float",
91+
"number": "Real",
9192
"date": "date",
9293
"date-time": "datetime",
9394
"time": "time",
@@ -209,6 +210,7 @@ def filter_instance(instance):
209210
"time": "from datetime import time",
210211
"IRI": "from openminds.base import IRI",
211212
"[datetime, time]": "from datetime import datetime, time",
213+
"Real": "from numbers import Real"
212214
}
213215
extra_imports = set()
214216
for property in self.context["properties"]:

0 commit comments

Comments
 (0)