From dec253d4e2749bca41cf7a198acae076ef09d976 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Sep 09 2016 08:54:50 +0000 Subject: primary: use proper regex for basename "-" can be used in Release tag. Signed-off-by: Igor Gnatenko --- diff --git a/mdapi/primary.py b/mdapi/primary.py index 4a36b3a..3ed7834 100644 --- a/mdapi/primary.py +++ b/mdapi/primary.py @@ -26,6 +26,7 @@ DB mapping for the primary sqlite DB. import sqlalchemy as sa from sqlalchemy.ext.declarative import declarative_base +from sqlalchemy.ext.hybrid import hybrid_property BASE = declarative_base() @@ -46,10 +47,22 @@ class Package(BASE): summary = sa.Column(sa.Text) description = sa.Column(sa.Text) - @property + @hybrid_property def basename(self): ''' Return the base package name using the rpm_sourcerpms info. ''' - return self.rpm_sourcerpm.rsplit('-', 2)[0] + suffix_len = len('-{0.version}-{0.release}.src.rpm'.format(self)) + return self.rpm_sourcerpm[0:-suffix_len] + + @basename.expression + def basename(cls): + # -{0.version} + suffix_ver = 1 + sa.func.length(cls.version) + # -{0.release} + suffix_rel = 1 + sa.func.length(cls.release) + # Combined + suffix_len = suffix_ver + suffix_rel + len('.src.rpm') + return sa.func.substr(cls.rpm_sourcerpm, 1, + sa.func.length(cls.rpm_sourcerpm) - suffix_len) def to_json(self): pkg = {