Skip to content

Commit

Permalink
Introduce NonVersionFolderName for more clarity
Browse files Browse the repository at this point in the history
  • Loading branch information
goerz committed Apr 19, 2023
1 parent 603f334 commit 34489f6
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 5 deletions.
4 changes: 2 additions & 2 deletions src/docs_versions_menu/groups.py
@@ -1,6 +1,6 @@
"""Classification of folders into groups according to :pep:`440`."""

from .parse_version import LegacyVersion, parse_version
from .parse_version import NonVersionFolderName, parse_version


def get_groups(folders, default_branches=None):
Expand Down Expand Up @@ -51,7 +51,7 @@ def get_groups(folders, default_branches=None):
version = parse_version(folder)
if folder in default_branches:
groups['default-branch'].add(folder)
if isinstance(version, LegacyVersion):
if isinstance(version, NonVersionFolderName):
groups['branches'].add(folder)
else:
groups['releases'].add(folder)
Expand Down
16 changes: 13 additions & 3 deletions src/docs_versions_menu/parse_version.py
Expand Up @@ -8,9 +8,19 @@
import packvers.version


LegacyVersion = packvers.version.LegacyVersion
class NonVersionFolderName(packvers.version.LegacyVersion):
"""A "version" that is just an arbitrary folder name"""

# We rely on the sorting properties of LegacyVersion relative to to a
# proper Version, even though arbitrary folder names aren't in any sense
# "legacy versions"
pass


def parse_version(version):
"""Parse `version` string into an object that allows version comparisons."""
return packvers.version.parse(version)
"""Parse `version` string into either a `Version` or a
`NonVersionFolderName` object."""
try:
return packvers.version.Version(version)
except packvers.version.InvalidVersion:
return NonVersionFolderName(version)

0 comments on commit 34489f6

Please sign in to comment.