From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 3B8351381F3 for ; Thu, 11 Jul 2013 08:49:34 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id CBD06E0A04; Thu, 11 Jul 2013 08:49:30 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 3CA23E0A04 for ; Thu, 11 Jul 2013 08:49:30 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 2339033E9E3 for ; Thu, 11 Jul 2013 08:49:29 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id C5DA3E545D for ; Thu, 11 Jul 2013 08:49:27 +0000 (UTC) From: "André Erdmann" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "André Erdmann" Message-ID: <1373532228.fb5c3772408a021f02a654bd3bfa4a220e486b50.dywi@gentoo> Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/depres/ X-VCS-Repository: proj/R_overlay X-VCS-Files: roverlay/depres/channels.py roverlay/depres/depenv.py X-VCS-Directories: roverlay/depres/ X-VCS-Committer: dywi X-VCS-Committer-Name: André Erdmann X-VCS-Revision: fb5c3772408a021f02a654bd3bfa4a220e486b50 X-VCS-Branch: master Date: Thu, 11 Jul 2013 08:49:27 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 18a6a117-9fff-4699-a800-89f97f3ba54e X-Archives-Hash: 3ecdffc3deb1618d6dc6b8095c6f6069 commit: fb5c3772408a021f02a654bd3bfa4a220e486b50 Author: André Erdmann mailerd de> AuthorDate: Thu Jul 11 08:43:48 2013 +0000 Commit: André Erdmann mailerd de> CommitDate: Thu Jul 11 08:43:48 2013 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=fb5c3772 roverlay/depres: create multiple DepEnv instances Create multiple DepEnv instances for a dependency string. This can be used to split strings like ' and '. --- roverlay/depres/channels.py | 8 +++++--- roverlay/depres/depenv.py | 32 ++++++++++++++++++++------------ 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/roverlay/depres/channels.py b/roverlay/depres/channels.py index b1f39bd..60875f0 100644 --- a/roverlay/depres/channels.py +++ b/roverlay/depres/channels.py @@ -112,9 +112,11 @@ class _EbuildJobChannelBase ( DependencyResolverChannel ): "This channel is 'done', it doesn't accept new dependencies." ) else: - dep_env = DepEnv ( dep_str=dep_str, deptype_mask=deptype_mask ) - self._depcount += 1 - self._depres_master.enqueue ( dep_env, self.ident ) + for dep_env in DepEnv.from_str ( + dep_str=dep_str, deptype_mask=deptype_mask + ): + self._depcount += 1 + self._depres_master.enqueue ( dep_env, self.ident ) # --- end of add_dependency (...) --- diff --git a/roverlay/depres/depenv.py b/roverlay/depres/depenv.py index 972dc79..277290c 100644 --- a/roverlay/depres/depenv.py +++ b/roverlay/depres/depenv.py @@ -122,17 +122,25 @@ class DepEnv ( object ): STATUS_RESOLVED = 2 STATUS_UNRESOLVABLE = 4 - def _depstr_fix ( self, dep_str ): - """Removes cruft from a dep string.""" - # unquote dep_str, remove "from .." entries and replace all + @classmethod + def from_str ( cls, dep_str, deptype_mask ): + """(Pre-)parses a dependency string and creates DepEnv objects for it.""" + # split dep_str into logically ANDed dependency strings, + # unquote them, remove "from .." entries and replace all # whitespace by a single ' ' char - cls = self.__class__ - return cls.WHITESPACE.sub ( ' ', - cls.URI_PURGE.sub ( '', - strutil.unquote ( dep_str ) - ) - ).strip() - # --- end of _depstr_fix (...) --- + return ( + cls ( + dep_str = ( + cls.WHITESPACE.sub ( ' ', + cls.URI_PURGE.sub ( '', + strutil.unquote ( dep_str ) + ) + ).strip() + ), + deptype_mask = deptype_mask, + ), + ) + # --- end of from_str (...) --- def __init__ ( self, dep_str, deptype_mask ): """Initializes a dependency environment that represents the dependency @@ -147,8 +155,8 @@ class DepEnv ( object ): self.status = DepEnv.STATUS_UNDONE self.resolved_by = None - self.dep_str = self._depstr_fix ( dep_str ) - self.dep_str_low = self.dep_str.lower() + self.dep_str = dep_str + self.dep_str_low = dep_str.lower() self.try_all_regexes = self.__class__.TRY_ALL_REGEXES From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 7FEBB138200 for ; Thu, 11 Jul 2013 08:46:06 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 588F1E0A03; Thu, 11 Jul 2013 08:46:02 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 77E6CE0A03 for ; Thu, 11 Jul 2013 08:46:01 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 5212B33E9EA for ; Thu, 11 Jul 2013 08:46:00 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id E8419E545D for ; Thu, 11 Jul 2013 08:45:58 +0000 (UTC) From: "André Erdmann" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "André Erdmann" Message-ID: <1373532228.fb5c3772408a021f02a654bd3bfa4a220e486b50.dywi@gentoo> Subject: [gentoo-commits] proj/R_overlay:gsoc13/next commit in: roverlay/depres/ X-VCS-Repository: proj/R_overlay X-VCS-Files: roverlay/depres/channels.py roverlay/depres/depenv.py X-VCS-Directories: roverlay/depres/ X-VCS-Committer: dywi X-VCS-Committer-Name: André Erdmann X-VCS-Revision: fb5c3772408a021f02a654bd3bfa4a220e486b50 X-VCS-Branch: gsoc13/next Date: Thu, 11 Jul 2013 08:45:58 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 4c3b7d42-f568-4a00-bb58-132c7d1fd4b6 X-Archives-Hash: d41ba0e2090266e0671f2c6d9fe88afc Message-ID: <20130711084558.BUisKrJekQrag0_77Vndb5uaLb2mfaxdSnPFNqUW_r0@z> commit: fb5c3772408a021f02a654bd3bfa4a220e486b50 Author: André Erdmann mailerd de> AuthorDate: Thu Jul 11 08:43:48 2013 +0000 Commit: André Erdmann mailerd de> CommitDate: Thu Jul 11 08:43:48 2013 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=fb5c3772 roverlay/depres: create multiple DepEnv instances Create multiple DepEnv instances for a dependency string. This can be used to split strings like ' and '. --- roverlay/depres/channels.py | 8 +++++--- roverlay/depres/depenv.py | 32 ++++++++++++++++++++------------ 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/roverlay/depres/channels.py b/roverlay/depres/channels.py index b1f39bd..60875f0 100644 --- a/roverlay/depres/channels.py +++ b/roverlay/depres/channels.py @@ -112,9 +112,11 @@ class _EbuildJobChannelBase ( DependencyResolverChannel ): "This channel is 'done', it doesn't accept new dependencies." ) else: - dep_env = DepEnv ( dep_str=dep_str, deptype_mask=deptype_mask ) - self._depcount += 1 - self._depres_master.enqueue ( dep_env, self.ident ) + for dep_env in DepEnv.from_str ( + dep_str=dep_str, deptype_mask=deptype_mask + ): + self._depcount += 1 + self._depres_master.enqueue ( dep_env, self.ident ) # --- end of add_dependency (...) --- diff --git a/roverlay/depres/depenv.py b/roverlay/depres/depenv.py index 972dc79..277290c 100644 --- a/roverlay/depres/depenv.py +++ b/roverlay/depres/depenv.py @@ -122,17 +122,25 @@ class DepEnv ( object ): STATUS_RESOLVED = 2 STATUS_UNRESOLVABLE = 4 - def _depstr_fix ( self, dep_str ): - """Removes cruft from a dep string.""" - # unquote dep_str, remove "from .." entries and replace all + @classmethod + def from_str ( cls, dep_str, deptype_mask ): + """(Pre-)parses a dependency string and creates DepEnv objects for it.""" + # split dep_str into logically ANDed dependency strings, + # unquote them, remove "from .." entries and replace all # whitespace by a single ' ' char - cls = self.__class__ - return cls.WHITESPACE.sub ( ' ', - cls.URI_PURGE.sub ( '', - strutil.unquote ( dep_str ) - ) - ).strip() - # --- end of _depstr_fix (...) --- + return ( + cls ( + dep_str = ( + cls.WHITESPACE.sub ( ' ', + cls.URI_PURGE.sub ( '', + strutil.unquote ( dep_str ) + ) + ).strip() + ), + deptype_mask = deptype_mask, + ), + ) + # --- end of from_str (...) --- def __init__ ( self, dep_str, deptype_mask ): """Initializes a dependency environment that represents the dependency @@ -147,8 +155,8 @@ class DepEnv ( object ): self.status = DepEnv.STATUS_UNDONE self.resolved_by = None - self.dep_str = self._depstr_fix ( dep_str ) - self.dep_str_low = self.dep_str.lower() + self.dep_str = dep_str + self.dep_str_low = dep_str.lower() self.try_all_regexes = self.__class__.TRY_ALL_REGEXES