diff --git a/.bumpversion.toml b/.bumpversion.toml index ceed6f882..8a38a1a7d 100644 --- a/.bumpversion.toml +++ b/.bumpversion.toml @@ -1,6 +1,6 @@ [tool.bumpversion] allow_dirty = true - current_version = "0.184.3" + current_version = "0.184.4" [[tool.bumpversion.files]] filename = "pyproject.toml" diff --git a/pyproject.toml b/pyproject.toml index 43620c5ff..3751b2a89 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,7 +21,7 @@ "coloredlogs>=15.0.1", "coverage-conditional-plugin>=0.9.0", "dycw-pytest-only>=2.1.1", - "dycw-utilities[test]>=0.184.2", + "dycw-utilities[test]>=0.184.3", "pyright>=1.1.408", "pytest-cov>=7.0.0", "pytest-timeout>=2.4.0", @@ -116,7 +116,7 @@ name = "dycw-utilities" readme = "README.md" requires-python = ">= 3.12" - version = "0.184.3" + version = "0.184.4" [project.entry-points.pytest11] pytest-randomly = "utilities.pytest_plugins.pytest_randomly" diff --git a/src/tests/test_version.py b/src/tests/test_version.py index 4c313ddab..090c20c75 100644 --- a/src/tests/test_version.py +++ b/src/tests/test_version.py @@ -3,7 +3,7 @@ from re import search from typing import TYPE_CHECKING -from hypothesis import given +from hypothesis import assume, given from hypothesis.strategies import booleans, integers, none from pytest import mark, param, raises @@ -35,7 +35,18 @@ class TestParseVersion2Or3: @mark.parametrize( ("text", "expected"), - [param("0.1", Version2(0, 1)), param("0.0.1", Version3(0, 0, 1))], + [ + param("0.1", Version2(0, 1)), + param("0.12", Version2(0, 12)), + param("1.23", Version2(1, 23)), + param("12.34", Version2(12, 34)), + param("0.0.1", Version3(0, 0, 1)), + param("0.0.12", Version3(0, 0, 12)), + param("0.1.23", Version3(0, 1, 23)), + param("0.12.34", Version3(0, 12, 34)), + param("1.23.45", Version3(1, 23, 45)), + param("12.34.56", Version3(12, 34, 56)), + ], ) def test_main(self, *, text: str, expected: Version2Or3) -> None: result = parse_version_2_or_3(text) @@ -191,6 +202,7 @@ def test_with_suffix(self, *, version: Version3, suffix: str | None) -> None: @given(version=version3s()) def test_version2(self, *, version: Version3) -> None: + _ = assume((version.major > 0) or (version.minor > 0)) new = version.version2.version3(patch=version.patch) assert new == version diff --git a/src/utilities/__init__.py b/src/utilities/__init__.py index f4ed85fc4..95aac9105 100644 --- a/src/utilities/__init__.py +++ b/src/utilities/__init__.py @@ -1,3 +1,3 @@ from __future__ import annotations -__version__ = "0.184.3" +__version__ = "0.184.4" diff --git a/src/utilities/version.py b/src/utilities/version.py index 034b6359a..0d1e84b8d 100644 --- a/src/utilities/version.py +++ b/src/utilities/version.py @@ -291,10 +291,10 @@ def __str__(self) -> str: def parse_version_2_or_3(text: str, /) -> Version2Or3: """Parse a string into a Version2 or Version3 object.""" - with suppress(_Version2ParseError): - return Version2.parse(text) with suppress(_Version3ParseError): return Version3.parse(text) + with suppress(_Version2ParseError): + return Version2.parse(text) raise ParseVersion2Or3Error(text=text) diff --git a/uv.lock b/uv.lock index 2bd3bfb7f..cb43b6a73 100644 --- a/uv.lock +++ b/uv.lock @@ -625,7 +625,7 @@ wheels = [ [[package]] name = "dycw-utilities" -version = "0.184.3" +version = "0.184.4" source = { editable = "." } dependencies = [ { name = "atomicwrites" }, @@ -944,7 +944,7 @@ dev = [ { name = "coloredlogs", specifier = ">=15.0.1" }, { name = "coverage-conditional-plugin", specifier = ">=0.9.0" }, { name = "dycw-pytest-only", specifier = ">=2.1.1" }, - { name = "dycw-utilities", extras = ["test"], specifier = ">=0.184.2" }, + { name = "dycw-utilities", extras = ["test"], specifier = ">=0.184.3" }, { name = "pyright", specifier = ">=1.1.408" }, { name = "pytest-cov", specifier = ">=7.0.0" }, { name = "pytest-timeout", specifier = ">=2.4.0" },