udata 9.0.1.dev29828__py2.py3-none-any.whl → 9.0.1.dev29871__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/api/commands.py CHANGED
@@ -1,6 +1,5 @@
1
1
  import logging
2
2
  import os
3
- import time
4
3
 
5
4
  import click
6
5
 
@@ -19,7 +18,6 @@ log = logging.getLogger(__name__)
19
18
  @cli.group('api')
20
19
  def grp():
21
20
  '''API related operations'''
22
- pass
23
21
 
24
22
 
25
23
  def json_to_file(data, filename, pretty=False):
@@ -1,16 +1,13 @@
1
1
 
2
- from datetime import datetime
3
- from typing import List, Optional
4
2
  from rdflib import RDF, BNode, Graph, Literal, URIRef
5
3
 
6
4
  from udata.core.dataservices.models import Dataservice, HarvestMetadata as HarvestDataserviceMetadata
7
5
  from udata.core.dataset.models import Dataset, License
8
6
  from udata.core.dataset.rdf import dataset_to_graph_id, sanitize_html
9
- from udata.harvest.models import HarvestSource
10
- from udata.rdf import DCATAP, TAG_TO_EU_HVD_CATEGORIES, namespace_manager, DCAT, DCT, contact_point_from_rdf, rdf_value, remote_url_from_rdf, themes_from_rdf, url_from_rdf
7
+ from udata.rdf import namespace_manager, DCAT, DCT, contact_point_from_rdf, rdf_value, remote_url_from_rdf, themes_from_rdf, url_from_rdf
11
8
  from udata.uris import endpoint_for
12
9
 
13
- def dataservice_from_rdf(graph: Graph, dataservice: Dataservice, node, all_datasets: List[Dataset]) -> Dataservice :
10
+ def dataservice_from_rdf(graph: Graph, dataservice: Dataservice, node, all_datasets: list[Dataset]) -> Dataservice :
14
11
  '''
15
12
  Create or update a dataset from a RDF/DCAT graph
16
13
  '''
@@ -13,7 +13,6 @@ from pydoc import locate
13
13
  from stringdist import rdlevenshtein
14
14
  from werkzeug.utils import cached_property
15
15
  import requests
16
- from typing import Optional, Tuple
17
16
 
18
17
  from udata.app import cache
19
18
  from udata.core import storages
@@ -964,7 +963,7 @@ class ResourceSchema(object):
964
963
  def assignable_schemas():
965
964
  return [s for s in ResourceSchema.all() if s.get('schema_type') not in NON_ASSIGNABLE_SCHEMA_TYPES]
966
965
 
967
- def get_existing_schema_info_by_url(url: str) -> Optional[Tuple[str, Optional[str]]]:
966
+ def get_existing_schema_info_by_url(url: str) -> tuple[str, str | None] | None:
968
967
  '''
969
968
  Returns the name and the version if exists
970
969
  '''
udata/core/dataset/rdf.py CHANGED
@@ -6,7 +6,6 @@ import json
6
6
  import logging
7
7
 
8
8
  from datetime import date
9
- from typing import Optional, Union
10
9
  from dateutil.parser import parse as parse_dt
11
10
  from flask import current_app
12
11
  from geomet import wkt
@@ -149,7 +148,7 @@ def resource_to_rdf(resource, dataset=None, graph=None, is_hvd=False):
149
148
  return r
150
149
 
151
150
 
152
- def dataset_to_graph_id(dataset: Dataset) -> Union[URIRef, BNode]:
151
+ def dataset_to_graph_id(dataset: Dataset) -> URIRef | BNode:
153
152
  if dataset.harvest and dataset.harvest.uri:
154
153
  return URIRef(dataset.harvest.uri)
155
154
  elif dataset.id:
@@ -585,7 +584,7 @@ def dataset_from_rdf(graph: Graph, dataset=None, node=None):
585
584
 
586
585
  return dataset
587
586
 
588
- def bbox_to_geojson_multipolygon(bbox_as_str: str) -> Optional[dict] :
587
+ def bbox_to_geojson_multipolygon(bbox_as_str: str) -> dict | None:
589
588
  bbox = bbox_as_str.strip().split(',')
590
589
  if len(bbox) != 4:
591
590
  return None
udata/core/reports/api.py CHANGED
@@ -1,11 +1,12 @@
1
+ import mongoengine
1
2
  from flask import request
2
3
  from flask_login import current_user
3
- import mongoengine
4
4
 
5
- from udata.api import api, API, fields
5
+ from udata.api import API, api, fields
6
6
  from udata.api_fields import patch
7
- from .models import Report
7
+
8
8
  from .constants import reports_reasons_translations
9
+ from .models import Report
9
10
 
10
11
  ns = api.namespace('reports', 'User reported objects related operations (beta)')
11
12
 
@@ -38,6 +39,6 @@ class ReportsAPI(API):
38
39
  @ns.route('/reasons/', endpoint='reports_reasons')
39
40
  class ReportsReasonsAPI(API):
40
41
  @api.doc('list_reports_reasons')
41
- @ns.response(200, "dictionnary of available reasons associated with their labels", fields.Raw)
42
+ @ns.response(200, "list of available reasons associated with their labels", fields.Raw)
42
43
  def get(self):
43
44
  return reports_reasons_translations()
@@ -1,28 +1,30 @@
1
-
2
1
  from udata.core.dataset.models import Dataset
3
2
  from udata.i18n import lazy_gettext as _
4
3
 
4
+ REASON_PERSONAL_DATA = "personal_data"
5
+ REASON_EXPLICIT_CONTENT = "explicit_content"
6
+ REASON_ILLEGAL_CONTENT = "illegal_content"
7
+ REASON_OTHERS = "others"
8
+ REASON_SECURITY = "security"
9
+ REASON_SPAM = "spam"
5
10
 
6
- REASON_SPAM = 'spam'
7
- REASON_PERSONAL_DATA = 'personal_data'
8
- REASON_EXPLICIT_CONTENT = 'explicit_content'
9
- REASON_ILLEGAL_CONTENT = 'illegal_content'
10
- REASON_SECURITY = 'security'
11
- REASON_OTHERS = 'others'
12
11
 
13
- def reports_reasons_translations():
14
- '''
15
- This is a function to avoid creating the dict with a wrong lang
12
+ def reports_reasons_translations() -> list:
13
+ """
14
+ This is a function to avoid creating the list with a wrong lang
16
15
  at the start of the app.
17
- '''
18
- return {
19
- REASON_SPAM: _('Spam'),
20
- REASON_PERSONAL_DATA: _('Personal data'),
21
- REASON_EXPLICIT_CONTENT: _('Explicit content'),
22
- REASON_ILLEGAL_CONTENT: _('Illegal content'),
23
- REASON_SECURITY: _('Security'),
24
- REASON_OTHERS: _('Others'),
25
- }
16
+ """
17
+ return [
18
+ {"value": REASON_EXPLICIT_CONTENT, "label": _("Explicit content")},
19
+ {"value": REASON_ILLEGAL_CONTENT, "label": _("Illegal content")},
20
+ {"value": REASON_OTHERS, "label": _("Others")},
21
+ {"value": REASON_PERSONAL_DATA, "label": _("Personal data")},
22
+ {"value": REASON_SECURITY, "label": _("Security")},
23
+ {"value": REASON_SPAM, "label": _("Spam")},
24
+ ]
25
+
26
26
 
27
- REPORT_REASONS_CHOICES = [key for key, _ in reports_reasons_translations().items()]
28
- REPORTABLE_MODELS = [Dataset]
27
+ REPORT_REASONS_CHOICES: list[str] = [
28
+ item["value"] for item in reports_reasons_translations()
29
+ ]
30
+ REPORTABLE_MODELS = [Dataset]
@@ -1,14 +1,15 @@
1
1
  from datetime import datetime
2
- from mongoengine import signals, NULLIFY
2
+
3
+ from mongoengine import NULLIFY, signals
3
4
 
4
5
  from udata.api_fields import field, generate_fields
5
- from udata.core.dataset.models import Dataset
6
+ from udata.core.user.api_fields import user_ref_fields
6
7
  from udata.core.user.models import User
7
8
  from udata.mongo import db
8
- from udata.core.user.api_fields import user_ref_fields
9
9
 
10
10
  from .constants import REPORT_REASONS_CHOICES, REPORTABLE_MODELS
11
11
 
12
+
12
13
  @generate_fields()
13
14
  class Report(db.Document):
14
15
  by = field(
@@ -1,4 +1,3 @@
1
- from importlib import import_module
2
1
 
3
2
  import logging
4
3
 
udata/harvest/api.py CHANGED
@@ -274,7 +274,7 @@ class ScheduleSourceAPI(API):
274
274
  # Handle both syntax: quoted and unquoted
275
275
  try:
276
276
  data = request.json
277
- except BadRequest as e:
277
+ except BadRequest:
278
278
  data = request.data.decode('utf-8')
279
279
  return actions.schedule(ident, data)
280
280
 
@@ -2,7 +2,6 @@ import logging
2
2
  import traceback
3
3
 
4
4
  from datetime import datetime, date, timedelta
5
- from typing import List, Optional
6
5
  from uuid import UUID
7
6
 
8
7
  import requests
@@ -284,7 +283,7 @@ class BaseBackend(object):
284
283
  item.ended = datetime.utcnow()
285
284
  self.save_job()
286
285
 
287
- def update_dataset_harvest_info(self, harvest: Optional[HarvestDatasetMetadata], remote_id: int):
286
+ def update_dataset_harvest_info(self, harvest: HarvestDatasetMetadata | None, remote_id: int):
288
287
  if not harvest:
289
288
  harvest = HarvestDatasetMetadata()
290
289
 
@@ -300,7 +299,7 @@ class BaseBackend(object):
300
299
 
301
300
  return harvest
302
301
 
303
- def update_dataservice_harvest_info(self, harvest: Optional[HarvestDataserviceMetadata], remote_id: int):
302
+ def update_dataservice_harvest_info(self, harvest: HarvestDataserviceMetadata | None, remote_id: int):
304
303
  if not harvest:
305
304
  harvest = HarvestDataserviceMetadata()
306
305
 
@@ -444,7 +443,7 @@ class BaseBackend(object):
444
443
 
445
444
 
446
445
  class LogCatcher(logging.Handler):
447
- records: List[logging.LogRecord]
446
+ records: list[logging.LogRecord]
448
447
 
449
448
  def __init__(self):
450
449
  self.records = []
@@ -6,7 +6,6 @@ import lxml.etree as ET
6
6
  from flask import current_app
7
7
  from datetime import date
8
8
  from typing import Generator
9
- from typing import Generator
10
9
 
11
10
  from udata.rdf import (
12
11
  DCAT, DCT, HYDRA, SPDX, namespace_manager, guess_format, url_from_rdf
udata/rdf.py CHANGED
@@ -364,7 +364,6 @@ def schema_from_rdf(rdf):
364
364
  url = uris.validate(type.identifier.toPython())
365
365
  except uris.ValidationError:
366
366
  pass
367
- pass
368
367
 
369
368
  if url is None:
370
369
  return None
udata/storage/s3.py CHANGED
@@ -1,4 +1,4 @@
1
- from typing import Any, Optional
1
+ from typing import Any
2
2
  import boto3
3
3
  from flask import current_app
4
4
  import json
@@ -33,14 +33,14 @@ def store_bytes(bucket: str, filename: str, bytes: bytes):
33
33
  def store_as_json(bucket: str, filename: str, value):
34
34
  return store_bytes(bucket, filename, bytes(json.dumps(value).encode('UTF-8')))
35
35
 
36
- def get_bytes(bucket: str, filename: str) -> Optional[bytes]:
36
+ def get_bytes(bucket: str, filename: str) -> bytes | None:
37
37
  client = get_client()
38
38
  try:
39
39
  return client.get_object(Bucket=bucket, Key=filename)['Body'].read()
40
40
  except client.exceptions.NoSuchKey:
41
41
  return None
42
42
 
43
- def get_from_json(bucket: str, filename: str) -> Optional[Any]:
43
+ def get_from_json(bucket: str, filename: str) -> Any | None:
44
44
  bytes = get_bytes(bucket, filename)
45
45
  if bytes is None:
46
46
  return None
@@ -1,4 +1,3 @@
1
- from pprint import pprint
2
1
  from flask import url_for
3
2
 
4
3
  from udata.core.dataservices.models import Dataservice
@@ -1,4 +1,3 @@
1
- from typing import List
2
1
  from flask import url_for
3
2
 
4
3
  from udata.core.dataset.factories import (DatasetFactory)
@@ -44,7 +43,7 @@ class ReportsAPITest(APITestCase):
44
43
  self.assert201(response)
45
44
  self.assertEqual(Report.objects.count(), 2)
46
45
 
47
- reports: List[Report] = list(Report.objects())
46
+ reports: list[Report] = list(Report.objects())
48
47
  self.assertEqual(Dataset.__name__, reports[0].object_type)
49
48
  self.assertEqual(illegal_dataset.id, reports[0].object_id)
50
49
  self.assertEqual('This is not appropriate', reports[0].message)
@@ -1,8 +1,5 @@
1
- from unittest.mock import patch
2
- from flask import url_for, current_app, get_flashed_messages
3
- from flask_login import current_user
1
+ from flask import url_for, current_app
4
2
  from flask_security.utils import hash_data
5
- from udata.auth.views import send_change_email_confirmation_instructions
6
3
  from udata.core.user.factories import AdminFactory
7
4
 
8
5
  from . import FrontTestCase
@@ -1,4 +1,3 @@
1
- from datetime import datetime, timedelta
2
1
 
3
2
  import pytest
4
3
 
@@ -1,4 +1,3 @@
1
- from datetime import date
2
1
 
3
2
  from flask import url_for
4
3
 
udata/tests/test_utils.py CHANGED
@@ -1,4 +1,4 @@
1
- from datetime import date, datetime, timezone
1
+ from datetime import date, datetime
2
2
 
3
3
  from udata.utils import (
4
4
  get_by, daterange_start, daterange_end, to_bool, to_iso, to_iso_date,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: udata
3
- Version: 9.0.1.dev29828
3
+ Version: 9.0.1.dev29871
4
4
  Summary: Open data portal
5
5
  Home-page: https://github.com/opendatateam/udata
6
6
  Author: Opendata Team
@@ -137,7 +137,7 @@ It is collectively taken care of by members of the
137
137
 
138
138
  ## Current (in progress)
139
139
 
140
- - Add reports backend [#3069](https://github.com/opendatateam/udata/pull/3069)
140
+ - Add reports backend [#3069](https://github.com/opendatateam/udata/pull/3069) and [#3078](https://github.com/opendatateam/udata/pull/3078)
141
141
  - Improve `udata db check-integrity` (perfs, Sentry notifications…) [#3026](https://github.com/opendatateam/udata/pull/3026)
142
142
  - Harvest dataservices [#3029](https://github.com/opendatateam/udata/pull/3029)
143
143
  - Refactor catalog exports [#3052](https://github.com/opendatateam/udata/pull/3052)
@@ -9,7 +9,7 @@ udata/errors.py,sha256=chc1880TPGteIL-Rfb9hdeAyZI4vdWZQU3JQ_5VF5t0,116
9
9
  udata/factories.py,sha256=6en2qdHHoR6rEvNEUeH_0-T-vR7x7GUBGgNEm9vuylE,492
10
10
  udata/i18n.py,sha256=E-JoY57Cv4vgPvChkWjpwZAbuYVI8e6BO6raeu_3_Pw,8352
11
11
  udata/mail.py,sha256=dAMcbEtk5e54alpQezvF5adDrRPgdaT36QEdHD_5v50,2145
12
- udata/rdf.py,sha256=oIn-7r38o-HHHvDAVuNHBpOp5fVelXZiEj4cwiEOCqY,14069
12
+ udata/rdf.py,sha256=JAyT3Iah_TQyUXh9k0sRiFj-zn8J3v09vV1tuGbXnV4,14052
13
13
  udata/routing.py,sha256=Z4LFi78Rt-22MKEeqcvauA4_a0uBbnhKgCjn1V7TNYs,7274
14
14
  udata/sentry.py,sha256=KiZz0PpmYpZMvykH9UAbHpF4xBY0Q-8DeiEbXEHDUdw,2683
15
15
  udata/settings.py,sha256=0D3dmI3bIoGkheggfuOy8PPLbpgw5voWrcTMHyKl14U,17431
@@ -25,7 +25,7 @@ udata/wsgi.py,sha256=P7AJvZ5JqY4uRSBOzaFiBniChWIU9RVQ-Y0PN4vCCMY,77
25
25
  udata/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
26
  udata/admin/views.py,sha256=wMlpnC1aINW-6JDk6-kQXhcTYBZH-5wajEuWzVDcIKA,331
27
27
  udata/api/__init__.py,sha256=L-A5OsJbsfxyM67NnekSPHvsHHTuPaAXqtzHJrD3W2s,11471
28
- udata/api/commands.py,sha256=oK2p1VdUvULDdYuvYYpYvY_bdkPJy-KfROfoX71oOuA,3277
28
+ udata/api/commands.py,sha256=vQkTV5esbT5tTOvAZsrGkY-K8TmM-xeHWzEuaoSzRAM,3256
29
29
  udata/api/errors.py,sha256=Sy_f3WVrNTUPZjCOogIVgocDdUjnKz149KDi4mMA_Lg,240
30
30
  udata/api/fields.py,sha256=l-Fa27-easR86qgof2bk130jq1N1pNUgGmQzok1UI3Q,3094
31
31
  udata/api/oauth2.py,sha256=LTtkpkNYrPl_7xf-JmP-TLwrk_RHajnHDFKo-3NPEd8,11780
@@ -83,7 +83,7 @@ udata/core/dataservices/api.py,sha256=rjCU55NNGgCDRlurfhJUT2byBGJWN5coM8b7AApzEe
83
83
  udata/core/dataservices/factories.py,sha256=KVh7YxDpIfTcve3OgkAwJib0z4tyKFlTImOVnv9SzBk,873
84
84
  udata/core/dataservices/models.py,sha256=zMhzjnXm1p5GHZU1lYgMqft5u7iFyX0BIvNB1hM4D6Q,5868
85
85
  udata/core/dataservices/permissions.py,sha256=X9Bh8e0pnx6OgeEf6NowXZUiwyreUa6UY479B16cCqs,175
86
- udata/core/dataservices/rdf.py,sha256=M0mhwJ1WO_0iHP_F_fhA3GMPTUlYI4aZRQcvreNw7vM,4593
86
+ udata/core/dataservices/rdf.py,sha256=Rou7JGxGpTJjbkNVbFtWLQxVRFbnLTCIcnR_6eu_CN8,4448
87
87
  udata/core/dataservices/tasks.py,sha256=NOWcTPoLasMrrvq9EkwQMGlUbQQmi_l3s815K-mtZTM,971
88
88
  udata/core/dataset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
89
  udata/core/dataset/actions.py,sha256=3pzBg_qOR-w7fwPpTOKUHXWC9lkjALbOn1UQFmmT-s0,1199
@@ -98,10 +98,10 @@ udata/core/dataset/events.py,sha256=DI71VfRc1eDTtgWQ3TJx5gtUw2MO0O_CVLCKLq0OIF0,
98
98
  udata/core/dataset/exceptions.py,sha256=uI_NvZRZMr_MtYQBYdLD8tk-BIUeDDfMMcrWwqV7mi8,494
99
99
  udata/core/dataset/factories.py,sha256=fHPgEUUpqGw7p7K5wGg-wA6Q0-Pc9eNbzAQK-va8zMM,9120
100
100
  udata/core/dataset/forms.py,sha256=VJCsGtgzhQgLW-M-J4ObpQ8o6c_saC3TTc1Js33m3sQ,6188
101
- udata/core/dataset/models.py,sha256=q6AknSHYNjeUyVKoFgxEA0r9lSvMa_a4tJ3fLOzL03M,36053
101
+ udata/core/dataset/models.py,sha256=i2PbzLjKieEOpuTKeNx-eIfhE-xMANuTK-mgpZF8yOY,36012
102
102
  udata/core/dataset/permissions.py,sha256=3F2J7le3_rEYNhh88o3hSRWHAAt01_yHJM6RPmvCrRo,1090
103
103
  udata/core/dataset/preview.py,sha256=puPKT3fBD7ezAcT6owh0JK1_rGNDFZOqgT223qGn3LY,2597
104
- udata/core/dataset/rdf.py,sha256=BujVPk510wLQzWPKZhZ1rGruQZSCr0hTDz9b1pmupxI,22695
104
+ udata/core/dataset/rdf.py,sha256=m5qqZp3AIYl39xTIOxEDmh8XqwhCojBNdh0fY2plpjc,22650
105
105
  udata/core/dataset/search.py,sha256=Ca23ljX7TZiKZKiAZQIH5xwS2tjXQcTDzieAJd-E22c,5314
106
106
  udata/core/dataset/signals.py,sha256=TK6dfrOUitZZkGGOh6XmhYqYvIjzZpI70JTLV4k-JRM,161
107
107
  udata/core/dataset/tasks.py,sha256=UYdm_O9hA0yo7cCNQFvZE9pGzUshkc3Wr4Gpel2aupU,8434
@@ -162,9 +162,9 @@ udata/core/post/permissions.py,sha256=uofU0TehhOGYyUoRXf3wuy816_D3xwMmaJbDvV336s
162
162
  udata/core/post/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
163
163
  udata/core/post/tests/test_api.py,sha256=LSJQQDUtUVdpwZNpnJaX3yNQYyjkjTTyO7mHnR5DR_I,3948
164
164
  udata/core/reports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
- udata/core/reports/api.py,sha256=36ec56wkoGRk-3tWBNQl1OcyZF5yaIU5HfgUAz0cyAk,1355
166
- udata/core/reports/constants.py,sha256=9cuwHv2dS_OONRB6MTO3y8lCwJmg1fELAqWJheBdqb8,843
167
- udata/core/reports/models.py,sha256=itVsmi90wcVWgSJm-U96QfMiju2ZDoMkDtNxKQqw3r0,1881
165
+ udata/core/reports/api.py,sha256=2TMyOINU9h0OAsViqpfHz6Sj0dtn1dO0pNzOWED69FM,1349
166
+ udata/core/reports/constants.py,sha256=efuKjDtgb1jGWnLZvaloNscpH5u1gT1TSQbjKwLGuZA,989
167
+ udata/core/reports/models.py,sha256=eIQOKHJHaE5GeFguLsRJMUbHzdK77FXPpcsEBFcBYNg,1837
168
168
  udata/core/reuse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
169
169
  udata/core/reuse/activities.py,sha256=rdl_CR3RJPBMonsHYmPnPVDvCYozNdXN2H1ILrTItNQ,1417
170
170
  udata/core/reuse/api.py,sha256=72oJxmwziqvuFhxcuXy-5ckhQo39t65hp4eqvSqbQ6o,10237
@@ -254,7 +254,7 @@ udata/features/identicon/api.py,sha256=tCdHeZhpnwMDsTDSyzhCMW06S_9kLEYkvAXFsWdgW
254
254
  udata/features/identicon/backends.py,sha256=LiWwhvJWwAROeOPNx3gTYzbi2vZT12A-X0Jc9zvaAyY,3863
255
255
  udata/features/identicon/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
256
256
  udata/features/identicon/tests/test_backends.py,sha256=CoJIkXVLh1yPpXBOHf8UCX0NhrL7gUdFZYZhXYvL8LM,865
257
- udata/features/notifications/__init__.py,sha256=0Ka7aYkaQA05OyuK5aBP82JsLsSD3ajOyVQUCI_Qqyk,389
257
+ udata/features/notifications/__init__.py,sha256=r7OZ4HDqbcVGKzwSJ8rKsinDczYeQ6SVUlTQ-I_WQbM,353
258
258
  udata/features/notifications/actions.py,sha256=icO3h-D1tkjCeI16Z4y6StPJCKzU0Nn5rk7IoWnz834,781
259
259
  udata/features/notifications/api.py,sha256=KUgwUzSNL_wfaHrU2kb27MBz70fBsztasSo9AA740lk,886
260
260
  udata/features/territories/__init__.py,sha256=wcUbJ4cJE45ihx2CyTny-fym7CVGF0OfD-LcYG5E4H8,1625
@@ -276,7 +276,7 @@ udata/frontend/csv.py,sha256=SDV8GMhNpHyE9NYy9cfHulsFUzwclfc7roWAAm-PZ9M,8257
276
276
  udata/frontend/markdown.py,sha256=41bOiU6AKng4U-5v3otBed3dyCu63NI9fnznUQThbIk,4377
277
277
  udata/harvest/__init__.py,sha256=C4y5w4vGb_F9Opy62lzV3eHo4DkNyRgPCq-wsarPXiQ,28
278
278
  udata/harvest/actions.py,sha256=6f9bkIITLHes0vGU-yioRGfFOghAS3nXThXEVKaHFpA,10082
279
- udata/harvest/api.py,sha256=_FQg5eqUMvtfBxuHvTWBKnYamMT1JJ5mnDMQqiH_7oQ,14779
279
+ udata/harvest/api.py,sha256=sG84NsGURzXP108lCI0Bq876Gf0qbXPsrDUf2eLGnUE,14774
280
280
  udata/harvest/commands.py,sha256=Vo1KxO7GAOgQ87khqlGIyjZIlwAOlQ8ztadqmWdMvwk,4922
281
281
  udata/harvest/csv.py,sha256=c2fPnMB6q99wRxLncl8L0ILcdF4SI8Lsl8tViNrcW6A,396
282
282
  udata/harvest/exceptions.py,sha256=YaXw0ESmSCcibfUmP5uc1uRedKD2mvUBXUOnbaSXtNw,299
@@ -287,8 +287,8 @@ udata/harvest/notifications.py,sha256=aNKUtUl73Caj_kl-ENOEbTX_cgtySqLjHhtH9FEDR9
287
287
  udata/harvest/signals.py,sha256=wlXTi1E7rIVyNvxw0yUqyN5gF3thg276LAOmAF9vDJY,1338
288
288
  udata/harvest/tasks.py,sha256=XbJPoposzkxitecDaK5WYnPqzCatAU-eHX5MUDu9nJo,1644
289
289
  udata/harvest/backends/__init__.py,sha256=qcLhHKWO97TeWd93ZwymG_Cc9FO7sMM7h4fs6XYdtS8,447
290
- udata/harvest/backends/base.py,sha256=ekvgG9bl4qcfB11KM0T9IXQy84oooMzmDERU47Md0bY,15822
291
- udata/harvest/backends/dcat.py,sha256=kAEHUlGgmFaW6c8OnnXYXZCnEMq39gpz-jtNuw1nAjg,15152
290
+ udata/harvest/backends/base.py,sha256=lZ614-1qwLuB4dxjNH5u7W-OujuQCkrm3xOBbLMu1nQ,15782
291
+ udata/harvest/backends/dcat.py,sha256=-VvV3eHuiEMUbms15VdKO4ONQiqtoLLFR0425km9C_w,15123
292
292
  udata/harvest/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
293
293
  udata/harvest/tests/factories.py,sha256=vUFON9GzI5CbD3bP8_ayOs3S9pHbhhHiI7B4GhoQtVE,2218
294
294
  udata/harvest/tests/test_actions.py,sha256=TPHb8n8tlQ0l2lu8GzbymKPOpzTeN_VCtFmszZoCAQI,27583
@@ -501,7 +501,7 @@ udata/static/chunks/8.17d1afb591ad1495bd03.js.map,sha256=oW0NCN77hHRjGt7zPbIGVG1
501
501
  udata/static/chunks/9.d5b992e9ef51921aeb57.js,sha256=9SbFIVW1IhyIBm_qxIBuuCNi0cv64sNuLddQheglN5I,222853
502
502
  udata/static/chunks/9.d5b992e9ef51921aeb57.js.map,sha256=CKUAb5SYfBEMnHtnlcAMO1xnVx8opHQWdbKCzv5GgEE,1205437
503
503
  udata/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
504
- udata/storage/s3.py,sha256=Lki8iL9lkZz1fnHuQLpkrvjL2SWkvamKL6aortiEkj4,1573
504
+ udata/storage/s3.py,sha256=mS30p_3Lcr9zgu8WS72-lWerAy2B6VuiXid438Ju2oU,1557
505
505
  udata/templates/admin.html,sha256=RfX03rUOW7NIlgMYNhFfx0pL-p2j8BtAKvEFUadaIIs,787
506
506
  udata/templates/base.html,sha256=koUdFLRXLhjBZEfjkotrgmoz_L5tJm1KXBwPPaYlmMs,570
507
507
  udata/templates/raw.html,sha256=DJZUq9CP_8ky20fialo5w_-zjfEwczLbkcrfQdlqb9E,560
@@ -594,18 +594,18 @@ udata/tests/test_tags.py,sha256=zd-w9rZ_Iaj6Z2S1diCWzNrEtOSuBGakTHhD_pIUE1o,3754
594
594
  udata/tests/test_topics.py,sha256=r7Y0BW0Z5obld9ASs2Ck9AhykgBtmMedZmL2Bfz_rDw,1323
595
595
  udata/tests/test_transfer.py,sha256=Y0adyR3CswK2Vvao7DgpP_19b8K6XwNO2dvbKlmnlD0,8036
596
596
  udata/tests/test_uris.py,sha256=FQJvz7RXkr21tZ7rZp2uwgZUHk88PxhYId-jXSAl9GM,8519
597
- udata/tests/test_utils.py,sha256=5awzhJlbnLga0mRXNR2mBGW_kGuAIoQLEZEMQRKuaIM,7944
597
+ udata/tests/test_utils.py,sha256=IB1U3-NnhRqtrL5qJ8rcTxHYCQGSYUjORbfCj3f4Bvc,7934
598
598
  udata/tests/api/__init__.py,sha256=gIIB9OPiSs1A-u1bEIHlOesaCQzJ08SOLPuJd34LesE,1097
599
599
  udata/tests/api/test_auth_api.py,sha256=3Zhn2A29poZIcCJ_R9_-LkR3xOFUTw1aTquiZVXQ2F0,20306
600
600
  udata/tests/api/test_base_api.py,sha256=DRX5nuFIj51GFmMIAxUzoW1yiq1apNgr1vS4U4agzeg,2319
601
601
  udata/tests/api/test_contact_points.py,sha256=MJm8B06iaUqIZCqxll3NViFwUCxwqZZ4u9e9s1h8MgU,1056
602
- udata/tests/api/test_dataservices_api.py,sha256=51NU5d4iqfJT8iiyi0aLdWXDqZLvmyD-qh-Sflk9Lsg,11122
602
+ udata/tests/api/test_dataservices_api.py,sha256=JIGgg426eUS6eptjFPZsAnTFMl7Voz_CdZCFjACI40I,11096
603
603
  udata/tests/api/test_datasets_api.py,sha256=aC5bFhaoILoFEZFc8JXESdoOz-mf0e797zPmwzJ9FP0,81711
604
604
  udata/tests/api/test_fields.py,sha256=OW85Z5MES5HeWOpapeem8OvR1cIcrqW-xMWpdZO4LZ8,1033
605
605
  udata/tests/api/test_follow_api.py,sha256=0h54P_Dfbo07u6tg0Rbai1WWgWb19ZLN2HGv4oLCWfg,3383
606
606
  udata/tests/api/test_me_api.py,sha256=8OthqVYQKZrFoGuJ7zAvoLJx1IclPNzPdD5Tnzmh3rM,14163
607
607
  udata/tests/api/test_organizations_api.py,sha256=buE1KdGIoJxfsj-ofz5CkMtgnARi38bXWR1jgPRkMzo,35732
608
- udata/tests/api/test_reports_api.py,sha256=rqwgbOn8hpQEo-KFdSDxxjmLjtFFkleyvmLjBVTYsDc,3463
608
+ udata/tests/api/test_reports_api.py,sha256=HOuEcKPd4pwH-h2nUITI_MzCLCcP2Hii5uiVYx23KxA,3439
609
609
  udata/tests/api/test_reuses_api.py,sha256=GSoZ6SBRdMg6o0xKSQWtCSfvzqz_vZxERU567Rq1_GY,17009
610
610
  udata/tests/api/test_swagger.py,sha256=tLg452rCD5Q0AgFXOVZKMM6jGiWwC5diX5PxbdYni0o,760
611
611
  udata/tests/api/test_tags_api.py,sha256=xSIx_x5gqKz6BJCXKEsTqA_CR4BF1nG5NxEyfp9dy0o,2579
@@ -652,12 +652,12 @@ udata/tests/forms/test_reference_field.py,sha256=CHRxrgf1se286YZIxPP7QqO-29802Rk
652
652
  udata/tests/forms/test_user_forms.py,sha256=3JJAUWdLn1-oij2AoD_PeJuJHDKbMQTKgBmkoPvBy84,944
653
653
  udata/tests/forms/test_uuid_field.py,sha256=-Amb-yzf_QVDs7iJgjlJkmE1Ng8p-XWo9o3ggT6cKhA,1832
654
654
  udata/tests/frontend/__init__.py,sha256=nv8LXpGd2y4yi7kLEbhsJMEmtkUs8QMcriMCXQoxwtA,793
655
- udata/tests/frontend/test_auth.py,sha256=5jPBmzdxEy_1NCuCmbK1D3ax656DQ6fGYwdixpGQ71c,995
655
+ udata/tests/frontend/test_auth.py,sha256=QGwrj1-cqwUqIJtEIUofJi7M6V7c9fYzn2Vf7WHWvyY,831
656
656
  udata/tests/frontend/test_csv.py,sha256=Sxub7sfItDsT7chUxEsIDj9sdK2eCJwuFPdx1-u9oVI,11943
657
657
  udata/tests/frontend/test_hooks.py,sha256=ZTIHWjtqzBXNQK-5EH4zmqLeBBX0S617i4A_dnO3xIw,4077
658
658
  udata/tests/frontend/test_markdown.py,sha256=KHh0rFfWHqzes0qvLPPFc7uV_IPSS7ymVsQeVpjpPA4,12689
659
659
  udata/tests/organization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
660
- udata/tests/organization/test_csv_adapter.py,sha256=u2w5EOvkz6BH3ACdzW4MdzjOpbHRn-nq67HTmC_8hYA,1568
660
+ udata/tests/organization/test_csv_adapter.py,sha256=8_XiX7vIMAtwHfsDAFvMs_VjbVIlXJ0ux_lDawEK7V4,1527
661
661
  udata/tests/organization/test_notifications.py,sha256=rR1iGtMSmP9htrDJTIVZdvvgO3YNtfoADySGsMzzWdE,1410
662
662
  udata/tests/organization/test_organization_model.py,sha256=0Rx7913-4NFFrcPKMTxMAnEanHR1tu6tuhg6ysbcDLg,2044
663
663
  udata/tests/organization/test_organization_rdf.py,sha256=KtZTSCafe67bodyxeXtguydHOZgYrB131ByctS7uje4,6333
@@ -670,7 +670,7 @@ udata/tests/search/test_adapter.py,sha256=RpQo3tjaV3G2tnLw1vxRWhSZzOqIb-RM0s4U0o
670
670
  udata/tests/search/test_query.py,sha256=wtgC4rkaxe8vIaWOcANZ1yFFkEKTdNHj2yiTaYI-R-M,1406
671
671
  udata/tests/search/test_results.py,sha256=yjeqxNKVbjMxxvUsZb7csfU3wsV_YNjBDnfYRw5QN-s,1998
672
672
  udata/tests/site/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
673
- udata/tests/site/test_site_api.py,sha256=XIjRH-iiwKdwmX145bQflxOatfIChi5RLikIMwJSbjQ,2276
673
+ udata/tests/site/test_site_api.py,sha256=JVIZgoPPN5DVPcS6P1lp0lYH2GZc7x1Tc5Q8yQqRv_I,2250
674
674
  udata/tests/site/test_site_metrics.py,sha256=Sn9dQORwe-fvoyA7ZAnF63Cq5CwUGq1myH8Xe0EtfDA,2263
675
675
  udata/tests/site/test_site_model.py,sha256=nAx9JjEKdfjdw1Kj5Rs7P5FEePoATtCuOYPiSXEnVD0,1313
676
676
  udata/tests/site/test_site_rdf.py,sha256=2d_MVXXb2fCg9mdlV6RlFU-g-xL3y0o5Ldp0IX5YYRk,12753
@@ -696,9 +696,9 @@ udata/translations/pt/LC_MESSAGES/udata.mo,sha256=Unzt8KXSviSWugimc9ficxraqJDz-h
696
696
  udata/translations/pt/LC_MESSAGES/udata.po,sha256=O5E1eImTcE3v3m5Ub0UM9lKwK7bFGQ8_NLr1tZ4wjvs,44979
697
697
  udata/translations/sr/LC_MESSAGES/udata.mo,sha256=S2A9-Kq5YBc9klsEimF4JRm7ePxhcaM4_zeVEx3Em98,28500
698
698
  udata/translations/sr/LC_MESSAGES/udata.po,sha256=a1c8DmzuWc-b-3kgXZl9n9aIODfttOYCN1F0pE6tPlA,51548
699
- udata-9.0.1.dev29828.dist-info/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
700
- udata-9.0.1.dev29828.dist-info/METADATA,sha256=WJsUKYQrZdt7p4OLP_tckZgl39PHJwRUTIe-FedNH3Y,125645
701
- udata-9.0.1.dev29828.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
702
- udata-9.0.1.dev29828.dist-info/entry_points.txt,sha256=3SKiqVy4HUqxf6iWspgMqH8d88Htk6KoLbG1BU-UddQ,451
703
- udata-9.0.1.dev29828.dist-info/top_level.txt,sha256=39OCg-VWFWOq4gCKnjKNu-s3OwFlZIu_dVH8Gl6ndHw,12
704
- udata-9.0.1.dev29828.dist-info/RECORD,,
699
+ udata-9.0.1.dev29871.dist-info/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
700
+ udata-9.0.1.dev29871.dist-info/METADATA,sha256=W8WZlMmTf6xS9DHy2BkchL4RQBKjm8W_cajexia95yw,125706
701
+ udata-9.0.1.dev29871.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
702
+ udata-9.0.1.dev29871.dist-info/entry_points.txt,sha256=3SKiqVy4HUqxf6iWspgMqH8d88Htk6KoLbG1BU-UddQ,451
703
+ udata-9.0.1.dev29871.dist-info/top_level.txt,sha256=39OCg-VWFWOq4gCKnjKNu-s3OwFlZIu_dVH8Gl6ndHw,12
704
+ udata-9.0.1.dev29871.dist-info/RECORD,,