async def test_get_clients(): """ Метаданные клиента """ result = await get_all_clients() with open('z_get_jsonb_all_client_metadata.json', 'w', encoding='utf-8') as fb: jsd(result, fb, ensure_ascii=False, indent=4)
async def test_get_metadata(): """ Получение метаданных из кликхауса """ out_tables = await get_ycl_metadata() with open('z_send_get_meta_ycl.json', 'w', encoding='utf-8') as fb: jsd(out_tables, fb, ensure_ascii=False, indent=4)
async def test_processing_delete(): """ Тестирование удаления витрины данных """ with open(TEST_DEL_FILE, 'r', encoding='utf-8') as file: input_data = jsl(fp=file) result = await smart_delete_showcases(json_data=input_data) with open('z_send_delete_showcase.json', 'w', encoding='utf-8') as fb: jsd(result, fb, ensure_ascii=False, indent=4)
async def test_processing_post_create(): """ Тестирование создания/обновления клиентов """ with open(TEST_POST_FILE, 'r', encoding='utf-8') as file: input_data = jsl(fp=file) result = await smart_create_client(json_data=input_data) with open('z_send_insert_showcase.json', 'w', encoding='utf-8') as fb: jsd(result, fb, ensure_ascii=False, indent=4)
async def test_processing_post_create(): """ Тестирование создания словаря """ with open(TEST_POST_FILE, 'r', encoding='utf-8') as file: input_data = jsl(fp=file) result = await bridge_smart_create_dictionaries(data_json=input_data) with open('z_send_insert_dict.json', 'w', encoding='utf-8') as fb: jsd(result, fb, ensure_ascii=False, indent=4)
async def test_processing_delete(): """ Тестирование удаления словаря """ with open(TEST_DEL_FILE, 'r', encoding='utf-8') as file: input_data = jsl(fp=file) result = await bridge_smart_delete_dictionaries(json_data=input_data) with open('z_send_delete_dict.json', 'w', encoding='utf-8') as fb: jsd(result, fb, ensure_ascii=False, indent=4)
def _put_validation_and_transform(self, key, value, topic=None, callback=None, partition=None): """ Для разных алгоритмов вставки - формирует словарь аргументов вставки """ if topic is None and self.one_topic_name is None: raise AttributeError('NEED TOPIC NAME!') if topic is None: topic = self.one_topic_name dict_args = { 'topic': str(topic), 'value': jsd(value), } if key: dict_args['key']: str(key) if callback: dict_args['callback'] = callback if partition: # Прямое задание позиции dict_args['partition'] = partition else: # Смещение позиции равномерно top_name = dict_args['topic'] topic_parts = self.topic_parts.get(top_name) if topic_parts: current_position = self.topic_part_itr[top_name] if key: # Партиция нужна если есть ключ dict_args['partition'] = topic_parts[current_position] current_position += 1 if current_position >= len(topic_parts): current_position = 0 self.topic_part_itr[top_name] = current_position return dict_args
async def get_meta(): in_data = [ { "ip": "192.168.46.229", "port": 9000, "type_db": "ycl", "data_bases": [{ "user": "******", "pswd": "", "name": "mercury", "tables": "" }], "name": "clickhouse" }, # { # "ip": "localhost", # "port": 5432, # "type_db": "psql", # "data_bases": [ # { # "user": "******", # "pswd": "__test_app_core", # "name": "__test_app_core", # "tables": "" # } # ], # "name": "postgres" # } ] report = await process_metadata(json_in=in_data) with open('z_get_meta.json', 'w', encoding='utf-8') as fb: jsd(report, fb, ensure_ascii=False, indent=4)
async def wrapper(*args, **kwargs): msg = '' status = True result = [] try: result = await func(*args, **kwargs) except Exception as exp: status = False msg = str(exp) if isinstance(result, str): data_str = f'{{"status":{jsd(status)}, "errors":{jsd([msg])}, "response": {result}}}' else: data_out = {'status': status, 'errors': [msg], 'response': result} data_str = jsd(data_out, indent=4, ensure_ascii=False, cls=EncoderHelper) return Response(content=data_str, media_type='application/json')
""" Черновик """ from json import dump as jsd, load as jsl, dumps as str_jsd from pathlib import Path DEFAULT_JSON_METADATA_PATH = Path().cwd() / Path( '../documents/front_back_interaction/json_sdmx_ex2.json') with open(DEFAULT_JSON_METADATA_PATH, 'r') as fobj: data_settings_json = jsl(fobj) print(data_settings_json) with open(DEFAULT_JSON_METADATA_PATH, 'w') as fobj: jsd(data_settings_json, fobj, indent=4)