From: "André Erdmann" <dywi@mailerd.de>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/depres/
Date: Mon, 4 Jun 2012 19:07:38 +0000 (UTC) [thread overview]
Message-ID: <1338836671.b878c706058d51594c4d47bf41a637c43b5125b3.dywi@gentoo> (raw)
commit: b878c706058d51594c4d47bf41a637c43b5125b3
Author: André Erdmann <dywi <AT> mailerd <DOT> de>
AuthorDate: Mon Jun 4 19:04:31 2012 +0000
Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
CommitDate: Mon Jun 4 19:04:31 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=b878c706
initial work for dependency resolution
---
roverlay/depres/depresolver.py | 33 ++++++++++++++++++++++
roverlay/depres/deprule.py | 60 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 93 insertions(+), 0 deletions(-)
diff --git a/roverlay/depres/depresolver.py b/roverlay/depres/depresolver.py
new file mode 100644
index 0000000..7d7c5e6
--- /dev/null
+++ b/roverlay/depres/depresolver.py
@@ -0,0 +1,33 @@
+# R overlay --
+# Copyright 2006-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+class DependencyResolver:
+
+ def __init__ ( self ):
+ self.channels = dict()
+ self.listeners = dict()
+
+
+ def get_listener ():
+ new_listener = DependencyResolverListener()
+ # register the new listener
+ self.listeners [new_listener.ident] = new_listener
+ return new_listener
+
+ def get_channel ( readonly=False ):
+ # ... TODO
+ pass
+
+
+
+class DependencyResolverListener:
+
+ def __init__ ( self ):
+ self.ident = id ( self )
+
+class DependencyResolverChannel ( DependencyResolverListener ):
+
+ def __init__ ( self, main_resolver, *args ):
+ super ( DependencyResolverChannel, self ) . __init__ ( args )
+ self._depres_master = main_resolver
diff --git a/roverlay/depres/deprule.py b/roverlay/depres/deprule.py
new file mode 100644
index 0000000..3a82cbe
--- /dev/null
+++ b/roverlay/depres/deprule.py
@@ -0,0 +1,60 @@
+# R overlay --
+# Copyright 2006-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+class DependencyRule:
+ def __init__ ( self ):
+ pass
+
+ def matches ( pkg_env ):
+ return False
+
+class SimpleDependencyRule ( DependencyRule ):
+
+ def __init__ ( self, resolving_package, dep_str=None, priority=100 ):
+ super ( SimpleDependencyRule, self ) . __init__ ( self )
+ self.dep_alias = set ()
+ if dep_str:
+ self.dep_alias.add ( dep_str )
+
+ self.package = resolving_package
+
+ self.priority = priority
+ # --- end of __init__ (...) ---
+
+ def add_resolved ( self, dep_str ):
+ self.dep_alias.add ( dep_str )
+ # --- end of add_resolved (...) ---
+
+ def matches ( self, pkg_env, lowercase=True ):
+ if lowercase:
+ lower_dep_str = pkg_env.dep_str
+ for alias in self.dep_alias:
+ if alias.lower() == lower_dep_str:
+ return True
+ elif pkg_env.dep_str in self.dep_alias:
+ return True
+
+ return False
+ # --- end of matches (...) ---
+
+class DependencyRulePool:
+
+ def __init__ ( self ):
+ self.rules = list ()
+ self._priofunc = lambda x : x.priority
+ # --- end of __init__ (...) ---
+
+ def _sort_rules ( self ):
+ self.rules.sort ( key=self._priofunc )
+ return None
+ # --- end of _sort_rules (...) ---
+
+ def add ( self, rule ):
+ if issubclass ( rule, DependencyRule ):
+ self.rules.add ( rule )
+ else:
+ raise Exception ( "bad usage (dependency rule expected)." )
+
+ return None
+ # --- end of add (...) ---
next reply other threads:[~2012-06-04 19:07 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-04 19:07 André Erdmann [this message]
-- strict thread matches above, loose matches on Subject: below --
2012-06-05 17:30 [gentoo-commits] proj/R_overlay:master commit in: roverlay/depres/ André Erdmann
2012-06-06 19:52 André Erdmann
2012-06-12 17:17 André Erdmann
2012-06-13 7:45 André Erdmann
2012-06-13 7:45 André Erdmann
2012-06-13 16:34 André Erdmann
2012-06-20 19:03 André Erdmann
2012-06-27 14:46 André Erdmann
2012-06-28 13:29 André Erdmann
2012-06-28 13:29 André Erdmann
2012-06-29 22:48 André Erdmann
2012-06-29 22:48 André Erdmann
2012-07-02 16:52 André Erdmann
2012-07-02 16:52 André Erdmann
2012-07-13 10:44 [gentoo-commits] proj/R_overlay:depres_wip " André Erdmann
2012-07-16 16:15 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2012-07-13 10:44 [gentoo-commits] proj/R_overlay:depres_wip " André Erdmann
2012-07-16 16:15 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2012-07-16 16:15 André Erdmann
2012-07-19 16:53 [gentoo-commits] proj/R_overlay:overlay_wip " André Erdmann
2012-07-30 8:52 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2012-07-30 8:52 [gentoo-commits] proj/R_overlay:overlay_wip " André Erdmann
2012-07-30 8:52 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2012-07-30 15:53 André Erdmann
2012-08-02 15:14 André Erdmann
2013-06-13 16:34 André Erdmann
2013-07-11 8:49 André Erdmann
2013-07-11 16:44 [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-11 16:44 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-07-15 22:31 [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-16 16:36 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-07-16 16:36 André Erdmann
2013-07-17 18:10 [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-17 18:10 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-07-18 19:25 [gentoo-commits] proj/R_overlay:gsoc13/next " André Erdmann
2013-07-23 7:51 ` [gentoo-commits] proj/R_overlay:master " André Erdmann
2013-08-20 21:46 André Erdmann
2013-08-20 21:46 André Erdmann
2013-08-23 13:52 André Erdmann
2013-08-27 15:39 André Erdmann
2013-08-27 15:39 André Erdmann
2013-08-27 15:39 André Erdmann
2013-08-28 9:38 André Erdmann
2013-09-02 13:20 André Erdmann
2013-09-03 8:35 André Erdmann
2014-06-05 22:09 André Erdmann
2014-08-23 19:03 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=1338836671.b878c706058d51594c4d47bf41a637c43b5125b3.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