Example #1
0
import json
from datetime import datetime, timedelta
from typing import Any, Dict, List, Union

from luft.common.config import (AWS_ACCESS_KEY_ID, AWS_BUCKET,
                                AWS_SECRET_ACCESS_KEY, QLIK_ENT_CLIENT_CERT,
                                QLIK_ENT_CLIENT_KEY, QLIK_ENT_HOST,
                                QLIK_ENT_ROOT_CERT)
from luft.common.logger import setup_logger
from luft.common.s3_utils import get_s3, write_s3
from luft.common.utils import NoneStr, ts_to_tz
from luft.tasks.generic_task import GenericTask
from luft.vendor.pyqlikengine import engine_helper, pyqlikengine

# Setup logger
logger = setup_logger('common', 'INFO')


class QlikMetric(GenericTask):
    """Qlik Sense export metrics."""
    def __init__(self,
                 name: str,
                 task_type: str,
                 source_system: str,
                 source_subsystem: str,
                 app_id: str,
                 dimensions: Union[List[str]] = None,
                 measures: Union[List[str]] = None,
                 selections: Union[List[Dict[str, List[str]]]] = None,
                 yaml_file: NoneStr = None,
                 env: NoneStr = None,
Example #2
0
"""Common utils."""
import importlib
import os
from configparser import SafeConfigParser
from pathlib import Path
from typing import Any, Optional, Union

import dateutil.parser

from luft.common.logger import setup_logger

import pendulum


# Setup logger
logger = setup_logger('util', 'INFO')

NoneStr = Union[Optional[str], None]


def class_for_name(path: str) -> Any:
    """Return the value of the named attribute of object."""
    parts = path.split('.')
    class_name = parts.pop()
    module_name = '.'.join(parts)
    m = importlib.import_module(module_name)
    c = getattr(m, class_name)
    return c


def ts_to_tz(ts: str) -> str: