diff --git a/src/snakemake_interface_common/io.py b/src/snakemake_interface_common/io.py index a6d65bb..e8be2fb 100644 --- a/src/snakemake_interface_common/io.py +++ b/src/snakemake_interface_common/io.py @@ -1,7 +1,16 @@ +import sys from abc import ABC, abstractmethod -from enum import StrEnum from typing import Any, Dict, Optional +if sys.version_info >= (3, 11): + from enum import StrEnum +else: # e.g. in script envs + from enum import Enum + + class StrEnum(str, Enum): + def __str__(self) -> str: + return str(self.value) + class AccessPattern(StrEnum): RANDOM = "random" diff --git a/tests/tests.py b/tests/tests.py index a6ad793..b17bb84 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -138,3 +138,10 @@ def __init__(self): assert settings.required_int == 789 assert settings.optional_int is None + + +def test_access_pattern_str(): + from snakemake_interface_common.io import AccessPattern + + assert str(AccessPattern.RANDOM) == "random" + assert f"{AccessPattern.MULTI}" == "multi"