"""
Solució proposada del problema de l'àlbum de música
Classe Àlbum
"""

from datetime import timedelta
from album_base import AlbumBase


class Album(AlbumBase):
    """
    Classe Album, estén AlbuMBase amb un atribut nou any_publicació
    i un mètode per calcular la durada de l'album.
    """
    def __init__(self, titol, autor, any_publicacio, nombre_peces):
        """
        - Inicialitza el atributs ``titol``, ``autor`` i
          ``any_publicacio`` a partir dels valors dels paràmetres
          corresponents.

        - Inicialitza una llista de ``nombre_peces`` elements amb
          *strings* buits.
        """
        super().__init__(titol, autor, nombre_peces)
        self.any_publicacio = any_publicacio

    def durada(self):
        """
        Retorna la durada total de l'àlbum.
        """
        it_durades = map(lambda x: x.durada, self)
        return sum(it_durades, start=timedelta(0))
