cata_log_hub.providers package
- class cata_log_hub.providers.Action[source]
Bases:
ProviderProvider class for Action current catalog.
- uid: str = 'action-de'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Action'
The name of this catalog provider.
- url: str = 'https://www.action.com/de-de/prospekt/'
The url of this catalog provider
- region
alias of
Germany
- description: str = 'Action Katalog'
The user-facing description for this provider
- first_page_number: int = 0
The number of the first page in the providers api
- overview_url_format = 'https://de.publications.action.com/action-week-{week_number:02}-{valid_since:%Y}/spreads.json'
- _get_catalog_data()[source]
Get and store the data for this providers catalog. Can be passed if no data beside the pagenumber is required to fetch pages from the provider.
- Return type:
- _get_page(page_number)[source]
Get one page from the provider.
- Parameters:
page_number (
PageNumber) – The number of the page in the numbering of the provider.- Return type:
- Returns:
The downloaded page in bytes.
- _get_valid_since()[source]
Get the datetime since which this providers catalog is valid.
- Return type:
- _get_valid_until()[source]
Get the datetime until which this providers catalog is valid.
- Return type:
- class cata_log_hub.providers.AldiNord[source]
Bases:
ProviderProvider class for AldiNord catalog.
- uid: str = 'aldi-nord-de'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Aldi-Nord'
The name of this catalog provider.
- description: str = 'Aldi-Nord Angebote'
The user-facing description for this provider
- region
alias of
Germany
- url: str = 'https://www.aldi-nord.de/prospekte/'
The url of this catalog provider
- first_page_number: int = 1
The number of the first page in the providers api
- schedule: str = '0 4 * * *'
The crontab schedule for fetching this provider
- page_url_format = 'https://ipaper.ipapercms.dk/aldi-nord/aldi-aktuell/{valid_since:%Y}/{valid_since:%Y}cw{week_number:02}mopromotionaldi-angebote-ab-montag-{valid_since:%d}-{valid_since:%m}/Image.ashx?PageNumber={page_number}&ImageType=Normal'
- _get_catalog_data()[source]
Get and store the data for this providers catalog. Can be passed if no data beside the pagenumber is required to fetch pages from the provider.
- Return type:
- _get_page(page_number)[source]
Get one page from the provider.
- Parameters:
page_number (
PageNumber) – The number of the page in the numbering of the provider.- Return type:
- Returns:
The downloaded page in bytes.
- _get_valid_since()[source]
Get the datetime since which this providers catalog is valid.
- Return type:
- _get_valid_until()[source]
Get the datetime until which this providers catalog is valid.
- Return type:
- class cata_log_hub.providers.AldiNordPreview[source]
-
Provider class for AldiNord preview catalog for next week.
- uid: str = 'aldi-nord-de-preview'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Aldi-Nord-Vorschau'
The name of this catalog provider.
- description: str = 'Aldi-Nord Angebote nächste Woche'
The user-facing description for this provider
- schedule: str = '0 4 * * *'
The crontab schedule for fetching this provider
- _get_preview_timedelta()[source]
Get the dynamic timedelta between the relevant datetime and the relevant datetime of the preview.
- Return type:
- Returns:
The preview timedelta.
- class cata_log_hub.providers.AldiSued[source]
Bases:
ProviderProvider class for Aldi-Süd current catalog.
- uid: str = 'aldi-sued-de'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Aldi-Süd'
The name of this catalog provider.
- url: str = 'https://www.aldi-sued.de/prospekte'
The url of this catalog provider
- region
alias of
Germany
- description: str = 'Aldi Süd Katalog'
The user-facing description for this provider
- first_page_number: int = 0
The number of the first page in the providers api
- overview_url_format = 'https://prospekt.aldi-sued.de/kw{week_number:02}-{relevant_datetime:%y}-op-mp/spreads.json'
- _get_catalog_data()[source]
Get and store the data for this providers catalog. Can be passed if no data beside the pagenumber is required to fetch pages from the provider.
- Return type:
- _get_page(page_number)[source]
Get one page from the provider.
- Parameters:
page_number (
PageNumber) – The number of the page in the numbering of the provider.- Return type:
- Returns:
The downloaded page in bytes.
- _get_valid_since()[source]
Get the datetime since which this providers catalog is valid.
- Return type:
- _get_valid_until()[source]
Get the datetime until which this providers catalog is valid.
- Return type:
- class cata_log_hub.providers.AldiSuedPrepreview[source]
-
Provider class for Aldi-Süd preview catalog for the second-next week.
- uid: str = 'aldi-sued-de-preview-2'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Aldi-Süd-Vorvorschau'
The name of this catalog provider.
- description: str = 'Aldi Süd Katalog für übernächste Woche'
The user-facing description for this provider
- overview_url_format = 'https://prospekt.aldi-sued.de/kw{week_number:02}-{relevant_datetime:%y}-vop/spreads.json'
- _get_preview_timedelta()[source]
Get the dynamic timedelta between the relevant datetime and the relevant datetime of the preview.
- Return type:
- Returns:
The preview timedelta.
- class cata_log_hub.providers.AldiSuedPreview[source]
-
Provider class for Aldi-Süd preview catalog for next week.
- uid: str = 'aldi-sued-de-preview'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Aldi-Süd-Vorschau'
The name of this catalog provider.
- description: str = 'Aldi Süd Katalog für nächste Woche'
The user-facing description for this provider
- overview_url_format = 'https://prospekt.aldi-sued.de/kw{week_number:02}-{relevant_datetime:%y}-op/spreads.json'
- _get_preview_timedelta()[source]
Get the dynamic timedelta between the relevant datetime and the relevant datetime of the preview.
- Return type:
- Returns:
The preview timedelta.
- class cata_log_hub.providers.EdekaMarkt[source]
Bases:
ProviderProvider class for Edeka Marktangebote catalog.
- uid: str = 'edeka-markt-de'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Edeka-Markt'
The name of this catalog provider.
- description: str = 'Edeka Markt Angebote'
The user-facing description for this provider
- url: str = 'https://www.edeka-wochenangebote.de/'
The url of this catalog provider
- region
alias of
Germany
- class Configuration[source]
Bases:
Configuration- region: str
- edeka_markt: str
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- url_format = 'https://blaetterkatalog.edeka.de/{region}/{edeka_markt}/blaetterkatalog/normal/bk_{page_number}.jpg'
- _get_catalog_data()[source]
Get and store the data for this providers catalog. Can be passed if no data beside the pagenumber is required to fetch pages from the provider.
- Return type:
- _get_page(page_number)[source]
Get one page from the provider.
- Parameters:
page_number (
PageNumber) – The number of the page in the numbering of the provider.- Return type:
- Returns:
The downloaded page in bytes.
- _get_valid_since()[source]
Get the datetime since which this providers catalog is valid.
- Return type:
- _get_valid_until()[source]
Get the datetime until which this providers catalog is valid.
- Return type:
- class cata_log_hub.providers.Hofer[source]
Bases:
ProviderProvider class for Hofer current catalog.
- uid: str = 'hofer-au'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Hofer'
The name of this catalog provider.
- url: str = 'https://www.hofer.at/de/angebote/aktuelle-flugblaetter-und-broschuren.html'
The url of this catalog provider
- region
alias of
Austria
- description: str = 'Hofer Prospekt'
The user-facing description for this provider
- first_page_number: int = 0
The number of the first page in the providers api
- overview_url_format = 'https://katalog.hofer.at/flipbook_kw{week_number:02}_{relevant_datetime:%y}_0/spreads.json'
- _get_catalog_data()[source]
Get and store the data for this providers catalog. Can be passed if no data beside the pagenumber is required to fetch pages from the provider.
- Return type:
- _get_page(page_number)[source]
Get one page from the provider.
- Parameters:
page_number (
PageNumber) – The number of the page in the numbering of the provider.- Return type:
- Returns:
The downloaded page in bytes.
- _get_valid_since()[source]
Get the datetime since which this providers catalog is valid.
- Return type:
- _get_valid_until()[source]
Get the datetime until which this providers catalog is valid.
- Return type:
- class cata_log_hub.providers.HoferPreview[source]
-
Provider class for Hofer preview catalog for next week.
- uid: str = 'hofer-au-preview'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Hofer-Vorschau'
The name of this catalog provider.
- description: str = 'Hofer Prospekt für nächste Woche'
The user-facing description for this provider
- _get_preview_timedelta()[source]
Get the dynamic timedelta between the relevant datetime and the relevant datetime of the preview.
- Return type:
- Returns:
The preview timedelta.
- class cata_log_hub.providers.KauflandSonder[source]
Bases:
KauflandWocheProvider class for Kaufland Sonderangebote catalog.
- uid: str = 'kaufland-sonder-de'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Kaufland Sonderprospekt'
The name of this catalog provider.
- description: str = 'Kaufland Sonderangebote'
The user-facing description for this provider
- class cata_log_hub.providers.KauflandWoche[source]
Bases:
ProviderProvider class for Kaufland Wochenangebote catalog.
- uid: str = 'kaufland-de'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Kaufland'
The name of this catalog provider.
- description: str = 'Kaufland Angebote'
The user-facing description for this provider
- class Configuration[source]
Bases:
Configuration- filial_id: str
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- url: str = 'https://filiale.kaufland.de/prospekte.html'
The url of this catalog provider
- region
alias of
Germany
- first_page_number: int = 0
The number of the first page in the providers api
- overview_url_template = 'https://endpoints.leaflets.schwarz/v4/overview/?region_id={filial_id}&client_locale=kaufland/{language_code_lower}-{language_code_upper}'
- _get_catalog_data()[source]
Get and store the data for this providers catalog. Can be passed if no data beside the pagenumber is required to fetch pages from the provider.
- Return type:
- _get_page(page_number)[source]
Get one page from the provider.
- Parameters:
page_number (
PageNumber) – The number of the page in the numbering of the provider.- Return type:
- Returns:
The downloaded page in bytes.
- _get_valid_since()[source]
Get the datetime since which this providers catalog is valid.
- Return type:
- _get_valid_until()[source]
Get the datetime until which this providers catalog is valid.
- Return type:
- class cata_log_hub.providers.KauflandWochePreview[source]
Bases:
Preview,KauflandWocheProvider class for Kaufland Wochenangebote preview catalog for next week.
- uid: str = 'kaufland-de-preview'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Kaufland-Vorschau'
The name of this catalog provider.
- description: str = 'Kaufland Angebote im nächsten Katalog'
The user-facing description for this provider
- _get_preview_timedelta()[source]
Get the dynamic timedelta between the relevant datetime and the relevant datetime of the preview.
- Return type:
- Returns:
The preview timedelta.
- class cata_log_hub.providers.Kik[source]
Bases:
ProviderProvider class for Kik current catalog.
- uid: str = 'kik-de'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Kik'
The name of this catalog provider.
- url: str = 'https://www.kik.de/Dein-Online-Prospekt'
The url of this catalog provider
- region
alias of
Germany
- description: str = 'Kik Katalog'
The user-facing description for this provider
- first_page_number: int = 0
The number of the first page in the providers api
- overview_url_format = 'https://prospekt.kik.de/kik-{relevant_datetime:%Y}-op{catalog_number}-de_high/spreads.json'
- _get_catalog_data()[source]
Get and store the data for this providers catalog. Can be passed if no data beside the pagenumber is required to fetch pages from the provider.
- Return type:
- _get_page(page_number)[source]
Get one page from the provider.
- Parameters:
page_number (
PageNumber) – The number of the page in the numbering of the provider.- Return type:
- Returns:
The downloaded page in bytes.
- _get_valid_since()[source]
Get the datetime since which this providers catalog is valid.
- Return type:
- _get_valid_until()[source]
Get the datetime until which this providers catalog is valid.
- Return type:
- class cata_log_hub.providers.LidlDeutschland[source]
Bases:
ProviderProvider class for the current german Lidl catalog.
- uid: str = 'lidl-de'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Lidl'
The name of this catalog provider.
- description: str = 'Lidl Angebote'
The user-facing description for this provider
- url: str = 'https://www.lidl.de/c/online-prospekte/s10005610'
The url of this catalog provider
- region
alias of
Germany
- first_page_number: int = 0
The number of the first page in the providers api
- class Configuration[source]
Bases:
Configuration- region_id: str
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- overview_url_template = 'https://endpoints.leaflets.schwarz/v4/overview/?region_id={region_id}&client_locale=lidl/{language_code_lower}-{language_code_upper}'
- _get_catalog_data()[source]
Get and store the data for this providers catalog. Can be passed if no data beside the pagenumber is required to fetch pages from the provider.
- Return type:
- _get_page(page_number)[source]
Get one page from the provider.
- Parameters:
page_number (
PageNumber) – The number of the page in the numbering of the provider.- Return type:
- Returns:
The downloaded page in bytes.
- _get_valid_since()[source]
Get the datetime since which this providers catalog is valid.
- Return type:
- _get_valid_until()[source]
Get the datetime until which this providers catalog is valid.
- Return type:
- class cata_log_hub.providers.LidlDeutschlandPrepreview[source]
Bases:
LidlDeutschlandPreviewProvider class for Lidl preview catalog for second-next week.
- uid: str = 'lidl-de-preview-2'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Lidl-Vorvorschau'
The name of this catalog provider.
- description: str = 'Lidl Angebote übernächste Woche'
The user-facing description for this provider
- _get_preview_timedelta()[source]
Get the dynamic timedelta between the relevant datetime and the relevant datetime of the preview.
- Return type:
- Returns:
The preview timedelta.
- class cata_log_hub.providers.LidlDeutschlandPreview[source]
Bases:
Preview,LidlDeutschlandProvider class for Lidl preview catalog for next week.
- uid: str = 'lidl-de-preview'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Lidl-Vorschau'
The name of this catalog provider.
- description: str = 'Lidl Angebote nächste Woche'
The user-facing description for this provider
- _get_preview_timedelta()[source]
Get the dynamic timedelta between the relevant datetime and the relevant datetime of the preview.
- Return type:
- Returns:
The preview timedelta.
- class cata_log_hub.providers.LidlItalia[source]
Bases:
LidlDeutschlandProvider class for the current italian Lidl catalog.
- uid: str = 'lidl-it'
A unique identifier for this provider class. Must not be changed after definition.
- region
alias of
Italy
- description: str = 'Offerte Lidl'
The user-facing description for this provider
- class cata_log_hub.providers.MetroWochenangebote[source]
Bases:
ProviderProvider class for Metro Wochenangebote current catalog.
- uid: str = 'metro-de'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Metro-Wochenangebote'
The name of this catalog provider.
- url: str = 'https://www.metro.de/angebote'
The url of this catalog provider
- region
alias of
Germany
- description: str = 'Metro Wochenangebote'
The user-facing description for this provider
- first_page_number: int = 0
The number of the first page in the providers api
- overview_url_format = 'https://prospekte.metro.de/wochen-angebote-{valid_since:%y%m%d}-{valid_until:%y%m%d}/spreads.json'
- _get_catalog_data()[source]
Get and store the data for this providers catalog. Can be passed if no data beside the pagenumber is required to fetch pages from the provider.
- Return type:
- _get_page(page_number)[source]
Get one page from the provider.
- Parameters:
page_number (
PageNumber) – The number of the page in the numbering of the provider.- Return type:
- Returns:
The downloaded page in bytes.
- _get_valid_since()[source]
Get the datetime since which this providers catalog is valid.
- Return type:
- _get_valid_until()[source]
Get the datetime until which this providers catalog is valid.
- Return type:
- class cata_log_hub.providers.MetroWochenangebotePreview[source]
Bases:
Preview,MetroWochenangeboteProvider class for Metro Wochenangebote preview catalog for next week.
- uid: str = 'metro-de-preview'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Metro-Wochenangebote-Vorschau'
The name of this catalog provider.
- description: str = 'Metro Wochenangebote für nächste Woche'
The user-facing description for this provider
- _get_preview_timedelta()[source]
Get the dynamic timedelta between the relevant datetime and the relevant datetime of the preview.
- Return type:
- Returns:
The preview timedelta.
- class cata_log_hub.providers.Netto[source]
Bases:
ProviderProvider class for Netto catalog.
- uid: str = 'netto-de'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Netto'
The name of this catalog provider.
- description: str = 'Netto Angebote'
The user-facing description for this provider
- region
alias of
Germany
- url: str = 'https://www.netto-online.de/ueber-netto/Online-Prospekte.chtm'
The url of this catalog provider
- first_page_number: int = 0
The number of the first page in the providers api
- schedule: str = '0 4 * * 1-6'
The crontab schedule for fetching this provider
- _get_catalog_data()[source]
Get and store the data for this providers catalog. Can be passed if no data beside the pagenumber is required to fetch pages from the provider.
- Return type:
- _get_page(page_number)[source]
Get one page from the provider.
- Parameters:
page_number (
PageNumber) – The number of the page in the numbering of the provider.- Return type:
- Returns:
The downloaded page in bytes.
- _get_valid_since()[source]
Get the datetime since which this providers catalog is valid.
- Return type:
- _get_valid_until()[source]
Get the datetime until which this providers catalog is valid.
- Return type:
- class cata_log_hub.providers.NettoPreview[source]
-
Provider class for Netto preview catalog for next week.
- uid: str = 'netto-de-preview'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Netto-Vorschau'
The name of this catalog provider.
- description: str = 'Netto Angebote nächste Woche'
The user-facing description for this provider
- schedule: str = '0 4 * * *'
The crontab schedule for fetching this provider
- _get_preview_timedelta()[source]
Get the dynamic timedelta between the relevant datetime and the relevant datetime of the preview.
- Return type:
- Returns:
The preview timedelta.
- class cata_log_hub.providers.Norma[source]
Bases:
ProviderProvider class for Norma catalog.
- uid: str = 'norma-de'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Norma'
The name of this catalog provider.
- description: str = 'Norma Angebote'
The user-facing description for this provider
- region
alias of
Germany
- url: str = 'https://www.norma-online.de/de/angebote/onlineprospekt/'
The url of this catalog provider
- catalog_url_format = 'https://www.norma-online.de/de/angebote/online-prospekt/{relevant_datetime:%Y}-{week_number:02}_FG/files/page/{page_number}.jpg'
- _get_catalog_data()[source]
Get and store the data for this providers catalog. Can be passed if no data beside the pagenumber is required to fetch pages from the provider.
- Return type:
- _get_page(page_number)[source]
Get one page from the provider.
- Parameters:
page_number (
PageNumber) – The number of the page in the numbering of the provider.- Return type:
- Returns:
The downloaded page in bytes.
- _get_valid_since()[source]
Get the datetime since which this providers catalog is valid.
- Return type:
- _get_valid_until()[source]
Get the datetime until which this providers catalog is valid.
- Return type:
- class cata_log_hub.providers.NormaPrepreview[source]
Bases:
NormaPreviewProvider class for Norma preview catalog for second-next week.
- uid: str = 'norma-de-preview-2'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Norma-Vorvorschau'
The name of this catalog provider.
- description: str = 'Norma Angebote übernächste Woche'
The user-facing description for this provider
- _get_preview_timedelta()[source]
Get the dynamic timedelta between the relevant datetime and the relevant datetime of the preview.
- Return type:
- Returns:
The preview timedelta.
- class cata_log_hub.providers.NormaPreview[source]
-
Provider class for Norma preview catalog for next week.
- uid: str = 'norma-de-preview'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Norma-Vorschau'
The name of this catalog provider.
- description: str = 'Norma Angebote nächste Woche'
The user-facing description for this provider
- _get_preview_timedelta()[source]
Get the dynamic timedelta between the relevant datetime and the relevant datetime of the preview.
- Return type:
- Returns:
The preview timedelta.
- class cata_log_hub.providers.NormaRetrospect[source]
Bases:
NormaPreviewProvider class for Norma retrospect catalog for last week.
- uid: str = 'norma-de-retrospect'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Norma-Rückschau'
The name of this catalog provider.
- description: str = 'Norma Angebote letzte Woche'
The user-facing description for this provider
- _get_preview_timedelta()[source]
Get the dynamic timedelta between the relevant datetime and the relevant datetime of the preview.
- Return type:
- Returns:
The preview timedelta.
- class cata_log_hub.providers.NormaRetrospect2[source]
Bases:
NormaPreviewProvider class for Norma retrospect catalog for second-last week.
- uid: str = 'norma-de-retrospect-2'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Norma-Rückrückschau'
The name of this catalog provider.
- description: str = 'Norma Angebote vorletzte Woche'
The user-facing description for this provider
- _get_preview_timedelta()[source]
Get the dynamic timedelta between the relevant datetime and the relevant datetime of the preview.
- Return type:
- Returns:
The preview timedelta.
- class cata_log_hub.providers.Penny[source]
Bases:
ProviderProvider class for Kaufland Wochenangebote catalog.
- uid: str = 'penny-de'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Penny'
The name of this catalog provider.
- description: str = 'Penny Katalog'
The user-facing description for this provider
- schedule: str = '0 3 * * *'
The crontab schedule for fetching this provider
- class Configuration[source]
Bases:
Configuration- markt_id: str
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- url: str = 'https://www.penny.de/angebote#handout'
The url of this catalog provider
- region
alias of
Germany
- first_page_number: int = 0
The number of the first page in the providers api
- pdf_url_template = 'https://penny-publish.blaetterkatalog.de/frontend/catalogs/{catalog_id}/2/pdf/complete.pdf'
- _get_catalog_data()[source]
Get and store the data for this providers catalog. Can be passed if no data beside the pagenumber is required to fetch pages from the provider.
- Return type:
- _get_page(page_number)[source]
Get one page from the provider.
- Parameters:
page_number (
PageNumber) – The number of the page in the numbering of the provider.- Return type:
- Returns:
The downloaded page in bytes.
- _get_valid_since()[source]
Get the datetime since which this providers catalog is valid.
- Return type:
- _get_valid_until()[source]
Get the datetime until which this providers catalog is valid.
- Return type:
- class cata_log_hub.providers.PennyPreview[source]
-
Provider class for Kaufland Wochenangebote preview catalog for next week.
- uid: str = 'penny-de-preview'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Penny-Vorschau'
The name of this catalog provider.
- description: str = 'Penny Katalog im nächsten Katalog'
The user-facing description for this provider
- _get_preview_timedelta()[source]
Get the dynamic timedelta between the relevant datetime and the relevant datetime of the preview.
- Return type:
- Returns:
The preview timedelta.
- class cata_log_hub.providers.Provider[source]
Bases:
ABCAbstract base class for all catalog providers.
- _registry: ClassVar[dict[str, type[Provider]]] = {'action-de': <class 'cata_log_hub.providers.action.Action'>, 'aldi-nord-de': <class 'cata_log_hub.providers.aldi_nord.AldiNord'>, 'aldi-nord-de-preview': <class 'cata_log_hub.providers.aldi_nord.AldiNordPreview'>, 'aldi-sued-de': <class 'cata_log_hub.providers.aldi_sued.AldiSued'>, 'aldi-sued-de-preview': <class 'cata_log_hub.providers.aldi_sued.AldiSuedPreview'>, 'aldi-sued-de-preview-2': <class 'cata_log_hub.providers.aldi_sued.AldiSuedPrepreview'>, 'edeka-markt-de': <class 'cata_log_hub.providers.edeka.EdekaMarkt'>, 'hofer-au': <class 'cata_log_hub.providers.hofer.Hofer'>, 'hofer-au-preview': <class 'cata_log_hub.providers.hofer.HoferPreview'>, 'kaufland-de': <class 'cata_log_hub.providers.kaufland.KauflandWoche'>, 'kaufland-de-preview': <class 'cata_log_hub.providers.kaufland.KauflandWochePreview'>, 'kaufland-sonder-de': <class 'cata_log_hub.providers.kaufland.KauflandSonder'>, 'kik-de': <class 'cata_log_hub.providers.kik.Kik'>, 'lidl-de': <class 'cata_log_hub.providers.lidl.LidlDeutschland'>, 'lidl-de-preview': <class 'cata_log_hub.providers.lidl.LidlDeutschlandPreview'>, 'lidl-de-preview-2': <class 'cata_log_hub.providers.lidl.LidlDeutschlandPrepreview'>, 'lidl-it': <class 'cata_log_hub.providers.lidl.LidlItalia'>, 'metro-de': <class 'cata_log_hub.providers.metro.MetroWochenangebote'>, 'metro-de-preview': <class 'cata_log_hub.providers.metro.MetroWochenangebotePreview'>, 'netto-de': <class 'cata_log_hub.providers.netto.Netto'>, 'netto-de-preview': <class 'cata_log_hub.providers.netto.NettoPreview'>, 'norma-de': <class 'cata_log_hub.providers.norma.Norma'>, 'norma-de-preview': <class 'cata_log_hub.providers.norma.NormaPreview'>, 'norma-de-preview-2': <class 'cata_log_hub.providers.norma.NormaPrepreview'>, 'norma-de-retrospect': <class 'cata_log_hub.providers.norma.NormaRetrospect'>, 'norma-de-retrospect-2': <class 'cata_log_hub.providers.norma.NormaRetrospect2'>, 'penny-de': <class 'cata_log_hub.providers.penny.Penny'>, 'penny-de-preview': <class 'cata_log_hub.providers.penny.PennyPreview'>, 'rewe-de': <class 'cata_log_hub.providers.rewe.Rewe'>, 'rewe-de-preview': <class 'cata_log_hub.providers.rewe.RewePreview'>, 'rossmann-aktion-de': <class 'cata_log_hub.providers.rossmann.RossmannAktion'>, 'rossmann-beilage-de': <class 'cata_log_hub.providers.rossmann.RossmannBeilage'>}
- uid: str
A unique identifier for this provider class. Must not be changed after definition.
- name: str
The name of this catalog provider.
- description: str
The user-facing description for this provider
- url: str
The url of this catalog provider
- first_page_number: int = 1
The number of the first page in the providers api
- schedule: str = '0 4 * * *'
The crontab schedule for fetching this provider
- jitter: int = 3600
Jitter for the schedule timing in seconds.
- class Configuration[source]
Bases:
BaseModelThe configuration for this provider.
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- final __init__(configuration)[source]
Constructor for a provider instance.
- Parameters:
configuration (
dict[str,str]) – The configuration dictionary for the provider.- Variables:
_configuration – An instance of the
cata_log_hub.providers.base.Provider.Configurationloaded from :param:`configuration` ._client – HTTPX client instance that throws on every error status and follows redirects.
_relevant_datetime – The relevant datetime defining the catalog to cache.
- Return type:
None
- get_relevant_datetime()[source]
Get the datetime that defines the catalog offered by this provider. The current datetime for current catalogs, a future datetime for preview catalogs. Used to set
_relevant_datetime.- Return type:
- Returns:
The current datetime in the providers regional timezone.
- abstractmethod _get_valid_since()[source]
Get the datetime since which this providers catalog is valid.
- Return type:
- final get_valid_since()[source]
_get_valid_since wrapped in error handling.
- Raises:
cata_log_hub.exceptions.ProviderBrokenWarning – If any exception is raise in getting the valid_since timestamp.
- Return type:
- abstractmethod _get_valid_until()[source]
Get the datetime until which this providers catalog is valid.
- Return type:
- final get_valid_until()[source]
_get_valid_until wrapped in error handling.
- Raises:
cata_log_hub.exceptions.ProviderBrokenWarning – If any exception is raise in getting the valid_until timestamp.
- Return type:
- abstractmethod _get_page(page_number)[source]
Get one page from the provider.
- Parameters:
page_number (
PageNumber) – The number of the page in the numbering of the provider.- Return type:
- Returns:
The downloaded page in bytes.
- get_page(page_number)[source]
_get_page wrapped in error handling.
- Raises:
cata_log_hub.exceptions.PagesExhausted – If page_number is not first_page_number and pages are exhausted or a
httpx.HTTPStatusErroris raised.cata_log_hub.exceptions.CatalogUnavailableWarning – If page_number is first_page_number and the catalog is unavailable.
cata_log_hub.exceptions.ProviderMisconfiguredOrBrokenWarning – If page_number is first_page_number and pages are exhausted or a
httpx.HTTPStatusErroris raised or the catalog is unavailable.cata_log_hub.exceptions.NetworkError – If a
httpx.TransportErroris raised.cata_log_hub.exceptions.ProviderBrokenWarning – If any other exception is raised.
- Return type:
- Parameters:
page_number (PageNumber)
- abstractmethod _get_catalog_data()[source]
Get and store the data for this providers catalog. Can be passed if no data beside the pagenumber is required to fetch pages from the provider.
- Return type:
- get_catalog_data()[source]
_get_catalog_data wrapped in error handling.
- Raises:
cata_log_hub.exceptions.CatalogUnavailableWarning – If the catalog is unavailable.
cata_log_hub.exceptions.ProviderMisconfiguredOrBrokenWarning – If a
httpx.HTTPStatusErroris raised.cata_log_hub.exceptions.NetworkError – If a
httpx.TransportErroris raised.cata_log_hub.exceptions.ProviderBrokenWarning – If any other exception is raised.
- Return type:
- final iter_catalog_pages()[source]
Iterate over pages of this providers catalog.
- final classmethod get_class(class_uid)[source]
Get the provider class to a given class-id.
- Parameters:
class_uid (
str) – The class-id to get the provider for.- Return type:
- Returns:
The class to the class-id.
- Raises:
cata_log_hub.exceptions.ProviderUnknownClassWarning – If there is no class for the given uid.
- final classmethod get_class_uids()[source]
Get all registered class-ids.
- final classmethod get_classes()[source]
Get all registered classes.
- final classmethod validate_configuration(configuration_dict)[source]
Validate a given configuration and return the validated version.
- Parameters:
configuration_dict (
dict[str,Any]) – The configuration dictionary to validate.- Return type:
- Returns:
The validated configuration.
- Raises:
cata_log_hub.exceptions.ProviderInvalidConfigurationWarning – If the given configuration is incomplete or otherwise invalid.
- class cata_log_hub.providers.Rewe[source]
Bases:
ProviderProvider class for Rewe catalog.
- uid: str = 'rewe-de'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Rewe'
The name of this catalog provider.
- description: str = 'Rewe Katalog'
The user-facing description for this provider
- url: str = 'https://www.rewe.de/angebote/'
The url of this catalog provider
- region
alias of
Germany
- class Configuration[source]
Bases:
Configuration- markt_id: str
- model_config: ClassVar[ConfigDict] = {}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- first_page_number: int = 0
The number of the first page in the providers api
- overview_url_format = 'https://view.publitas.com/rewe-markt/rewe_{relevant_datetime:%Y}_wk{week_number:02}_{markt_id}/spreads.json'
- _get_catalog_data()[source]
Get and store the data for this providers catalog. Can be passed if no data beside the pagenumber is required to fetch pages from the provider.
- Return type:
- _get_page(page_number)[source]
Get one page from the provider.
- Parameters:
page_number (
PageNumber) – The number of the page in the numbering of the provider.- Return type:
- Returns:
The downloaded page in bytes.
- _get_valid_since()[source]
Get the datetime since which this providers catalog is valid.
- Return type:
- _get_valid_until()[source]
Get the datetime until which this providers catalog is valid.
- Return type:
- class cata_log_hub.providers.RewePreview[source]
-
Provider class for Rewe preview catalog.
- uid: str = 'rewe-de-preview'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Rewe-Vorschau'
The name of this catalog provider.
- description: str = 'Rewe Katalog nächste Woche'
The user-facing description for this provider
- schedule: str = '30 4 * * 6,0'
The crontab schedule for fetching this provider
- _get_preview_timedelta()[source]
Get the dynamic timedelta between the relevant datetime and the relevant datetime of the preview.
- Return type:
- Returns:
The preview timedelta.
- class cata_log_hub.providers.RossmannAktion[source]
Bases:
RossmannBeilageProvider class for Rossmann Angebote catalog.
- uid: str = 'rossmann-aktion-de'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Rossmann-Aktionsangebote'
The name of this catalog provider.
- description: str = 'Rossmann Aktionsangebote'
The user-facing description for this provider
- class cata_log_hub.providers.RossmannBeilage[source]
Bases:
ProviderProvider class for Rossmann Beilage catalog.
- uid: str = 'rossmann-beilage-de'
A unique identifier for this provider class. Must not be changed after definition.
- name: str = 'Rossmann-Angebote'
The name of this catalog provider.
- description: str = 'Rossmann Angebote'
The user-facing description for this provider
- url: str = 'https://www.rossmann.de/de/kataloge/angebote/index.html'
The url of this catalog provider
- region
alias of
Germany
- schedule: str = '0 5 * * 1-5'
The crontab schedule for fetching this provider
- url_format = 'https://www.rossmann.de/de/kataloge/angebote/catalogs/{relevant_datetime:%Y}_kw{week_number}_beilage/normal/bk_{page_number}.jpg'
- _get_catalog_data()[source]
Get and store the data for this providers catalog. Can be passed if no data beside the pagenumber is required to fetch pages from the provider.
- Return type:
- _get_page(page_number)[source]
Get one page from the provider.
- Parameters:
page_number (
PageNumber) – The number of the page in the numbering of the provider.- Return type:
- Returns:
The downloaded page in bytes.
- _get_valid_since()[source]
Get the datetime since which this providers catalog is valid.
- Return type:
- _get_valid_until()[source]
Get the datetime until which this providers catalog is valid.
- Return type:
Submodules
- cata_log_hub.providers.action module
- cata_log_hub.providers.aldi_nord module
- cata_log_hub.providers.aldi_sued module
- cata_log_hub.providers.base module
- cata_log_hub.providers.edeka module
- cata_log_hub.providers.hofer module
- cata_log_hub.providers.kaufland module
- cata_log_hub.providers.kik module
- cata_log_hub.providers.lidl module
- cata_log_hub.providers.metro module
- cata_log_hub.providers.netto module
- cata_log_hub.providers.norma module
- cata_log_hub.providers.penny module
- cata_log_hub.providers.plugins module
- cata_log_hub.providers.regions module
- cata_log_hub.providers.rewe module
- cata_log_hub.providers.rossmann module