Inex/inex.py

87 lines
3.3 KiB
Python
Raw Normal View History

import pyodbc
import os
2024-07-11 16:13:45 -05:00
import logging
import datetime
2024-07-29 14:04:35 -05:00
import tomllib
2024-07-11 16:13:45 -05:00
from inexLogging import inexLog
import inexConnect
2024-07-15 22:32:42 -05:00
from inexDataModel import dataTemplate
from inexDataProcessing import processData
import json
import decimal
2024-07-25 22:22:08 -05:00
import requests
class Inex:
def __init__(self):
"""Initilize config, calls functions from inex-connect.py and inex-logging.py"""
# assign libraries
self.db = pyodbc
self.tm = datetime
2024-07-11 16:13:45 -05:00
self.il = logging
self.ic = inexConnect
2024-07-25 22:22:08 -05:00
self.r = requests
2024-07-29 14:04:35 -05:00
self.tl = tomllib
self.os = os
self.j = json
2024-07-29 14:04:35 -05:00
if self.os.path.exists('./config.toml'):
config_file_path = './config.toml'
with open(config_file_path, 'rb') as c:
self.config = self.tl.load(c)
# set config
self.dbDriver = self.config["database"]["driver"]
self.dbServer = self.config["database"]["server"]
self.dbDatabase = self.config["database"]["database"]
self.dbUser = self.config["database"]["user"]
self.dbPassword = self.config["database"]["password"]
self.dbQuery = self.config["database"]["query"]
2024-06-24 17:46:00 -05:00
self.outputFile = self.config["output"]["filename"]
2024-07-11 16:13:45 -05:00
self.useLog = self.config["logging"]["useLog"]
self.logPath = self.config["logging"]["logPath"]
self.logLevel = self.config["logging"]["logLevel"]
self.prdInstanceID = self.config["immutables"]["prd_instance_id"]
self.productGUID = self.config["immutables"]["product_guid"]
self.productName = self.config["immutables"]["product_name"]
self.productVersion = self.config["immutables"]["product_version"]
2024-07-29 14:04:35 -05:00
self.tokenFilepath = self.config["output"]["token"]
self.selectedPlatform = self.config["fortraPlatform"]["selectedPlatform"]
if "dev" in self.selectedPlatform.lower():
self.platformConfig = self.config["fortraPlatform"]["dev"]
if "stag" in self.selectedPlatform.lower():
self.platformConfig = self.config["fortraPlatform"]["stage"]
if "prod" in self.selectedPlatform.lower():
self.platformConfig = self.config["fortraPlatform"]["prod"]
print(self.platformConfig)
2024-07-11 16:13:45 -05:00
#Setup logging
inexLog(self)
# create the connection to the database
2024-07-29 14:04:35 -05:00
# self.cursor = self.ic.connectDatabase(self, self.db, self.dbDriver, self.dbServer, self.dbDatabase, self.dbUser, self.dbPassword)
2024-07-29 14:04:35 -05:00
# self.data = self.ic.databaseQuery(self, self.cursor, self.dbQuery)
2024-06-24 17:46:00 -05:00
2024-07-29 14:04:35 -05:00
# self.modifiedData = processData(self.data, dataTemplate, prd_instance_id=self.prdInstanceID,\
# product_guid=self.productGUID,product_name=self.productName,product_version=self.productVersion)
# # TODO: move this to its own function
# if self.useLog:
# self.il.warning(f"Writing to '{self.outputFile}'.")
2024-07-11 16:13:45 -05:00
2024-07-29 14:04:35 -05:00
# with open(self.outputFile, "w") as f:
# json.dump(self.modifiedData, f, indent = 2, cls=Encoder)
2024-07-11 16:13:45 -05:00
# TODO: Move this class to it's own file
class Encoder(json.JSONEncoder):
def default(self, o):
if isinstance(o, decimal.Decimal):
return int(o)
if isinstance(o, datetime.datetime):
return str(o)
return super().default(o)
# Run
if __name__== "__main__":
Inex()