sasdata.data_util.registry module¶
File extension registry.
This provides routines for opening files based on extension, and registers the built-in file extensions.
- class sasdata.data_util.registry.CustomFileOpen(filename, mode='rb')¶
Bases:
object
Custom context manager to fetch file contents depending on where the file is located.
- class sasdata.data_util.registry.ExtensionRegistry¶
Bases:
object
Associate a file loader with an extension.
Note that there may be multiple loaders for the same extension.
Example:
registry = ExtensionRegistry() # Add an association by setting an element registry['.zip'] = unzip # Multiple extensions for one loader registry['.tgz'] = untar registry['.tar.gz'] = untar # Generic extensions to use after trying more specific extensions; # these will be checked after the more specific extensions fail. registry['.gz'] = gunzip # Multiple loaders for one extension registry['.cx'] = cx1 registry['.cx'] = cx2 registry['.cx'] = cx3 # Show registered extensions print registry.extensions() # Can also register a format name for explicit control from caller registry['cx3'] = cx3 print registry.formats() # Retrieve loaders for a file name registry.lookup('hello.cx') -> [cx3,cx2,cx1] # Run loader on a filename registry.load('hello.cx') -> try: return cx3('hello.cx') except: try: return cx2('hello.cx') except: return cx1('hello.cx') # Load in a specific format ignoring extension registry.load('hello.cx',format='cx3') -> return cx3('hello.cx')
- extensions() List[str] ¶
Return a sorted list of registered extensions.
- formats() List[str] ¶
Return a sorted list of the registered formats.
- load(path: str, ext: str | None = None) List[Data1D | Data2D] ¶
Call the loader for a single file.
Exceptions are stored in Data1D instances, with the errors in Data1D.errors
- lookup(path: str) List[callable] ¶
Return the loader associated with the file type of path.
- Parameters:
path – Data file path
- Returns:
List of available readers for the file extension (maybe empty)
- sasdata.data_util.registry.create_empty_data_with_errors(path: str | Path, errors: List[Exception])¶
Create a Data1D instance that only holds errors and a filepath. This allows all file paths to return a common data type, regardless if the data loading was successful or a failure.