def get_files(directory, pattern): assert has_type(directory, StringType), has_type_message(directory, StringType) assert has_type(pattern, StringType), has_type_message(pattern, StringType) result = [] assert has_type(result, ListType), has_type_message(result, ListType) return result
def get_file_contents(path_name): assert has_type(path_name, StringType), has_type_message(path_name, StringType) with open(path_name, 'r') as f: result = f.read() assert has_type(result, StringType), has_type_message(result, StringType) return result
def file_is_empty(file_name): assert has_type(file_name, StringType), has_type_message(file_name, StringType) result = ( os.path.getsize(file_name) > 0) if file_exists(file_name) else False assert has_type(result, BooleanType), has_type_message(result, BooleanType) return result
def set_file_contents(path_name, contents): assert has_type(path_name, StringType), has_type_message(path_name, StringType) assert has_type(contents, StringType), has_type_message(contents, StringType) with open(path_name, 'w') as f: f.write(contents)
def get_file_modified_time(pathname): """Return Unix epoch for when pathname was last modified""" assert has_type(pathname, StringType), has_type_message(pathname, StringType) result = os.path.getmtime(pathname) assert has_type(result, FloatType), has_type_message(result, FloatType) result = timestamp_as_datetime_utc(result) assert has_type(result, datetime), has_type_message(result, datetime) return result
def get_empty_files(directory, pattern): assert has_type(directory, StringType), has_type_message(directory, StringType) assert has_type(pattern, StringType), has_type_message(pattern, StringType) compiled = re.compile(pattern) result = [] result = [f for f in os.listdir(directory) if compiled.match(f) and file_is_empty(f)] assert has_type(result, ListType), has_type_message(result, ListType) return result
def datetime_formatted(date_time, format_string): """Return UTC date_time as formatted string""" if date_time is None: result = '' else: assert has_type(date_time, datetime.datetime), has_type_message( date_time, datetime.datetime) assert date_time.utcoffset() is None result = format_string.format(date_time) assert has_type(result, StringType), has_type_message(result, StringType) return result
def timestamp_as_datetime_utc(timestamp): """Return UTC datetime for Unix epoch timestamp""" if has_type(timestamp, FloatType): result = datetime.datetime.utcfromtimestamp(timestamp) elif has_type(timestamp, IntType): result = datetime.datetime.utcfromtimestamp(timestamp) else: raise ValueError( unrecognized_message(timestamp, type(timestamp), 'type')) assert has_type(result, datetime.datetime), has_type_message( result, datetime.datetime) return result
def now(): """Return UTC datetime for NOW""" result = datetime.datetime.utcnow() assert has_type(result, datetime.datetime), has_type_message( result, datetime.datetime) return result
def path_exists(pathname): assert has_type(pathname, StringType), has_type_message(pathname, StringType) result = os.path.exists(pathname) assert has_type(result, BooleanType), has_type_message(result, BooleanType) return result
def maybe_create_directory(pathname): assert has_type(pathname, StringType), has_type_message(pathname, StringType) if not directory_exists(pathname): create_directory(pathname)
def get_uptime_from_proc(): with open('/proc/uptime', 'r') as f: line = f.readline() result = float(line.split()[0]) assert has_type(result, FloatType), has_type_message(result, FloatType) return result
def file_exists(filename): assert has_type(filename, StringType), has_type_message(filename, StringType) result = os.path.isfile(filename) assert has_type(result, BooleanType), has_type_message(result, BooleanType) return result
def directory_exists(pathname): assert has_type(pathname, StringType), has_type_message(pathname, StringType) result = os.path.isdir(pathname) assert has_type(result, BooleanType), has_type_message(result, BooleanType) return result
def create_directory(pathname): assert has_type(pathname, StringType), has_type_message(pathname, StringType) os.makedirs(pathname)
def delete_directory(path_name): assert has_type(path_name, StringType), has_type_message(path_name, StringType) shutil.rmtree(path_name)