Example #1
0
def sweep_path(path, file_exts, recursive, author, curtime):
    filelist = os.listdir(path)
    filelist.sort(key=lambda x:x[0:20])

    for f in filelist:
        try:
            pf = os.path.join(path, f)

            fs = os.stat(pf)
            
            mod = fs.st_mode

            if stat.S_ISDIR(mod):
                # is dir
                if util.dir_exists(pf):
                    if recursive:
                        sweep_path(pf, file_exts, recursive, author, curtime)
                        pass
                pass
            elif stat.S_ISREG(mod):
                # is file
                ignored = False

                if not util.file_exists(pf) or pf == APPFILE or f == "__init__.py":
                    ignored = True

                if not ignored:
                    _, ext = os.path.splitext(f)
                    if ext in file_exts:
                        update_file(pf, f, fs, author, curtime)
                        pass
        except OSError as e:
            elog.warn("%r: %s" % (e, pf))
        
    pass
Example #2
0
def create_sb2web_project(appConfig, options):
    artifactDir = os.path.join(appConfig.projectsDir, options.artifact)

    elog.info("starting create project: %s", artifactDir)

    if util.dir_exists(artifactDir):
        util.warn("artifact already exists: %s" % artifactDir)
        if not options.force:
            util.warn("using '--force' to ovewrite it")
            sys.exit(0)
        pass

    try:
        shutil.rmtree(artifactDir)
    except:
        pass

    pairConfig = (util.DotDict(), util.DotDict())

    # 载入模板工程的配置文件
    templateDict = {}
    templateYaml = os.path.join(appConfig.sb2webRoot, "j2template.yaml")
    if util.file_exists(templateYaml):
        fd = open(templateYaml)
        templateDict = yaml.load(fd.read())
        fd.close()

    renderConfig = util.DotDict(
        LICENSE_HEADER=read_file_content(
            os.path.join(APPHOME, 'license_header.txt')),
        j2envRoot=appConfig.sb2webRoot,
        j2env=Environment(loader=FileSystemLoader(appConfig.sb2webRoot)),
        templateDict=templateDict,
        springbootVer=options.springboot,
        groupId=options.group,
        artifactId=options.artifact,
        artifactName=options.name,
        artifactVer=options.ver,
        description=options.description,
        packageName=options.packagename,
        packaging=options.packaging,
        javaVersion=options.java,
        serverPort=options.port,
        contextPath=options.context_path)

    # 复制目录树, 同时处理模板文件
    util.copydirtree(appConfig.sb2webRoot, artifactDir, pairConfig, True,
                     copy_template, renderConfig)

    elog.info("success create project: %s", artifactDir)

    if options.run:
        elog.info("starting run: %s", artifactDir)
        start_run_project(artifactDir)
    pass
Example #3
0
def sweep_dir(path, srcs, results):
    dname = os.path.basename(path)

    if dname not in ignore_dirs:
        filelist = os.listdir(path)
        filelist.sort(key=lambda x: x[0:20])

        for f in filelist:
            pf = os.path.join(path, f)

            if util.dir_exists(pf):
                sweep_dir(pf, srcs, results)
            elif util.file_exists(pf):
                _, ext = os.path.splitext(f)

                passed_filters = False

                if f not in ignore_files and ext not in ignore_exts:
                    passed_filters = True

                if len(only_exts) > 0:
                    if ext not in only_exts:
                        passed_filters = False

                if passed_filters:
                    fd = None
                    try:
                        fd = open(pf, 'r')
                        lines = fd.readlines()
                        lineno = 0
                        for line in lines:
                            lineno += 1

                            for src in srcs:
                                if line.find(src) != -1:
                                    elog.info("found '%s': [%s:%d]", src,
                                              os.path.relpath(pf, APPPATH),
                                              lineno)
                                    elog.force_clean("%s", line)
                                    if pf not in results:
                                        results.append(pf)
                    except:
                        elog.error("%r: %s", sys.exc_info(), pf)
                    finally:
                        util.close_file_nothrow(fd)
                else:
                    #elog.warn("ignore file: %s", pf)
                    pass
    else:
        elog.warn("ignore path: %s", path)
        pass
Example #4
0
    def restore_position(self):
        is_dirty, start_tstamp, start_rowid = (False, 0, 0)

        if util.file_exists(self.position_file):
            line = util.read_first_line_nothrow(self.position_file)
            t = line.split(',')
            if len(t) == 2:
                (start_tstamp, start_rowid) = (int(t[0]), int(t[1]))
            pass

        if start_tstamp == 0:
            start_tstamp = datetimestr2timestamp(WebLogger.START_DTSTR, WebLogger.DATE_FORMAT)
            is_dirty = True

        if start_rowid == 0:
            start_rowid = WebLogger.START_ROWID
            is_dirty = True

        self.start_tstamp = start_tstamp
        self.start_rowid = start_rowid

        if is_dirty:
            self.save_position()
        pass
                   padding='same',
                   kernel_initializer='he_normal'))
        model.add(Dropout(0.25))

        model.add(Flatten())
        model.add(Dense(128, activation='relu'))
        model.add(BatchNormalization())
        model.add(Dropout(0.25))
        model.add(Dense(10, activation='softmax'))

        model.compile(loss='categorical_crossentropy',
                      optimizer=keras.optimizers.RMSprop(),
                      metrics=['accuracy'])

        # Test if model weights already exists
        if utility.file_exists(model_fn):
            logging("Model").info(
                "Loading model weights from disk:\n\t> Filename: {}".format(
                    model_fn))
            try:
                model.load_weights(model_fn)
            except ValueError:
                os.remove(model_fn)
                keep_going = True
                continue
        break

    logging("Model").info("Model Summary: \n")
    model.summary()

    logging("Main").info("Done Loading!")
def main(parser):
    (options, args) = parser.parse_args(args=None, values=None)

    # 当前脚本绝对路径
    abspath = util.script_abspath(inspect.currentframe())

    # 产品文件夹全路径
    artifactRoot = options.artifactRoot

    # 产品文件夹名称
    artifactRootName = os.path.basename(artifactRoot)

    artifactId = options.artifactId
    if not artifactId:
        artifactId = artifactRootName

    artifactName = options.artifactName
    if not artifactName:
        artifactName = artifactId

    if not options.groupId:
        exit(-1)

    if artifactRootName != artifactId:
        print "WARN:", "产品ID与文件夹名称不一致, 可能导致歧义:"
        print "产品文件夹:", artifactRoot
        print "产品ID:", artifactId
        print "期望的产品ID:", artifactRootName
        pass

    # 解压模板文件
    demoZipfile = os.path.join(abspath, "demo.zip")
    if not util.file_exists(demoZipfile):
        print "ERROR 模板文件不存在", demoZipfile
        exit(-1)

    demoRootDir = os.path.join(abspath, "build", "tmp", "demo")
    if util.dir_exists(demoRootDir):
        shutil.rmtree(demoRootDir)
        pass

    util.unzip_file(demoZipfile, demoRootDir)
    if not util.dir_exists(demoRootDir):
        print "ERROR 模板路径不存在", demoRootDir
        exit(-1)

    if not options.forceUpdate:
        create_artifact(artifactRoot=artifactRoot,
                        artifactId=artifactId,
                        artifactName=artifactName,
                        groupId=options.groupId,
                        artifactVersion=options.artifactVersion,
                        springbootVersion=options.springbootVersion,
                        javaVersion=options.javaVersion,
                        description=options.description,
                        author=options.author)
    else:
        print "当前不支持!"
        pass

    # 使用完毕删除模板
    shutil.rmtree(demoRootDir)
    pass