udata 8.0.1__py2.py3-none-any.whl → 8.0.1.dev28882__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.
- udata/__init__.py +1 -1
- udata/api/__init__.py +3 -6
- udata/api/oauth2.py +1 -2
- udata/core/badges/models.py +1 -2
- udata/core/dataset/apiv2.py +0 -2
- udata/core/dataset/models.py +0 -1
- udata/core/dataset/rdf.py +1 -21
- udata/core/metrics/models.py +3 -2
- udata/core/organization/api_fields.py +3 -28
- udata/core/organization/models.py +1 -3
- udata/core/owned.py +2 -39
- udata/core/spatial/api.py +4 -4
- udata/core/user/api.py +7 -11
- udata/core/user/models.py +2 -13
- udata/harvest/backends/dcat.py +8 -14
- udata/harvest/tests/dcat/catalog.xml +0 -1
- udata/harvest/tests/test_dcat_backend.py +0 -3
- udata/routing.py +0 -6
- udata/settings.py +1 -4
- udata/static/admin.css +2 -2
- udata/static/admin.css.map +1 -1
- udata/static/chunks/{0.93c3ae13b5b94753ee80.js → 0.6f1698738c9b0618b673.js} +3 -3
- udata/static/chunks/0.6f1698738c9b0618b673.js.map +1 -0
- udata/static/chunks/{14.e64890872b31c55fcdf7.js → 14.f4037a917d5364cb564b.js} +2 -2
- udata/static/chunks/14.f4037a917d5364cb564b.js.map +1 -0
- udata/static/chunks/{2.614b3e73b072982fd9b1.js → 2.7c89fae92899be371ed3.js} +2 -2
- udata/static/chunks/2.7c89fae92899be371ed3.js.map +1 -0
- udata/static/chunks/{5.48417db6b33328fa9d6a.js → 5.3dc97ea195d251881552.js} +2 -2
- udata/static/chunks/5.3dc97ea195d251881552.js.map +1 -0
- udata/static/common.js +1 -1
- udata/static/common.js.map +1 -1
- udata/tests/api/__init__.py +0 -3
- udata/tests/api/test_organizations_api.py +5 -78
- udata/tests/api/test_user_api.py +13 -47
- udata/tests/plugin.py +0 -5
- {udata-8.0.1.dist-info → udata-8.0.1.dev28882.dist-info}/METADATA +3 -12
- {udata-8.0.1.dist-info → udata-8.0.1.dev28882.dist-info}/RECORD +41 -46
- udata/api_fields.py +0 -254
- udata/core/dataservices/__init__.py +0 -0
- udata/core/dataservices/api.py +0 -84
- udata/core/dataservices/models.py +0 -130
- udata/static/chunks/0.93c3ae13b5b94753ee80.js.map +0 -1
- udata/static/chunks/14.e64890872b31c55fcdf7.js.map +0 -1
- udata/static/chunks/2.614b3e73b072982fd9b1.js.map +0 -1
- udata/static/chunks/5.48417db6b33328fa9d6a.js.map +0 -1
- udata/tests/api/test_dataservices_api.py +0 -236
- {udata-8.0.1.dist-info → udata-8.0.1.dev28882.dist-info}/LICENSE +0 -0
- {udata-8.0.1.dist-info → udata-8.0.1.dev28882.dist-info}/WHEEL +0 -0
- {udata-8.0.1.dist-info → udata-8.0.1.dev28882.dist-info}/entry_points.txt +0 -0
- {udata-8.0.1.dist-info → udata-8.0.1.dev28882.dist-info}/top_level.txt +0 -0
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
from datetime import datetime
|
|
2
|
-
from udata.api_fields import field, function_field, generate_fields
|
|
3
|
-
from udata.core.dataset.models import Dataset
|
|
4
|
-
from udata.core.metrics.models import WithMetrics
|
|
5
|
-
from udata.core.owned import Owned, OwnedQuerySet
|
|
6
|
-
from udata.i18n import lazy_gettext as _
|
|
7
|
-
import udata.core.contact_point.api_fields as contact_api_fields
|
|
8
|
-
import udata.core.dataset.api_fields as datasets_api_fields
|
|
9
|
-
|
|
10
|
-
from udata.models import db
|
|
11
|
-
from udata.uris import endpoint_for
|
|
12
|
-
|
|
13
|
-
# "frequency"
|
|
14
|
-
# "harvest"
|
|
15
|
-
# "internal"
|
|
16
|
-
# "page"
|
|
17
|
-
# "quality" # Peut-être pas dans une v1 car la qualité sera probablement calculé différemment
|
|
18
|
-
# "datasets" # objet : liste de datasets liés à une API
|
|
19
|
-
# "spatial"
|
|
20
|
-
# "temporal_coverage"
|
|
21
|
-
|
|
22
|
-
DATASERVICE_FORMATS = ['REST', 'WMS', 'WSL']
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
class DataserviceQuerySet(OwnedQuerySet):
|
|
26
|
-
def visible(self):
|
|
27
|
-
return self(archived_at=None, deleted_at=None, private=False)
|
|
28
|
-
|
|
29
|
-
def hidden(self):
|
|
30
|
-
return self(db.Q(private=True) |
|
|
31
|
-
db.Q(deleted_at__ne=None) |
|
|
32
|
-
db.Q(archived_at__ne=None))
|
|
33
|
-
|
|
34
|
-
@generate_fields()
|
|
35
|
-
class Dataservice(WithMetrics, Owned, db.Document):
|
|
36
|
-
meta = {
|
|
37
|
-
'indexes': [
|
|
38
|
-
'$title',
|
|
39
|
-
] + Owned.meta['indexes'],
|
|
40
|
-
'queryset_class': DataserviceQuerySet,
|
|
41
|
-
'auto_create_index_on_save': True
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
title = field(
|
|
45
|
-
db.StringField(required=True),
|
|
46
|
-
example="My awesome API",
|
|
47
|
-
sortable=True,
|
|
48
|
-
)
|
|
49
|
-
acronym = field(
|
|
50
|
-
db.StringField(max_length=128),
|
|
51
|
-
)
|
|
52
|
-
# /!\ do not set directly the slug when creating or updating a dataset
|
|
53
|
-
# this will break the search indexation
|
|
54
|
-
slug = field(
|
|
55
|
-
db.SlugField(max_length=255, required=True, populate_from='title', update=True, follow=True),
|
|
56
|
-
readonly=True,
|
|
57
|
-
)
|
|
58
|
-
description = field(
|
|
59
|
-
db.StringField(default=''),
|
|
60
|
-
description="In markdown"
|
|
61
|
-
)
|
|
62
|
-
base_api_url = field(
|
|
63
|
-
db.URLField(required=True),
|
|
64
|
-
sortable=True,
|
|
65
|
-
)
|
|
66
|
-
endpoint_description_url = field(db.URLField())
|
|
67
|
-
authorization_request_url = field(db.URLField())
|
|
68
|
-
availability= field(
|
|
69
|
-
db.FloatField(min=0, max=100),
|
|
70
|
-
example='99.99'
|
|
71
|
-
)
|
|
72
|
-
rate_limiting = field(db.StringField())
|
|
73
|
-
is_restricted = field(db.BooleanField())
|
|
74
|
-
has_token = field(db.BooleanField())
|
|
75
|
-
format = field(db.StringField(choices=DATASERVICE_FORMATS))
|
|
76
|
-
|
|
77
|
-
license = field(
|
|
78
|
-
db.ReferenceField('License'),
|
|
79
|
-
allow_null=True,
|
|
80
|
-
)
|
|
81
|
-
|
|
82
|
-
tags = field(
|
|
83
|
-
db.TagListField(),
|
|
84
|
-
)
|
|
85
|
-
|
|
86
|
-
private = field(
|
|
87
|
-
db.BooleanField(default=False),
|
|
88
|
-
description='Is the dataservice private to the owner or the organization'
|
|
89
|
-
)
|
|
90
|
-
|
|
91
|
-
extras = field(db.ExtrasField())
|
|
92
|
-
|
|
93
|
-
contact_point = field(
|
|
94
|
-
db.ReferenceField('ContactPoint', reverse_delete_rule=db.NULLIFY),
|
|
95
|
-
nested_fields=contact_api_fields.contact_point_fields,
|
|
96
|
-
allow_null=True,
|
|
97
|
-
)
|
|
98
|
-
|
|
99
|
-
created_at = field(
|
|
100
|
-
db.DateTimeField(verbose_name=_('Creation date'), default=datetime.utcnow, required=True),
|
|
101
|
-
readonly=True,
|
|
102
|
-
)
|
|
103
|
-
metadata_modified_at = field(
|
|
104
|
-
db.DateTimeField(verbose_name=_('Last modification date'), default=datetime.utcnow, required=True),
|
|
105
|
-
readonly=True,
|
|
106
|
-
)
|
|
107
|
-
deleted_at = field(db.DateTimeField(), readonly=True)
|
|
108
|
-
archived_at = field(db.DateTimeField(), readonly=True)
|
|
109
|
-
|
|
110
|
-
datasets = field(
|
|
111
|
-
db.ListField(
|
|
112
|
-
field(
|
|
113
|
-
db.ReferenceField(Dataset),
|
|
114
|
-
nested_fields=datasets_api_fields.dataset_fields,
|
|
115
|
-
)
|
|
116
|
-
)
|
|
117
|
-
)
|
|
118
|
-
|
|
119
|
-
@function_field(description="Link to the API endpoint for this dataservice")
|
|
120
|
-
def self_api_url(self):
|
|
121
|
-
return endpoint_for('api.dataservice', dataservice=self, _external=True)
|
|
122
|
-
|
|
123
|
-
def self_web_url():
|
|
124
|
-
pass
|
|
125
|
-
|
|
126
|
-
# TODO
|
|
127
|
-
# frequency = db.StringField(choices=list(UPDATE_FREQUENCIES.keys()))
|
|
128
|
-
# temporal_coverage = db.EmbeddedDocumentField(db.DateRange)
|
|
129
|
-
# spatial = db.EmbeddedDocumentField(SpatialCoverage)
|
|
130
|
-
# harvest = db.EmbeddedDocumentField(HarvestDatasetMetadata)
|