Source code for niemafs.dir

#! /usr/bin/env python
'''
Handle ZIP archives
'''

# NiemaFS imports
from niemafs.common import DEFAULT_BUFFER_SIZE, FileSystem

# standard imports
from datetime import datetime
from pathlib import Path
from warnings import warn

[docs] class DirFS(FileSystem): '''Class to represent a directory on disk''' def __init__(self, path, file_obj=None): if file_obj is not None: warn("DirFS initializer was given non-None 'file_obj' parameter, which will be ignored") super().__init__(path=path, file_obj=None) def __iter__(self): for curr_path in self.path.rglob('*'): curr_timestamp = datetime.fromtimestamp(curr_path.stat().st_mtime) if curr_path.is_dir(): curr_data = None else: with open(curr_path, mode='rb', buffering=DEFAULT_BUFFER_SIZE) as curr_file: curr_data = curr_file.read() yield (curr_path, curr_timestamp, curr_data)