rechu.io package
rechu.io.base module
Abstract base classes for file reading, writing and parsing.
-
class rechu.io.base.Reader(path: Path, updated: datetime = datetime.datetime(1, 1, 1, 0, 0))[source]
Bases: Generic
[T
]
File reader.
-
parse(file: IO) → Iterator[T][source]
Parse an open file and yield specific models from it.
This method raises TypeError or subclasses if certain data in the
file does not have the correct type, and ValueError or subclasses if
the data has inconsistent or out-of-range values.
-
property path: Path
Retrieve the path from which to read the models.
-
read() → Iterator[T][source]
Read the file from the path and yield specific models from it.
-
class rechu.io.base.Writer(path: Path, models: Collection[T], updated: datetime | None = None)[source]
Bases: Generic
[T
]
File writer.
-
property path: Path
Retrieve the path to which to write the models.
-
serialize(file: IO) → None[source]
Write a serialized variant of the models to the open file.
-
write() → None[source]
Write the models to the path.
-
class rechu.io.base.YAMLReader(path: Path, updated: datetime = datetime.datetime(1, 1, 1, 0, 0))[source]
Bases: Reader
[T
]
YAML file reader.
-
load(file: IO) → Any[source]
Load the YAML file as a Python value.
-
class rechu.io.base.YAMLWriter(path: Path, models: Collection[T], updated: datetime | None = None)[source]
Bases: Writer
[T
]
YAML file writer.
-
TAG_FLOAT = 'tag:yaml.org,2002:float'
-
TAG_INT = 'tag:yaml.org,2002:int'
-
TAG_STR = 'tag:yaml.org,2002:str'
-
save(data: Any, file: IO) → None[source]
Save the YAML file from a Python value.
rechu.io.products module
Products matching metadata file handling.
-
class rechu.io.products.ProductsReader(path: Path, updated: datetime = datetime.datetime(1, 1, 1, 0, 0))[source]
Bases: YAMLReader
[Product
]
File reader for products metadata.
-
parse(file: IO) → Iterator[Product][source]
Parse an open file and yield specific models from it.
This method raises TypeError or subclasses if certain data in the
file does not have the correct type, and ValueError or subclasses if
the data has inconsistent or out-of-range values.
-
class rechu.io.products.ProductsWriter(path: Path, models: Collection[Product], updated: datetime | None = None, shared_fields: Iterable[Literal['shop', 'brand', 'category', 'type']] = ('shop', 'category', 'type'))[source]
Bases: YAMLWriter
[Product
]
File writer for products metadata.
-
serialize(file: IO) → None[source]
Write a serialized variant of the models to the open file.
rechu.io.receipt module
Receipt file handling.
-
class rechu.io.receipt.ReceiptReader(path: Path, updated: datetime = datetime.datetime(1, 1, 1, 0, 0))[source]
Bases: YAMLReader
[Receipt
]
Receipt file reader.
-
parse(file: IO) → Iterator[Receipt][source]
Parse an open file and yield specific models from it.
This method raises TypeError or subclasses if certain data in the
file does not have the correct type, and ValueError or subclasses if
the data has inconsistent or out-of-range values.
-
class rechu.io.receipt.ReceiptWriter(path: Path, models: Collection[Receipt], updated: datetime | None = None)[source]
Bases: YAMLWriter
[Receipt
]
Receipt file writer.
-
serialize(file: IO) → None[source]
Write a serialized variant of the models to the open file.
rechu.io.shops module
Shops metadata file handling.
-
class rechu.io.shops.ShopsReader(path: Path, updated: datetime = datetime.datetime(1, 1, 1, 0, 0))[source]
Bases: YAMLReader
[Shop
]
File reader for shops metadata.
-
parse(file: IO) → Iterator[Shop][source]
Parse an open file and yield specific models from it.
This method raises TypeError or subclasses if certain data in the
file does not have the correct type, and ValueError or subclasses if
the data has inconsistent or out-of-range values.
-
class rechu.io.shops.ShopsWriter(path: Path, models: Collection[T], updated: datetime | None = None)[source]
Bases: YAMLWriter
[Shop
]
File writer for shops metadata.
-
serialize(file: IO) → None[source]
Write a serialized variant of the models to the open file.
Module contents
Models for file reading and writing.
-
class rechu.io.ProductsReader(path: Path, updated: datetime = datetime.datetime(1, 1, 1, 0, 0))[source]
Bases: YAMLReader
[Product
]
File reader for products metadata.
-
parse(file: IO) → Iterator[Product][source]
Parse an open file and yield specific models from it.
This method raises TypeError or subclasses if certain data in the
file does not have the correct type, and ValueError or subclasses if
the data has inconsistent or out-of-range values.
-
class rechu.io.ProductsWriter(path: Path, models: Collection[Product], updated: datetime | None = None, shared_fields: Iterable[Literal['shop', 'brand', 'category', 'type']] = ('shop', 'category', 'type'))[source]
Bases: YAMLWriter
[Product
]
File writer for products metadata.
-
serialize(file: IO) → None[source]
Write a serialized variant of the models to the open file.
-
class rechu.io.ReceiptReader(path: Path, updated: datetime = datetime.datetime(1, 1, 1, 0, 0))[source]
Bases: YAMLReader
[Receipt
]
Receipt file reader.
-
parse(file: IO) → Iterator[Receipt][source]
Parse an open file and yield specific models from it.
This method raises TypeError or subclasses if certain data in the
file does not have the correct type, and ValueError or subclasses if
the data has inconsistent or out-of-range values.
-
class rechu.io.ReceiptWriter(path: Path, models: Collection[Receipt], updated: datetime | None = None)[source]
Bases: YAMLWriter
[Receipt
]
Receipt file writer.
-
serialize(file: IO) → None[source]
Write a serialized variant of the models to the open file.
-
class rechu.io.ShopsReader(path: Path, updated: datetime = datetime.datetime(1, 1, 1, 0, 0))[source]
Bases: YAMLReader
[Shop
]
File reader for shops metadata.
-
parse(file: IO) → Iterator[Shop][source]
Parse an open file and yield specific models from it.
This method raises TypeError or subclasses if certain data in the
file does not have the correct type, and ValueError or subclasses if
the data has inconsistent or out-of-range values.
-
class rechu.io.ShopsWriter(path: Path, models: Collection[T], updated: datetime | None = None)[source]
Bases: YAMLWriter
[Shop
]
File writer for shops metadata.
-
serialize(file: IO) → None[source]
Write a serialized variant of the models to the open file.