Exemple #1
0
def zipdir(directory, no_pyc=False):
    log = logging.getLogger("zipdir")
    if not os.path.isdir(directory):
        raise OSError(20, "Not a directory", directory)
    msg = "Zipping directory '%s'"
    if no_pyc:
        msg += " (without pre-compilation)"
    log.info(msg, directory)
    filename = os.path.realpath(directory + ".zip")

    # Open the file in read an update mode
    if os.path.exists(filename):
        zip_file = open(filename, "r+b")
    else:
        # If the file does not exist, we need to create it.
        # "append mode" ensures that, in case of two processes trying to
        # create the file, they do not truncate each other file
        zip_file = open(filename, "ab")

    locker.lock(zip_file)
    try:
        if zipfile.is_zipfile(filename):
            infolist = zipfile.ZipFile(filename).infolist()
        else:
            infolist = []
        (added, modified, untouched,
         removed) = _zipChanges(directory, infolist)
        if added or modified or removed:
            temp_buf = StringIO()
            z = zipfile.PyZipFile(temp_buf, "w", zipfile.ZIP_DEFLATED)
            for f in added + modified + untouched:
                src = os.path.join(directory, f)
                checkEncoding(open(src, 'rb'))
                if no_pyc:
                    log.debug("adding '%s'", f)
                    z.write(src, f)
                else:
                    # Remove the .pyc file to always force a re-compilation
                    if os.path.exists(src + 'c'):
                        log.debug("removing old .pyc for '%s'", f)
                        os.remove(src + 'c')
                    log.debug("adding '%s'", f)
                    z.writepy(src, os.path.dirname(f))
            z.close()
            zip_file.seek(0)
            zip_file.write(temp_buf.getvalue())
            zip_file.truncate()
            log.info("File '%s' closed", filename)
        else:
            log.info("Nothing to do on '%s'", filename)
    except UnicodeDecodeError as x:
        log.error("Wrong encoding in file '%s':", src)
        log.error("    %s", x)
        log.error("Probably you forgot the line '# -*- coding: utf-8 -*-'")
        sys.exit(1)
    finally:
        locker.unlock(zip_file)
        zip_file.close()
Exemple #2
0
def runtime(FEN):
    while True:
        check = grabber()
        sides = re.search(r'\s(w|b)\s', check)
        # Checks whether an update in the chessboard occurred
        if check != FEN and sides.group(1) == clr:
            asyncio.run(processing(check))
            locker.unlock()
            logging.debug('Inverted FEN: {val}', val=check)
        FEN = check
Exemple #3
0
def login():
    global sop_off
    sop_off = False
    lock()
    set_row_1("Login")

    sleep(3)

    set_row_1("Place finger")

    success, userid = getprint()

    if not success:
        lock()
        set_row_1("Access DENIED")
    else:
        unlock()
        set_row_1("USR: "******" UNLOCKED")

    return success, userid
transformer.set_raw_scale('data', 255)  # the reference model operates on images in [0,255] range instead of [0,1]
transformer.set_channel_swap('data', (2,1,0))  # the reference model has channels in BGR order instead of RGB
transformer.set_mean('data', np.array([104.00699,116.66877,122.67892]))
net = caffe.Net(args['netdesc'], args['netmodel'], caffe.TEST)

with open(args['list']) as f:
  imgslist = f.read().splitlines()

if not args['dontScaleImageValues']:
  print 'Using CAFFE.IO.LOAD_IMAGE'

for impath in imgslist:
  outfpath = os.path.join(args['outdir'], impath + '.h5')
  if not locker.lock(outfpath):
    continue
  tic_toc_print('Working on ' + impath)
  if not args['dontScaleImageValues']:
    im = caffe.io.load_image(os.path.join(args['dir'], impath))
  else:
    im = plt.imread(os.path.join(args['dir'], impath))
  in_ = transformer.preprocess('data', im)

  net.blobs['data'].reshape(1, *in_.shape)
  net.blobs['data'].data[...] = in_
  net.forward()
  out = net.blobs[args['layer']].data[0]

  save_feat(out, outfpath)

  locker.unlock(outfpath)
Exemple #5
0
                    log.debug("adding '%s'", f)
                    z.writepy(src, os.path.dirname(f))
            z.close()
            zipFile.seek(0)
            zipFile.write(tempBuf.getvalue())
            zipFile.truncate()
            log.info("File '%s' closed", filename)
        else:
            log.info("Nothing to do on '%s'", filename)
    except UnicodeDecodeError, x:
        log.error("Wrong encoding in file '%s':", src)
        log.error("    %s", x)
        log.error("Probably you forgot the line '# -*- coding: utf-8 -*-'")
        sys.exit(1)
    finally:
        locker.unlock(zipFile)
        zipFile.close()

## Main function of the script.
#  Parse arguments and call zipdir() for each directory passed as argument
def main(argv = None):
    from optparse import OptionParser
    parser = OptionParser(usage = "%prog [options] directory1 [directory2 ...]")
    parser.add_option("--no-pyc", action = "store_true",
                      help = "copy the .py files without pre-compiling them")
    parser.add_option("--quiet", action = "store_true",
                      help = "do not print info messages")
    parser.add_option("--debug", action = "store_true",
                      help = "print debug messages (has priority over --quiet)")

    if argv is None:
  sys.path.append('./python')
  from locker import lock, unlock
  with open(modelslistfpath) as f:
    modelslist = f.read().splitlines()

  for i in range(1, len(modelslist)):
    fname =  modelslist[i - 1]
    flen = len(fname)
    fname = fname[0: flen - 4]
    mpath = os.path.join(modelsdir,fname, 'textured_meshes/optimized_tsdf_texture_mapped_mesh2.obj')
    outfpath = os.path.join(outdir, fname)
    outfpath2 = os.path.join(outdir2, fname)
    if not lock(outfpath):
      continue
    try:
      os.makedirs(outfpath)
    except:
      pass
    try:
      os.makedirs(outfpath2)
    except:
      pass
    for el in range(0, 360, 40):
      for az in range(0, 360, 40):
        for ti in range(0, 360, 40):
          for  light_id in range(2):
            nowoutpath = os.path.join(outfpath, str(az) + '_' + str(el) + '_' + str(ti) + '_' + str(light_id) + '.png')
            nowoutpath2 = os.path.join(outfpath2, str(az) + '_' + str(el) + '_' + str(ti) + '_' + str(light_id) + '.png')
            genRender(mpath, az, el, ti, nowoutpath, nowoutpath2, render_dist=0.5)
    unlock(outfpath)
Exemple #7
0
def mergeFiles(frag_file_names, merged_file_name, comment_char, do_merge,
               ignore_missing):
    """ main function of the merge script """

    start_mark = "%s --Beg " % comment_char
    time_mark = "%s --Date inserted: %s" % (comment_char, datetime.now())
    end_mark = "%s --End " % comment_char
    name_offset = len(start_mark)

    basenames = map(os.path.basename, frag_file_names)

    is_new_file = not os.path.exists(merged_file_name)

    # create an empty file if it does not exist
    # "append mode" ensures that, in case of two processes trying to
    # create the file, they do not truncate each other file
    if is_new_file:
        # check if the destination directory exists
        path_to_file = os.path.split(merged_file_name)[0]
        if path_to_file and not os.path.isdir(path_to_file):
            # if doesn't exist, create it
            os.makedirs(path_to_file)
        open(merged_file_name, 'a')

    merged_file = open(merged_file_name, 'r+')

    # locking file, gaining exclusive access to it
    _ = locker.lock(merged_file)
    try:

        new_lines = []
        skip_block = ""
        for line in merged_file.readlines():
            if line.startswith(
                    start_mark) and line[name_offset:].strip() in basenames:
                skip_block = end_mark + line[name_offset:].strip()
                # remove all the empty lines occurring before the start mark
                while len(new_lines) > 0 and (new_lines[-1].strip() == ''):
                    new_lines.pop()
            if not skip_block:
                new_lines.append(line)
            if line.startswith(skip_block):
                skip_block = ""
        if skip_block:
            print("WARNING: missing end mark ('%s')", skip_block)

        if do_merge:
            for f in frag_file_names:
                if ignore_missing and not os.path.exists(f):
                    print("WARNING: '%s' does not exist, I'm ignoring it", f)
                    continue
                # I do not want to add 2 empty lines at the beginning of a file
                if new_lines:
                    new_lines.append(os.linesep + os.linesep)
                bf = os.path.basename(f)
                new_lines.append(start_mark + bf + os.linesep)
                new_lines.append(time_mark + os.linesep)
                file_data = open(f).read()
                new_lines.append(file_data)
                if file_data and file_data[-1] != os.linesep:
                    new_lines.append(os.linesep)
                new_lines.append(end_mark + bf + os.linesep)

        merged_file.seek(0)
        merged_file.truncate(0)
        merged_file.writelines(new_lines)

    finally:
        # unlock file
        locker.unlock(merged_file)

    return 0
Exemple #8
0
def unconditional_login():
    unlock()
    set_row_1("SOP DISABLED")
    global sop_off
    sop_off = True
Exemple #9
0
def mergeFiles( fragFileNames, mergedFileName, commentChar, doMerge, ignoreMissing ):

    startMark = "%s --Beg " % commentChar
    timeMark  = "%s --Date inserted: %s" % (commentChar, datetime.now())
    endMark   = "%s --End " % commentChar
    nameOffset = len(startMark)

    basenames = map(os.path.basename, fragFileNames)

    isNewFile = not os.path.exists(mergedFileName)

    # create an empty file if it does not exist
    # "append mode" ensures that, in case of two processes trying to
    # create the file, they do not truncate each other file
    if isNewFile:
        # check if the destination directory exists
        path_to_file = os.path.split(mergedFileName)[0]
        if path_to_file and not os.path.isdir(path_to_file):
            # if doesn't exist, create it
            os.makedirs(path_to_file)
        open(mergedFileName,'a')

    mergedFile = open( mergedFileName, 'r+' )

    # locking file, gaining exclusive access to it
    lock = locker.lock( mergedFile )
    try:

        newLines = [ ]
        skipBlock = ""
        for line in mergedFile.readlines():
            if line.startswith(startMark) and line[nameOffset:].strip() in basenames:
                skipBlock = endMark + line[nameOffset:].strip()
                # remove all the empty lines occurring before the start mark
                while (len(newLines) > 0) and (newLines[-1].strip() == ''):
                    newLines.pop()
            if not skipBlock:
                newLines.append(line)
            if line.startswith(skipBlock):
                skipBlock = ""
        if skipBlock:
            print "WARNING: missing end mark ('%s')" % skipBlock

        if doMerge:
            for f in fragFileNames:
                if ignoreMissing and not os.path.exists(f):
                    print "WARNING: '%s' does not exist, I'm ignoring it" % f
                    continue
                # I do not want to add 2 empty lines at the beginning of a file
                if newLines:
                    newLines.append('\n\n')
                bf = os.path.basename(f)
                newLines.append(startMark + bf + '\n')
                newLines.append(timeMark + '\n')
                fileData = open(f, 'r').read()
                newLines.append(fileData)
                if fileData and fileData[-1] != '\n':
                    newLines.append('\n')
                newLines.append(endMark + bf + '\n')

        mergedFile.seek(0)
        mergedFile.truncate(0)
        mergedFile.writelines(newLines)

    finally:
        # unlock file
        locker.unlock( mergedFile )

    return 0
Exemple #10
0
def mergeFiles(fragFileNames,
               mergedFileName,
               commentChar,
               doMerge,
               ignoreMissing,
               excludeREs=None):

    startMark = "%s --Beg " % commentChar
    timeMark = "%s --Date inserted: %s" % (commentChar, datetime.now())
    endMark = "%s --End " % commentChar
    nameOffset = len(startMark)

    basenames = map(os.path.basename, fragFileNames)

    isNewFile = not os.path.exists(mergedFileName)

    if not excludeREs:
        excluded = lambda _: False
    else:
        excludeREs = [
            re.compile(exp) if type(exp) is str else exp for exp in excludeREs
        ]

        def excluded(line):
            for exp in excludeREs:
                if exp.match(line):
                    return True
            return False

    # create an empty file if it does not exist
    # "append mode" ensures that, in case of two processes trying to
    # create the file, they do not truncate each other file
    if isNewFile:
        # check if the destination directory exists
        path_to_file = os.path.split(mergedFileName)[0]
        if path_to_file and not os.path.isdir(path_to_file):
            # if doesn't exist, create it
            os.makedirs(path_to_file)
        open(mergedFileName, 'a')

    mergedFile = open(mergedFileName, 'r+')

    # locking file, gaining exclusive access to it
    lock = locker.lock(mergedFile)
    try:

        newLines = []
        skipBlock = ""
        for line in mergedFile.readlines():
            if line.startswith(
                    startMark) and line[nameOffset:].strip() in basenames:
                skipBlock = endMark + line[nameOffset:].strip()
                # remove all the empty lines occurring before the start mark
                while (len(newLines) > 0) and (newLines[-1].strip() == ''):
                    newLines.pop()
            if not skipBlock:
                newLines.append(line)
            if line.startswith(skipBlock):
                skipBlock = ""
        if skipBlock:
            print "WARNING: missing end mark ('%s')" % skipBlock

        if doMerge:
            for f in fragFileNames:
                if ignoreMissing and not os.path.exists(f):
                    print "WARNING: '%s' does not exist, I'm ignoring it" % f
                    continue
                # I do not want to add 2 empty lines at the beginning of a file
                if newLines:
                    newLines.append('\n\n')
                bf = os.path.basename(f)
                newLines.append(startMark + bf + '\n')
                newLines.append(timeMark + '\n')
                newLines.extend(line for line in open(f, 'r')
                                if not excluded(line))
                if not newLines[-1].endswith('\n'):
                    newLines.append('\n')
                newLines.append(endMark + bf + '\n')

        mergedFile.seek(0)
        mergedFile.truncate(0)
        mergedFile.writelines(newLines)

    finally:
        # unlock file
        locker.unlock(mergedFile)

    return 0