udata 14.0.3.dev1__py3-none-any.whl → 14.7.3.dev4__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.
Files changed (151) hide show
  1. udata/api/__init__.py +2 -0
  2. udata/api_fields.py +120 -19
  3. udata/app.py +18 -20
  4. udata/auth/__init__.py +4 -7
  5. udata/auth/forms.py +3 -3
  6. udata/auth/views.py +13 -6
  7. udata/commands/dcat.py +1 -1
  8. udata/commands/serve.py +3 -11
  9. udata/core/activity/api.py +5 -6
  10. udata/core/badges/tests/test_tasks.py +0 -2
  11. udata/core/csv.py +5 -0
  12. udata/core/dataservices/api.py +8 -1
  13. udata/core/dataservices/apiv2.py +3 -6
  14. udata/core/dataservices/models.py +5 -2
  15. udata/core/dataservices/rdf.py +2 -1
  16. udata/core/dataservices/tasks.py +6 -2
  17. udata/core/dataset/api.py +30 -4
  18. udata/core/dataset/api_fields.py +1 -1
  19. udata/core/dataset/apiv2.py +1 -1
  20. udata/core/dataset/constants.py +2 -9
  21. udata/core/dataset/models.py +21 -9
  22. udata/core/dataset/permissions.py +31 -0
  23. udata/core/dataset/rdf.py +18 -16
  24. udata/core/dataset/tasks.py +16 -7
  25. udata/core/discussions/api.py +15 -1
  26. udata/core/discussions/models.py +6 -0
  27. udata/core/legal/__init__.py +0 -0
  28. udata/core/legal/mails.py +128 -0
  29. udata/core/organization/api.py +16 -5
  30. udata/core/organization/api_fields.py +3 -3
  31. udata/core/organization/apiv2.py +3 -4
  32. udata/core/organization/mails.py +1 -1
  33. udata/core/organization/models.py +40 -7
  34. udata/core/organization/notifications.py +84 -0
  35. udata/core/organization/permissions.py +1 -1
  36. udata/core/organization/tasks.py +3 -0
  37. udata/core/pages/models.py +49 -0
  38. udata/core/pages/tests/test_api.py +165 -1
  39. udata/core/post/api.py +25 -70
  40. udata/core/post/constants.py +8 -0
  41. udata/core/post/models.py +109 -17
  42. udata/core/post/tests/test_api.py +140 -3
  43. udata/core/post/tests/test_models.py +24 -0
  44. udata/core/reports/api.py +18 -0
  45. udata/core/reports/models.py +42 -2
  46. udata/core/reuse/api.py +8 -0
  47. udata/core/reuse/apiv2.py +3 -6
  48. udata/core/reuse/models.py +1 -1
  49. udata/core/spatial/forms.py +2 -2
  50. udata/core/topic/models.py +8 -2
  51. udata/core/user/api.py +10 -3
  52. udata/core/user/api_fields.py +3 -3
  53. udata/core/user/models.py +33 -8
  54. udata/features/notifications/api.py +7 -18
  55. udata/features/notifications/models.py +59 -0
  56. udata/features/notifications/tasks.py +25 -0
  57. udata/features/transfer/actions.py +2 -0
  58. udata/features/transfer/models.py +17 -0
  59. udata/features/transfer/notifications.py +96 -0
  60. udata/flask_mongoengine/engine.py +0 -4
  61. udata/flask_mongoengine/pagination.py +1 -1
  62. udata/frontend/markdown.py +2 -1
  63. udata/harvest/actions.py +20 -0
  64. udata/harvest/api.py +24 -7
  65. udata/harvest/backends/base.py +27 -1
  66. udata/harvest/backends/ckan/harvesters.py +21 -4
  67. udata/harvest/backends/dcat.py +4 -1
  68. udata/harvest/commands.py +33 -0
  69. udata/harvest/filters.py +17 -6
  70. udata/harvest/models.py +16 -0
  71. udata/harvest/permissions.py +27 -0
  72. udata/harvest/tests/ckan/test_ckan_backend.py +33 -0
  73. udata/harvest/tests/test_actions.py +46 -2
  74. udata/harvest/tests/test_api.py +161 -6
  75. udata/harvest/tests/test_base_backend.py +86 -1
  76. udata/harvest/tests/test_dcat_backend.py +68 -3
  77. udata/harvest/tests/test_filters.py +6 -0
  78. udata/i18n.py +1 -4
  79. udata/mail.py +14 -0
  80. udata/migrations/2021-08-17-harvest-integrity.py +23 -16
  81. udata/migrations/2025-10-31-create-membership-request-notifications.py +55 -0
  82. udata/migrations/2025-12-04-add-uuid-to-discussion-messages.py +28 -0
  83. udata/migrations/2025-12-16-create-transfer-request-notifications.py +69 -0
  84. udata/migrations/2026-01-14-add-default-kind-to-posts.py +17 -0
  85. udata/mongo/slug_fields.py +1 -1
  86. udata/rdf.py +65 -11
  87. udata/routing.py +2 -2
  88. udata/settings.py +11 -0
  89. udata/tasks.py +2 -0
  90. udata/templates/mail/message.html +3 -1
  91. udata/tests/api/__init__.py +7 -17
  92. udata/tests/api/test_activities_api.py +36 -0
  93. udata/tests/api/test_datasets_api.py +69 -0
  94. udata/tests/api/test_organizations_api.py +0 -3
  95. udata/tests/api/test_reports_api.py +157 -0
  96. udata/tests/api/test_user_api.py +1 -1
  97. udata/tests/apiv2/test_dataservices.py +14 -0
  98. udata/tests/apiv2/test_organizations.py +9 -0
  99. udata/tests/apiv2/test_reuses.py +11 -0
  100. udata/tests/cli/test_cli_base.py +0 -1
  101. udata/tests/dataservice/test_dataservice_tasks.py +29 -0
  102. udata/tests/dataset/test_dataset_model.py +13 -1
  103. udata/tests/dataset/test_dataset_rdf.py +164 -5
  104. udata/tests/dataset/test_dataset_tasks.py +25 -0
  105. udata/tests/frontend/test_auth.py +58 -1
  106. udata/tests/frontend/test_csv.py +0 -3
  107. udata/tests/helpers.py +31 -27
  108. udata/tests/organization/test_notifications.py +67 -2
  109. udata/tests/search/test_search_integration.py +70 -0
  110. udata/tests/site/test_site_csv_exports.py +22 -10
  111. udata/tests/test_activity.py +9 -9
  112. udata/tests/test_api_fields.py +10 -0
  113. udata/tests/test_discussions.py +5 -5
  114. udata/tests/test_legal_mails.py +359 -0
  115. udata/tests/test_notifications.py +15 -57
  116. udata/tests/test_notifications_task.py +43 -0
  117. udata/tests/test_owned.py +81 -1
  118. udata/tests/test_transfer.py +181 -2
  119. udata/tests/test_uris.py +33 -0
  120. udata/translations/ar/LC_MESSAGES/udata.mo +0 -0
  121. udata/translations/ar/LC_MESSAGES/udata.po +309 -158
  122. udata/translations/de/LC_MESSAGES/udata.mo +0 -0
  123. udata/translations/de/LC_MESSAGES/udata.po +313 -160
  124. udata/translations/es/LC_MESSAGES/udata.mo +0 -0
  125. udata/translations/es/LC_MESSAGES/udata.po +312 -160
  126. udata/translations/fr/LC_MESSAGES/udata.mo +0 -0
  127. udata/translations/fr/LC_MESSAGES/udata.po +475 -202
  128. udata/translations/it/LC_MESSAGES/udata.mo +0 -0
  129. udata/translations/it/LC_MESSAGES/udata.po +317 -162
  130. udata/translations/pt/LC_MESSAGES/udata.mo +0 -0
  131. udata/translations/pt/LC_MESSAGES/udata.po +315 -161
  132. udata/translations/sr/LC_MESSAGES/udata.mo +0 -0
  133. udata/translations/sr/LC_MESSAGES/udata.po +323 -164
  134. udata/translations/udata.pot +169 -124
  135. udata/uris.py +0 -2
  136. udata/utils.py +23 -0
  137. udata-14.7.3.dev4.dist-info/METADATA +109 -0
  138. {udata-14.0.3.dev1.dist-info → udata-14.7.3.dev4.dist-info}/RECORD +142 -135
  139. udata/core/post/forms.py +0 -30
  140. udata/flask_mongoengine/json.py +0 -38
  141. udata/templates/mail/base.html +0 -105
  142. udata/templates/mail/base.txt +0 -6
  143. udata/templates/mail/button.html +0 -3
  144. udata/templates/mail/layouts/1-column.html +0 -19
  145. udata/templates/mail/layouts/2-columns.html +0 -20
  146. udata/templates/mail/layouts/center-panel.html +0 -16
  147. udata-14.0.3.dev1.dist-info/METADATA +0 -132
  148. {udata-14.0.3.dev1.dist-info → udata-14.7.3.dev4.dist-info}/WHEEL +0 -0
  149. {udata-14.0.3.dev1.dist-info → udata-14.7.3.dev4.dist-info}/entry_points.txt +0 -0
  150. {udata-14.0.3.dev1.dist-info → udata-14.7.3.dev4.dist-info}/licenses/LICENSE +0 -0
  151. {udata-14.0.3.dev1.dist-info → udata-14.7.3.dev4.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,109 @@
1
+ Metadata-Version: 2.4
2
+ Name: udata
3
+ Version: 14.7.3.dev4
4
+ Summary: Open data portal
5
+ Author-email: Opendata Team <opendatateam@data.gouv.fr>
6
+ Maintainer-email: Opendata Team <opendatateam@data.gouv.fr>
7
+ License: MIT
8
+ Project-URL: Homepage, https://github.com/opendatateam/udata
9
+ Project-URL: Repository, https://github.com/opendatateam/udata
10
+ Project-URL: Documentation, https://udata.readthedocs.io/
11
+ Project-URL: Bug Tracker, https://github.com/opendatateam/udata/issues
12
+ Keywords: udata,open data,portal,data
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Programming Language :: Python
15
+ Classifier: Environment :: Web Environment
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Intended Audience :: Developers
18
+ Classifier: Topic :: System :: Software Distribution
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Programming Language :: Python :: 3.12
22
+ Classifier: Programming Language :: Python :: 3.13
23
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
24
+ Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
25
+ Requires-Python: <3.14,>=3.11
26
+ Description-Content-Type: text/markdown
27
+ License-File: LICENSE
28
+ Requires-Dist: authlib<2.0.0,>=1.5.1
29
+ Requires-Dist: awesome-slugify<2.0.0,>=1.6.5
30
+ Requires-Dist: babel<3.0.0,>=2.17.0
31
+ Requires-Dist: bcrypt<5.0.0,>=4.0.0
32
+ Requires-Dist: bleach[css]<7.0.0,>=6.2.0
33
+ Requires-Dist: blinker<2.0,>=1.5
34
+ Requires-Dist: boto3<2.0.0,>=1.26.102
35
+ Requires-Dist: botocore<2.0.0,>=1.29.165
36
+ Requires-Dist: celery<6.0.0,>=5.4.0
37
+ Requires-Dist: celerybeat-mongo<1.0.0,>=0.2.0
38
+ Requires-Dist: click<9.0.0,>=8.1.8
39
+ Requires-Dist: email-validator<3.0.0,>=2.2.0
40
+ Requires-Dist: factory-boy<4.0.0,>=3.3.3
41
+ Requires-Dist: feedgenerator<3.0.0,>=2.1.0
42
+ Requires-Dist: flask<4.0.0,>=3.0.0
43
+ Requires-Dist: flask-babel<5.0.0,>=4.0.0
44
+ Requires-Dist: flask-caching<3.0.0,>=2.3.1
45
+ Requires-Dist: flask-cdn<2.0.0,>=1.5.3
46
+ Requires-Dist: flask-gravatar<1.0.0,>=0.5.0
47
+ Requires-Dist: flask-login<1.0.0,>=0.6.3
48
+ Requires-Dist: flask-mail<1.0.0,>=0.10.0
49
+ Requires-Dist: flask-principal<1.0.0,>=0.4.0
50
+ Requires-Dist: flask-restx<2.0.0,>=1.3.0
51
+ Requires-Dist: flask-security-too<6.0.0,>=5.1.2
52
+ Requires-Dist: flask-sitemap<1.0.0,>=0.4.0
53
+ Requires-Dist: flask-storage<2.0.0,>=1.4.0
54
+ Requires-Dist: flask-wtf<2.0.0,>=1.2.2
55
+ Requires-Dist: geojson<4.0.0,>=3.2.0
56
+ Requires-Dist: geomet<2.0.0,>=1.1.0
57
+ Requires-Dist: html2text==2025.4.15
58
+ Requires-Dist: humanfriendly<11.0.0,>=10.0
59
+ Requires-Dist: importlib-resources<7.0.0,>=6.5.2
60
+ Requires-Dist: itsdangerous<3.0.0,>=2.2.0
61
+ Requires-Dist: jinja2<4.0.0,>=3.1.6
62
+ Requires-Dist: jsonschema<5.0.0,>=4.23.0
63
+ Requires-Dist: kombu[redis]<6.0.0,>=5.5.0
64
+ Requires-Dist: langdetect<2.0.0,>=1.0.9
65
+ Requires-Dist: levenshtein<1.0.0,>=0.27.1
66
+ Requires-Dist: lxml<7.0.0,>=6.0.0
67
+ Requires-Dist: markupsafe<4.0.0,>=3.0.3
68
+ Requires-Dist: mistune<4.0.0,>=3.1.3
69
+ Requires-Dist: mongoengine<1.0.0,>=0.29.1
70
+ Requires-Dist: netaddr<2.0.0,>=1.3.0
71
+ Requires-Dist: pillow<13.0.0,>=11.0.0
72
+ Requires-Dist: pydenticon<1.0.0,>=0.3.1
73
+ Requires-Dist: pymongo<5.0.0,>=4.11.3
74
+ Requires-Dist: python-dateutil<3.0.0,>=2.9.0.post0
75
+ Requires-Dist: pytz
76
+ Requires-Dist: rdflib<8.0.0,>=7.1.3
77
+ Requires-Dist: redis<8.0.0,>=5.0.0
78
+ Requires-Dist: requests<3.0.0,>=2.32.4
79
+ Requires-Dist: saxonche<13.0.0,>=12.8.0
80
+ Requires-Dist: sentry-sdk[flask]<3.0.0,>=2.23.1
81
+ Requires-Dist: speaklater<2.0.0,>=1.3
82
+ Requires-Dist: tlds>=2025022800
83
+ Requires-Dist: typing-extensions<5.0.0,>=4.12.2
84
+ Requires-Dist: tzdata
85
+ Requires-Dist: urlextract<2.0.0,>=1.9.0
86
+ Requires-Dist: urllib3<3.0.0,>=2.0.0
87
+ Requires-Dist: voluptuous<1.0.0,>=0.15.2
88
+ Requires-Dist: werkzeug<4.0.0,>=3.0.0
89
+ Requires-Dist: wtforms[email]<4.0.0,>=3.2.1
90
+ Requires-Dist: wtforms-json<1.0.0,>=0.3.5
91
+ Dynamic: license-file
92
+
93
+ <p align="center"><img src="https://i.imgur.com/rlRox1c.png"></p>
94
+
95
+ udata
96
+ =====
97
+
98
+ Customizable and skinnable social platform dedicated to (open) data.
99
+
100
+ The [full documentation][readthedocs-url] is hosted on Read the Docs.
101
+
102
+ udata is maintained by [data.gouv.fr](https://data.gouv.fr/), the
103
+ French public agency in charge of open data. data.gouv.fr is responsible
104
+ for publishing udata's roadmap and for building consensus around it.
105
+
106
+ It is collectively taken care of by members of the
107
+ [OpenDataTeam](https://github.com/opendatateam).
108
+
109
+ [readthedocs-url]: https://udata.readthedocs.io/en/stable/