1
0
Fork 0
mirror of https://github.com/yweber/lodel2.git synced 2026-05-21 04:36:05 +02:00
lodel2_mirror/leobject/datasources/dummy.py

76 lines
3.6 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#-*- coding: utf-8 -*-
## @brief Dummy datasource for LeObject
#
# This class has to be extended to apply to a real datasource
# But it can be used as an empty and debug datasource
class DummyDatasource(object):
def __init__(self, module=None, *conn_args, **conn_kargs):
self.module = module
self.conn_args = conn_args
self.conn_kargs = conn_kargs
## @brief update an existing LeObject
# @param letype LeType : LeType child class
# @param leclass LeClass : LeClass child class
# @param filters list : List of filters (see @ref leobject_filters )
# @param rel_filters list : List of relationnal filters (see @ref leobject_filters )
# @param data dict : Dict representing fields and there values
# @return True if success
def update(self, letype, leclass, filters, rel_filters, data):
print ("DummyDatasource.update: ", letype, leclass, filters, rel_filters, data)
return True
## @brief create a new LeObject
# @param letype LeType : LeType child class
# @param leclass LeClass : LeClass child class
# @param data list: a lis of dictionnary of field:value to save
# @return lodel_id int: new lodel_id of the newly created LeObject
def insert(self, letype, leclass, datas):
print("DummyDatasource.insert: ", letype, leclass, datas)
return 42
## @brief delete an existing LeObject
# @param letype LeType : LeType child class
# @param leclass LeClass : LeClass child class
# @param filters list : list of tuples formatted as (FIELD, OPERATOR, VALUE) (see @ref leobject_filters )
# @param relational_filters list : relationnal filters list (see @ref leobject_filters )
# @return okay bool: True on success, it will raise on failure
def delete(self, letype, leclass, filters, relational_filters):
print("DummyDatasource.delete: ", letype, leclass, filters, relational_filters)
return True
## @brief search for a collection of objects
# @param leclass LeClass : LeClass instance
# @param letype LeType : LeType instance
# @param field_list list : list of fields to get from the datasource
# @param filters list : list of tuples formatted as (FIELD, OPERATOR, VALUE) (see @ref leobject_filters )
# @param relational_filters list : relationnal filters list (see @ref leobject_filters )
# @return responses ({string:*}): a list of dict with field:value
def get(self, leclass, letype, field_list, filters, relational_filters):
print("DummyDatasource.get: ", leclass, letype, field_list, filters, relational_filters)
return []
## @brief Link two object given a relation nature, depth and rank
# @param id_sup int : a lodel_id
# @param id_sub int : a lodel_id
# @param nature str|None : The relation nature or None if rel2type
# @param rank int : a rank
def add_relation(self, id_sup, id_sub, nature=None, depth=None, rank=None):
pass
## @brief Delete a link between two objects given a relation nature
# @param id_sup int : a lodel_id
# @param id_sub int : a lodel_id
# @param nature str|None : The relation nature
def del_relation(self, id_sup, id_sub, nature=None):
pass
## @brief Return all relation of a lodel_id given a position and a nature
# @param lodel_id int : We want the relations of this lodel_id
# @param superior bool : If true search the relations where lodel_id is in id_sup
# @param nature str|None : Search for relations with the given nature (if None rel2type)
# @param return an array of dict with keys [ id_sup, id_sub, rank, depth, nature ]
def get_relations(self, lodel_id, superior=True, nature=None):
pass