예제 #1
0
 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))
예제 #2
0
파일: Log.py 프로젝트: lanecatm/AlgoTrading
 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
예제 #3
0
 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))
예제 #4
0
    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"
            )
예제 #5
0
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))
예제 #6
0
 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")
예제 #7
0
 def __init__(self):
     self.fileHelper = FileHelper()
     self.credentials = self.fileHelper.loadJSON("./keys/keys.json")
예제 #8
0
# -*- 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")
예제 #9
0
    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))