Skip to content

Commit bb7e7a8

Browse files
committed
refactor: move get_asset to utils
1 parent 12131e5 commit bb7e7a8

File tree

6 files changed

+26
-28
lines changed

6 files changed

+26
-28
lines changed

src/ci_starter/__init__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@
33
from logging import getLogger
44
from pathlib import Path
55

6-
from .asset_getter import get_asset
76
from .constants import BASE_WORKFLOW_ASSET_PATH, HELPER_SCRIPT_ASSET_PATH
87
from .git_helpers import get_repo_name
98
from .presets import DISTRIBUTION_ARTIFACTS_DIR, LOCKFILE_ARTIFACT
109
from .semantic_release_config import SemanticReleaseConfiguration
11-
from .utils import from_yaml
10+
from .utils import from_yaml, get_asset
1211

1312
__version__ = get_version(__package__)
1413

src/ci_starter/asset_getter.py

Lines changed: 0 additions & 22 deletions
This file was deleted.

src/ci_starter/semantic_release_config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
from pathlib import Path
33
from tomllib import loads
44

5-
from .asset_getter import get_asset
65
from .bases import SemanticReleaseConfigurationBase
76
from .placeholder import Placeholder
7+
from .utils import get_asset
88

99

1010
class SemanticReleaseConfiguration(SemanticReleaseConfigurationBase):

src/ci_starter/utils.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,31 @@
11
from collections.abc import Mapping
2-
from typing import TextIO
2+
from pathlib import Path
3+
from sys import version_info
4+
from typing import TYPE_CHECKING, TextIO
35

46
from ruamel.yaml import YAML as Yaml
57

68
from ci_starter.step import Step
79

10+
if TYPE_CHECKING:
11+
from importlib.resources.abc import Traversable
12+
13+
OLD_PYTHON_MINOR_VERSION = 11
14+
15+
if version_info.minor == OLD_PYTHON_MINOR_VERSION:
16+
from importlib_resources import files
17+
else:
18+
from importlib.resources import files
19+
20+
21+
def get_asset(path: str) -> str:
22+
path = Path(path)
23+
asset: Traversable = files(f"{__package__}.assets")
24+
for path_segment in path.parts:
25+
asset = asset.joinpath(path_segment)
26+
result: str = asset.read_text(encoding="utf-8")
27+
return result
28+
829

930
def step_yaml() -> Yaml:
1031
yaml = Yaml()

tests/dependencies/test_ruamel_yaml.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
from ruamel.yaml.tokens import CommentToken
77

88
from ci_starter.action import Action
9-
from ci_starter.asset_getter import get_asset
109
from ci_starter.step import Step
10+
from ci_starter.utils import get_asset
1111

1212

1313
def test_mapping_subclass() -> None:

tests/e2e/test_workflow_files.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from click.testing import CliRunner, Result
44
from pytest import mark, param
55

6-
from ci_starter.asset_getter import get_asset
76
from ci_starter.cli import cli
87
from ci_starter.constants import (
98
BASE_WORKFLOW_ASSET_PATH,
@@ -17,6 +16,7 @@
1716
TEST_E2E_WORKFLOW_ASSET_PATH,
1817
TEST_E2E_WORKFLOW_FILE_PATH,
1918
)
19+
from ci_starter.utils import get_asset
2020
from tests.e2e.comparator import Comparator
2121
from tests.e2e.constants import SUCCESSFUL_RETURN_CODE
2222

0 commit comments

Comments
 (0)