sasdata.ascii_reader_metadata module

class sasdata.ascii_reader_metadata.AsciiMetadataCategory(values: dict[str, T]=<factory>)

Bases: Generic

__annotations__ = {'values': dict[str, T]}
__dataclass_fields__ = {'values': Field(name='values',type=dict[str, T],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}
__dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)
__dict__ = mappingproxy({'__module__': 'sasdata.ascii_reader_metadata', '__firstlineno__': 34, '__type_params__': (T,), '__annotations__': {'values': dict[str, T]}, '__static_attributes__': (), '__orig_bases__': (typing.Generic[T],), '__dict__': <attribute '__dict__' of 'AsciiMetadataCategory' objects>, '__weakref__': <attribute '__weakref__' of 'AsciiMetadataCategory' objects>, '__doc__': 'AsciiMetadataCategory(values: dict[str, T] = <factory>)', '__parameters__': (T,), '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__dataclass_fields__': {'values': Field(name='values',type=dict[str, T],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function AsciiMetadataCategory.__init__>, '__repr__': <function AsciiMetadataCategory.__repr__>, '__eq__': <function AsciiMetadataCategory.__eq__>, '__match_args__': ('values',)})
__doc__ = 'AsciiMetadataCategory(values: dict[str, T] = <factory>)'
__eq__(other)

Return self==value.

__firstlineno__ = 34
__hash__ = None
__init__(values: dict[str, T]=<factory>) None
__match_args__ = ('values',)
__module__ = 'sasdata.ascii_reader_metadata'
__orig_bases__ = (typing.Generic[T],)
__parameters__ = (T,)
__replace__(**changes)
__repr__()

Return repr(self).

__static_attributes__ = ()
__type_params__ = (T,)
__weakref__

list of weak references to the object

values: dict[str, T]
class sasdata.ascii_reader_metadata.AsciiReaderMetadata(filename_specific_metadata: dict[str, dict[str, sasdata.ascii_reader_metadata.AsciiMetadataCategory[str]]]=<factory>, filename_separator: dict[str, str | bool]=<factory>, master_metadata: dict[str, sasdata.ascii_reader_metadata.AsciiMetadataCategory[int]]=<factory>)

Bases: object

__annotations__ = {'filename_separator': dict[str, str | bool], 'filename_specific_metadata': dict[str, dict[str, sasdata.ascii_reader_metadata.AsciiMetadataCategory[str]]], 'master_metadata': dict[str, sasdata.ascii_reader_metadata.AsciiMetadataCategory[int]]}
__dataclass_fields__ = {'filename_separator': Field(name='filename_separator',type=dict[str, str | bool],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'filename_specific_metadata': Field(name='filename_specific_metadata',type=dict[str, dict[str, sasdata.ascii_reader_metadata.AsciiMetadataCategory[str]]],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'master_metadata': Field(name='master_metadata',type=dict[str, sasdata.ascii_reader_metadata.AsciiMetadataCategory[int]],default=<dataclasses._MISSING_TYPE object>,default_factory=<function default_categories>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}
__dataclass_params__ = _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False)
__dict__ = mappingproxy({'__module__': 'sasdata.ascii_reader_metadata', '__firstlineno__': 41, '__annotations__': {'filename_specific_metadata': dict[str, dict[str, sasdata.ascii_reader_metadata.AsciiMetadataCategory[str]]], 'filename_separator': dict[str, str | bool], 'master_metadata': dict[str, sasdata.ascii_reader_metadata.AsciiMetadataCategory[int]]}, 'init_separator': <function AsciiReaderMetadata.init_separator>, 'filename_components': <function AsciiReaderMetadata.filename_components>, 'purge_unreachable': <function AsciiReaderMetadata.purge_unreachable>, 'all_file_metadata': <function AsciiReaderMetadata.all_file_metadata>, 'get_metadata': <function AsciiReaderMetadata.get_metadata>, 'update_metadata': <function AsciiReaderMetadata.update_metadata>, 'clear_metadata': <function AsciiReaderMetadata.clear_metadata>, 'add_file': <function AsciiReaderMetadata.add_file>, '__static_attributes__': (), '__dict__': <attribute '__dict__' of 'AsciiReaderMetadata' objects>, '__weakref__': <attribute '__weakref__' of 'AsciiReaderMetadata' objects>, '__doc__': 'AsciiReaderMetadata(filename_specific_metadata: dict[str, dict[str, sasdata.ascii_reader_metadata.AsciiMetadataCategory[str]]] = <factory>, filename_separator: dict[str, str | bool] = <factory>, master_metadata: dict[str, sasdata.ascii_reader_metadata.AsciiMetadataCategory[int]] = <factory>)', '__dataclass_params__': _DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,match_args=True,kw_only=False,slots=False,weakref_slot=False), '__dataclass_fields__': {'filename_specific_metadata': Field(name='filename_specific_metadata',type=dict[str, dict[str, sasdata.ascii_reader_metadata.AsciiMetadataCategory[str]]],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'filename_separator': Field(name='filename_separator',type=dict[str, str | bool],default=<dataclasses._MISSING_TYPE object>,default_factory=<class 'dict'>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD), 'master_metadata': Field(name='master_metadata',type=dict[str, sasdata.ascii_reader_metadata.AsciiMetadataCategory[int]],default=<dataclasses._MISSING_TYPE object>,default_factory=<function default_categories>,init=True,repr=True,hash=None,compare=True,metadata=mappingproxy({}),kw_only=False,_field_type=_FIELD)}, '__replace__': <function _replace>, '__hash__': None, '__init__': <function AsciiReaderMetadata.__init__>, '__repr__': <function AsciiReaderMetadata.__repr__>, '__eq__': <function AsciiReaderMetadata.__eq__>, '__match_args__': ('filename_specific_metadata', 'filename_separator', 'master_metadata')})
__doc__ = 'AsciiReaderMetadata(filename_specific_metadata: dict[str, dict[str, sasdata.ascii_reader_metadata.AsciiMetadataCategory[str]]] = <factory>, filename_separator: dict[str, str | bool] = <factory>, master_metadata: dict[str, sasdata.ascii_reader_metadata.AsciiMetadataCategory[int]] = <factory>)'
__eq__(other)

Return self==value.

__firstlineno__ = 41
__hash__ = None
__init__(filename_specific_metadata: dict[str, dict[str, ~sasdata.ascii_reader_metadata.AsciiMetadataCategory[str]]]=<factory>, filename_separator: dict[str, str | bool]=<factory>, master_metadata: dict[str, ~sasdata.ascii_reader_metadata.AsciiMetadataCategory[int]]=<factory>) None
__match_args__ = ('filename_specific_metadata', 'filename_separator', 'master_metadata')
__module__ = 'sasdata.ascii_reader_metadata'
__replace__(**changes)
__repr__()

Return repr(self).

__static_attributes__ = ()
__weakref__

list of weak references to the object

add_file(new_filename: str)

Add a filename to the metadata, filling it with some default categories.

all_file_metadata(filename: str) dict[str, AsciiMetadataCategory[str]]

Return all of the metadata for known for the specified filename. This will combin the master metadata specified for all files with the metadata specific to that filename.

clear_metadata(category: str, key: str, filename: str)

Remove any metadata recorded for a certain filename.

filename_components(filename: str, cut_off_extension: bool = True, capture: bool = False) list[str]

Split the filename into several components based on the current separator for that file.

filename_separator: dict[str, str | bool]
filename_specific_metadata: dict[str, dict[str, AsciiMetadataCategory[str]]]
get_metadata(category: str, value: str, filename: str, error_on_not_found=False) str | None

Get a particular piece of metadata for the filename.

init_separator(filename: str)
master_metadata: dict[str, AsciiMetadataCategory[int]]
purge_unreachable(filename: str)

This is used when the separator has changed. If lets say we now have 2 components when there were 5 but the 3rd component was selected, this will now produce an index out of range exception. Thus we’ll need to purge this to stop exceptions from happening.

update_metadata(category: str, key: str, filename: str, new_value: str | int)

Update the metadata for a filename. If the new_value is a string, then this new metadata will be specific to that file. Otherwise, if new_value is an integer, then this will represent the component of the filename that this metadata applies to all.

sasdata.ascii_reader_metadata.default_categories() dict[str, AsciiMetadataCategory[str | int]]