Skip to main content

CCMM (Czech Core Metadata Model) components for NRP Invenio

Project description

CCMM-Invenio: CCMM runtime library for NRP Invenio

This library provides:

  • Fixtures for vocabularies to support the CCMM model in NRP Invenio
  • Schema serializers for the CCMM model
  • Import and export modules for the CCMM model
  • UI components for working with the CCMM model in NRP Invenio

Installation

pip install ccmm-invenio

Usage

To use CCMM in production repository, add the following model:

# models/datasets.py
production_dataset = model(
    "production_dataset",
    version="1.1.0",
    presets=[
        ccmm_production_preset,
    ],
    configuration={
        # "ui_blueprint": "myui
    },
    types=[
        {
            "Metadata": {
                "properties": {
                    # your extensions come here, ccmm_production_preset will add 
                    # all ccmm fields automatically
                },
            },
        }
    ],
    metadata_type="Metadata",
    customizations=[],
)

# invenio.cfg
production_dataset.register() 

How to generate new NMA and Production CCMM model mappings

Download and pre-process CCMM XML

Follow the instructions in ccmm_versions/README.md to download and pre-process the CCMM XML schemas for the desired version. This will create:

  • Cleaned XSD files in ccmm_versions/src/ccmm_versions/ccmm-<version>-<date>/out
  • A diff file in ccmm_versions/diffs/ comparing the new version to the previous one
  • A schema overview in ccmm_versions/summaries/ccmm-<version>-<date>.summary.md

Adapt CCMM model yaml files

Copy/paste the model in src/ccmm_invenio/models/<previous-version>-<date>/ to src/ccmm_invenio/models/<new-version>-<date>/.

Look at the diff file generated in the previous step and adapt the ccmm.yaml, ccmm-invenio.yaml, ccmm-vocabularies.yaml, and gml-1.1.0.yaml files in src/ccmm_invenio/models/<version>-<date>/ accordingly.

Then look at the src/ccmm_invenio/models/__init__.py file and add the new version there.

Generate NMA Parser

CCMM_VERSION_DIR=1.1.0a1-2025-10-25
CCMM_VERSION=1.1.0

python ./src/ccmm_invenio/parsers/generate_parser.py  \
       ./src/ccmm_invenio/models/$CCMM_VERSION_DIR/ccmm.yaml \
       ./src/ccmm_invenio/models/$CCMM_VERSION_DIR/ccmm-vocabularies.yaml \
       ./src/ccmm_invenio/models/$CCMM_VERSION_DIR/gml-1.1.0.yaml \
       ./src/ccmm_invenio/parsers/nma_$(echo "$CCMM_VERSION" | tr "." "_")$.py

Update production parser manually based on NMA parser

# file production_<version>.py
from .nma_<version> import CCMMXMLNMAParser

class CCMMXMLProductionParser(CCMMXMLProductionParserBase, CCMMXMLNMAParser):
    """Parser for CCMM XML version 1.1.0 for production repository."""
    # tweaks here

TODO: imports, exports

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

ccmm_invenio-1.1.0a8.tar.gz (390.0 kB view details)

Uploaded Source

Built Distribution

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

ccmm_invenio-1.1.0a8-py3-none-any.whl (420.8 kB view details)

Uploaded Python 3

File details

Details for the file ccmm_invenio-1.1.0a8.tar.gz.

File metadata

  • Download URL: ccmm_invenio-1.1.0a8.tar.gz
  • Upload date:
  • Size: 390.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ccmm_invenio-1.1.0a8.tar.gz
Algorithm Hash digest
SHA256 1a1dc50513391daef9af85b9f908e6f732b800b8a378035ad2b11b36e41c3c06
MD5 bde1ff1a65a797c9c32f302e085e4b6a
BLAKE2b-256 931db9ecc86fe1ff0e49c7675e317fa34544293e732e5e9a161633b54be0d08e

See more details on using hashes here.

File details

Details for the file ccmm_invenio-1.1.0a8-py3-none-any.whl.

File metadata

  • Download URL: ccmm_invenio-1.1.0a8-py3-none-any.whl
  • Upload date:
  • Size: 420.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ccmm_invenio-1.1.0a8-py3-none-any.whl
Algorithm Hash digest
SHA256 a6321f644ffa0cca5b718b42c15b288eb35054edc69d993e4a83b3c1c353302e
MD5 cda18ad6777404fadf2fe83b8b1f2fb6
BLAKE2b-256 4bc612ff0f71fd7c6d57396b5f2841d38585d5599e9a2bfbed82cedd93639e06

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