https://github.com/kth/diva-invenio-data-exchanger
data exchange between the DIVA and Invenio systems.
https://github.com/kth/diva-invenio-data-exchanger
diva invenio-rdm python records-management
Last synced: about 1 month ago
JSON representation
data exchange between the DIVA and Invenio systems.
- Host: GitHub
- URL: https://github.com/kth/diva-invenio-data-exchanger
- Owner: KTH
- License: mit
- Created: 2023-04-28T15:51:18.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-06-07T22:44:26.000Z (about 3 years ago)
- Last Synced: 2023-08-04T04:55:36.752Z (almost 3 years ago)
- Topics: diva, invenio-rdm, python, records-management
- Language: Python
- Homepage:
- Size: 64.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

# DIVA Invenio data exchanger
The DIVA Invenio Data Exchanger is a Python-based tool designed to facilitate data exchange between the DIVA and Invenio systems.
The tool provides a seamless way to move data between these two systems, making it easy to convert Diva data into Invenio platform and vice versa.
## prerequisites:
Make sure your virtual environment is set up.
## How to convert
Makefile provides you a convenient interface with the following commands:
### make
List the available commands:
```bash
make
```
### install
Installs the Python dependencies specified in the requirements.txt file
```bash
make install
```
### run
Runs the main.py Python script with the input and output arguments provided as command line arguments.
```bash
make run path_in=data/input/100-pub.csv path_out=data/output/100-pub.json
```
expected input structure from Diva: [here](tests/fixtures/input/fixture.csv)
### Format
Formats the code using the black code formatter and isort.
```bash
make format
```
### Test
```bash
make test
```
### Contribution Request:
Find TODO, send PR.
### Invenio API
Most likelly we will use [newman](https://www.npmjs.com/package/newman) it's a free command-line collection runner for Postman, it can generate reports and take care of the API requests part.
## Resources:
### [Invenio docs](https://inveniordm.docs.cern.ch/reference/metadata/)
### [Pandas docs](https://pandas.pydata.org/docs/getting_started/intro_tutorials/10_text_data.html)
### [Invenio record schema](https://github.com/inveniosoftware/invenio-rdm-records/blob/6d7758714d08be9317bed5d402fc09731f71bf3d/invenio_rdm_records/records/jsonschemas/records/record-v6.0.0.json)
## TODOs
Look into the implementation of: https://github.com/front-matter/commonmeta-py