Git Product home page Git Product logo

rdmo-plugins's Introduction

rdmo-plugins

Python Versions Django Versions License
pre-commit Ruff CI Workflow Status

  1. Synopsis
  2. Setup
  3. Other plugins
    1. RDMO Sensor AWI optionset plugin

Synopsis

Import and export plugins for RDMO. Included are plugins for maDMP, DataCite (Kernel 4.3), and the Radar metadata schema.

Since the RDMO questionnaires and the domain does not contain all information needed for maDMP, DataCite, or Radar, the exports will not produce valid files. We will fix this in the future.

Please visit the RDMO documentation for detailed information.

Please note that the re3data plugin was moved to a separate repository.

Setup

Install the plugins in your RDMO virtual environment using pip (directly from GitHub):

python -m pip install git+https://github.com/rdmorganiser/rdmo-plugins

Add the rdmo_plugins to the INSTALLED_APPS in config/settings/local.py:

from . import INSTALLED_APPS
INSTALLED_APPS = ["rdmo_plugins", *INSTALLED_APPS]

Add the export plugins to the PROJECT_EXPORTS in config/settings/local.py:

from django.utils.translation import gettext_lazy as _
from . import PROJECT_EXPORTS

PROJECT_EXPORTS += [
    ('madmp', _('as maDMP JSON'), 'rdmo_plugins.exports.madmp.MaDMPExport'),
    ('datacite-xml', _('as DataCite XML'), 'rdmo_plugins.exports.datacite.DataCiteExport'),
    ('radar-xml', _('as RADAR XML'), 'rdmo_plugins.exports.radar.RadarExport'),
    ('radar', _('directly to RADAR'), 'rdmo_plugins.exports.radar.RadarExportProvider'),
    ('zenodo', _('directly to Zenodo'), 'rdmo_plugins.exports.zenodo.ZenodoExportProvider')
]

Add the import plugins to the PROJECT_IMPORTS in config/settings/local.py:

from django.utils.translation import gettext_lazy as _
from . import PROJECT_IMPORTS

PROJECT_IMPORTS += [
    ('madmp', _('from maDMP'), 'rdmo_plugins.imports.madmp.MaDMPImport'),
    ('datacite', _('from DataCite XML'), 'rdmo_plugins.imports.datacite.DataCiteImport'),
    ('radar', _('from RADAR XML'), 'rdmo_plugins.imports.radar.RadarImport'),
]

After restarting RDMO, the exports/imports should be usable for all projects.

Other plugins

RDMO Sensor AWI optionset plugin

https://github.com/hafu/rdmo-sensor-awi

Queries the Sensor Information System of the Alfred-Wegener-Institut, Helmholtz-Zentrum für Polar- und Meeresforschung (AWI).

This is an example optionset plugin, to show how to gather information from other systems.

rdmo-plugins's People

Contributors

jochenklar avatar afuetterer avatar triole avatar henningtimm avatar mypydavid avatar

Stargazers

 avatar Max Schröder avatar Claas-Thido Pfaff avatar  avatar Yi Wang avatar

Watchers

James Cloos avatar  avatar Max Schröder avatar  avatar Harry Enke avatar  avatar  avatar

rdmo-plugins's Issues

Fix ruff E501 (line-too-long) errors

$ ruff check rdmo_plugins
rdmo_plugins/exports/datacite.py:359:121: E501 Line too long (126 > 120)
rdmo_plugins/exports/datacite.py:360:121: E501 Line too long (122 > 120)
rdmo_plugins/exports/datacite.py:415:121: E501 Line too long (121 > 120)
rdmo_plugins/exports/datacite.py:422:121: E501 Line too long (133 > 120)
rdmo_plugins/exports/datacite.py:425:121: E501 Line too long (135 > 120)
rdmo_plugins/exports/datacite.py:437:121: E501 Line too long (131 > 120)
rdmo_plugins/exports/datacite.py:473:121: E501 Line too long (166 > 120)
rdmo_plugins/exports/madmp.py:248:121: E501 Line too long (142 > 120)
rdmo_plugins/exports/madmp.py:302:121: E501 Line too long (153 > 120)
rdmo_plugins/exports/madmp.py:319:121: E501 Line too long (125 > 120)
rdmo_plugins/exports/madmp.py:341:121: E501 Line too long (134 > 120)
rdmo_plugins/exports/madmp.py:422:121: E501 Line too long (124 > 120)
rdmo_plugins/exports/radar/mixins.py:178:121: E501 Line too long (124 > 120)
rdmo_plugins/exports/radar/mixins.py:233:121: E501 Line too long (130 > 120)
rdmo_plugins/exports/radar/mixins.py:252:121: E501 Line too long (137 > 120)
rdmo_plugins/exports/radar/mixins.py:261:121: E501 Line too long (126 > 120)
rdmo_plugins/exports/radar/mixins.py:278:121: E501 Line too long (122 > 120)
rdmo_plugins/exports/radar/mixins.py:358:121: E501 Line too long (140 > 120)
rdmo_plugins/exports/radar/mixins.py:376:121: E501 Line too long (121 > 120)
rdmo_plugins/exports/radar/mixins.py:377:121: E501 Line too long (127 > 120)
rdmo_plugins/exports/radar/mixins.py:378:121: E501 Line too long (124 > 120)
rdmo_plugins/exports/radar/mixins.py:381:121: E501 Line too long (126 > 120)
rdmo_plugins/exports/radar/mixins.py:385:121: E501 Line too long (125 > 120)
rdmo_plugins/exports/radar/renderers.py:78:121: E501 Line too long (125 > 120)
rdmo_plugins/exports/radar/renderers.py:80:121: E501 Line too long (129 > 120)
rdmo_plugins/exports/radar/renderers.py:153:121: E501 Line too long (122 > 120)
rdmo_plugins/imports/datacite.py:83:121: E501 Line too long (139 > 120)
rdmo_plugins/imports/datacite.py:86:121: E501 Line too long (127 > 120)
rdmo_plugins/imports/datacite.py:91:121: E501 Line too long (153 > 120)
rdmo_plugins/imports/datacite.py:93:121: E501 Line too long (123 > 120)
rdmo_plugins/imports/datacite.py:97:121: E501 Line too long (131 > 120)
rdmo_plugins/imports/datacite.py:100:121: E501 Line too long (121 > 120)
rdmo_plugins/imports/datacite.py:107:121: E501 Line too long (125 > 120)
rdmo_plugins/imports/datacite.py:110:121: E501 Line too long (125 > 120)
rdmo_plugins/imports/datacite.py:176:121: E501 Line too long (130 > 120)
rdmo_plugins/imports/datacite.py:208:121: E501 Line too long (121 > 120)
rdmo_plugins/imports/datacite.py:278:121: E501 Line too long (122 > 120)
rdmo_plugins/imports/datacite.py:324:121: E501 Line too long (122 > 120)
rdmo_plugins/imports/datacite.py:414:121: E501 Line too long (122 > 120)
rdmo_plugins/imports/datacite.py:421:121: E501 Line too long (124 > 120)
rdmo_plugins/imports/datacite.py:493:121: E501 Line too long (122 > 120)
rdmo_plugins/imports/radar.py:83:121: E501 Line too long (139 > 120)
rdmo_plugins/imports/radar.py:86:121: E501 Line too long (127 > 120)
rdmo_plugins/imports/radar.py:91:121: E501 Line too long (153 > 120)
rdmo_plugins/imports/radar.py:93:121: E501 Line too long (123 > 120)
rdmo_plugins/imports/radar.py:97:121: E501 Line too long (131 > 120)
rdmo_plugins/imports/radar.py:100:121: E501 Line too long (121 > 120)
rdmo_plugins/imports/radar.py:107:121: E501 Line too long (125 > 120)
rdmo_plugins/imports/radar.py:110:121: E501 Line too long (125 > 120)
rdmo_plugins/imports/radar.py:118:121: E501 Line too long (122 > 120)
rdmo_plugins/imports/radar.py:121:121: E501 Line too long (127 > 120)
rdmo_plugins/imports/radar.py:200:121: E501 Line too long (127 > 120)
rdmo_plugins/imports/radar.py:232:121: E501 Line too long (121 > 120)
rdmo_plugins/imports/radar.py:267:121: E501 Line too long (122 > 120)
rdmo_plugins/imports/radar.py:302:121: E501 Line too long (122 > 120)
rdmo_plugins/imports/radar.py:348:121: E501 Line too long (122 > 120)
rdmo_plugins/imports/radar.py:436:121: E501 Line too long (122 > 120)
rdmo_plugins/imports/radar.py:443:121: E501 Line too long (124 > 120)
rdmo_plugins/imports/radar.py:534:121: E501 Line too long (122 > 120)
Found 59 errors.

Add GitHub actions workflow

This project should be linted and tested as well. There are no unit tests present at the moment. How can these plugins be tested? Do you need to install rdmo and rdmo-plugins to make them work in combination or could these importers/exporters be tested in isolation?

Plugin for publishing SMPs on GitHub

At the E-Science Days 2023 in Heidelberg, thanks to @jochenklar and @GJagusch, the idea came up to develop a plugin for a push action for SMP.

The aim would be to develop a plugin that helps to add a completed SMP (in parts) to a software on e.g. GitHub. The advantage of this would be that software developers would only have to fill in the SMP in RDMO and could quickly and seamless transfer this information to a repository through a simple plugin. This would make it easier to publish SMPs in software development in one place. This could increase the reproducibility of research software.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.