Skip to content

Commit

Permalink
Add new macros which convert Python pre and post release versions int…
Browse files Browse the repository at this point in the history
…o RPM equivalent.
  • Loading branch information
gordonmessmer committed Feb 6, 2021
1 parent ae138b0 commit 0b23953
Showing 1 changed file with 42 additions and 1 deletion.
43 changes: 42 additions & 1 deletion pyp2rpm/filters.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import re


from pyp2rpm import settings
from pyp2rpm import name_convertor

Expand Down Expand Up @@ -71,11 +74,49 @@ def macroed_url(url):
return url


def rpm_version_410(version, use_macro=True):
if use_macro:
default = '%{pypi_version}'
else:
default = version
re_match = re.compile(
r"(\d+\.?\d*\.?\d*\.?\d*)\.?((?:a|b|rc|dev)\d*)").search(
version)
if not re_match:
return default
rpm_version, rpm_suffix = re_match.groups()
if rpm_suffix.startswith("dev"):
return '{}~~{}'.format(rpm_version, rpm_suffix)
else:
return '{}~{}'.format(rpm_version, rpm_suffix)


def rpm_version(version, use_macro=True):
if use_macro:
default = '%{pypi_version}'
else:
default = version
re_match = re.compile(
r"(\d+\.?\d*\.?\d*\.?\d*)\.?((?:a|b|rc|post|dev)\d*)").search(
version)
if not re_match:
return default
rpm_version, rpm_suffix = re_match.groups()
if rpm_suffix.startswith("post"):
return '{}^{}'.format(rpm_version, rpm_suffix)
if rpm_suffix.startswith("dev"):
return '{}~~{}'.format(rpm_version, rpm_suffix)
else:
return '{}~{}'.format(rpm_version, rpm_suffix)


__all__ = [name_for_python_version,
script_name_for_python_version,
sitedir_for_python_version,
python_bin_for_python_version,
macroed_pkg_name,
module_to_path,
package_to_path,
macroed_url]
macroed_url,
rpm_version_410,
rpm_version]

0 comments on commit 0b23953

Please sign in to comment.