public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "André Erdmann" <dywi@mailerd.de>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/depres/simpledeprule/, roverlay/depres/
Date: Thu,  2 Aug 2012 15:14:17 +0000 (UTC)	[thread overview]
Message-ID: <1343919676.0e03d69ea4da114d891eeacf620262c901bd577b.dywi@gentoo> (raw)

commit:     0e03d69ea4da114d891eeacf620262c901bd577b
Author:     André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Thu Aug  2 15:01:16 2012 +0000
Commit:     André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Thu Aug  2 15:01:16 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=0e03d69e

depres: comments, string formatting and strutil

---
 roverlay/depres/depenv.py                      |   25 +++++++++++++++--------
 roverlay/depres/listeners.py                   |    8 +++---
 roverlay/depres/simpledeprule/abstractrules.py |   25 ++++++++++-------------
 roverlay/depres/simpledeprule/console.py       |    6 ++--
 4 files changed, 34 insertions(+), 30 deletions(-)

diff --git a/roverlay/depres/depenv.py b/roverlay/depres/depenv.py
index f9bef8c..f4405ce 100644
--- a/roverlay/depres/depenv.py
+++ b/roverlay/depres/depenv.py
@@ -9,16 +9,23 @@ class DepEnv ( object ):
 	# excluding A-Z since dep_str_low will be used to find a match
 	# _NAME ::= word{<whitespace><word>}
 	_NAME = '(?P<name>[a-z0-9_\-/.+-]+(\s+[a-z0-9_\-/.+-]+)*)'
+
+	# _VER              ::= [[<version_separator>]*<digit>[<digit>]*]*
+	# digit             ::= {0..9}
+	# version_separator ::= {'.','_','-'}
+	# examples: .9, 1.0-5, 3, 5..-_--2
 	_VER  = '(?P<ver>[0-9._\-]+)'
+
 	# { <, >, ==, <=, >=, =, != }
 	_VERMOD = '(?P<vmod>[<>]|[=<>!]?[=])'
 
+	# name/version regexes used for fuzzy dep rules
 	V_REGEX_STR = frozenset ( (
 		# 'R >= 2.15', 'R >=2.15' etc. (but not 'R>=2.15'!)
 		'^{name}\s+{vermod}?\s*{ver}\s*$'.format (
 			name=_NAME, vermod=_VERMOD, ver=_VER
 		),
-		# TODO: merge these regexes: () [] {} (but not (],{), ...)
+
 		# 'R (>= 2.15)', 'R(>=2.15)' etc.
 		'^{name}\s*\(\s*{vermod}?\s*{ver}\s*\)$'.format (
 			name=_NAME, vermod=_VERMOD, ver=_VER
@@ -34,14 +41,12 @@ class DepEnv ( object ):
 		),
 	) )
 
-	VERSION_REGEX = frozenset (
-		re.compile ( regex ) for regex in V_REGEX_STR
-	)
+	VERSION_REGEX    = frozenset ( re.compile ( r ) for r in V_REGEX_STR )
 	FIXVERSION_REGEX = re.compile ( '[_\-]' )
+	URI_PURGE        = re.compile ( '\s*from\s*(http|ftp|https)://[^\s]+' )
+	WHITESPACE       = re.compile ( '\s+' )
 
-	URI_PURGE = re.compile ( '\s*from\s*(http|ftp|https)://[^\s]+' )
-	WHITESPACE = re.compile ( '\s+' )
-
+	# try all version regexes if True, else break after first match
 	TRY_ALL_REGEXES  = False
 
 	STATUS_UNDONE       = 1
@@ -49,6 +54,9 @@ class DepEnv ( object ):
 	STATUS_UNRESOLVABLE = 4
 
 	def _depstr_fix ( self, dep_str ):
+		"""Removes cruft from a dep string."""
+		# unquote dep_str, remove "from <uri>.." entries and replace all
+		# whitespace by a single ' ' char
 		cls = self.__class__
 		return cls.WHITESPACE.sub ( ' ',
 			cls.URI_PURGE.sub ( '',
@@ -77,8 +85,7 @@ class DepEnv ( object ):
 
 		self._depsplit()
 
-		# TODO: analyze dep_str:
-		#   extract dep name, dep version, useless comments,...
+		# (maybe) TODO: analyze dep_str: remove useless comments,...
 
 	# --- end of __init__ (...) ---
 

diff --git a/roverlay/depres/listeners.py b/roverlay/depres/listeners.py
index 9d5b0fc..1a8cc2e 100644
--- a/roverlay/depres/listeners.py
+++ b/roverlay/depres/listeners.py
@@ -101,10 +101,12 @@ class ResolvedFileListener ( FileListener ):
 
 	def notify ( self, event_type, dep_env=None, pkg_env=None, **extra ):
 		self._event ( event_type,
-			"'%s' as '%s'" % ( dep_env.dep_str, dep_env.resolved_by )
-		)
+			"{dep_str!r} as {dep!r}".format (
+				dep_str=dep_env.dep_str, dep=dep_env.resolved_by
+		) )
 	# --- end of notify (...) ---
 
+
 class UnresolvableFileListener ( FileListener ):
 	"""A FileListener that listens to 'dependency unresolvable' events."""
 	def __init__ ( self, _file ):
@@ -114,7 +116,6 @@ class UnresolvableFileListener ( FileListener ):
 	# --- end of __init__ (...) ---
 
 	def notify ( self, event_type, dep_env=None, pkg_env=None, **extra ):
-		# <%s> % dep_env.dep_str? TODO
 		self._event ( event_type, dep_env.dep_str )
 	# --- end of notify (...) ---
 
@@ -129,6 +130,5 @@ class UnresolvableSetFileListener ( SetFileListener ):
 	# --- end of __init__ (...) ---
 
 	def notify ( self, event_type, dep_env=None, pkg_env=None, **extra ):
-		#self._event ( event_type, dep_env.dep_str_low )
 		self._event ( event_type, dep_env.dep_str )
 	# --- end of notify (...) ---

diff --git a/roverlay/depres/simpledeprule/abstractrules.py b/roverlay/depres/simpledeprule/abstractrules.py
index 18dc4b7..20644e3 100644
--- a/roverlay/depres/simpledeprule/abstractrules.py
+++ b/roverlay/depres/simpledeprule/abstractrules.py
@@ -79,9 +79,9 @@ class SimpleRule ( deprule.DependencyRule ):
 			dep_env.dep_str_low if lowercase else dep_env.dep_str, lowercase
 		):
 			self.logger.debug (
-				"matches %s with score %i and priority %i."
-					% ( dep_env.dep_str, self.max_score, self.priority )
-			)
+				"matches {dep_str} with score {s} and priority {p}.".format (
+					dep_str=dep_env.dep_str, s=self.max_score, p=self.priority
+			) )
 			return ( self.max_score, self.resolving_package )
 
 		return None
@@ -91,7 +91,6 @@ class SimpleRule ( deprule.DependencyRule ):
 		"""Generates text lines for this rule that can later be read using
 		the SimpleDependencyRuleReader.
 		"""
-		# todo hardcoded rule format here
 		if self.resolving_package is None:
 			resolving = ''
 		else:
@@ -111,7 +110,7 @@ class SimpleRule ( deprule.DependencyRule ):
 			pass
 
 		elif len ( self.dep_alias ) == 1:
-			yield "%s :: %s" % ( resolving, iter ( self.dep_alias ).next() )
+			yield "{} :: {}".format ( resolving, iter ( self.dep_alias ).next() )
 
 		else:
 			yield resolving + ' {'
@@ -138,9 +137,9 @@ class FuzzySimpleRule ( SimpleRule ):
 		if self._find ( dep_env.dep_str_low, lowercase=True ):
 			# non-fuzzy match
 			self.logger.debug (
-				"matches %s with score %i and priority %i."
-					% ( dep_env.dep_str, self.max_score, self.priority )
-			)
+				"matches {dep_str} with score {s} and priority {p}.".format (
+					dep_str=dep_env.dep_str, s=self.max_score, p=self.priority
+			) )
 			return ( self.fuzzy_score[3], self.resolving_package )
 
 		elif hasattr ( dep_env, 'fuzzy' ):
@@ -194,9 +193,10 @@ class FuzzySimpleRule ( SimpleRule ):
 
 
 						self.logger.debug (
-							"fuzzy-match: %s resolved as '%s' with score=%i."
-								% ( dep_env.dep_str, res, score )
-						)
+							'fuzzy-match: {dep_str} resolved as {dep!r} '
+							'with score={s}.'.format (
+								dep_str=dep_env.dep_str, dep=res, s=score
+						) )
 						return ( score, res )
 					# --- if find (=match found)
 				# --- if name in
@@ -205,6 +205,3 @@ class FuzzySimpleRule ( SimpleRule ):
 
 		return None
 	# --- end of matches (...) ---
-
-
-

diff --git a/roverlay/depres/simpledeprule/console.py b/roverlay/depres/simpledeprule/console.py
index 2677a44..8292f4c 100644
--- a/roverlay/depres/simpledeprule/console.py
+++ b/roverlay/depres/simpledeprule/console.py
@@ -4,7 +4,7 @@ import sys
 import shlex
 import logging
 
-from roverlay import config, util
+from roverlay import config, strutil
 from roverlay.errorqueue                     import ErrorQueue
 from roverlay.depres                         import deptype
 from roverlay.depres.depresolver             import DependencyResolver
@@ -42,14 +42,14 @@ class PackageDirRuleMaker ( object ):
 		if self.fuzzy:
 			for dep in self._scan ( distdir ):
 				yield rules.SimpleFuzzyDependencyRule (
-					resolving_package = util.fix_ebuild_name ( cat + dep ),
+					resolving_package = strutil.fix_ebuild_name ( cat + dep ),
 					dep_str = dep,
 					is_selfdep=True
 				)
 		else:
 			for dep in self._scan ( distdir ):
 				yield rules.SimpleDependencyRule (
-					resolving_package = util.fix_ebuild_name ( cat + dep ),
+					resolving_package = strutil.fix_ebuild_name ( cat + dep ),
 					dep_str = dep,
 					is_selfdep=True
 				)


             reply	other threads:[~2012-08-02 15:15 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-02 15:14 André Erdmann [this message]
  -- strict thread matches above, loose matches on Subject: below --
2014-06-05 22:09 [gentoo-commits] proj/R_overlay:master commit in: roverlay/depres/simpledeprule/, roverlay/depres/ André Erdmann
2013-09-02 16:21 André Erdmann
2013-09-02 13:20 André Erdmann
2013-07-19 18:00 [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-23  7:51 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-07-03 10:05 André Erdmann
2013-07-02 21:09 [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-03 10:05 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2012-07-20 16:16 [gentoo-commits] proj/R_overlay:overlay_wip " André Erdmann
2012-07-30  8:52 ` [gentoo-commits] proj/R_overlay:master " André Erdmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1343919676.0e03d69ea4da114d891eeacf620262c901bd577b.dywi@gentoo \
    --to=dywi@mailerd.de \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox