udata 10.8.4.dev37375__py2.py3-none-any.whl → 10.8.4.dev37405__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of udata might be problematic. Click here for more details.
- udata/core/dataservices/rdf.py +4 -1
- udata/core/dataset/rdf.py +3 -2
- udata/rdf.py +19 -2
- udata/static/chunks/{10.8ca60413647062717b1e.js → 10.471164b2a9fe15614797.js} +3 -3
- udata/static/chunks/{10.8ca60413647062717b1e.js.map → 10.471164b2a9fe15614797.js.map} +1 -1
- udata/static/chunks/{11.0f04e49a40a0a381bcce.js → 11.51d706fb9521c16976bc.js} +3 -3
- udata/static/chunks/{11.0f04e49a40a0a381bcce.js.map → 11.51d706fb9521c16976bc.js.map} +1 -1
- udata/static/chunks/{13.d9c1735d14038b94c17e.js → 13.f29411b06be1883356a3.js} +2 -2
- udata/static/chunks/{13.d9c1735d14038b94c17e.js.map → 13.f29411b06be1883356a3.js.map} +1 -1
- udata/static/chunks/{17.81c57c0dedf812e43013.js → 17.3bd0340930d4a314ce9c.js} +2 -2
- udata/static/chunks/{17.81c57c0dedf812e43013.js.map → 17.3bd0340930d4a314ce9c.js.map} +1 -1
- udata/static/chunks/{8.494b003a94383b142c18.js → 8.54e44b102164ae5e7a67.js} +2 -2
- udata/static/chunks/{8.494b003a94383b142c18.js.map → 8.54e44b102164ae5e7a67.js.map} +1 -1
- udata/static/chunks/{9.033d7e190ca9e226a5d0.js → 9.07515e5187f475bce828.js} +3 -3
- udata/static/chunks/{9.033d7e190ca9e226a5d0.js.map → 9.07515e5187f475bce828.js.map} +1 -1
- udata/static/common.js +1 -1
- udata/static/common.js.map +1 -1
- udata/tests/dataset/test_dataset_rdf.py +19 -0
- {udata-10.8.4.dev37375.dist-info → udata-10.8.4.dev37405.dist-info}/METADATA +2 -1
- {udata-10.8.4.dev37375.dist-info → udata-10.8.4.dev37405.dist-info}/RECORD +24 -24
- {udata-10.8.4.dev37375.dist-info → udata-10.8.4.dev37405.dist-info}/LICENSE +0 -0
- {udata-10.8.4.dev37375.dist-info → udata-10.8.4.dev37405.dist-info}/WHEEL +0 -0
- {udata-10.8.4.dev37375.dist-info → udata-10.8.4.dev37405.dist-info}/entry_points.txt +0 -0
- {udata-10.8.4.dev37375.dist-info → udata-10.8.4.dev37405.dist-info}/top_level.txt +0 -0
udata/core/dataservices/rdf.py
CHANGED
|
@@ -14,6 +14,7 @@ from udata.rdf import (
|
|
|
14
14
|
TAG_TO_EU_HVD_CATEGORIES,
|
|
15
15
|
contact_points_from_rdf,
|
|
16
16
|
contact_points_to_rdf,
|
|
17
|
+
default_lang_value,
|
|
17
18
|
namespace_manager,
|
|
18
19
|
rdf_value,
|
|
19
20
|
remote_url_from_rdf,
|
|
@@ -38,7 +39,9 @@ def dataservice_from_rdf(
|
|
|
38
39
|
d = graph.resource(node)
|
|
39
40
|
|
|
40
41
|
dataservice.title = rdf_value(d, DCT.title)
|
|
41
|
-
dataservice.description = sanitize_html(
|
|
42
|
+
dataservice.description = sanitize_html(
|
|
43
|
+
default_lang_value(d, DCT.description) or default_lang_value(d, DCT.abstract)
|
|
44
|
+
)
|
|
42
45
|
|
|
43
46
|
dataservice.base_api_url = url_from_rdf(d, DCAT.endpointURL)
|
|
44
47
|
|
udata/core/dataset/rdf.py
CHANGED
|
@@ -40,6 +40,7 @@ from udata.rdf import (
|
|
|
40
40
|
TAG_TO_EU_HVD_CATEGORIES,
|
|
41
41
|
contact_points_from_rdf,
|
|
42
42
|
contact_points_to_rdf,
|
|
43
|
+
default_lang_value,
|
|
43
44
|
namespace_manager,
|
|
44
45
|
rdf_unique_values,
|
|
45
46
|
rdf_value,
|
|
@@ -656,7 +657,7 @@ def resource_from_rdf(graph_or_distrib, dataset=None, is_additionnal=False):
|
|
|
656
657
|
resource.filetype = "remote"
|
|
657
658
|
resource.title = title_from_rdf(distrib, url)
|
|
658
659
|
resource.url = url
|
|
659
|
-
resource.description = sanitize_html(distrib
|
|
660
|
+
resource.description = sanitize_html(default_lang_value(distrib, DCT.description))
|
|
660
661
|
resource.filesize = rdf_value(distrib, DCAT.byteSize)
|
|
661
662
|
resource.mime = mime_from_rdf(distrib)
|
|
662
663
|
resource.format = format_from_rdf(distrib)
|
|
@@ -731,7 +732,7 @@ def dataset_from_rdf(graph: Graph, dataset=None, node=None, remote_url_prefix: s
|
|
|
731
732
|
raise HarvestSkipException("missing title on dataset")
|
|
732
733
|
|
|
733
734
|
# Support dct:abstract if dct:description is missing (sometimes used instead)
|
|
734
|
-
description = d
|
|
735
|
+
description = default_lang_value(d, DCT.description) or default_lang_value(d, DCT.abstract)
|
|
735
736
|
dataset.description = sanitize_html(description)
|
|
736
737
|
dataset.frequency = frequency_from_rdf(d.value(DCT.accrualPeriodicity)) or dataset.frequency
|
|
737
738
|
roles = [ # Imbricated list of contact points for each role
|
udata/rdf.py
CHANGED
|
@@ -239,11 +239,28 @@ def rdf_unique_values(resource, predicate, parse_label=False) -> set[str]:
|
|
|
239
239
|
|
|
240
240
|
|
|
241
241
|
def rdf_value(obj, predicate, default=None, parse_label=False):
|
|
242
|
-
"""
|
|
243
|
-
value
|
|
242
|
+
"""
|
|
243
|
+
Serialize the value for a predicate on a RdfResource,
|
|
244
|
+
expecting one value only or (at most) one per language for Literals.
|
|
245
|
+
"""
|
|
246
|
+
value = default_lang_value(obj, predicate)
|
|
244
247
|
return serialize_value(value, parse_label=parse_label) if value else default
|
|
245
248
|
|
|
246
249
|
|
|
250
|
+
def default_lang_value(obj, predicate):
|
|
251
|
+
"""
|
|
252
|
+
Return the value with the default language if multiple Literal values exist in different languages.
|
|
253
|
+
"""
|
|
254
|
+
candidate_values = list(obj.objects(predicate))
|
|
255
|
+
if not candidate_values:
|
|
256
|
+
return None
|
|
257
|
+
for val in candidate_values:
|
|
258
|
+
if isinstance(val, Literal) and val.language == current_app.config["DEFAULT_LANGUAGE"]:
|
|
259
|
+
return val
|
|
260
|
+
# Defaulting to the first value found
|
|
261
|
+
return candidate_values[0]
|
|
262
|
+
|
|
263
|
+
|
|
247
264
|
class HTMLDetector(HTMLParser):
|
|
248
265
|
def __init__(self, *args, **kwargs):
|
|
249
266
|
HTMLParser.__init__(self, *args, **kwargs)
|