Metadata-Version: 2.1
Name: tpimporter
Version: 0.7.4
Summary: a package to import excel files - specifically our Titelplanung and TV Titelplanung
Home-page: https://github.com/skalizzo/TP_Importer
Author: Christian Richter
Author-email: christian.richter@leoninestudios.com
License: UNKNOWN
Project-URL: Source, https://github.com/skalizzo/TP_Importer
Keywords: Excel importer,Titelplanung,VOD,LEONINE
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Topic :: Utilities
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: openpyxl
Requires-Dist: msoffcrypto-tool

# TP Importer

This package is used for importing our main Titelplanung Excel files;
<br>
as this data is used in different systems this package provides adapters to use the imported data within different products
<br>
## Usage
Usage Example (Transaktional - Feature):
```
def import_tp_data_for_mam():
    """
    importiert TP-Daten mit den fürs MAM genutzten Keys
    """
    tp_path = "G:\Listen\TPDD aktuell absolutiert.xlsm"
    tp_data = TP_Importer().get_tp_data_from_file(tp_path)
    tp_data_mam = Adapter_For_MAM().transform(tp_data)
    for title in tp_data_mam:
        # do something with title


if __name__ == '__main__':
    tp_data_mam = import_tp_data_for_mam()
```

Usage Example for TVTP Transaktional:

```
def _get_data(self) -> dict:
    """
    diese Methode liest die Daten aus der TV Titelplanung ein
    :return: Dict (one entry per series with the series-Basis-VendorID as key) - die Daten zu den Staffeln
        kann man als Liste von Dicts unter dem Key "seasons" aufrufen
        (auch wieder als Dict mit Key = Season-Basis-VID),
        die zu den Episoden sind im Staffel-Dict als Liste von Dicts unter dem Key "episodes" zu finden
        (auch wieder als Dict mit Key = Episode-Basis-VID)
    """
    filepath = "G:\Listen\TV Titelplanung DD_absolutiert_v2.xlsm"
    tp_data = TVTP_Importer(
        valid_statuses=(
            "ok",
            "change",
            "new",
            "alt/keine Rechte",
            "canceled",
            "INDIZIERT",
            "no avail",
            "Rights expired",
            "ausgelaufen",
        )
    ).get_tp_data_from_file(filepath)
    return tp_data


tp_data = self._get_date()
for vendor_id, series in tqdm(tp_data.items()):
    # do something for series
    for vendor_id_season, season in series.get('seasons').items():
        # do something for seasons
        for vendor_id_episode, episode in season.get('episodes').items():
            # do something for episodes
```

Usage Example for Channels (Feature):
```
channel_tp_data_feature = dict()
importer = TP_Importer_Channels(
        valid_statuses=(("ok", "change", "new"))
    )
path = 'G:\Listen\Titelplanung Channels aktuell_absolutiert_new.xlsm'
tp_data = importer.get_tp_data_from_file(path)
print(tp_data.keys())


for channel_type, channel_titles in tp_data.items():
    # durch alle Channels iterieren
    for title in tqdm(channel_titles):
        # durch Titel in jeweiligem Channel iterieren
```

Usage Example for Channels (TV):
```
channel_tp_data_feature = dict()
importer = TVTP_Importer_Channels(
        valid_statuses=(("ok", "change", "new"))
    )
path = 'G:\Listen\Titelplanung Channels aktuell_absolutiert_new.xlsm'
tp_data = importer.get_tp_data_from_file(path)
print(tp_data.keys())



for channel_type, channel_titles in tp_data.items():
    # durch alle Channels iterieren
    for vendor_id, series in tqdm(channel_titles.items()):
        # do something for series
        for vendor_id_season, season in series.get('seasons').items():
            # do something for seasons
            for vendor_id_episode, episode in season.get('episodes').items():
                # do something for episodes
```

