Skip to main content

A library for to transform an openAPI file to a dcat:DataService

Project description

Tests codecov PyPI Read the Docs

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


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)

Uploaded Source

Built Distribution

oastodcat-2.0.0a1-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

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

Hashes for oastodcat-2.0.0a1.tar.gz
Algorithm Hash digest
SHA256 d14b2680b1895ebd8ed33ea5aa649a5e2b0c27d529cc21fbc83dcfce291259f8
MD5 6991e8d67db928457bb9c3117690cdb7
BLAKE2b-256 736ef9b8538e56737044506b065f99467db99d6695ff1a2a03829a1fac0dfa5b

See more details on using hashes here.

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

Hashes for oastodcat-2.0.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 a1c93d25169b9f3ebf412e5e26704538a8336e18de271cdeee3e7cff5493d659
MD5 7ac8da1c23858ead4c6c29ff00c115f8
BLAKE2b-256 edb5985c2e410e34959e112be005cbe6b2eff37591f204a4ed10289a41b041f4

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