Skip to main content

A set of runtime extensions of Invenio repository

Project description

OARepo runtime

The base of invenio oarepo client and a set of classes/functions that help with code-generated features:

Custom fields

Provides support for custom fields identification and iteration and invenio oarepo cf init initialization tool for customfields.

Expansions

Provides expandable field implementation and service mixin for referenced record (in case you do not want to use relations).

Facets

An implementation of nested labeled facet.

i18n

Validator for language codes.

Relations

Replacement of Invenio relations. Fixes the following issues:

  1. Invenio relations can occur only on specific paths and for each pattern, different class must be used (Relation, ListRelation, NestedListRelation)
  2. PID Cache is isolated per request, not set directly on field
  3. Allows to map keys - A key from related object can be renamed/remapped to a different key/path
  4. Provides classes to reference parts of the same record
# article, id 12
metadata:
    title: blah

with mapping referenced article would look like (mapping: {key: 'metadata.title', target: 'title'}):

# dataset:
metadata:
    articles:
    - id: 12
      @v: 1
      title: blah

With Invenio PID relation, it would be:

# dataset:
metadata:
    articles:
    - id: 12
      "@v": 1
      metadata:
        title: blah

Validation

This module provides a marshmallow validator for date strings.

Config

Provides interface and definitions for loading preconfigured permission sets to service config.

ICU sort and suggestions

To use ICU sort and suggestion custom fields, provide the following configuration to oarepo-model-builder (or put this stuff to your custom superclasses).

  record:
    imports:
      - import: invenio_records_resources.records.api.Record
        alias: InvenioRecord
      - import: oarepo_runtime.records.SystemFieldDumperExt
      - import: oarepo_runtime.records.icu.ICUSortField
      - import: oarepo_runtime.records.icu.ICUSuggestField
    extra-code: |-2
          # extra custom fields for testing ICU sorting and suggesting
          sort = ICUSortField(source_field="metadata.title")
          suggest = ICUSuggestField(source_field="metadata.title")
  search-options:
    base-classes:
      - I18nSearchOptions
    imports:
      - import: oarepo_runtime.services.icu.I18nSearchOptions
      - import: oarepo_runtime.services.icu.ICUSuggestParser
      - import: oarepo_runtime.services.icu.ICUSortOptions
    sort-options-field: extra_sort_options
    extra-code: |-2
          suggest_parser_cls = ICUSuggestParser("records2")
          sort_options = ICUSortOptions("records2")

  record-dumper:
    extensions:
      - SystemFieldDumperExt()

Run invenio oarepo cf init to initialize custom fields, invenio oarepo index reindex if you already have data inside the repository and from this moment on, /records?sort=title and /records?suggest=abc should work

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oarepo-runtime-1.4.23.tar.gz (47.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oarepo_runtime-1.4.23-py3-none-any.whl (73.6 kB view details)

Uploaded Python 3

File details

Details for the file oarepo-runtime-1.4.23.tar.gz.

File metadata

  • Download URL: oarepo-runtime-1.4.23.tar.gz
  • Upload date:
  • Size: 47.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for oarepo-runtime-1.4.23.tar.gz
Algorithm Hash digest
SHA256 e94abd93fdbcd89380db1fa21a3f7ce9c3142a7aec69715d0ace7db5f2b1724b
MD5 2ee0ad0d8458683c304b3a026e865815
BLAKE2b-256 e03ba7f77e5d537d8560b79e0801de1e8292054127f8611fd601a629f7c20596

See more details on using hashes here.

File details

Details for the file oarepo_runtime-1.4.23-py3-none-any.whl.

File metadata

File hashes

Hashes for oarepo_runtime-1.4.23-py3-none-any.whl
Algorithm Hash digest
SHA256 559cd22dae3b76a17dfc4e0d2f5dbded10955ff4a2331e219c2cf5a4ffbd9eee
MD5 7a407a091b03236935baa1db66f992bc
BLAKE2b-256 413a51835ffcd5714e59ef0e9d35546be8e06ead8b72cce3ca7a57e1cb63eb77

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page