"""DO NOT MANUALLY EDIT. FILE AUTOMATICALLY GENERATED BY meta_competitions.py
GENERATED AT: 2021-07-27 13:39:36.624762 """
# pylint: disable=too-few-public-methods,too-many-lines
from typing import Optional


class EN_PR:
    """Class for Premier League"""

    description = "Premier League"
    id = 1
    level = "SEN"
    source = ""
    abbreviation = "EN_PR"
    seasons = {
        "2021/22": 418,
        "2020/21": 363,
        "2019/20": 274,
        "2018/19": 210,
        "2017/18": 79,
        "2016/17": 54,
        "2015/16": 42,
        "2014/15": 27,
        "2013/14": 22,
        "2012/13": 21,
        "2011/12": 20,
        "2010/11": 19,
        "2009/10": 18,
        "2008/09": 17,
        "2007/08": 16,
        "2006/07": 15,
        "2005/06": 14,
        "2004/05": 13,
        "2003/04": 12,
        "2002/03": 11,
        "2001/02": 10,
        "2000/01": 9,
        "1999/00": 8,
        "1998/99": 7,
        "1997/98": 6,
        "1996/97": 5,
        "1995/96": 4,
        "1994/95": 3,
        "1993/94": 2,
        "1992/93": 1,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EN_PR.seasons.get(label)


class EU_CL:
    """Class for UEFA Champions League"""

    description = "UEFA Champions League"
    id = 2
    level = "SEN"
    source = ""
    abbreviation = "EU_CL"
    seasons = {
        "2020/21": 384,
        "2019/20": 288,
        "2018/19": 214,
        "2017/18": 87,
        "2016/17": 66,
        "2015/16": 41,
        "2014/15": 29,
        "2013/14": 23,
        "2012/13": 169,
        "2011/12": 179,
        "2010/11": 178,
        "2009/10": 338,
        "2008/09": 342,
        "2006/07": 270,
        "2004/05": 351,
        "Champions League Season 2003/2004": 435,
        "Champions League Season 2021/2022": 424,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EU_CL.seasons.get(label)


class EU_UC:
    """Class for UEFA Europa League"""

    description = "UEFA Europa League"
    id = 3
    level = "SEN"
    source = ""
    abbreviation = "EU_UC"
    seasons = {
        "2020/21": 385,
        "2019/20": 316,
        "2018/19": 209,
        "2017/18": 88,
        "2016/17": 70,
        "2015/16": 37,
        "2014/15": 31,
        "2013/14": 24,
        "2012/13": 72,
        "2011/12": 339,
        "2010/11": 341,
        "2008/09": 334,
        "2006/07": 75,
        "2009/10": 114,
        "UEFA Europa League Season 1995/1996": 233,
        "UEFA Europa League Season 1985/1986": 234,
        "UEFA Europa League Season 1982/1983": 235,
        "UEFA Europa League Season 1980/1981": 236,
        "UEFA Europa League Season 1976/1977": 237,
        "UEFA Europa League Season 1975/1976": 238,
        "UEFA Europa League Season 1972/1973": 240,
        "UEFA Europa League Season 1984/1985": 255,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EU_UC.seasons.get(label)


class EN_FA:
    """Class for FA Cup"""

    description = "FA Cup"
    id = 4
    level = "SEN"
    source = ""
    abbreviation = "EN_FA"
    seasons = {
        "2020/21": 390,
        "2019/20": 328,
        "2018/19": 230,
        "2017/18": 85,
        "2016/17": 71,
        "2015/16": 32,
        "2014/15": 30,
        "2013/14": 25,
        "2012/13": 77,
        "2011/12": 76,
        "2010/11": 57,
        "2009/10": 107,
        "2008/09": 106,
        "2007/08": 207,
        "2006/07": 206,
        "2005/06": 205,
        "2004/05": 74,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EN_FA.seasons.get(label)


class EN_LC:
    """Class for EFL Cup"""

    description = "EFL Cup"
    id = 5
    level = "SEN"
    source = ""
    abbreviation = "EN_LC"
    seasons = {
        "English League Cup Season 2021/2022": 429,
        "2020/21": 368,
        "2019/20": 279,
        "2018/19": 212,
        "2017/18": 82,
        "2016/17": 56,
        "2015/16": 40,
        "2014/15": 28,
        "2013/14": 26,
        "2012/13": 78,
        "2011/12": 102,
        "2010/11": 58,
        "2009/10": 112,
        "2008/09": 111,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EN_LC.seasons.get(label)


class EN_PD:
    """Class for Professional Development League"""

    description = "Professional Development League"
    id = 6
    level = "U21"
    source = ""
    abbreviation = "EN_PD"
    seasons = {
        "2020/21": 377,
        "2019/20": 298,
        "2018/19": 226,
        "2017/18": 91,
        "2016/17": 62,
        "2015/16": 33,
        "2014/15": 47,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EN_PD.seasons.get(label)


class AFAPL12:
    """Class for U18 Professional Development League"""

    description = "U18 Professional Development League"
    id = 7
    level = "U18"
    source = ""
    abbreviation = "AFAPL12"
    seasons = {
        "2020/21": 381,
        "2019/20": 300,
        "2018/19": 223,
        "2017/18": 93,
        "2016/17": 64,
        "2015/16": 34,
        "2014/15": 45,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return AFAPL12.seasons.get(label)


class AFAPL:
    """Class for U18 Premier League"""

    description = "U18 Premier League"
    id = 8
    level = "U18"
    source = ""
    abbreviation = "AFAPL"
    seasons = {
        "2021/22": 434,
        "2020/21": 378,
        "2019/20": 296,
        "2018/19": 220,
        "2017/18": 89,
        "2016/17": 60,
        "2015/16": 35,
        "2014/15": 48,
        "2013/14": 44,
        "2012/13": 51,
        "2011/12": 50,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return AFAPL.seasons.get(label)


class EN_PC:
    """Class for Premier League Cup"""

    description = "Premier League Cup"
    id = 9
    level = "U21"
    source = ""
    abbreviation = "EN_PC"
    seasons = {
        "2019/20": 315,
        "2018/19": 228,
        "2017/18": 97,
        "2016/17": 67,
        "2015/16": 36,
        "2014/15": 53,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EN_PC.seasons.get(label)


class EN_PLIC:
    """Class for Premier League International Cup"""

    description = "Premier League International Cup"
    id = 10
    level = "U21"
    source = ""
    abbreviation = "EN_PLIC"
    seasons = {
        "2019/20": 314,
        "2018/19": 222,
        "2017/18": 95,
        "2016/17": 68,
        "2015/16": 38,
        "2014/15": 49,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EN_PLIC.seasons.get(label)


class EN_RE:
    """Class for Premier League 2"""

    description = "Premier League 2"
    id = 11
    level = "U21"
    source = "None"
    abbreviation = "EN_RE"
    seasons = {
        "2016/17": 59,
        "2015/16": 39,
        "2014/15": 46,
        "2013/14": 43,
        "2012/13": 52,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EN_RE.seasons.get(label)


class EN_D1:
    """Class for English Football League - Championship"""

    description = "English Football League - Championship"
    id = 12
    level = "SEN"
    source = ""
    abbreviation = "EN_D1"
    seasons = {
        "English Football League - Championship Season 2021/2022": 426,
        "English Football League - Championship Season 2020/2021": 362,
        "2019/20": 276,
        "2018/19": 211,
        "2017/18": 83,
        "2016/17": 55,
        "2014/15": 264,
        "2013/14": 105,
        "2012/13": 104,
        "2011/12": 103,
        "2010/11": 109,
        "2009/10": 108,
        "1996/97": 73,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EN_D1.seasons.get(label)


class EN_FL:
    """Class for EFL Trophy"""

    description = "EFL Trophy"
    id = 13
    level = "U21"
    source = ""
    abbreviation = "EN_FL"
    seasons = {
        "English Football League Trophy Season 2021/2022": 439,
        "2020/21": 370,
        "2019/20": 293,
        "2018/19": 224,
        "2017/18": 86,
        "2016/17": 69,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EN_FL.seasons.get(label)


class IG_CF:
    """Class for Friendly"""

    description = "Friendly"
    id = 14
    level = "SEN"
    source = ""
    abbreviation = "IG_CF"
    seasons = {
        "Friendly Season 2021/2022": 414,
        "Friendly Season 2020/2021": 333,
        "Friendly Season 2019/2020": 231,
        "Friendly Season 2018/2019": 113,
        "2017/2018": 80,
        "2016/2017": 84,
        "Friendly Season 2015/2016": 202,
        "Friendly Season 2014/2015": 184,
        "Friendly Season 2013/2014": 161,
        "Friendly Season 2012/2013": 160,
        "Friendly Season 2011/2012": 159,
        "Friendly Season 2010/2011": 158,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return IG_CF.seasons.get(label)


class IG_AT:
    """Class for Premier League Asia Trophy"""

    description = "Premier League Asia Trophy"
    id = 15
    level = "SEN"
    source = ""
    abbreviation = "IG_AT"
    seasons = {"Premier League Asia Trophy Season 2019/2020": 271, "2017/18": 81}

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return IG_AT.seasons.get(label)


class PL_D1:
    """Class for Premier League 2 - Division 1"""

    description = "Premier League 2 - Division 1"
    id = 16
    level = "U21"
    source = ""
    abbreviation = "PL_D1"
    seasons = {
        "2021/22": 438,
        "2020/21": 375,
        "2019/20": 295,
        "2018/19": 217,
        "2017/18": 90,
        "2016/17": 98,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return PL_D1.seasons.get(label)


class PL_D2:
    """Class for Premier League 2 - Division 2"""

    description = "Premier League 2 - Division 2"
    id = 17
    level = "U21"
    source = ""
    abbreviation = "PL_D2"
    seasons = {
        "2021/22": 447,
        "2020/21": 376,
        "2019/20": 294,
        "2018/19": 218,
        "2017/18": 96,
        "2016/17": 99,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return PL_D2.seasons.get(label)


class PLC_U18:
    """Class for U18 Premier League Cup"""

    description = "U18 Premier League Cup"
    id = 18
    level = "U18"
    source = ""
    abbreviation = "PLC_U18"
    seasons = {"2019/20": 317, "2018/19": 227, "2017/18": 100}

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return PLC_U18.seasons.get(label)


class PLC_U16:
    """Class for English U16 Premier League Cup"""

    description = "English U16 Premier League Cup"
    id = 19
    level = "SEN"
    source = ""
    abbreviation = "PLC_U16"
    seasons = {
        "English U16 Premier League Cup Season 2019/2020": 329,
        "English U16 Premier League Cup Season 2018/2019": 229,
        "English U16 Premier League Cup Season 2017/2018": 101,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return PLC_U16.seasons.get(label)


class EN_D2:
    """Class for English Football League - League One"""

    description = "English Football League - League One"
    id = 20
    level = "SEN"
    source = ""
    abbreviation = "EN_D2"
    seasons = {
        "English Football League - League One Season 2021/2022": 427,
        "English Football League - League One Season 2020/2021": 372,
        "English Football League - League One Season 2019/2020": 278,
        "English Football League - League One Season 2018/2019": 257,
        "English Football League - League One Season 2017/2018": 349,
        "English Football League - League One Season 2016/2017": 348,
        "English Football League - League One Season 2013/2014": 263,
        "English Football League - League One Season 2008/2009": 110,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EN_D2.seasons.get(label)


class ES_PL:
    """Class for La Liga"""

    description = "La Liga"
    id = 21
    level = "SEN"
    source = ""
    abbreviation = "ES_PL"
    seasons = {
        "Spanish La Liga Season 2021/2022": 431,
        "Spanish La Liga Season 2020/2021": 365,
        "Spanish La Liga Season 2019/2020": 286,
        "Spanish La Liga Season 2018/2019": 213,
        "Spanish La Liga Season 2017/2018": 193,
        "Spanish La Liga Season 2016/2017": 144,
        "Spanish La Liga Season 2015/2016": 143,
        "Spanish La Liga Season 2014/2015": 142,
        "Spanish La Liga Season 2013/2014": 141,
        "Spanish La Liga Season 2012/2013": 140,
        "Spanish La Liga Season 2011/2012": 139,
        "Spanish La Liga Season 2010/2011": 117,
        "Spanish La Liga Season 2009/2010": 395,
        "Spanish La Liga Season 2008/2009": 394,
        "Spanish La Liga Season 2006/2007": 332,
        "Spanish La Liga Season 2003/2004": 203,
        "Spanish La Liga Season 2007/2008": 340,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return ES_PL.seasons.get(label)


class ES_SD:
    """Class for Spanish Segunda Division"""

    description = "Spanish Segunda Division"
    id = 22
    level = "SEN"
    source = "None"
    abbreviation = "ES_SD"
    seasons = {
        "Spanish Segunda Division Season 2017/2018": 190,
        "Spanish Segunda Division Season 2016/2017": 124,
        "Spanish Segunda Division Season 2015/2016": 123,
        "Spanish Segunda Division Season 2014/2015": 122,
        "Spanish Segunda Division Season 2013/2014": 121,
        "Spanish Segunda Division Season 2012/2013": 120,
        "Spanish Segunda Division Season 2011/2012": 119,
        "Spanish Segunda Division Season 2010/2011": 118,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return ES_SD.seasons.get(label)


class ES_SC:
    """Class for Supercopa"""

    description = "Supercopa"
    id = 23
    level = "SEN"
    source = ""
    abbreviation = "ES_SC"
    seasons = {
        "Spanish Supercopa Season 2021/2022": 430,
        "Spanish Supercopa Season 2020/2021": 398,
        "Spanish Supercopa Season 2019/2020": 330,
        "Spanish Supercopa Season 2018/2019": 215,
        "Spanish Supercopa Season 2017/2018": 191,
        "Spanish Supercopa Season 2016/2017": 131,
        "Spanish Supercopa Season 2015/2016": 130,
        "Spanish Supercopa Season 2014/2015": 129,
        "Spanish Supercopa Season 2013/2014": 128,
        "Spanish Supercopa Season 2012/2013": 127,
        "Spanish Supercopa Season 2011/2012": 126,
        "Spanish Supercopa Season 2010/2011": 125,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return ES_SC.seasons.get(label)


class EU_SC:
    """Class for UEFA Super Cup"""

    description = "UEFA Super Cup"
    id = 24
    level = "SEN"
    source = ""
    abbreviation = "EU_SC"
    seasons = {
        "UEFA Super Cup Season 2021/2022": 413,
        "UEFA Super Cup Season 2020/2021": 374,
        "UEFA Super Cup Season 2019/2020": 273,
        "UEFA Super Cup Season 2018/2019": 208,
        "UEFA Super Cup Season 2017/2018": 192,
        "UEFA Super Cup Season 2016/2017": 138,
        "UEFA Super Cup Season 2015/2016": 137,
        "UEFA Super Cup Season 2014/2015": 136,
        "UEFA Super Cup Season 2013/2014": 135,
        "UEFA Super Cup Season 2012/2013": 134,
        "UEFA Super Cup Season 2011/2012": 133,
        "UEFA Super Cup Season 2010/2011": 132,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EU_SC.seasons.get(label)


class ES_CR:
    """Class for Copa Del Rey"""

    description = "Copa Del Rey"
    id = 25
    level = "SEN"
    source = ""
    abbreviation = "ES_CR"
    seasons = {
        "Spanish Copa Del Rey Season 2020/2021": 392,
        "Spanish Copa Del Rey Season 2019/2020": 327,
        "Spanish Copa Del Rey Season 2018/2019": 219,
        "Spanish Copa Del Rey Season 2017/2018": 194,
        "Spanish Copa Del Rey Season 2016/2017": 183,
        "Spanish Copa Del Rey Season 2015/2016": 148,
        "Spanish Copa Del Rey Season 2014/2015": 182,
        "Spanish Copa Del Rey Season 2013/2014": 146,
        "Spanish Copa Del Rey Season 2012/2013": 181,
        "Spanish Copa Del Rey Season 2011/2012": 180,
        "Spanish Copa Del Rey Season 2010/2011": 145,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return ES_CR.seasons.get(label)


class IG_CL:
    """Class for FIFA Club World Cup"""

    description = "FIFA Club World Cup"
    id = 29
    level = "SEN"
    source = ""
    abbreviation = "IG_CL"
    seasons = {
        "FIFA Club World Cup Season 2020/2021": 400,
        "FIFA Club World Cup Season 2019/2020": 326,
        "FIFA Club World Cup Season 2018/2019": 225,
        "FIFA Club World Cup Season 2017/2018": 195,
        "FIFA Club World Cup Season 2016/2017": 157,
        "FIFA Club World Cup Season 2015/2016": 156,
        "FIFA Club World Cup Season 2014/2015": 155,
        "FIFA Club World Cup Season 2013/2014": 154,
        "FIFA Club World Cup Season 2012/2013": 153,
        "FIFA Club World Cup Season 2011/2012": 152,
        "FIFA Club World Cup Season 2010/2011": 151,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return IG_CL.seasons.get(label)


class IG_CT:
    """Class for International Champions Cup"""

    description = "International Champions Cup"
    id = 30
    level = "SEN"
    source = ""
    abbreviation = "IG_CT"
    seasons = {
        "International Champions Cup Season 2019/2020": 244,
        "International Champions Cup Season 2018/2019": 204,
        "International Champions Cup Season 2017/2018": 199,
        "International Champions Cup Season 2016/2017": 173,
        "International Champions Cup Season 2015/2016": 172,
        "International Champions Cup Season 2014/2015": 171,
        "International Champions Cup Season 2013/2014": 170,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return IG_CT.seasons.get(label)


class AU_DI:
    """Class for Audi Cup"""

    description = "Audi Cup"
    id = 31
    level = "SEN"
    source = "None"
    abbreviation = "AU_DI"
    seasons = {"Audi Cup Season 2015/2016": 175, "Audi Cup Season 2013/2014": 174}

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return AU_DI.seasons.get(label)


class ES_JG:
    """Class for Trofeo Joan Gamper"""

    description = "Trofeo Joan Gamper"
    id = 32
    level = "SEN"
    source = ""
    abbreviation = "ES_JG"
    seasons = {
        "Trofeo Joan Gamper Season 2021/2022": 446,
        "Trofeo Joan Gamper Season 2020/2021": 382,
        "Trofeo Joan Gamper Season 2019/2020": 284,
        "Trofeo Joan Gamper Season 2018/2019": 216,
        "Trofeo Joan Gamper Season 2017/2018": 200,
        "Trofeo Joan Gamper Season 2016/2017": 176,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return ES_JG.seasons.get(label)


class ES_CT:
    """Class for Supercopa de Catalunya"""

    description = "Supercopa de Catalunya"
    id = 33
    level = "SEN"
    source = ""
    abbreviation = "ES_CT"
    seasons = {
        "Supercopa de Catalunya Season 2018/2019": 241,
        "Supercopa de Catalunya Season 2017/2018": 198,
        "Supercopa de Catalunya Season 2016/2017": 177,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return ES_CT.seasons.get(label)


class EU_YL:
    """Class for UEFA Youth League"""

    description = "UEFA Youth League"
    id = 34
    level = "U18"
    source = ""
    abbreviation = "EU_YL"
    seasons = {
        "UEFA Youth League Season 2020/2021": 402,
        "UEFA Youth League Season 2019/2020": 324,
        "UEFA Youth League Season 2018/2019": 318,
        "UEFA Youth League Season 2017/2018": 345,
        "UEFA Youth League Season 2016/2017": 189,
        "UEFA Youth League Season 2015/2016": 188,
        "UEFA Youth League Season 2014/2015": 187,
        "UEFA Youth League Season 2013/2014": 186,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EU_YL.seasons.get(label)


class EN_YP:
    """Class for English FA Youth Cup"""

    description = "English FA Youth Cup"
    id = 35
    level = "U18"
    source = ""
    abbreviation = "EN_YP"
    seasons = {
        "English FA Youth Cup Season 2020/2021": 393,
        "English FA Youth Cup Season 2019/2020": 331,
        "English FA Youth Cup Season 2018/2019": 232,
        "English FA Youth Cup Season 2017/2018": 323,
        "English FA Youth Cup Season 2016/2017": 344,
        "English FA Youth Cup Season 2015/2016": 343,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EN_YP.seasons.get(label)


class WO_SL:
    """Class for English Women's Super League"""

    description = "English Women's Super League"
    id = 38
    level = "SEN"
    source = ""
    abbreviation = "WO_SL"
    seasons = {
        "English Women's Super League Season 2021/2022": 433,
        "English Women's Super League Season 2020/2021": 356,
        "English Women's Super League Season 2019/2020": 290,
        "2018/2019": 250,
        "2017/2018": 247,
        "2016/2017": 248,
        "2015/2016": 254,
        "2014/2015": 252,
        "2013/2014": 245,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return WO_SL.seasons.get(label)


class WO_SS:
    """Class for Women's Super League Spring Series"""

    description = "Women's Super League Spring Series"
    id = 41
    level = "SEN"
    source = ""
    abbreviation = "WO_SS"
    seasons = {"Women's Super League Spring Series Season 2016/2017": 251}

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return WO_SS.seasons.get(label)


class LD_S3:
    """Class for Scottish League Two"""

    description = "Scottish League Two"
    id = 42
    level = "SEN"
    source = ""
    abbreviation = "LD_S3"
    seasons = {
        "Scottish League Two Season 2021/2022": 420,
        "Scottish League Two Season 2020/2021": 360,
        "Scottish League Two Season 2019/2020": 283,
        "Scottish League Two Season 2018/2019": 256,
        "Scottish League Two Season 2016/2017": 386,
        "Scottish League Two Season 2015/2016": 387,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return LD_S3.seasons.get(label)


class EN_D3:
    """Class for English Football League - League Two"""

    description = "English Football League - League Two"
    id = 43
    level = "SEN"
    source = ""
    abbreviation = "EN_D3"
    seasons = {
        "English Football League - League Two Season 2021/2022": 428,
        "English Football League - League Two Season 2020/2021": 371,
        "English Football League - League Two Season 2019/2020": 277,
        "English Football League - League Two Season 2018/2019": 258,
        "English Football League - League Two Season 2017/2018": 350,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EN_D3.seasons.get(label)


class LD_S1:
    """Class for Scottish Championship"""

    description = "Scottish Championship"
    id = 44
    level = "SEN"
    source = ""
    abbreviation = "LD_S1"
    seasons = {
        "Scottish Championship Season 2021/2022": 419,
        "Scottish Championship Season 2020/2021": 359,
        "Scottish Championship Season 2019/2020": 281,
        "Scottish Championship Season 2018/2019": 259,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return LD_S1.seasons.get(label)


class WO_SL2:
    """Class for English Women's Championship"""

    description = "English Women's Championship"
    id = 45
    level = "SEN"
    source = ""
    abbreviation = "WO_SL2"
    seasons = {
        "English Women's Championship Season 2021/2022": 445,
        "English Women's Championship Season 2020/2021": 364,
        "English Women's Championship Season 2019/2020": 291,
        "English Women's Championship Season 2018/2019": 260,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return WO_SL2.seasons.get(label)


class LD_SP:
    """Class for Scottish Premiership"""

    description = "Scottish Premiership"
    id = 46
    level = "SEN"
    source = ""
    abbreviation = "LD_SP"
    seasons = {
        "Scottish Premiership Season 2021/2022": 421,
        "Scottish Premiership Season 2020/2021": 352,
        "Scottish Premiership Season 2019/2020": 280,
        "Scottish Premiership Season 2018/2019": 261,
        "Scottish Premiership Season 2005/2006": 403,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return LD_SP.seasons.get(label)


class LD_S2:
    """Class for Scottish League One"""

    description = "Scottish League One"
    id = 48
    level = "SEN"
    source = ""
    abbreviation = "LD_S2"
    seasons = {
        "Scottish League One Season 2021/2022": 422,
        "Scottish League One Season 2020/2021": 358,
        "Scottish League One Season 2019/2020": 282,
        "Scottish League One Season 2018/2019": 262,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return LD_S2.seasons.get(label)


class LD_P1:
    """Class for Scottish Championship Play-offs"""

    description = "Scottish Championship Play-offs"
    id = 74
    level = "SEN"
    source = ""
    abbreviation = "LD_P1"
    seasons = {
        "Scottish Championship Play-offs Season 2020/2021": 408,
        "Scottish Championship Play-offs Season 2018/2019": 266,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return LD_P1.seasons.get(label)


class LD_P2:
    """Class for Scottish League One Play-offs"""

    description = "Scottish League One Play-offs"
    id = 75
    level = "SEN"
    source = ""
    abbreviation = "LD_P2"
    seasons = {
        "Scottish League One Play-offs Season 2020/2021": 409,
        "Scottish League One Play-offs Season 2018/2019": 267,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return LD_P2.seasons.get(label)


class LD_P3:
    """Class for Scottish League Two Play-offs"""

    description = "Scottish League Two Play-offs"
    id = 76
    level = "SEN"
    source = ""
    abbreviation = "LD_P3"
    seasons = {
        "Scottish League Two Play-offs Season 2020/2021": 410,
        "Scottish League Two Play-offs Season 2018/2019": 268,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return LD_P3.seasons.get(label)


class LD_PP:
    """Class for Scottish Premiership Play-offs"""

    description = "Scottish Premiership Play-offs"
    id = 77
    level = "SEN"
    source = ""
    abbreviation = "LD_PP"
    seasons = {
        "Scottish Premiership Play-offs Season 2020/2021": 407,
        "Scottish Premiership Play-offs Season 2018/2019": 269,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return LD_PP.seasons.get(label)


class IG_OF:
    """Class for Other Club Friendlies"""

    description = "Other Club Friendlies"
    id = 210
    level = "SEN"
    source = ""
    abbreviation = "IG_OF"
    seasons = {
        "Other Club Friendlies Season 2021/2022": 423,
        "Other Club Friendlies Season 2020/2021": 361,
        "Other Club Friendlies Season 2019/2020": 292,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return IG_OF.seasons.get(label)


class WO_FA:
    """Class for Women's FA Cup"""

    description = "Women's FA Cup"
    id = 345
    level = "SEN"
    source = ""
    abbreviation = "WO_FA"
    seasons = {
        "Women's FA Cup Season 2020/2021": 391,
        "Women's FA Cup Season 2019/2020": 335,
        "Women's FA Cup Season 2018/2019": 311,
        "Women's FA Cup Season 2017/2018": 305,
        "Women's FA Cup Season 2016/2017": 310,
        "Women's FA Cup Season 2015/2016": 308,
        "Women's FA Cup Season 2014/2015": 302,
        "Women's FA Cup Season 2013/2014": 301,
        "Women's FA Cup Season 2012/2013": 304,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return WO_FA.seasons.get(label)


class WO_WSLC:
    """Class for FA Women's Continental League Cup"""

    description = "FA Women's Continental League Cup"
    id = 346
    level = "SEN"
    source = ""
    abbreviation = "WO_WSLC"
    seasons = {
        "FA WSL Cup Season 2020/2021": 383,
        "FA WSL Cup Season 2019/2020": 325,
        "FA WSL Cup Season 2018/2019": 313,
        "FA WSL Cup Season 2017/2018": 309,
        "FA WSL Cup Season 2016/2017": 307,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return WO_WSLC.seasons.get(label)


class WO_CL:
    """Class for Women's Champions League"""

    description = "Women's Champions League"
    id = 348
    level = "SEN"
    source = ""
    abbreviation = "WO_CL"
    seasons = {
        "Women's Champions League Season 2020/2021": 397,
        "Women's Champions League Season 2019/2020": 319,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return WO_CL.seasons.get(label)


class ES_PF:
    """Class for Primera División Femenina"""

    description = "Primera División Femenina"
    id = 349
    level = "SEN"
    source = ""
    abbreviation = "ES_PF"
    seasons = {
        "Primera División Femenina Season 2021/2022": 432,
        "Primera División Femenina Season 2020/2021": 357,
        "Primera División Femenina Season 2019/2020": 320,
        "Primera División Femenina Season 2018/2019": 346,
        "Primera División Femenina Season 2017/2018": 347,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return ES_PF.seasons.get(label)


class ES_SF:
    """Class for Spanish Supercopa Femenina"""

    description = "Spanish Supercopa Femenina"
    id = 370
    level = "SEN"
    source = ""
    abbreviation = "ES_SF"
    seasons = {
        "Spanish Supercopa Femenina Season 2020/2021": 399,
        "Spanish Supercopa Femenina Season 2019/2020": 336,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return ES_SF.seasons.get(label)


class EC_SC:
    """Class for Supercopa de Ecuador"""

    description = "Supercopa de Ecuador"
    id = 373
    level = "SEN"
    source = ""
    abbreviation = "EC_SC"
    seasons = {
        "Supercopa de Ecuador Season 2020/2021": 401,
        "Supercopa de Ecuador Season 2019/2020": 337,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EC_SC.seasons.get(label)


class EN_CP:
    """Class for English National League"""

    description = "English National League"
    id = 388
    level = "SEN"
    source = ""
    abbreviation = "EN_CP"
    seasons = {"English National League Season 2019/2020": 353}

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EN_CP.seasons.get(label)


class EN_CN:
    """Class for English National North"""

    description = "English National North"
    id = 389
    level = "SEN"
    source = ""
    abbreviation = "EN_CN"
    seasons = {"English National North Season 2019/2020": 354}

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EN_CN.seasons.get(label)


class EN_CS:
    """Class for English National South"""

    description = "English National South"
    id = 390
    level = "SEN"
    source = ""
    abbreviation = "EN_CS"
    seasons = {"English National South Season 2019/2020": 355}

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EN_CS.seasons.get(label)


class EN_WC:
    """Class for English Women's Community Shield"""

    description = "English Women's Community Shield"
    id = 480
    level = "SEN"
    source = ""
    abbreviation = "EN_WC"
    seasons = {"English Women's Community Shield Season 2020/2021": 373}

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EN_WC.seasons.get(label)


class EN_FC:
    """Class for English Community Shield"""

    description = "English Community Shield"
    id = 492
    level = "SEN"
    source = ""
    abbreviation = "EN_FC"
    seasons = {
        "English Community Shield Season 2021/2022": 415,
        "English Community Shield Season 2020/2021": 379,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return EN_FC.seasons.get(label)


class DE_RN:
    """Class for German Regionalliga Nord"""

    description = "German Regionalliga Nord"
    id = 657
    level = "SEN"
    source = ""
    abbreviation = "DE_RN"
    seasons = {"German Regionalliga Nord Season 2020/2021": 388}

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return DE_RN.seasons.get(label)


class BE_JL:
    """Class for Belgian Jupiler Pro League"""

    description = "Belgian Jupiler Pro League"
    id = 658
    level = "SEN"
    source = ""
    abbreviation = "BE_JL"
    seasons = {
        "Belgian Jupiler Pro League Season 2021/2022": 416,
        "Belgian Jupiler Pro League Season 2020/2021": 389,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return BE_JL.seasons.get(label)


class ES_CRA:
    """Class for Spanish Copa de la Reina"""

    description = "Spanish Copa de la Reina"
    id = 669
    level = "SEN"
    source = ""
    abbreviation = "ES_CRA"
    seasons = {
        "Spanish Copa de la Reina Season 2020/2021": 406,
        "Spanish Copa de la Reina Season 2019/2020": 396,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return ES_CRA.seasons.get(label)


class IG_WO:
    """Class for Internationals Women"""

    description = "Internationals Women"
    id = 1871
    level = "SEN"
    source = ""
    abbreviation = "IG_WO"
    seasons = {
        "Internationals Women Season 2021/2022": 411,
        "Internationals Women Season 2020/2021": 404,
        "Internationals Women Season 2019/2020": 405,
    }

    @staticmethod
    def get_season_by_label(label: str) -> Optional[int]:
        """
        Get a season by the label
        :param label: String of label
        :type label: str
        :return: Season ID
        :rtype: int
        """
        return IG_WO.seasons.get(label)
