Source code for tmrl

# logger (basicConfig must be called before importing anything)
import logging
import sys
logging.basicConfig(stream=sys.stdout, level=logging.INFO)

# fixes for Windows:
import platform
if platform.system() == "Windows":
    # fix pywin32 in case it fails to import:
    try:
        import win32gui
        import win32ui
        import win32con
    except ImportError as e1:
        logging.info("pywin32 failed to import. Attempting to fix pywin32 installation...")
        from tmrl.tools.init_package.init_pywin32 import fix_pywin32
        try:
            fix_pywin32()
            import win32gui
            import win32ui
            import win32con
        except ImportError as e2:
            logging.error(f"tmrl could not fix pywin32 on your system. The following exceptions were raised:\
            \n=== Exception 1 ===\n{str(e1)}\n=== Exception 2 ===\n{str(e2)}\
            \nPlease install pywin32 manually.")
            raise RuntimeError("Please install pywin32 manually: https://github.com/mhammond/pywin32")

# TMRL folder initialization:
from tmrl.tools.init_package.init_tmrl import TMRL_FOLDER

# do not remove this
from dataclasses import dataclass

from tmrl.envs import GenericGymEnv
from tmrl.config.config_objects import CONFIG_DICT


[docs] def get_environment(): """ Default TMRL Gymnasium environment for TrackMania 2020. Returns: gymnasium.Env: An instance of the default TMRL Gymnasium environment """ import tmrl.config.config_constants as cfg return GenericGymEnv(id=cfg.RTGYM_VERSION, gym_kwargs={"config": CONFIG_DICT})