<commit_before># Copyright (c) 2011 The Chromium Embedded Framework Authors. All rights
# reserved. Use of this source code is governed by a BSD-style license that
# can be found in the LICENSE file.

from glob import iglob
import os
import shutil
import sys
import time

def read_file(name, normalize = True):
    """ Read a file. """
    try:
        f = open(name, 'r')
        # read the data
        data = f.read()
        if normalize:
            # normalize line endings
            data = data.replace("\r\n", "\n")
        return data
    except IOError, (errno, strerror):
        sys.stderr.write('Failed to read file '+name+': '+strerror)
        raise
    else:
        f.close()
 
def write_file(name, data):
    """ Write a file. """
    try:
        f = open(name, 'w')
        # write the data
        f.write(data)
    except IOError, (errno, strerror):
       sys.stderr.write('Failed to write file '+name+': '+strerror)
       raise
    else:
        f.close()
        
def path_exists(name):
    """ Returns true if the path currently exists. """
    return os.path.exists(name)

def backup_file(name):
    """ Rename the file to a name that includes the current time stamp. """
    move_file(name, name+'.'+time.strftime('%Y-%m-%d-%H-%M-%S'))

def copy_file(src, dst, quiet = True):
    """ Copy a file. """
    try:
        shutil.copy(src, dst)
        if not quiet:
            sys.stdout.write('Transferring '+src+' file.\n')
    except IOError, (errno, strerror):
        sys.stderr.write('Failed to copy file from '+src+' to '+dst+': '+strerror)
        raise

def move_file(src, dst, quiet = True):
    """ Move a file. """
    try:
        shutil.move(src, dst)
        if not quiet:
            sys.stdout.write('Moving '+src+' file.\n')
    except IOError, (errno, strerror):
        sys.stderr.write('Failed to move file from '+src+' to '+dst+': '+strerror)
        raise

def copy_files(src_glob, dst_folder, quiet = True):
    """ Copy multiple files. """
    for fname in iglob(src_glob):
        dst = os.path.join(dst_folder, os.path.basename(fname))
        if os.path.isdir(fname):
            copy_dir(fname, dst, quiet)
        else:
            copy_file(fname, dst, quiet)

def remove_file(name, quiet = True):
    """ Remove the specified file. """
    try:
        if path_exists(name):
            os.remove(name)
            if not quiet:
                sys.stdout.write('Removing '+name+' file.\n')
    except IOError, (errno, strerror):
        sys.stderr.write('Failed to remove file '+name+': '+strerror)
        raise

def copy_dir(src, dst, quiet = True):
    """ Copy a directory tree. """
    try:
        remove_dir(dst, quiet)
        shutil.copytree(src, dst)
        if not quiet:
            sys.stdout.write('Transferring '+src+' directory.\n')
    except IOError, (errno, strerror):
        sys.stderr.write('Failed to copy directory from '+src+' to '+dst+': '+strerror)
        raise

def remove_dir(name, quiet = True):
    """ Remove the specified directory. """
    try:
        if path_exists(name):
            shutil.rmtree(name)
            if not quiet:
                sys.stdout.write('Removing '+name+' directory.\n')
    except IOError, (errno, strerror):
        sys.stderr.write('Failed to remove directory '+name+': '+strerror)
        raise

def make_dir(name, quiet = True):
    """ Create the specified directory. """
    try:
        if not path_exists(name):
            if not quiet:
                sys.stdout.write('Creating '+name+' directory.\n')
            os.makedirs(name)
    except IOError, (errno, strerror):
        sys.stderr.write('Failed to create directory '+name+': '+strerror)
        raise

def get_files(search_glob):
    """ Returns all files matching the search glob. """
    return iglob(search_glob)

def read_version_file(file, args):
    """ Read and parse a version file (key=value pairs, one per line). """
    lines = read_file(file).split("\n")
    for line in lines:
        parts = line.split('=', 1)
        if len(parts) == 2:
            args[parts[0]] = parts[1]<commit_msg>Linux: Make translator tool output consistent with other platforms (issue #1177).<commit_after># Copyright (c) 2011 The Chromium Embedded Framework Authors. All rights
# reserved. Use of this source code is governed by a BSD-style license that
# can be found in the LICENSE file.

from glob import iglob
import os
import shutil
import sys
import time

def read_file(name, normalize = True):
    """ Read a file. """
    try:
        f = open(name, 'r')
        # read the data
        data = f.read()
        if normalize:
            # normalize line endings
            data = data.replace("\r\n", "\n")
        return data
    except IOError, (errno, strerror):
        sys.stderr.write('Failed to read file '+name+': '+strerror)
        raise
    else:
        f.close()
 
def write_file(name, data):
    """ Write a file. """
    try:
        f = open(name, 'w')
        # write the data
        f.write(data)
    except IOError, (errno, strerror):
       sys.stderr.write('Failed to write file '+name+': '+strerror)
       raise
    else:
        f.close()
        
def path_exists(name):
    """ Returns true if the path currently exists. """
    return os.path.exists(name)

def backup_file(name):
    """ Rename the file to a name that includes the current time stamp. """
    move_file(name, name+'.'+time.strftime('%Y-%m-%d-%H-%M-%S'))

def copy_file(src, dst, quiet = True):
    """ Copy a file. """
    try:
        shutil.copy(src, dst)
        if not quiet:
            sys.stdout.write('Transferring '+src+' file.\n')
    except IOError, (errno, strerror):
        sys.stderr.write('Failed to copy file from '+src+' to '+dst+': '+strerror)
        raise

def move_file(src, dst, quiet = True):
    """ Move a file. """
    try:
        shutil.move(src, dst)
        if not quiet:
            sys.stdout.write('Moving '+src+' file.\n')
    except IOError, (errno, strerror):
        sys.stderr.write('Failed to move file from '+src+' to '+dst+': '+strerror)
        raise

def copy_files(src_glob, dst_folder, quiet = True):
    """ Copy multiple files. """
    for fname in iglob(src_glob):
        dst = os.path.join(dst_folder, os.path.basename(fname))
        if os.path.isdir(fname):
            copy_dir(fname, dst, quiet)
        else:
            copy_file(fname, dst, quiet)

def remove_file(name, quiet = True):
    """ Remove the specified file. """
    try:
        if path_exists(name):
            os.remove(name)
            if not quiet:
                sys.stdout.write('Removing '+name+' file.\n')
    except IOError, (errno, strerror):
        sys.stderr.write('Failed to remove file '+name+': '+strerror)
        raise

def copy_dir(src, dst, quiet = True):
    """ Copy a directory tree. """
    try:
        remove_dir(dst, quiet)
        shutil.copytree(src, dst)
        if not quiet:
            sys.stdout.write('Transferring '+src+' directory.\n')
    except IOError, (errno, strerror):
        sys.stderr.write('Failed to copy directory from '+src+' to '+dst+': '+strerror)
        raise

def remove_dir(name, quiet = True):
    """ Remove the specified directory. """
    try:
        if path_exists(name):
            shutil.rmtree(name)
            if not quiet:
                sys.stdout.write('Removing '+name+' directory.\n')
    except IOError, (errno, strerror):
        sys.stderr.write('Failed to remove directory '+name+': '+strerror)
        raise

def make_dir(name, quiet = True):
    """ Create the specified directory. """
    try:
        if not path_exists(name):
            if not quiet:
                sys.stdout.write('Creating '+name+' directory.\n')
            os.makedirs(name)
    except IOError, (errno, strerror):
        sys.stderr.write('Failed to create directory '+name+': '+strerror)
        raise

def get_files(search_glob):
    """ Returns all files matching the search glob. """
    # Sort the result for consistency across platforms.
    return sorted(iglob(search_glob))

def read_version_file(file, args):
    """ Read and parse a version file (key=value pairs, one per line). """
    lines = read_file(file).split("\n")
    for line in lines:
        parts = line.split('=', 1)
        if len(parts) == 2:
            args[parts[0]] = parts[1]
{'fraction_non_alphanumeric': 0.13676753121998078, 'fraction_numerical': 0.0024015369836695487, 'mean_word_length': 2.346323824829249, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6157026', 'n_tokens_mistral': 2588, 'n_tokens_neox': 2515, 'n_words': 782}