A library for to transform an openAPI file to a dcat:DataService
Project description
oastodcat
A small Python library to transform an openAPI file to a dcat:DataService
At this moment we support all 3.0.x versions of (The OpenAPI specification)[https://github.com/OAI/OpenAPI-Specification]
Usage
Install
% pip install oastodcat
Getting started
import yaml
import requests
from datacatalogtordf import Catalog
from oastodcat import OASDataService
# Create catalog object
catalog = Catalog()
catalog.identifier = "http://example.com/catalogs/1"
catalog.title = {"en": "A dataset catalog"}
catalog.publisher = "https://example.com/publishers/1"
# Create a dataservice based on an openAPI-specification:
url = ("https://raw.githubusercontent.com/"
"OAI/OpenAPI-Specification/master/examples/v3.0/petstore.yaml"
)
oas = yaml.safe_load(requests.get(url).text)
dataservice = OASDataService(oas)
dataservice.identifier = "http://example.com/dataservices/1"
dataservice.endpointDescription = url
#
# Add dataservice to catalog:
catalog.services.append(dataservice)
# Get dcat representation in turtle (default)
dcat = catalog.to_rdf()
print(dcat.decode())
Mapping
The following table shows how an openAPI specification is mapped to a dcat:DataService:
(Only dcat:DataService properties are shown.)
dcat:DataService | RDF property | openAPI v 3.0.x |
---|---|---|
endpoint description | dcat:endpointDescription | |
endpoint URL | dcat:endpointURL | servers.url |
serves dataset | n/a | |
access rights | ||
conforms to | ||
contact point | dcat:contactPoint | info.contact |
creator | ||
description | dct:description | info.description |
has policy | ||
identifier | n/a | |
is referenced by | ||
keyword/tag | ||
landing page | dcat:landingPage | externalDocs |
license | dct:license | info.license.url |
resource language | ||
relation | ||
rights | ||
qualified relation | ||
publisher | ||
release date | ||
theme/category | ||
title | dct:title | info.title |
type/genre | ||
update/modification date | ||
qualified attribution | ||
media type | dcat:mediaType | <it's complicated> |
Development
Requirements
Install
% git clone https://github.com/Informasjonsforvaltning/oastodcat.git
% cd oastodcat
% pyenv install 3.8.3
% pyenv install 3.7.7
% pyenv local 3.8.3 3.7.7
% poetry install
Run all sessions
% nox
Run all tests with coverage reporting
% nox -rs tests
Debugging
You can enter into Pdb by passing --pdb
to pytest:
nox -rs tests -- --pdb
You can set breakpoints directly in code by using the function breakpoint()
.
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
oastodcat-2.0.0a1.tar.gz
(9.7 kB
view details)
Built Distribution
File details
Details for the file oastodcat-2.0.0a1.tar.gz
.
File metadata
- Download URL: oastodcat-2.0.0a1.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.6 Linux/5.4.0-1026-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d14b2680b1895ebd8ed33ea5aa649a5e2b0c27d529cc21fbc83dcfce291259f8 |
|
MD5 | 6991e8d67db928457bb9c3117690cdb7 |
|
BLAKE2b-256 | 736ef9b8538e56737044506b065f99467db99d6695ff1a2a03829a1fac0dfa5b |
File details
Details for the file oastodcat-2.0.0a1-py3-none-any.whl
.
File metadata
- Download URL: oastodcat-2.0.0a1-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.5 CPython/3.8.6 Linux/5.4.0-1026-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1c93d25169b9f3ebf412e5e26704538a8336e18de271cdeee3e7cff5493d659 |
|
MD5 | 7ac8da1c23858ead4c6c29ff00c115f8 |
|
BLAKE2b-256 | edb5985c2e410e34959e112be005cbe6b2eff37591f204a4ed10289a41b041f4 |