Glider
Loading...
Searching...
No Matches
TemplateManager.py
Go to the documentation of this file.
1from templates import *
2
4 """
5 Does specifics procedures for several templates. According the current format, it executes the right template from templates folder
6 """
7 def preprocessing(**kwargs):
8 """Read the current file whit some tech details according to format
9
10 Args:
11 dir_file (str): s3 path where file is storage
12 type_format (str): format name of current file
13 file_features (dict): features required to load file
14 session (boto3 obj): AWS client connection
15 rel_col (str): indicates release_id column name
16 Returns: Nothing
17 """
18
19 dir_file = kwargs.get('dir_file')
20 type_format = kwargs.get('type_format')
21 file_features = kwargs.get('file_features')
22 session = kwargs.get('session')
23 rel_col = kwargs.get('release_col')
24
25 if type_format == "amz_sales" or type_format == "amz_sales2":
26 return AmazonTemplate().preprocessing(dir_file, file_features, session, rel_col)
27 if type_format == "audiomack":
28 return AudioMackTemplate().preprocessing(dir_file, file_features, session, rel_col)
29 elif type_format == "audiosalad":
30 return AudioSaladTemplate().preprocessing(dir_file, file_features, session, rel_col)
31 elif type_format == "deezer":
32 return DeezerTemplate().preprocessing(dir_file, file_features, session, rel_col)
33 elif type_format == "facebook_revshare":
34 return FacebookTemplate().preprocessing(dir_file, file_features, session, rel_col)
35 elif type_format == "FUGA":
36 return FugaTemplate().preprocessing(dir_file, file_features, session, rel_col)
37 elif type_format == "itunes":
38 return itunesTemplate().preprocessing(dir_file, file_features, session, rel_col)
39 elif type_format == "itunes_music" or type_format == "djmix":
40 return itunesTemplate().preprocessing_music(dir_file, file_features, session, rel_col)
41 elif type_format == "mixcloud":
42 return MixcloudTemplate().preprocessing(dir_file, file_features, session, rel_col)
43 elif "playground_" in type_format:
44 return PlaygroundTemplate().preprocessing(dir_file, file_features, session, rel_col)
45 elif "secretly_canadian" in type_format:
46 return SecretlyCanadianTemplate().preprocessing(dir_file, file_features, session, rel_col)
47 elif "soundtrack_your_brand" in type_format:
48 return SoundtrackTemplate().preprocessing(dir_file, file_features, session, rel_col)
49 elif "spotify_discovery" in type_format:
50 return SpotifyTemplate().preprocessing(dir_file, file_features, session, rel_col)
51 elif "tencent" in type_format:
52 return TencentTemplate().preprocessing(dir_file, file_features, session, rel_col)
53 elif "youtube_merlin" in type_format:
54 return YoutubeTemplate().preprocessing(dir_file, file_features, session, rel_col)
55 else:
56 return PreprocessingData().preprocessing(dir_file, file_features, session, rel_col)
57
58 def getType(**kwargs):
59 """Assign a custom column according to format
60
61 Args:
62 df (pandas dataframe): current file loaded as dataframe
63 type_format (str): format name of current file
64 filename (dict): current filename
65 Returns: Nothing
66 """
67 df = kwargs.get('df')
68 type_format = kwargs.get('type_format')
69 filename = kwargs.get('filename')
70 if "amz_streams" in type_format:
71 AmazonTemplate().assetCurrency(df, filename)
72 elif type_format == "amz_sales2":
73 AmazonTemplate().assetCurrency(df, filename)
74 elif type_format == "audiosalad":
75 AudioSaladTemplate().assetType(df)
76 elif type_format == "FUGA":
77 FugaTemplate().assetType(df)
78 elif type_format == "itunes":
79 itunesTemplate().assetType(df)
80 elif type_format == "playground_digital_2":
81 PlaygroundTemplate().assetType(df)
82 elif "secretly_canadian" in type_format:
83 SecretlyCanadianTemplate().assetType(df)
84 elif type_format == "spotify_trends":
85 SpotifyTemplate.territoryTrends(df, filename)
86 elif type_format == "state51":
87 State51Template().assetType(df)
88 elif type_format == "qobuz":
89 QobuzTemplate().assetType(df, filename)
90 else:
91 raise TemplateError("TYPE TEMPLATE NOT FOUND FOR {}.".format(filename))
92
93 def getDate(**kwargs):
94 """Assign a date column according to format
95
96 Args:
97 df (pandas dataframe): current file loaded as dataframe
98 type_format (str): format name of current file
99 filename (dict): current filename
100 Returns: Nothing
101 """
102
103 df = kwargs.get('df')
104 type_format = kwargs.get('type_format')
105 filename = kwargs.get('filename')
106 if "amz_" in type_format:
107 return AmazonTemplate().date(filename)
108 elif type_format == "anghami":
109 return AnghamiTemplate().date(filename)
110 elif type_format == "audiomack":
111 return AudioMackTemplate().date(filename)
112 elif type_format == "audiosalad":
113 return AudioSaladTemplate().date(filename, df)
114 elif "awa" in type_format:
115 return AwaTemplate().date(filename)
116 elif type_format == "boomplay":
117 return BoomplayTemplate().date(filename)
118 elif "deezer" in type_format:
119 return DeezerTemplate().date(filename)
120 elif type_format == "facebook":
121 return FacebookTemplate().date(filename)
122 elif type_format == "FUGA":
123 return FugaTemplate().date(filename)
124 elif "iheart" in type_format:
125 return iHeartTemplate().date(filename)
126 elif type_format == "itunes_music" or type_format == "djmix":
127 return itunesTemplate().date(filename)
128 elif type_format == "joox":
129 return JooxTemplate().date(filename)
130 elif "kkbox" in type_format:
131 return KKBOXTemplate().date(filename)
132 elif "media" in type_format:
133 return MediaNetTemplate().date(filename)
134 elif type_format == "napster":
135 return NapsterTemplate().date(filename)
136 elif "netease" in type_format:
137 return NeteaseTemplate().date(filename)
138 elif "nightlife" in type_format:
139 return NightlifeTemplate().date(filename)
140 elif "pandora" in type_format:
141 return PandoraTemplate().date(filename)
142 elif type_format == "playground_physical_2":
143 return PlaygroundTemplate().date(filename)
144 elif type_format == "qobuz":
145 return QobuzTemplate().date(filename)
146 elif "roxi" in type_format:
147 return RoxiTemplate().date(filename)
148 elif "saavn" in type_format:
149 return SaavnTemplate().date(filename)
150 elif "secretly_canadian" in type_format:
151 if "phy" in type_format:
152 return SecretlyCanadianTemplate().date_phy(filename)
153 return SecretlyCanadianTemplate().date_dig(filename)
154 elif type_format == "slacker":
155 return SlackerTemplate().date(filename)
156 elif type_format == "snapchat":
157 return SnapchatTemplate().date(filename)
158 elif "soundcloud" in type_format:
159 return SoundcloudTemplate().date(filename)
160 elif "soundtrack_your_brand" in type_format:
161 return SoundtrackTemplate().date(filename)
162 elif type_format == "spotify" or type_format == "spotify_discovery":
163 return SpotifyTemplate().date(filename)
164 elif type_format == "spotify_trends":
165 return SpotifyTemplate().dateTrends(filename)
166 elif type_format == "state51":
167 return State51Template().date(filename)
168 elif type_format == "tencent":
169 return TencentTemplate().date(filename, df)
170 elif "triller" in type_format:
171 return TrillerTemplate().date(filename)
172 elif "youtube_" in type_format:
173 return YoutubeTemplate().date(filename)
174 else:
175 raise TemplateError("DATE TEMPLATE NOT FOUND FOR {}.".format(filename))
176
177 def full_type(type):
178 """Sets full name for 'type' column
179
180 Args:
181 type (str): A single letter
182 Returns: full type (str)
183 """
184 if type == "S":
185 return "Stream"
186 elif type == "T":
187 return "Track"
188 elif type == "D":
189 return "Download"
190 elif type == "A":
191 return "Album"
192 elif type == "C":
193 return "Channel"
194 elif "trends" in type.lower():
195 return "Trends"
196
197 # def set_full_type(df):
198 # df["full_type"] = df.apply(lambda Row: full_type(Row["type"]), axis=1)