Skip to content

Documentation for the pyflix.utils package

The pyflix.utils package is intended for displaying TvShow objects. It contains two modules: cli.py and rich_cli.py. Both have the same two functions. The second is more rich but requires the presence of the rich library. The first is a plain text version that can be used without dependencies.

rich_cli documentation

Ce module est une copie de pylib.utils.cli mais utilisant la bibliothèque Rich pour un affichage en terminal plus esthétique.

display_show(show)

Affiche dans le terminal les informations d'une série. La série doit avoir un attribut name et un attribut episodes contenant des objets ayant eux-même un attribut title.

Parameters:

Name Type Description Default
show

Objet représentant une série et possédant un attribut nameet un attribut episodes.

required
Source code in src/pyflix/utils/rich_cli.py
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
def display_show(show) -> None:
    """
    Affiche dans le terminal les informations d'une série. La série doit avoir
    un attribut `name` et un attribut `episodes` contenant des objets ayant
    eux-même un attribut `title`.

    :param show: Objet représentant une série et possédant un attribut `name`et un
    attribut `episodes`.
    """
    t_show = Tree(show.name)
    t_season = None
    current_season_number = None
    for episode in show.episodes:
        if current_season_number != episode.season_number:
            current_season_number = episode.season_number
            t_season = Tree(f"Season {current_season_number}", style="blue")
            t_show.add(t_season)
        t_season.add(f'[{episode.number:02}] {episode.title}', style="white")

    console.print(t_show)

    try:
        print(f"Durée totale : {show.duration // 60}h{show.duration % 60:02}")
    except (AttributeError, TypeError):
        pass

display_shows(shows)

Affiche dans le terminal les informations d'un dictionnaire de séries.

La série doit avoir un attribut name et un attribut episodes contenant des objets ayant eux-même un attribut title.

Parameters:

Name Type Description Default
shows dict

Dictionnaire dont les valeurs sont des objets série.

required
Source code in src/pyflix/utils/rich_cli.py
12
13
14
15
16
17
18
19
20
21
22
23
def display_shows(shows: dict) -> None:
    """
    Affiche dans le terminal les informations d'un dictionnaire de séries.

    La série doit avoir un attribut `name` et un attribut `episodes` contenant
    des objets ayant eux-même un attribut `title`.

    :param shows: Dictionnaire dont les valeurs sont des objets série.
    """
    for show in shows.values():
        console.rule(show.name)
        display_show(show)

cli documentation

Ceci est un module de fonctions utiles pour l'affichage d'informations dans le terminal.

display_show(show)

Affiche dans le terminal les informations d'une série. La série doit avoir un attribut name et un attribut episodes contenant des objets ayant eux-même un attribut title.

Parameters:

Name Type Description Default
show

Objet représentant une série et possédant un attribut nameet un attribut episodes.

required
Source code in src/pyflix/utils/cli.py
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
def display_show(show) -> None:
    """
    Affiche dans le terminal les informations d'une série. La série doit avoir
    un attribut `name` et un attribut `episodes` contenant des objets ayant
    eux-même un attribut `title`.

    :param show: Objet représentant une série et possédant un attribut `name`et un
    attribut `episodes`.
    """
    print(show.name)

    try:
        print(f"Durée totale : {show.duration // 60}h{show.duration % 60:02}")
    except (AttributeError, TypeError):
        pass

    current_season = None
    for episode in show.episodes:
        if episode.season_number != current_season:
            current_season = episode.season_number
            print(f"Season {current_season}")
        print(f" - [{episode.number:02}] {episode.title}")

display_shows(shows)

Affiche dans le terminal les informations d'un dictionnaire de séries.

La série doit avoir un attribut name et un attribut episodes contenant des objets ayant eux-même un attribut title.

Parameters:

Name Type Description Default
shows dict

Dictionnaire dont les valeurs sont des objets série.

required
Source code in src/pyflix/utils/cli.py
 7
 8
 9
10
11
12
13
14
15
16
17
18
def display_shows(shows: dict) -> None:
    """
    Affiche dans le terminal les informations d'un dictionnaire de séries.

    La série doit avoir un attribut `name` et un attribut `episodes` contenant
    des objets ayant eux-même un attribut `title`.

    :param shows: Dictionnaire dont les valeurs sont des objets série.
    """
    for show in shows.values():
        print("\n-----")
        display_show(show)

Usage

This example works the same way with both modules.

import pyflix.utils.rich_cli as cli

my_show = TvShow("Show Name")
my_show.add_episode('Title 1', 1, 1)
my_show.add_episode('Title 2', 1, 2)

cli.display_show(my_show)

shows = {my_show.name:my_show}
cli.display_shows(shows)