Naam aanpassing ddOperApi & versie
* Aanpassingen dd-oper-api ddOperApi * Aanpassingen dd-api-oper ddOperApi * __version__ toegevoegd inclusief githook
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,4 +1,4 @@
|
||||
*.swp
|
||||
dd-oper-api/__pycache__
|
||||
__pycache__
|
||||
dd_oper_api.egg-info
|
||||
dist
|
||||
|
@@ -24,6 +24,8 @@ inclusief:
|
||||
|
||||
## De inhoud van de git repository
|
||||
|
||||
TODO: Aanpassen aan module
|
||||
|
||||
* ddapioper.py: Python module
|
||||
* test-ddapi: Een klein voorbeeld en test programma voor de module
|
||||
* DD-API-Oper demo.ipynb: Een [Jupyter notebook](met een demo).
|
||||
@@ -73,4 +75,4 @@ stabiele code!
|
||||
|
||||
## Vragen en/of uitbreidingen.
|
||||
|
||||
Vragen en of uitbreidingen kunnen gemaild worden naar ddapioper@pion.xs4all.nl.
|
||||
Vragen en of uitbreidingen kunnen gemaild worden naar ddoperapi@pion.xs4all.nl.
|
||||
|
@@ -2,12 +2,12 @@
|
||||
|
||||
This module contains the following classes:
|
||||
|
||||
* ddApiOper: Main class to connect to the dd api oper interface
|
||||
* ddApiResult: Super class for results
|
||||
- ddApiLocation: Result class for locations
|
||||
- ddApiQuantitie: Result class for quantities
|
||||
- ddApiValues: Result class for values
|
||||
* ddApiOperHttpError: Exception class for http errors
|
||||
* ddOperApi: Main class to connect to the dd api oper interface
|
||||
* ddOperResult: Super class for results
|
||||
- ddOperLocation: Result class for locations
|
||||
- ddOperQuantitie: Result class for quantities
|
||||
- ddOperValues: Result class for values
|
||||
* ddOperApiHttpError: Exception class for http errors
|
||||
|
||||
See:
|
||||
https://digitaledeltaorg.github.io/dd-oper.v201.html
|
||||
@@ -19,7 +19,10 @@ import numpy as np
|
||||
from datetime import datetime, timedelta
|
||||
from dateutil.parser import isoparse
|
||||
|
||||
class ddApiOper:
|
||||
""" Version info changed by git hook """
|
||||
__version__ = 'XXXX'
|
||||
|
||||
class ddOperApi:
|
||||
"""
|
||||
Class that connects to the digitale delta api with a client certificate.
|
||||
|
||||
@@ -33,7 +36,7 @@ class ddApiOper:
|
||||
RWS_DD_API = "https://ddapi.rws.nl/dd-oper/2.0"
|
||||
|
||||
def __init__(self, certfile=None, certkey=None, url=RWS_DD_API, checkssl=True):
|
||||
"""ddApiOper(certfile, certKey, url="https://ddapi.rws.nl/dd-oper/2.0", checkssl=True)
|
||||
"""ddOperApi(certfile, certKey, url="https://ddapi.rws.nl/dd-oper/2.0", checkssl=True)
|
||||
|
||||
certfile: x509 pki overheidscertificaat
|
||||
certKey: Unencrypted private key
|
||||
@@ -48,7 +51,7 @@ Details for the certificate files see:
|
||||
self.certkey = certkey
|
||||
self.url = url
|
||||
self.checkssl = checkssl
|
||||
logging.debug("ddApiOper.__init__(%s)" % url)
|
||||
logging.debug("ddOperApi.__init__(%s)" % url)
|
||||
|
||||
def get(self, url):
|
||||
"""get(url)
|
||||
@@ -57,29 +60,29 @@ Get the json data from the dd-api with pyton request.
|
||||
|
||||
Note: Internal use!
|
||||
"""
|
||||
logging.debug("ddApiOper.get(%s)" % url)
|
||||
logging.debug("ddOperApi.get(%s)" % url)
|
||||
try:
|
||||
req = requests.get(url, cert=(self.certfile, self.certkey))
|
||||
except Exception as e:
|
||||
logging.exception("ddApiOper.get error: %s" % e)
|
||||
logging.exception("ddOperApi.get error: %s" % e)
|
||||
raise(e)
|
||||
if (req.status_code != 200):
|
||||
raise ddApiOperHttpError(req.status_code)
|
||||
raise ddOperApiHttpError(req.status_code)
|
||||
return(req.json())
|
||||
|
||||
def locations(self):
|
||||
"""locations()
|
||||
|
||||
Request the list of locations and return a ddApiLocation object.
|
||||
Request the list of locations and return a ddOperLocation object.
|
||||
"""
|
||||
return(ddApiLocation(self.get(self.url + "/locations")["results"]))
|
||||
return(ddOperLocation(self.get(self.url + "/locations")["results"]))
|
||||
|
||||
def quantities(self):
|
||||
"""quantities()
|
||||
|
||||
Request the list of quantities and return a ddApiQuntitie object.
|
||||
Request the list of quantities and return a ddOperQuntitie object.
|
||||
"""
|
||||
return(ddApiQuantitie(self.get(self.url + "/quantities")["results"]))
|
||||
return(ddOperQuantitie(self.get(self.url + "/quantities")["results"]))
|
||||
|
||||
def locationQuantities(self, location):
|
||||
"""locationQuantities(location)
|
||||
@@ -87,9 +90,9 @@ Request the list of quantities and return a ddApiQuntitie object.
|
||||
location: A dd-api location (e.g. hoekvanholland)
|
||||
|
||||
Request the list of quantities from a location and return
|
||||
a ddApiQuntitie object.
|
||||
a ddOperQuntitie object.
|
||||
"""
|
||||
return(ddApiQuantitie(self.get(self.url + "/locations/%s/quantities" % location)["results"]))
|
||||
return(ddOperQuantitie(self.get(self.url + "/locations/%s/quantities" % location)["results"]))
|
||||
|
||||
def values(self, location, quantitie, process="measurement",
|
||||
starttime=None, endtime=None,
|
||||
@@ -114,10 +117,10 @@ aspectset(optional): Default minimum (normal, maximum)
|
||||
starttime = starttime.isoformat() + "Z"
|
||||
if type(endtime) == datetime:
|
||||
endtime = endtime.isoformat() + "Z"
|
||||
logging.debug("ddApiOper.values(%s, %s, %s, %s, %s, %s, %s)" % (
|
||||
logging.debug("ddOperApi.values(%s, %s, %s, %s, %s, %s, %s)" % (
|
||||
location, quantitie, process, starttime, endtime,
|
||||
intervalLength, aspectset))
|
||||
return(ddApiValues(self.get((
|
||||
return(ddOperValues(self.get((
|
||||
"%s"
|
||||
"/locations/%s/quantities/%s"
|
||||
"/timeseries?&startTime=%s&endTime=%s"
|
||||
@@ -131,22 +134,22 @@ aspectset(optional): Default minimum (normal, maximum)
|
||||
intervalLength, aspectset
|
||||
))))
|
||||
|
||||
class ddApiResult(object):
|
||||
class ddOperResult(object):
|
||||
"""
|
||||
Class ddApiResult:
|
||||
Class ddOperResult:
|
||||
|
||||
Base class for ddApiResults.
|
||||
Base class for ddOperResults.
|
||||
"""
|
||||
|
||||
def __init__(self, data):
|
||||
"""ddApiResult(data)"""
|
||||
"""ddOperResult(data)"""
|
||||
self.data = data
|
||||
|
||||
class ddApiLocation(ddApiResult):
|
||||
class ddOperLocation(ddOperResult):
|
||||
"""
|
||||
Class ddApiLocation:
|
||||
Class ddOperLocation:
|
||||
|
||||
ddApi Result class for locations.
|
||||
ddOper Result class for locations.
|
||||
"""
|
||||
|
||||
def __init__(self, data):
|
||||
@@ -192,11 +195,11 @@ Returns the coordinates of a location
|
||||
"""
|
||||
return(self.locationDetail(locationName)["geometry"]["coordinates"])
|
||||
|
||||
class ddApiQuantitie(ddApiResult):
|
||||
class ddOperQuantitie(ddOperResult):
|
||||
"""
|
||||
Class ddApiQuantitie:
|
||||
Class ddOperQuantitie:
|
||||
|
||||
ddApi Result class for Quantities.
|
||||
ddOper Result class for Quantities.
|
||||
"""
|
||||
|
||||
def quantities(self):
|
||||
@@ -206,11 +209,11 @@ Returns a list of quantities
|
||||
"""
|
||||
return(self.data)
|
||||
|
||||
class ddApiValues(ddApiResult):
|
||||
class ddOperValues(ddOperResult):
|
||||
"""
|
||||
Class ddApiValues:
|
||||
Class ddOperValues:
|
||||
|
||||
ddApi Result class for values.
|
||||
ddOper Result class for values.
|
||||
"""
|
||||
|
||||
def provider(self):
|
||||
@@ -330,9 +333,9 @@ Returns the result set as string in the sip format!
|
||||
sep = ";"
|
||||
return(r)
|
||||
|
||||
class ddApiOperHttpError(Exception):
|
||||
class ddOperApiHttpError(Exception):
|
||||
"""
|
||||
Class ddApiOperHttpError
|
||||
Class ddOperApiHttpError
|
||||
|
||||
Exception class to use on http errors.
|
||||
"""
|
||||
@@ -342,9 +345,9 @@ Exception class to use on http errors.
|
||||
def __str__(self):
|
||||
return("Code: %s" % self.code)
|
||||
|
||||
class ddApiOperJsonError(Exception):
|
||||
class ddOperApiJsonError(Exception):
|
||||
"""
|
||||
Class ddApiOperJsonError
|
||||
Class ddOperApiJsonError
|
||||
|
||||
Exception class to use on json errors.
|
||||
"""
|
@@ -14,7 +14,7 @@
|
||||
"\n",
|
||||
"## Een demo van de digitale delta api op basis van python\n",
|
||||
"\n",
|
||||
"We zullen gebruik maken van de module \"ddapioper.py\" waarmee we het gebruik demonstreren. We starten met de import van de module.\n",
|
||||
"We zullen gebruik maken van de module \"ddOperApi\" waarmee we het gebruik demonstreren. We starten met de import van de module.\n",
|
||||
"\n",
|
||||
"Vervolgens maken we een object aan die we het certificaat mee geven. Dit object rws verzorgt de dd-api calls."
|
||||
]
|
||||
@@ -25,7 +25,7 @@
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from ddapioper import ddApiOper"
|
||||
"from ddOperApi import ddOperApi"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
6
githooks/pre-commit
Executable file
6
githooks/pre-commit
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
VERSION=$(grep version setup.py | sed -e 's/.*="//' -e 's/",//')
|
||||
sed -i "s/^__version__ = .*/__version__ = '${VERSION}'/" dd-oper-api/__init__.py
|
||||
git add lmwsip/__init__.py
|
||||
|
||||
python setup.py test
|
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
import logging
|
||||
from ddapioper import ddApiOper
|
||||
from ddoperapi import ddOperApi
|
||||
from pprint import pprint
|
||||
|
||||
def locations(rws):
|
||||
@@ -34,7 +34,7 @@ def waterlevelHoekvanHolland(rws):
|
||||
|
||||
def main():
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
rws = ddApiOper("<TODO>.crt", "<TODO>.key")
|
||||
rws = ddOperApi("<TODO>.crt", "<TODO>.key")
|
||||
#locations(rws)
|
||||
#quantities(rws)
|
||||
#quantitiesHoekvanHolland(rws)
|
||||
|
Reference in New Issue
Block a user