2023-08-02 09:08:03 +02:00
2023-06-05 18:25:47 +02:00
2023-04-11 09:16:13 +02:00
2023-04-10 17:23:08 +02:00
2023-04-11 09:16:50 +02:00
2023-04-11 09:44:57 +02:00
2023-07-31 16:15:43 +02:00
2023-04-10 17:13:09 +02:00
2023-07-31 16:15:43 +02:00
2023-06-05 15:59:04 +02:00

ICON Service Base

ICON Service Base is a git repository that contains code shared among all Icon services in a service-oriented architecture. The repository consists of a backend written in Python and a frontend written in TypeScript.

Modules

Database Module

The Database module provides a robust and scalable solution for interacting with our PostgreSQL and InfluxDB databases. Both connections are managed using credentials provided through environment variables.

PostgreSQL

The PostgreSQL submodule includes a class for managing PostgreSQL database sessions (PostgresDatabaseSession). It provides a Pythonic interface to the SQL language using the sqlmodel library, and includes features for managing transactions and handling errors.

InfluxDB

The InfluxDB submodule provides a class (InfluxDBConnection) to manage connections to an InfluxDB server. This class serves as a context manager to handle these connections, automatically opening and closing the connection when needed. It provides functionalities for writing data points to a bucket and creating new buckets.

Installation

Python

Make sure you have Python 3.10 or later installed on your system. The dependencies of this package are handled with poetry. You can install the icon_service_base like so:

poetry add git+ssh://git@gitlab.phys.ethz.ch:tiqi-projects/qchub/icon-services/icon_service_base.git

TypeScript frontend

Make sure you have Node.js and npm or yarn installed on your system. You can install @icon-services/icon_service_base like so:

npm install git+ssh://git@gitlab.phys.ethz.ch:tiqi-projects/qchub/icon-services/icon_service_base.git

Usage

Python

The Python code can be used as a library in other ICON services. Import the relevant modules and classes from the icon_service_base package in your Python code, as needed.

TypeScript Frontend

The frontend code contains the core of the typescript openAPI clients generated by openapi-typescript-codegen. This needs to be imported in the ICON services like so:

import { OpenAPI } from '@icon-services/icon_service_base'
import { request as __request } from '@icon-services/icon_service_base'
export { ApiError } from '@icon-services/icon_service_base'
export {
  CancelablePromise,
  CancelError,
} from '@icon-services/icon_service_base'
export type { OpenAPIConfig } from '@icon-services/icon_service_base'

License

This project is licensed under the MIT License. See the LICENSE file for details.

Description
No description provided
Readme MIT 229 KiB
Languages
Python 100%