Files
aufbau2csv/CMDB2CSV_Aufbaumaster_0.1.py
2024-12-09 14:19:01 +00:00

87 lines
2.6 KiB
Python

from PyQt5.QtWidgets import QApplication, QDialog, QFileDialog
from PyQt5.uic import loadUi
import sys, os, re
from pathlib import Path
import pandas as pd
from icecream import ic
import numpy as np
import json
import logging
class A2CSV(QDialog): # erbt von QDialog
def __init__(self):
super().__init__()
loadUi("AM2CSV.ui", self)
self.pB_open.clicked.connect(self.open_file_dialog)
self.filename = None
self.onlyfilename = None
self.path = None
self.vte = None
self.cmdb = None
self.gg = self.rB_gg
self.gg.toggled.connect(self.radio_button_activated)
self.erw = self.rB_erweiterungen
self.erw.toggled.connect(self.radio_button_activated)
self.vte_gg = None
self.cmdb_gg = None
self.jdata = None
self.objecttypes: list = []
self.read_json()
self.objecttypes = self.jdata["Objekttyp"]
ic(self.objecttypes)
def read_json(self):
with open("CMDB_vars.json", "r") as file:
self.jdata = json.load(file)
ic(self.jdata)
def open_file_dialog(self):
# Nur xlsb
self.filename, _ = QFileDialog.getOpenFileName(self,"Aufbaumaster","\\Volumes\\Daten01\\Documents\\toCSV","Excel (*.xlsb)")
if self.filename:
self.path = Path(self.filename)
self.onlyfilename = os.path.basename(self.filename)
self.lb_selected_aufbaumaster.setText(self.onlyfilename)
self.collect_data()
def collect_data(self):
# Reiter VTE und CMDB
# VTE "nur" für die Config-ID
self.vte = pd.read_excel(self.filename, header=7, na_filter=False, sheet_name='VTE-Input',usecols=['Hostname', 'Gruppierung', 'CONFIG-ID', 'CMDB Status'], engine='pyxlsb')
self.cmdb = pd.read_excel(self.filename, header=2, sheet_name="CMDB", engine='pyxlsb')
ic(self.vte)
ic(self.cmdb)
def collect_gg(self):
# Nach relevanten Spalten filtern Grundgeraete
# Sheet VTE
self.vte_gg = self.vte[self.vte['Gruppierung'] == 'Grundgerät']
# Sheet CMDB
self.cmdb_gg = self.cmdb[self.cmdb['Filter'] == 'Grundgerät']
def radio_button_activated(self):
if self.gg.isChecked():
self.collect_gg()
ic(self.vte_gg)
elif self.erw.isChecked():
ic("erw")
if __name__ == "__main__":
app = QApplication(sys.argv)
ui = A2CSV()
ui.show()
app.exec_()