Package: lizard-connector
lizard-connectorwarning:Lizard API version 2 will deprecate on January 31th 2021, please switch to the default API version 3This can be done by either omitting the version parameter when creating a Client instance, or creating a Client instance with version 3 specified:IntroductionConnector to Lizard api (e.g.https://demo.lizard.net/api/v3) for python.Includes:
- Client (experimental / alpha)
- Endpoint (Easy access to Lizard api endpoints)
- Connector (http handling)
- parsers to parse the json obtained from Endpoint queries
- queryfunctions for special cases such as geographical queries and time related queries other queries can be input as a dictionary
- callbacks for async data handling.When pandas, numpy are installed the Client returnspandas.DataFrame`s and/or
`numpy.array`s in a `ScientifResultobject.Example usageAn example jupyter notebook can be foundExample_EN.ipynbor in Dutch:Voorbeeld_NL.ipynb.Use one endpointshttps://demo.lizard.net/api/v3in Python with the Endpoint
class:from lizard_connector import Client
import lizard_connector.queries
import datetime

# Fill in your username and password (your password will be prompted)
client = lizard_connector.Client(
    username = "example.username"
)

endpoint = 'timeseries'
south_west = [48.0, -6.8]
north_east = [56.2, 18.9]

organisation_id = 'example_organisation_uuid'

start = datetime.datetime(1970, 1, 1)
end = datetime.datetime.now()

relevant_queries = [
    lizard_connector.queries.in_bbox(south_west, north_east, endpoint),
    lizard_connector.queries.organisation(organisation_id, endpoint),
    lizard_connector.queries.datetime_limits(start, end)
]

results = client.timeseries.get(*relevant_queries)Usage with PyQT (for Qgis plugins)You can create a QThread worker like so:from PyQt4.QtCore import QThread
from PyQt4.QtCore import pyqtSignal


class Worker(QThread):
    """This class creates a worker thread for getting the data."""
    output = pyqtSignal(object)

    def __init__(self, parent=None, endpoint=None, *querydicts, **queries):
        """Initiate the Worker."""
        super(Worker, self).__init__(parent)
        self._endpoint = endpoint
        self._querydicts = querydicts
        self._queries = queries

    def run(self):
        """Called indirectly by PyQt if you call start().
        This method retrieves the data from Lizard and emits it via the
        output signal as dictionary.
        """
        data = self._endpoint._synchronous_get_async(
            *self._querydicts, **self._queries)
        self.output.emit(data)Creditsroel.vandenberg@nelen-schuurmans.nlstarted this libraryChangelog of lizard-connector0.7.3 (2020-12-17)Removed mentions of v2 API from docs.0.7.2 (2020-12-17)Added FutureWarnings when using the v2 API (default is V3)Renamed REAMDE.md to README.rst0.7.1 (2018-04-17)Nothing changed yet.0.7 (2018-04-17)Added Client.Added parsers (scientific, json).Added callbacks.Renamed Endpointdownload…methods toget….0.6 (2018-02-07)Add explicit py2/3 imports to mitigate problems with thefuturelibrary.0.5 (2017-10-16)Compatible with python 2.7.Refactored pagination.Added Async downloads with callback.Removes max_result on Endpoint initialisation.0.4 (2016-06-05)Fixed bug in iteration over paginated results.When all_pages is set to False all methods involving get return the object as
an iterator.0.3 (2016-05-06)Http base urls are not allowed, throws exception when baseurl is not secure
(i.e. does not start with https).Fixed a bug that caused a get to run two times.0.2 (2016-05-04)Added Datatype classes.Renamed Endpoint get and post to download and upload.0.1 (2016-03-29)Basic setupAdded testsInitial project structure created with nensskel 1.37.dev0.