Module Based

Characteristics:

  • Structure: Module based.

  • Threading: Single Threaded.

Pros:

  • Better code structure for higher maintainability.

  • Conf imports is handled by __init__.py only for cleaner imports.

  • Although not used in this example, using __main__.py may be more elegant in some situations.

Cons:

  • No significant cons.

Structure

File: module/__init__.py

from pyot.conf.utils import import_confs

import_confs("module.pyotconf")

File: module/pyotconf.py

import os
from pyot.conf.model import activate_model, ModelConf
from pyot.conf.pipeline import activate_pipeline, PipelineConf


@activate_model("lol")
class LolModel(ModelConf):
    default_platform = "na1"
    default_region = "americas"
    default_version = "latest"
    default_locale = "en_us"


@activate_pipeline("lol")
class LolPipeline(PipelineConf):
    name = "lol_main"
    default = True
    stores = [
        {
            "backend": "pyot.stores.omnistone.Omnistone",
            "expirations": {
                "summoner_v4_by_name": 100,
                "match_v4_match": 600,
                "match_v4_timeline": 600,
            }
        },
        {
            "backend": "pyot.stores.cdragon.CDragon",
        },
        {
            "backend": "pyot.stores.riotapi.RiotAPI",
            "api_key": os.environ["RIOT_API_KEY"],
        }
    ]

File: module/tasks.py

File: main.py

Run

Last updated