Skip to main content

Invenio data model for OARepo

Project description

OARepo Invenio data model

image image image image

Invenio base record model.

Instalation

    pip install oarepo-invenio-model

Usage

The library provides extensible Invenio base record model.

JSON Schema

Add this package to your dependencies and use it via $ref in json schema.

Usage example

{
  "type": "object",
  "allOf": [
    {
      "properties": {
        "title": {
          "type": "string"
        }
      }
    },
    {
      "$ref": "/schemas/invenio-v3.0.0.json#/definitions/InvenioRecord"
    }
  ],
  "additionalProperties": "false"
}

Elastic Search Mapping

Use oarepo-mapping-includes library for extanding invenio base record model mapping.

Usage example

{
  "mappings": {
    "dynamic": "strict",
    "oarepo:extends": "invenio-v3.0.0.json#/InvenioRecord",
    "properties": {
         "title": {
        "type": "text"
      }
    }
  }
}

Marshmallow

You can extense your schema with Invenio base model schema by inheriting from InvenioRecordMetadataSchemaV1Mixin.

Usage example

class SampleSchemaV1(InvenioRecordMetadataSchemaV1Mixin):
    title = fields.String(validate=validate.Length(min=5), required=True)

Schema inheritance

JSON Schema provides allOf construct to join multiple schemas. The current implementation of python's schema validator can not handle allOf in top-level element.

To enable composition of schemas in the form of top-level "includes":

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "allOf": [
    {
      "$ref": "/schemas/dcterms-v2.0.0.json#/definitions/DCObject"
    },
    {
      "$ref": "/schemas/invenio-v3.0.0.json#/definitions/InvenioRecord"
    },
    {
      "properties": {
        "category": {
          "type": "string",
          "enum": ["kovy", "sklo", "keramika", "textil"]
        }
      }
    }
  ]
}

inherit your record class from InheritedSchemaRecordMixin:

from oarepo_invenio_model import InheritedSchemaRecordMixin
from invenio_records.api import Record

class MyRecord(InheritedSchemaRecordMixin, Record):
    pass

Changes

[Version 2.0.0]

  • Update schemas, mappings and marshmallow to latest records rest schemas
  • Switch record id type from string to PersistentIdentifier

[Version 1.1.0]

  • Export Invenio ES mappings

Invenio base record model.

Project details


Download files

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

Source Distribution

oarepo_invenio_model-3.0.2.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

oarepo_invenio_model-3.0.2-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file oarepo_invenio_model-3.0.2.tar.gz.

File metadata

  • Download URL: oarepo_invenio_model-3.0.2.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.6

File hashes

Hashes for oarepo_invenio_model-3.0.2.tar.gz
Algorithm Hash digest
SHA256 e3e1a5193d2acd36cc2f1b8ad312c1a617899f2ade22ee3b54ec89e6a2f654aa
MD5 d0210840c9b422c942b2281199cb3b77
BLAKE2b-256 3849ad5b8e6e44e65e477fcfeb49883ef17b4557c2ac475f03f4849529490058

See more details on using hashes here.

File details

Details for the file oarepo_invenio_model-3.0.2-py3-none-any.whl.

File metadata

  • Download URL: oarepo_invenio_model-3.0.2-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.6

File hashes

Hashes for oarepo_invenio_model-3.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 aac79bba5047eb9b708cf45cb4c8a9c496279a62462e75838224b63f13ce896b
MD5 2eed17e81c5f3ac69cc5c0eb004f2481
BLAKE2b-256 76c04fec33840ef7030d5b2398abd9d6c4ee0d5b5e10300267ffb3e70f9b8208

See more details on using hashes here.

Supported by

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