The AVACloud web service offers you an easy way to integrate all GAEB & tendering (AVA in German) workflows in your Python based application. This example shows you how to obtain an authentication token from Dangl.Identity, which will then be used with AVACloud to transform a GAEB file to Excel and finally do some analysis and reporting of the projects content.
Other use cases, such as converting from GAEB to GAEB or to the unified Dangl.AVA project system follow the same principles and are just as easy with the AVACloud Python client.

Python - GAEB Example Source Code

The source code for the example app is available on GitHub. You can download it and work directly with it.

Project Creation & AVACloud Client

When you create a new project, you can directly install the python client via pip install git+https://github.com/Dangl-IT/avacloud-client-python.git.

App Entry

The entry point for the demo is a simple python script, hello_avacloud.py.

Client Authentication

The authentication of AVACloud is based on OpenID and utilizes JSON Web Tokens (JWT) to authenticate and authorize API calls. If you have not done so yet, please register a Developer account at Dangl.Identity to get 30 days full access to AVACloud. If you need a longer evaluation phase, please contact DanglIT.

In the next step, we'll build a function that authenticates itself via the Client Credentials grant type with Dangl.Identity to get access to the AVACloud API:

The variables client_id and client_secret are defined globally and have to be set up by you. To implement authentication, you can use any OpenID Connect (OIDC) compatible library.
The actual authentication process is straightforward - you send your ClientId and your ClientSecret to the token endpoint of Dangl.Identity https://identity.dangl-it.com/connect/token and receive an access_token that is valid for 60 minutes for all API calls.

Access the GAEB Project Contents with Python

With the Dangl.AVA format, you are able to integrate a single interface in your existing applications to be able to support all GAEB formats in Python.

It does not matter what kind of the many different GAEB files you have - AVACloud recognizes the correct type automatically and returns a unified data structure. The following method simply prints the unified structure of the GAEB input file to the terminal:

Transform a GAEB File to Microsoft Excel with Python

Another use case is to transform GAEB files, for example to Excel:

Do you have questions regarding the usage of AVACloud? You want to quickly implement a GAEB interface for your Python application? Please contact us!