oarepo-runtime 1.10.2__tar.gz → 1.10.3__tar.gz
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.
- {oarepo_runtime-1.10.2/oarepo_runtime.egg-info → oarepo_runtime-1.10.3}/PKG-INFO +1 -1
- oarepo_runtime-1.10.3/oarepo_runtime/services/schema/rdm.py +146 -0
- oarepo_runtime-1.10.3/oarepo_runtime/translations/cs/LC_MESSAGES/messages.mo +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/translations/cs/LC_MESSAGES/messages.po +10 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/translations/en/LC_MESSAGES/messages.po +8 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/translations/messages.pot +10 -1
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3/oarepo_runtime.egg-info}/PKG-INFO +1 -1
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/setup.cfg +1 -1
- oarepo_runtime-1.10.2/oarepo_runtime/services/schema/rdm.py +0 -75
- oarepo_runtime-1.10.2/oarepo_runtime/translations/cs/LC_MESSAGES/messages.mo +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/LICENSE +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/MANIFEST.in +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/README.md +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/assets.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/base.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/cf.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/check.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/configuration.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/fixtures.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/index.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/permissions/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/permissions/base.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/permissions/evaluate.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/permissions/list.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/permissions/search.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/cli/validate.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/config.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/asynchronous.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/catalogue.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/datastreams.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/errors.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/ext.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/fixtures.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/json.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/readers/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/readers/attachments.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/readers/excel.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/readers/json.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/readers/service.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/readers/yaml.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/semi_asynchronous.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/synchronous.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/transformers.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/types.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/utils.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/writers/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/writers/attachments_file.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/writers/attachments_service.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/writers/publish.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/writers/service.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/writers/utils.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/writers/validation_errors.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/writers/yaml.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/ext.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/ext_config.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/i18n/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/info/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/info/check.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/info/permissions/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/info/permissions/debug.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/info/views.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/profile.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/proxies.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/drafts.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/dumpers/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/dumpers/edtf_interval.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/dumpers/multilingual_dumper.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/entity_resolvers/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/entity_resolvers/proxies.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/mappings/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/mappings/rdm_parent_mapping.json +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/owners/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/owners/registry.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/pid_providers.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/relations/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/relations/base.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/relations/internal.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/relations/lookup.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/relations/pid_relation.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/featured_file.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/has_draftcheck.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/icu.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/mapping.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/owner.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/record_status.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/selectors.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/synthetic.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/resources/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/resources/config.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/resources/file_resource.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/resources/json_serializer.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/resources/localized_ui_json_serializer.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/resources/resource.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/resources/responses.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/components.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/config/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/config/draft_link.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/config/link_conditions.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/config/permissions_presets.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/config/service.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/custom_fields/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/custom_fields/mappings.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/entity/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/entity/config.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/entity/schema.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/entity/service.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/expansions/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/expansions/expandable_fields.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/expansions/service.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/base.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/date.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/enum.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/facet_groups_names.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/max_facet.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/multilingual_facet.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/nested_facet.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/params.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/year_histogram.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/files/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/files/components.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/files/service.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/generators.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/permissions/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/permissions/generators.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/records/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/records/links.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/relations/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/relations/components.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/relations/errors.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/relations/mapping.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/results.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/cf.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/i18n.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/i18n_ui.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/i18n_validation.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/marshmallow.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/marshmallow_to_json_schema.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/oneofschema.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/polymorphic.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/rdm_ui.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/ui.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/validation.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/search.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/service.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/tasks.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/translations/default_translations.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/translations/en/LC_MESSAGES/messages.mo +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/uow.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/utils/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/utils/functools.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/utils/identity_utils.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/utils/index.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/utils/path.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime.egg-info/SOURCES.txt +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime.egg-info/dependency_links.txt +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime.egg-info/entry_points.txt +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime.egg-info/requires.txt +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime.egg-info/top_level.txt +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/pyproject.toml +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/setup.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/tests/marshmallow_to_json/__init__.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/tests/marshmallow_to_json/test_datacite_ui_schema.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/tests/marshmallow_to_json/test_simple_schema.py +0 -0
- {oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/tests/pkg_data/__init__.py +0 -0
@@ -0,0 +1,146 @@
|
|
1
|
+
import re
|
2
|
+
from functools import partial
|
3
|
+
|
4
|
+
import marshmallow as ma
|
5
|
+
from invenio_access.permissions import system_identity
|
6
|
+
from invenio_i18n import gettext as _
|
7
|
+
from invenio_i18n.selectors import get_locale
|
8
|
+
from invenio_rdm_records.services.schemas.metadata import (
|
9
|
+
CreatorSchema,
|
10
|
+
record_identifiers_schemes,
|
11
|
+
)
|
12
|
+
from invenio_rdm_records.services.schemas.tombstone import DeletionStatusSchema
|
13
|
+
from invenio_rdm_records.services.schemas.versions import VersionsSchema
|
14
|
+
from invenio_records_resources.proxies import current_service_registry
|
15
|
+
from invenio_vocabularies.contrib.awards.schema import AwardRelationSchema
|
16
|
+
from invenio_vocabularies.contrib.funders.schema import FunderRelationSchema
|
17
|
+
from marshmallow import fields as ma_fields
|
18
|
+
from marshmallow import pre_load
|
19
|
+
from marshmallow_utils.fields import (
|
20
|
+
IdentifierSet,
|
21
|
+
)
|
22
|
+
from marshmallow_utils.fields.nestedattr import NestedAttribute
|
23
|
+
from marshmallow_utils.schemas.identifier import IdentifierSchema
|
24
|
+
|
25
|
+
from .i18n import MultilingualField
|
26
|
+
|
27
|
+
|
28
|
+
class RDMRecordMixin(ma.Schema):
|
29
|
+
versions = NestedAttribute(VersionsSchema, dump_only=True)
|
30
|
+
deletion_status = ma_fields.Nested(DeletionStatusSchema, dump_only=True)
|
31
|
+
|
32
|
+
|
33
|
+
class MultilingualAwardSchema(AwardRelationSchema):
|
34
|
+
class Meta:
|
35
|
+
unknown = ma.RAISE
|
36
|
+
|
37
|
+
@pre_load()
|
38
|
+
def convert_to_multilingual(self, data, many, **kwargs):
|
39
|
+
if "title" in data and type(data["title"]) is str:
|
40
|
+
lang = get_locale()
|
41
|
+
data["title"] = {lang: data["title"]}
|
42
|
+
return data
|
43
|
+
|
44
|
+
|
45
|
+
class FundingSchema(ma.Schema):
|
46
|
+
"""Funding schema."""
|
47
|
+
|
48
|
+
funder = ma_fields.Nested(FunderRelationSchema, required=True)
|
49
|
+
award = ma_fields.Nested(MultilingualAwardSchema)
|
50
|
+
|
51
|
+
|
52
|
+
class RecordIdentifierField(IdentifierSet):
|
53
|
+
def __init__(self, *args, **kwargs):
|
54
|
+
super().__init__(
|
55
|
+
ma.fields.Nested(
|
56
|
+
partial(IdentifierSchema, allowed_schemes=record_identifiers_schemes)
|
57
|
+
),
|
58
|
+
*args,
|
59
|
+
**kwargs,
|
60
|
+
)
|
61
|
+
|
62
|
+
|
63
|
+
class RelatedRecordIdentifierField(IdentifierSet):
|
64
|
+
def __init__(self, *args, **kwargs):
|
65
|
+
super().__init__(
|
66
|
+
ma.fields.Nested(
|
67
|
+
partial(IdentifierSchema, allowed_schemes=record_identifiers_schemes)
|
68
|
+
),
|
69
|
+
*args,
|
70
|
+
**kwargs,
|
71
|
+
)
|
72
|
+
|
73
|
+
|
74
|
+
class RDMSubjectSchema(ma.Schema):
|
75
|
+
"""Subject ui schema."""
|
76
|
+
|
77
|
+
class Meta:
|
78
|
+
unknown = ma.RAISE
|
79
|
+
|
80
|
+
_id = ma.fields.String(data_key="id")
|
81
|
+
|
82
|
+
subject = MultilingualField()
|
83
|
+
|
84
|
+
|
85
|
+
class RDMNTKCreatorsSchema(CreatorSchema):
|
86
|
+
"""NTK version of RDM creators schema.
|
87
|
+
|
88
|
+
This version makes sure that organizations are selected from the
|
89
|
+
list of organizations in the system. Record will not be valid if
|
90
|
+
organization is not in the system.
|
91
|
+
"""
|
92
|
+
|
93
|
+
@ma.validates_schema
|
94
|
+
def check_organization_or_affiliation(self, data, **kwargs):
|
95
|
+
"""Check if organization is in the system."""
|
96
|
+
person_or_org = data.get("person_or_org", {})
|
97
|
+
if person_or_org.get("type") == "personal":
|
98
|
+
affiliations = data.get("affiliations", [])
|
99
|
+
for affiliation in affiliations:
|
100
|
+
if not self.from_vocabulary(affiliation):
|
101
|
+
raise ma.ValidationError(
|
102
|
+
_(
|
103
|
+
"It is necessary to choose organization from the controlled vocabulary. "
|
104
|
+
"To add organization, please go to "
|
105
|
+
"https://nusl.techlib.cz/cs/migrace-nusl/navrh-novych-hesel/"
|
106
|
+
),
|
107
|
+
field_name="affiliations",
|
108
|
+
)
|
109
|
+
else:
|
110
|
+
# organization
|
111
|
+
name = person_or_org.get("name")
|
112
|
+
affiliations = current_service_registry.get("affiliations")
|
113
|
+
found = [
|
114
|
+
x["name"]
|
115
|
+
for x in affiliations.search(
|
116
|
+
system_identity,
|
117
|
+
q=f'name.suggest:"{escape_opensearch_query(name)}"',
|
118
|
+
size=100,
|
119
|
+
).hits
|
120
|
+
]
|
121
|
+
if name not in found:
|
122
|
+
raise ma.ValidationError(
|
123
|
+
_(
|
124
|
+
"It is necessary to choose organization from the controlled vocabulary. "
|
125
|
+
"To add organization, please go to "
|
126
|
+
"https://nusl.techlib.cz/cs/migrace-nusl/navrh-novych-hesel/"
|
127
|
+
),
|
128
|
+
field_name="person_or_org",
|
129
|
+
)
|
130
|
+
return data
|
131
|
+
|
132
|
+
def from_vocabulary(self, affiliation):
|
133
|
+
"""Check if affiliation is from the vocabulary."""
|
134
|
+
if "id" not in affiliation:
|
135
|
+
return False
|
136
|
+
return True
|
137
|
+
|
138
|
+
|
139
|
+
def escape_opensearch_query(value: str) -> str:
|
140
|
+
"""
|
141
|
+
Escapes special characters in a string for safe use in OpenSearch query syntax.
|
142
|
+
"""
|
143
|
+
# Escape each special character with a backslash
|
144
|
+
escaped = re.sub(r'([\\+\-=&|><!(){}\[\]^"~*?:/])', r"\\\1", value)
|
145
|
+
|
146
|
+
return escaped
|
@@ -83,3 +83,13 @@ msgstr ""
|
|
83
83
|
#: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/i18n.py:28
|
84
84
|
msgid "Both language and text must be provided."
|
85
85
|
msgstr "Musí být vyplněn jazyk i hodnota."
|
86
|
+
|
87
|
+
#: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/rdm.py:103
|
88
|
+
#: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/rdm.py:127
|
89
|
+
msgid ""
|
90
|
+
"It is necessary to choose organization from the controlled vocabulary. To "
|
91
|
+
"add organization, please go to https://nusl.techlib.cz/cs/migrace-"
|
92
|
+
"nusl/navrh-novych-hesel/"
|
93
|
+
msgstr ""
|
94
|
+
"Organizaci je nutné vybrat ze slovníku. Pro doplnění nové, vyplňte formulář "
|
95
|
+
"na https://nusl.techlib.cz/cs/migrace-nusl/navrh-novych-hesel/"
|
@@ -87,3 +87,11 @@ msgstr ""
|
|
87
87
|
#: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/i18n.py:28
|
88
88
|
msgid "Both language and text must be provided."
|
89
89
|
msgstr ""
|
90
|
+
|
91
|
+
#: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/rdm.py:103
|
92
|
+
#: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/rdm.py:127
|
93
|
+
msgid ""
|
94
|
+
"It is necessary to choose organization from the controlled vocabulary. To "
|
95
|
+
"add organization, please go to https://nusl.techlib.cz/cs/migrace-"
|
96
|
+
"nusl/navrh-novych-hesel/"
|
97
|
+
msgstr ""
|
@@ -8,7 +8,7 @@ msgid ""
|
|
8
8
|
msgstr ""
|
9
9
|
"Project-Id-Version: PROJECT VERSION\n"
|
10
10
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
11
|
-
"POT-Creation-Date: 2025-
|
11
|
+
"POT-Creation-Date: 2025-08-05 11:53+0200\n"
|
12
12
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
13
13
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14
14
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
@@ -53,9 +53,18 @@ msgid "Version"
|
|
53
53
|
msgstr ""
|
54
54
|
|
55
55
|
#: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/i18n.py:28
|
56
|
+
#: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/i18n.py:29
|
56
57
|
msgid "Both language and text must be provided."
|
57
58
|
msgstr ""
|
58
59
|
|
60
|
+
#: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/rdm.py:103
|
61
|
+
#: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/rdm.py:127
|
62
|
+
msgid ""
|
63
|
+
"It is necessary to choose organization from the controlled vocabulary. To"
|
64
|
+
" add organization, please go to https://nusl.techlib.cz/cs/migrace-nusl"
|
65
|
+
"/navrh-novych-hesel/"
|
66
|
+
msgstr ""
|
67
|
+
|
59
68
|
#: /Users/m/w/cesnet/oarepo-runtime/oarepo_runtime/services/schema/ui.py:155
|
60
69
|
msgid "True"
|
61
70
|
msgstr ""
|
@@ -1,75 +0,0 @@
|
|
1
|
-
from functools import partial
|
2
|
-
|
3
|
-
import marshmallow as ma
|
4
|
-
from invenio_i18n.selectors import get_locale
|
5
|
-
from invenio_rdm_records.services.schemas.metadata import record_identifiers_schemes
|
6
|
-
from invenio_rdm_records.services.schemas.tombstone import DeletionStatusSchema
|
7
|
-
from invenio_rdm_records.services.schemas.versions import VersionsSchema
|
8
|
-
from invenio_vocabularies.contrib.awards.schema import AwardRelationSchema
|
9
|
-
from invenio_vocabularies.contrib.funders.schema import FunderRelationSchema
|
10
|
-
from marshmallow import fields as ma_fields
|
11
|
-
from marshmallow import pre_load
|
12
|
-
from marshmallow_utils.fields import (
|
13
|
-
IdentifierSet,
|
14
|
-
)
|
15
|
-
from marshmallow_utils.fields.nestedattr import NestedAttribute
|
16
|
-
from marshmallow_utils.schemas.identifier import IdentifierSchema
|
17
|
-
|
18
|
-
from .i18n import MultilingualField
|
19
|
-
|
20
|
-
|
21
|
-
class RDMRecordMixin(ma.Schema):
|
22
|
-
versions = NestedAttribute(VersionsSchema, dump_only=True)
|
23
|
-
deletion_status = ma_fields.Nested(DeletionStatusSchema, dump_only=True)
|
24
|
-
|
25
|
-
|
26
|
-
class MultilingualAwardSchema(AwardRelationSchema):
|
27
|
-
class Meta:
|
28
|
-
unknown = ma.RAISE
|
29
|
-
|
30
|
-
@pre_load()
|
31
|
-
def convert_to_multilingual(self, data, many, **kwargs):
|
32
|
-
if "title" in data and type(data["title"]) is str:
|
33
|
-
lang = get_locale()
|
34
|
-
data["title"] = {lang: data["title"]}
|
35
|
-
return data
|
36
|
-
|
37
|
-
|
38
|
-
class FundingSchema(ma.Schema):
|
39
|
-
"""Funding schema."""
|
40
|
-
|
41
|
-
funder = ma_fields.Nested(FunderRelationSchema, required=True)
|
42
|
-
award = ma_fields.Nested(MultilingualAwardSchema)
|
43
|
-
|
44
|
-
|
45
|
-
class RecordIdentifierField(IdentifierSet):
|
46
|
-
def __init__(self, *args, **kwargs):
|
47
|
-
super().__init__(
|
48
|
-
ma.fields.Nested(
|
49
|
-
partial(IdentifierSchema, allowed_schemes=record_identifiers_schemes)
|
50
|
-
),
|
51
|
-
*args,
|
52
|
-
**kwargs
|
53
|
-
)
|
54
|
-
|
55
|
-
|
56
|
-
class RelatedRecordIdentifierField(IdentifierSet):
|
57
|
-
def __init__(self, *args, **kwargs):
|
58
|
-
super().__init__(
|
59
|
-
ma.fields.Nested(
|
60
|
-
partial(IdentifierSchema, allowed_schemes=record_identifiers_schemes)
|
61
|
-
),
|
62
|
-
*args,
|
63
|
-
**kwargs
|
64
|
-
)
|
65
|
-
|
66
|
-
|
67
|
-
class RDMSubjectSchema(ma.Schema):
|
68
|
-
"""Subject ui schema."""
|
69
|
-
|
70
|
-
class Meta:
|
71
|
-
unknown = ma.RAISE
|
72
|
-
|
73
|
-
_id = ma.fields.String(data_key="id")
|
74
|
-
|
75
|
-
subject = MultilingualField()
|
Binary file
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/readers/__init__.py
RENAMED
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/readers/attachments.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/readers/service.py
RENAMED
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/semi_asynchronous.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/writers/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/writers/publish.py
RENAMED
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/datastreams/writers/service.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/dumpers/edtf_interval.py
RENAMED
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/entity_resolvers/__init__.py
RENAMED
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/entity_resolvers/proxies.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/relations/__init__.py
RENAMED
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/relations/internal.py
RENAMED
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/relations/pid_relation.py
RENAMED
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/__init__.py
RENAMED
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/featured_file.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/mapping.py
RENAMED
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/owner.py
RENAMED
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/record_status.py
RENAMED
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/selectors.py
RENAMED
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/records/systemfields/synthetic.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/config/draft_link.py
RENAMED
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/config/link_conditions.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/custom_fields/__init__.py
RENAMED
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/custom_fields/mappings.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/expansions/__init__.py
RENAMED
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/expansions/service.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/facet_groups_names.py
RENAMED
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/multilingual_facet.py
RENAMED
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/nested_facet.py
RENAMED
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/facets/year_histogram.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/permissions/__init__.py
RENAMED
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/permissions/generators.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/relations/__init__.py
RENAMED
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/relations/components.py
RENAMED
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/relations/mapping.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/i18n_validation.py
RENAMED
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/marshmallow.py
RENAMED
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/oneofschema.py
RENAMED
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/polymorphic.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/services/schema/validation.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime/translations/default_translations.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/oarepo_runtime.egg-info/dependency_links.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/tests/marshmallow_to_json/test_datacite_ui_schema.py
RENAMED
File without changes
|
{oarepo_runtime-1.10.2 → oarepo_runtime-1.10.3}/tests/marshmallow_to_json/test_simple_schema.py
RENAMED
File without changes
|
File without changes
|