Skip to content

Commit

Permalink
Merge pull request #305 from callowayproject/300-nuitka-fix
Browse files Browse the repository at this point in the history
Refactor SCMInfo and Config imports.
  • Loading branch information
coordt authored Feb 22, 2025
2 parents 7127818 + b0c46a3 commit 5aef344
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 7 deletions.
4 changes: 2 additions & 2 deletions bumpversion/config/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
from pydantic import BaseModel, Field
from pydantic_settings import BaseSettings, SettingsConfigDict

from bumpversion.scm.models import SCMInfo # NOQA: TC001
from bumpversion.ui import get_indented_logger
from bumpversion.versioning.models import VersionComponentSpec # NOQA: TC001

if TYPE_CHECKING: # pragma: no-coverage
from bumpversion.scm.models import SCMInfo
from bumpversion.versioning.models import VersionSpec
from bumpversion.versioning.version_config import VersionConfig

Expand Down Expand Up @@ -97,7 +97,7 @@ class Config(BaseSettings):
commit: bool
message: str
commit_args: Optional[str]
scm_info: Optional["SCMInfo"]
scm_info: Optional[SCMInfo]
parts: Dict[str, VersionComponentSpec]
moveable_tags: list[str] = Field(default_factory=list)
files: List[FileChange] = Field(default_factory=list)
Expand Down
8 changes: 5 additions & 3 deletions bumpversion/scm/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,16 @@
import re
from dataclasses import asdict, dataclass, field
from pathlib import Path
from typing import Any, MutableMapping, Optional, Protocol
from typing import TYPE_CHECKING, Any, MutableMapping, Optional, Protocol

from bumpversion.config import Config
from bumpversion.ui import get_indented_logger
from bumpversion.utils import Pathlike, extract_regex_flags

logger = get_indented_logger(__name__)

if TYPE_CHECKING: # pragma: no-coverage
from bumpversion.config import Config


@dataclass
class SCMConfig:
Expand Down Expand Up @@ -39,7 +41,7 @@ def get_version_from_tag(self, tag: str) -> Optional[str]:
return match["current_version"] if (match := tag_regex.search(tag)) else None

@classmethod
def from_config(cls, config: Config) -> "SCMConfig":
def from_config(cls, config: "Config") -> "SCMConfig":
"""Return a SCMConfig from a Config object."""
return cls(
tag=config.tag,
Expand Down
5 changes: 3 additions & 2 deletions tests/test_bump.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from bumpversion.exceptions import ConfigurationError, VersionNotFoundError
from bumpversion.files import ConfiguredFile
from bumpversion.scm.git import Git
from bumpversion.scm.models import SCMConfig, SCMInfo
from bumpversion.scm.models import SCMConfig, SCMInfo, DefaultSCMTool
from bumpversion.utils import run_command
from tests.conftest import get_config_data, inside_dir

Expand Down Expand Up @@ -256,7 +256,7 @@ def test_excludes_files_with_exclude_bumps(
class TestCommitAndTag:
"""Tests for the commit_and_tag function."""

def does_nothing_if_no_scm_tool(self, scm_config: SCMConfig):
def test_does_nothing_if_no_scm_tool(self, scm_config: SCMConfig):
"""If there is no SCM tool, nothing should happen."""
# Arrange
config, _, _ = get_config_data(
Expand All @@ -265,6 +265,7 @@ def does_nothing_if_no_scm_tool(self, scm_config: SCMConfig):
}
)
config.scm_info = SCMInfo(scm_config)
config.scm_info.tool = None
mock_commit_and_tag = MagicMock()
config.scm_info.commit_and_tag = mock_commit_and_tag
mock_context = MagicMock()
Expand Down

0 comments on commit 5aef344

Please sign in to comment.