udata 10.4.4.dev35901__py2.py3-none-any.whl → 10.4.4.dev35923__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/dataset/rdf.py +16 -19
- udata/tests/dataset/test_dataset_rdf.py +27 -0
- {udata-10.4.4.dev35901.dist-info → udata-10.4.4.dev35923.dist-info}/METADATA +2 -1
- {udata-10.4.4.dev35901.dist-info → udata-10.4.4.dev35923.dist-info}/RECORD +8 -8
- {udata-10.4.4.dev35901.dist-info → udata-10.4.4.dev35923.dist-info}/LICENSE +0 -0
- {udata-10.4.4.dev35901.dist-info → udata-10.4.4.dev35923.dist-info}/WHEEL +0 -0
- {udata-10.4.4.dev35901.dist-info → udata-10.4.4.dev35923.dist-info}/entry_points.txt +0 -0
- {udata-10.4.4.dev35901.dist-info → udata-10.4.4.dev35923.dist-info}/top_level.txt +0 -0
udata/core/dataset/rdf.py
CHANGED
|
@@ -109,7 +109,8 @@ def temporal_to_rdf(
|
|
|
109
109
|
graph = graph or Graph(namespace_manager=namespace_manager)
|
|
110
110
|
pot = graph.resource(BNode())
|
|
111
111
|
pot.set(RDF.type, DCT.PeriodOfTime)
|
|
112
|
-
|
|
112
|
+
if daterange.start:
|
|
113
|
+
pot.set(DCAT.startDate, Literal(daterange.start))
|
|
113
114
|
if daterange.end:
|
|
114
115
|
pot.set(DCAT.endDate, Literal(daterange.end))
|
|
115
116
|
return pot
|
|
@@ -409,6 +410,14 @@ def temporal_from_literal(text):
|
|
|
409
410
|
)
|
|
410
411
|
|
|
411
412
|
|
|
413
|
+
def maybe_date_range(start, end):
|
|
414
|
+
if start or end:
|
|
415
|
+
return db.DateRange(
|
|
416
|
+
start=start.toPython() if start else None,
|
|
417
|
+
end=end.toPython() if end else None,
|
|
418
|
+
)
|
|
419
|
+
|
|
420
|
+
|
|
412
421
|
def temporal_from_resource(resource):
|
|
413
422
|
"""
|
|
414
423
|
Parse a temporal coverage from a RDF class/resource ie. either:
|
|
@@ -422,24 +431,12 @@ def temporal_from_resource(resource):
|
|
|
422
431
|
# Fetch remote ontology if necessary
|
|
423
432
|
g = Graph().parse(str(resource.identifier))
|
|
424
433
|
resource = g.resource(resource.identifier)
|
|
425
|
-
if resource.value(SCHEMA.startDate):
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
elif resource.value(DCAT.startDate):
|
|
432
|
-
end = resource.value(DCAT.endDate)
|
|
433
|
-
return db.DateRange(
|
|
434
|
-
start=resource.value(DCAT.startDate).toPython(),
|
|
435
|
-
end=end.toPython() if end else None,
|
|
436
|
-
)
|
|
437
|
-
elif resource.value(SCV.min):
|
|
438
|
-
end = resource.value(SCV.max)
|
|
439
|
-
return db.DateRange(
|
|
440
|
-
start=resource.value(SCV.min).toPython(),
|
|
441
|
-
end=end.toPython() if end else None,
|
|
442
|
-
)
|
|
434
|
+
if range := maybe_date_range(resource.value(SCHEMA.startDate), resource.value(SCHEMA.endDate)):
|
|
435
|
+
return range
|
|
436
|
+
elif range := maybe_date_range(resource.value(DCAT.startDate), resource.value(DCAT.endDate)):
|
|
437
|
+
return range
|
|
438
|
+
elif range := maybe_date_range(resource.value(SCV.min), resource.value(SCV.max)):
|
|
439
|
+
return range
|
|
443
440
|
|
|
444
441
|
|
|
445
442
|
def temporal_from_rdf(period_of_time):
|
|
@@ -292,6 +292,19 @@ class DatasetToRdfTest:
|
|
|
292
292
|
assert pot.value(DCAT.startDate).toPython() == start
|
|
293
293
|
assert pot.value(DCAT.endDate) is None
|
|
294
294
|
|
|
295
|
+
def test_temporal_coverage_only_end(self):
|
|
296
|
+
end = faker.future_date(end_date="+30d")
|
|
297
|
+
temporal_coverage = db.DateRange(end=end)
|
|
298
|
+
dataset = DatasetFactory(temporal_coverage=temporal_coverage)
|
|
299
|
+
|
|
300
|
+
d = dataset_to_rdf(dataset)
|
|
301
|
+
|
|
302
|
+
pot = d.value(DCT.temporal)
|
|
303
|
+
|
|
304
|
+
assert pot.value(RDF.type).identifier == DCT.PeriodOfTime
|
|
305
|
+
assert pot.value(DCAT.startDate) is None
|
|
306
|
+
assert pot.value(DCAT.endDate).toPython() == end
|
|
307
|
+
|
|
295
308
|
def test_from_external_repository(self):
|
|
296
309
|
dataset = DatasetFactory(
|
|
297
310
|
harvest=HarvestDatasetMetadata(
|
|
@@ -893,6 +906,20 @@ class RdfToDatasetTest:
|
|
|
893
906
|
assert daterange.start == start
|
|
894
907
|
assert daterange.end is None
|
|
895
908
|
|
|
909
|
+
def test_parse_temporal_as_schema_format_only_end_date(self):
|
|
910
|
+
node = BNode()
|
|
911
|
+
g = Graph()
|
|
912
|
+
end = faker.future_date(end_date="+30d")
|
|
913
|
+
|
|
914
|
+
g.set((node, RDF.type, DCT.PeriodOfTime))
|
|
915
|
+
g.set((node, SCHEMA.endDate, Literal(end)))
|
|
916
|
+
|
|
917
|
+
daterange = temporal_from_rdf(g.resource(node))
|
|
918
|
+
|
|
919
|
+
assert isinstance(daterange, db.DateRange)
|
|
920
|
+
assert daterange.start is None
|
|
921
|
+
assert daterange.end == end
|
|
922
|
+
|
|
896
923
|
def test_parse_temporal_as_iso_interval(self):
|
|
897
924
|
start = faker.past_date(start_date="-30d")
|
|
898
925
|
end = faker.future_date(end_date="+30d")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: udata
|
|
3
|
-
Version: 10.4.4.
|
|
3
|
+
Version: 10.4.4.dev35923
|
|
4
4
|
Summary: Open data portal
|
|
5
5
|
Home-page: https://github.com/opendatateam/udata
|
|
6
6
|
Author: Opendata Team
|
|
@@ -142,6 +142,7 @@ It is collectively taken care of by members of the
|
|
|
142
142
|
|
|
143
143
|
## Current (in progress)
|
|
144
144
|
|
|
145
|
+
- Allow temporal intervals with no start date [#3353](https://github.com/opendatateam/udata/pull/3353)
|
|
145
146
|
- Fix removing schema by sending null [#3350](https://github.com/opendatateam/udata/pull/3350)
|
|
146
147
|
- Use datagouv patched ISO-DCAT XSLT URL [#3351](https://github.com/opendatateam/udata/pull/3351)
|
|
147
148
|
|
|
@@ -108,7 +108,7 @@ udata/core/dataset/forms.py,sha256=7KUxuFcEGT0MUe0cZCiZtsnZhvGgvEd68pe13NgeSMI,6
|
|
|
108
108
|
udata/core/dataset/models.py,sha256=_zsUDRl4xUt2Rp1QuIw2f85FxBNx_e2XgpiXVxVQ-tE,42889
|
|
109
109
|
udata/core/dataset/permissions.py,sha256=zXQ6kU-Ni3Pl5tDtat-ZPupug9InsNeCN7xRLc2Vcrc,1097
|
|
110
110
|
udata/core/dataset/preview.py,sha256=IwCqiNTjjXbtA_SSKF52pwnzKKEz0GyYM95QNn2Dkog,2561
|
|
111
|
-
udata/core/dataset/rdf.py,sha256=
|
|
111
|
+
udata/core/dataset/rdf.py,sha256=anpTfjH9dUdZZRk_X8oixtSqXwffVKwXgfy3lB5OA8A,31698
|
|
112
112
|
udata/core/dataset/search.py,sha256=E7LqHBnq3sMefvmLwTpiw-Ovem2a3NJswHesRjctboE,5627
|
|
113
113
|
udata/core/dataset/signals.py,sha256=WN4sV-lJlNsRkhcnhoy0SYJvCoYmK_5QFYZd1u-h4gs,161
|
|
114
114
|
udata/core/dataset/tasks.py,sha256=6FzeLzJRQxzq7sBLUE8H8ZGLByix2EDOzGAsA8FteX8,10019
|
|
@@ -663,7 +663,7 @@ udata/tests/dataset/test_dataset_actions.py,sha256=bgDjVYjOvu3sX_FCTCzf2snZYSprs
|
|
|
663
663
|
udata/tests/dataset/test_dataset_commands.py,sha256=zMPJG2wYwKBee2zI65kmboxf59Zqa84DDjT8V5wj9uo,801
|
|
664
664
|
udata/tests/dataset/test_dataset_events.py,sha256=hlrpoOiBbnX_COUI9Pzdqlp45GZZDqu5piwupbnPiTI,3601
|
|
665
665
|
udata/tests/dataset/test_dataset_model.py,sha256=av4RhOnT-52qs-WL1NCn6R2SMa_fzDcoV-06vjccsdw,33891
|
|
666
|
-
udata/tests/dataset/test_dataset_rdf.py,sha256=
|
|
666
|
+
udata/tests/dataset/test_dataset_rdf.py,sha256=kFnrKzt_Gyw5zoRB2Tkhd3LN-XOpaIVzrF0oYvVS1fA,42220
|
|
667
667
|
udata/tests/dataset/test_dataset_tasks.py,sha256=n1W2Pg0ez02d66zQG3N93kh7dpR2yLMRDqUI6PnPaI0,3088
|
|
668
668
|
udata/tests/dataset/test_resource_preview.py,sha256=fp9mSL7unhyM66GR0gwhgX3OGQ4TJt7G9xU-CjsL3HI,3908
|
|
669
669
|
udata/tests/features/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -731,9 +731,9 @@ udata/translations/pt/LC_MESSAGES/udata.mo,sha256=9sCd1MUKvtVP_sOXvK-G5v4PfWkkdA
|
|
|
731
731
|
udata/translations/pt/LC_MESSAGES/udata.po,sha256=-eJptz9s63rjkdm-3HJi_2t70pyv3-8EuXBn-B2qI_4,48419
|
|
732
732
|
udata/translations/sr/LC_MESSAGES/udata.mo,sha256=qduXntHWe__KaUxJ4JwwyGG3eSgYb1auGdNax0lS49c,29169
|
|
733
733
|
udata/translations/sr/LC_MESSAGES/udata.po,sha256=6QCuLMCRjgyAvu9U7i0P19ae8fm_uStfmxHLqUO9EoY,55394
|
|
734
|
-
udata-10.4.4.
|
|
735
|
-
udata-10.4.4.
|
|
736
|
-
udata-10.4.4.
|
|
737
|
-
udata-10.4.4.
|
|
738
|
-
udata-10.4.4.
|
|
739
|
-
udata-10.4.4.
|
|
734
|
+
udata-10.4.4.dev35923.dist-info/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
|
|
735
|
+
udata-10.4.4.dev35923.dist-info/METADATA,sha256=Ln2jXmBiBf_pOsqdpwHrrRj376CTSZWVeq1rj68RJak,148828
|
|
736
|
+
udata-10.4.4.dev35923.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
|
|
737
|
+
udata-10.4.4.dev35923.dist-info/entry_points.txt,sha256=ETvkR4r6G1duBsh_V_fGWENQy17GTFuobi95MYBAl1A,498
|
|
738
|
+
udata-10.4.4.dev35923.dist-info/top_level.txt,sha256=39OCg-VWFWOq4gCKnjKNu-s3OwFlZIu_dVH8Gl6ndHw,12
|
|
739
|
+
udata-10.4.4.dev35923.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|