def run_process(self): if self._config.cleanup: try: if self._config.cleanuplogs: FileHelper().remove_all_temp_files(prefix_list=["_ags", "Context_BP_"]) else: FileHelper().remove_all_temp_files(prefix_list=["_ags", "Context_BP_"], exclude=".log") FileHelper().remove_all_temp_files(file_ext="sde") except Exception as e: self.errorlog(str(e))
def __init__(self, isOpen=True, saveInfo=True, saveWarning=True, saveError=True, logDirName="log"): self.saveInfo = saveInfo self.saveError = saveError self.saveWarning = saveWarning # 获取当前"运行"目录 logDir = os.getcwd() + "/" + logDirName + "/" if not os.path.exists(logDir): os.mkdir(logDir) timeFormat = "%Y_%m_%d_%H_%M_%S" timeStr = time.strftime(timeFormat, time.localtime()) fileNameStr = self.__get_parent_filename() fileNameStr = os.path.basename(fileNameStr) fileNameStr, ext = os.path.splitext(fileNameStr) self.infoFilename = logDir + "INFO_" + fileNameStr + "_" + timeStr + ".log" self.infoNowName = logDir + "INFO_" + fileNameStr + ".log" self.errorFilename = logDir + "ERROR_" + fileNameStr + "_" + timeStr + ".log" self.errorNowName = logDir + "ERROR_" + fileNameStr + ".log" self.warningFilename = logDir + "WARNING_" + fileNameStr + "_" + timeStr + ".log" self.warningNowName = logDir + "WARNING_" + fileNameStr + ".log" self.fileHelper = FileHelper() self.isOpen = isOpen return
def publish(self): with ProcessMonitor() as pm: try: ReportMissingAssets().execute_validation() except Exception as e: self.errorlog(e.message) SendEmail("ProcessFailure").send_email_with_files([self._logger.log_file], "CSV Validation Failure", "The CSV to GIS validation failed. Please review attached log file. The FWP has not been published") pm.log_failure("CSV Validation Failure", e.message) return try: for i in [PublishFactoryEnum.FWP, PublishFactoryEnum.GEODB, PublishFactoryEnum.RAMM]: PublishHelperFactory.factory(i).publish() except Exception as e: self.errorlog(e.message) SendEmail("ProcessFailure").send_email_with_files([self._logger.log_file], "%s Publishing Failure" % i, "The %s publish failed. Please review attached log file." % i) pm.log_failure("%s Publishing Failure" % i, e.message) return pm.log_success("Full Publish Process") # once a month clean up the temp directory if datetime.datetime.now().day == 1: self.log("Time of the month to remove all _ags files.") FileHelper().remove_all_temp_files() self.log("{0} {1} {0}".format("=" * 15, "Process has completed", "=" * 15))
def publish(self): #get the latest RAMM data - add to file geodatabase and run model # TODO put the shelf into common config s = None try: s = shelve.open( "%s%s%s" % (TempFileName.get_temp_directory(), "/", self._config.shelf)) except: raise Exception("Cannot publish RAMM FWP due to missing data") file_geodb = None if 'fwpgeodb' in s: file_geodb = s['fwpgeodb'] s.close() if file_geodb: with FileGeodatabaseHelper() as file_geodb_helper: file_geodb_helper.clean_up = False # debug file_geodb_helper.current_file_geodb = file_geodb with ArcGISOnlineHelper() as agol_helper: agol_helper.download_hosted_feature_service_layer( self._config.rammfwpdata, file_geodb, self._config.output_fc) with ProximityLayerCreator(file_geodb) as proximity_creator: new_file_geodb = proximity_creator.create_proximity_layer( self._config.output_fc) zip_file = TempFileName.generate_temporary_file_name( ".zip") ZipArchive.ZipArchive(zip_file, new_file_geodb) publishparams = json.dumps(self._config.publishparams) item_id, service_id = agol_helper.publish_file_item( "WDC_RAMM_FWP", "File Geodatabase", "fileGeodatabase ", zip_file, "filegeodbkeywords", publish_params={"publishParameters": publishparams}) # dont pass through a dictonary - pass through a str for the vals - use eval maybe to ensure quotes! # depending on the group type we may have to do one or the other - so I'm just going to do both if service_id: agol_helper.share_items("%s,%s" % (item_id, service_id), groups=self._config.fwpgroup) else: agol_helper.share(item_id, groups=self._config.fwpgroup) FileHelper().delete_file( "%s%s%s" % (TempFileName.get_temp_directory(), "/", self._config.shelf)) else: raise Exception( "Cannot publish RAMM FWP due to missing data - missing key in shelf" )
def upload(): try: file_handler = bottle.request.files.get('file') name, ext = os.path.splitext(file_handler.filename) if ext not in C.File_EXT: return C.ERROR_EXT fh = FileHelper() __filepath = fh.get_file_path(file_handler.filename) file_handler.save(__filepath) e_rw = ExcelRW() e_rw.get_result(__filepath) return C.SUCCESS_MESSAGE_BOTTLE.format(__filepath) except Exception as e: print(str(e))
def clean_up_temp_csvs(self): # for python 2.7 - use glob for 3 self.log("Cleaning up temp csvs") FileHelper().remove_all_temp_files("csv")
def __init__(self): self.fileHelper = FileHelper() self.credentials = self.fileHelper.loadJSON("./keys/keys.json")
# -*- encoding:UTF-8 -*- import sys, os import ErrorCode from Log import Log from FileHelper import FileHelper if __name__ == "__main__": log = Log() log.info("start test FileHelper") testContent = "hello abc" fileHelper = FileHelper() rtn = fileHelper.write("hello.txt", testContent) log.check_rtn(rtn) rtn, content = fileHelper.read("hello.txt") log.check_rtn(rtn) log.assert_eq(testContent, content) testContentNew = "def" rtn = fileHelper.append("hello.txt", testContentNew) log.check_rtn(rtn) rtn, content = fileHelper.read("hello.txt") log.check_rtn(rtn) log.assert_eq(testContent + testContentNew, content) rtn = fileHelper.append("hello2.txt", testContentNew) log.check_rtn(rtn) rtn, content = fileHelper.read("hello2.txt") log.check_rtn(rtn) log.assert_eq(testContentNew, content) os.remove("hello.txt")
def __set_sheet_data(self, ent, g86, p86, o86, g87, p87, o87): try: fh = FileHelper() filepath = fh.get_file_path(C.OUTPUT_FILE) self.file = filepath wb = self.__load_workbook() sheet = self.__get_sheet(wb, 'Pools') i = 7 for el in ent.EntityCode: sheet['A' + str(i)].value = el if el in ent.Name.keys(): sheet['B' + str(i)].value = ent.Name[el] # 86 General if el in g86.dic_Post_86_General_EP_959c3.keys(): sheet['D' + str(i)].value = g86.dic_Post_86_General_EP_959c3[el] else: sheet['D' + str(i)].value = 0 if el in g86.dic_Post_86_General_EP_959c2.keys(): sheet['E' + str(i)].value = g86.dic_Post_86_General_EP_959c2[el] else: sheet['E' + str(i)].value = 0 if el in g86.dic_Post_86_General_EP_959c1.keys(): sheet['F' + str(i)].value = g86.dic_Post_86_General_EP_959c1[el] else: sheet['F' + str(i)].value = 0 if el in g86.dic_Post_86_General_TAX_959c3Tax.keys(): sheet['G' + str( i)].value = g86.dic_Post_86_General_TAX_959c3Tax[el] else: sheet['G' + str(i)].value = 0 if el in g86.dic_Post_86_General_TAX_959c2Tax.keys(): sheet['H' + str( i)].value = g86.dic_Post_86_General_TAX_959c2Tax[el] else: sheet['H' + str(i)].value = 0 if el in g86.dic_Post_86_General_TAX_959c1Tax.keys(): sheet['I' + str( i)].value = g86.dic_Post_86_General_TAX_959c1Tax[el] else: sheet['I' + str(i)].value = 0 # 86 Passive if el in p86.dic_Post_86_Passive_EP_959c3.keys(): sheet['K' + str(i)].value = p86.dic_Post_86_Passive_EP_959c3[el] else: sheet['K' + str(i)].value = 0 if el in p86.dic_Post_86_Passive_EP_959c2.keys(): sheet['L' + str(i)].value = p86.dic_Post_86_Passive_EP_959c2[el] else: sheet['L' + str(i)].value = 0 if el in p86.dic_Post_86_Passive_EP_959c1.keys(): sheet['M' + str(i)].value = p86.dic_Post_86_Passive_EP_959c1[el] else: sheet['M' + str(i)].value = 0 if el in p86.dic_Post_86_Passive_TAX_959c3Tax.keys(): sheet['N' + str( i)].value = p86.dic_Post_86_Passive_TAX_959c3Tax[el] else: sheet['N' + str(i)].value = 0 if el in p86.dic_Post_86_Passive_TAX_959c2Tax.keys(): sheet['O' + str( i)].value = p86.dic_Post_86_Passive_TAX_959c2Tax[el] else: sheet['O' + str(i)].value = 0 if el in p86.dic_Post_86_Passive_TAX_959c1Tax.keys(): sheet['P' + str( i)].value = p86.dic_Post_86_Passive_TAX_959c1Tax[el] else: sheet['P' + str(i)].value = 0 # 86 Other if el in o86.dic_Post_86_Other_EP_959c3.keys(): sheet['R' + str(i)].value = o86.dic_Post_86_Other_EP_959c3[el] else: sheet['R' + str(i)].value = 0 if el in o86.dic_Post_86_Other_EP_959c2.keys(): sheet['S' + str(i)].value = o86.dic_Post_86_Other_EP_959c2[el] else: sheet['S' + str(i)].value = 0 if el in o86.dic_Post_86_Other_EP_959c1.keys(): sheet['T' + str(i)].value = o86.dic_Post_86_Other_EP_959c1[el] else: sheet['T' + str(i)].value = 0 if el in o86.dic_Post_86_Other_TAX_959c3Tax.keys(): sheet[ 'U' + str(i)].value = o86.dic_Post_86_Other_TAX_959c3Tax[el] else: sheet['U' + str(i)].value = 0 if el in o86.dic_Post_86_Other_TAX_959c2Tax.keys(): sheet[ 'V' + str(i)].value = o86.dic_Post_86_Other_TAX_959c2Tax[el] else: sheet['V' + str(i)].value = 0 if el in o86.dic_Post_86_Other_TAX_959c1Tax.keys(): sheet[ 'W' + str(i)].value = o86.dic_Post_86_Other_TAX_959c1Tax[el] else: sheet['W' + str(i)].value = 0 i += 1 #TODO: Save data for the next tab wb.save(self.file) except Exception as e: print(str(e))