o
    h                     @   s  d dl mZmZ d dlZd dlmZmZmZ d dlm	Z	 d dl
Zd dlZd dlZeG dd dZeG dd dZeG d	d
 d
ZeG dd dZeG dd dZeG dd dZeG dd dZdd ZdZejded ZeeeZejdZeedZdS )    )	dataclassfieldN)DictListOptional)datec                   @      e Zd ZU eed< eed< dS )ExtensionTagtextaddedOnN__name__
__module____qualname__str__annotations__r    r   r   2/Users/srajan/code/music-website/import_helpers.pyr	   
      
 r	   c                   @   s*   e Zd ZU eed< eed< ee ed< dS )ExtensionRatingZratingr   ZbumpedN)r   r   r   intr   r   r   boolr   r   r   r   r      s   
 r   c                   @   r   )ExtensionReviewmarkdownr   Nr   r   r   r   r   r      r   r   c                   @   s   e Zd ZU eed< eed< dS )ExtensionArtistidnameN)r   r   r   r   r   r   r   r   r   r      r   r   c                   @   sJ   e Zd ZU eed< eed< eedZee	 ed< eedZ
ee ed< dS )ExtensionSongr   r   default_factorytagsreviewsN)r   r   r   r   r   r   listr    r   r	   r!   r   r   r   r   r   r      s
   
 r   c                   @   s   e Zd ZU eed< eed< eed< eed< eedZe	e
 ed< eedZe	e ed< eedZe	e ed< eedZe	e ed	< eedZe	e ed
< dS )ExtensionAlbumr   r   Zrelease_yearthumbnail_urlr   r    artistssongIdsratingsr!   N)r   r   r   r   r   r   r   r"   r    r   r	   r%   r&   r'   r   r!   r   r   r   r   r   r#   &   s   
 r#   c                   @   s   e Zd ZU eeef ed< eeef ed< eeef ed< eeef ed< eeef ed< e	e
 ed< e	e
 ed< eeef ed< d	S )
ExtensionExportedDatasongsZdefault_albumsZuploaded_albums
all_albumsr%   Z	song_tagsZ
album_tagsZsong_to_albumN)r   r   r   r   r   r   r   r#   r   r   r	   r   r   r   r   r(   2   s   
 r(   c                 C   sd   t j| |}|d u rtd| t j|}|tj| < |j}|d u r+td| || |S )Nz'Could not find module or invalid path: zLoader not found for: )		importlibutilspec_from_file_locationModuleNotFoundErrormodule_from_specsysmodulesloaderexec_module)module_nameZ	file_pathspecmoduler2   r   r   r   import_from_file>   s   

r7   extension_commonz!/Users/srajan/code/ytmusic++/apisz.pyz./input/music_export.jsonz./input/annotation_export.json) Zdataclassesr   r   jsontypingr   r   r   datetimer   importlib.utilr+   osr0   r	   r   r   r   r   r#   r(   r7   r4   pathjoinZmodule_pathr8   Zfrom_export
music_dataloadopenZannotation_datar   r   r   r   <module>   s6    
