APP_NAME = "update_tracks_top_playlists_aggregated_history" ENV_PROD = "prod" DEFAULT_DATE_FORMAT = "%Y-%m-%d" class Client: SNOWFLAKE = "snowflake" MYSQL = "mysql" S3 = "s3" class Action: SNOWFLAKE_EXECUTE = "snowflake_execute" SNOWFLAKE_CHECK = "snowflake_check" SNOWFLAKE_ERROR = "snowflake_error" MYSQL_EXECUTE = "mysql_execute" MYSQL_CHECK = "mysql_check" MYSQL_ERROR = "mysql_error" MYSQL_FINALIZE = "mysql_finalize" ORDER = ( SNOWFLAKE_EXECUTE, SNOWFLAKE_CHECK, SNOWFLAKE_ERROR, MYSQL_EXECUTE, MYSQL_CHECK, MYSQL_ERROR, MYSQL_FINALIZE, ) @staticmethod def is_after(current, position): return Action.ORDER.index(current) > Action.ORDER.index(position) class DataType: PLAYLIST_DIGEST_METRICS = "playlist_digest_metrics" PLAYLIST_DIGEST_PLAYLISTS = "playlist_digest_playlists" TRACKS_TOP_PLAYLISTS = "tracks_top_playlists_aggregated_history" WEEKLY_TOP_PLAYLISTS = "weekly_top_playlists" class PlaylistDigestMetric: STREAMS = "streams" FOLLOWERS = "followers" class ApolloKey: PLAYLIST_DIGEST_METRIC_DATE = { PlaylistDigestMetric.STREAMS: "playlist_digest_streams_date", PlaylistDigestMetric.FOLLOWERS: "playlist_digest_followers_date", } PLAYLIST_DIGEST_LATEST_DATE = "playlist_digest_latest_date" PLAYLIST_DIGEST_STREAMS_COUNTY_CODES = ( "ad", "ae", "ag", "al", "am", "ao", "ar", "at", "au", "az", "ba", "bb", "bd", "be", "bf", "bg", "bh", "bi", "bj", "bn", "bo", "br", "bs", "bt", "bw", "by", "bz", "ca", "cd", "cg", "ch", "ci", "cl", "cm", "co", "cr", "cv", "cw", "cy", "cz", "de", "dj", "dk", "dm", "do", "dz", "ec", "ee", "eg", "es", "et", "fi", "fj", "fm", "fr", "ga", "gb", "gd", "ge", "gh", "gm", "gn", "gq", "gr", "gt", "gw", "gy", "hk", "hn", "hr", "ht", "hu", "id", "ie", "il", "in", "iq", "is", "it", "jm", "jo", "jp", "ke", "kg", "kh", "ki", "km", "kn", "kr", "kw", "kz", "la", "lb", "lc", "li", "lk", "lr", "ls", "lt", "lu", "lv", "ly", "ma", "mc", "md", "me", "mg", "mh", "mk", "ml", "mn", "mo", "mr", "mt", "mu", "mv", "mw", "mx", "my", "mz", "na", "ne", "ng", "ni", "nl", "no", "np", "nr", "nz", "om", "pa", "pe", "pg", "ph", "pk", "pl", "ps", "pt", "pw", "py", "qa", "ro", "rs", "ru", "rw", "sa", "sb", "sc", "se", "sg", "si", "sk", "sl", "sm", "sn", "sr", "st", "sv", "sz", "td", "tg", "th", "tj", "tl", "tn", "to", "tr", "tt", "tv", "tw", "tz", "ua", "ug", "us", "uy", "uz", "vc", "ve", "vn", "vu", "ws", "xk", "za", "zm", "zw", )