gzz-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gzz-commits] navidoc ./rst2any.py navidoc/__init__.py navido...


From: Asko Soukka
Subject: [Gzz-commits] navidoc ./rst2any.py navidoc/__init__.py navido...
Date: Mon, 31 Mar 2003 10:24:20 -0500

CVSROOT:        /cvsroot/navidoc
Module name:    navidoc
Changes by:     Asko Soukka <address@hidden>    03/03/31 10:24:19

Modified files:
        .              : rst2any.py 
        navidoc        : __init__.py parser.py 
        navidoc/directives: pegboard.py 
        navidoc/mp     : __init__.py uml.py 
        navidoc/utils  : parser.py 

Log message:
        building

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/navidoc/navidoc/rst2any.py.diff?tr1=1.16&tr2=1.17&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/navidoc/navidoc/navidoc/__init__.py.diff?tr1=1.9&tr2=1.10&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/navidoc/navidoc/navidoc/parser.py.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/navidoc/navidoc/navidoc/directives/pegboard.py.diff?tr1=1.10&tr2=1.11&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/navidoc/navidoc/navidoc/mp/__init__.py.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/navidoc/navidoc/navidoc/mp/uml.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/navidoc/navidoc/navidoc/utils/parser.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text

Patches:
Index: navidoc/navidoc/__init__.py
diff -u navidoc/navidoc/__init__.py:1.9 navidoc/navidoc/__init__.py:1.10
--- navidoc/navidoc/__init__.py:1.9     Fri Mar 28 08:08:57 2003
+++ navidoc/navidoc/__init__.py Mon Mar 31 10:24:19 2003
@@ -19,7 +19,7 @@
 # MA  02111-1307  USA
 # 
 
-#$Id: __init__.py,v 1.9 2003/03/28 13:08:57 humppake Exp $
+#$Id: __init__.py,v 1.10 2003/03/31 15:24:19 humppake Exp $
 
 #
 # Written by Asko Soukka
@@ -72,27 +72,27 @@
 
 class Element:
     """
-cd     The general element for all subelements.
+    The general element for all subelements.
     """
-    def __init__(self, list):
-        self.list = list
+    list = None
+    linkpackage = None
 
 class NamedElement (Element):
     """
     Element with name and linking features.
     """
     def do_contents(self, list):
+        dbg_parser = config.dbg.shorthand('parser')
+
        for el in list:
            self.handle_contained(el)
-       dbg("Link: "+self.link)
+       dbg_parser("Link: "+self.link)
     def handle_contained(self, el):
-       if link_types.has_key(el[0]):
+       if self.list.link_factor.is_type(el[0]):
            link = el[1:]
            if len(link):
-                self.link = link_types[el[0]](link[0][0])
+                self.link = self.list.link_factor.create_new(el[0], link[0][0])
            else:
-               self.link = self.defaultlink(link[0][0])
+                self.link = self.list.link_factor.create_new('link', 
link[0][0])
        else:
             self.list.add_sub_element(self.name, el)
-    def defaultlink(self, link):
-        return link.Link(link)
Index: navidoc/navidoc/directives/pegboard.py
diff -u navidoc/navidoc/directives/pegboard.py:1.10 
navidoc/navidoc/directives/pegboard.py:1.11
--- navidoc/navidoc/directives/pegboard.py:1.10 Fri Mar 28 08:08:57 2003
+++ navidoc/navidoc/directives/pegboard.py      Mon Mar 31 10:24:19 2003
@@ -19,7 +19,7 @@
 # MA  02111-1307  USA
 # 
 
-# $Id: pegboard.py,v 1.10 2003/03/28 13:08:57 humppake Exp $
+# $Id: pegboard.py,v 1.11 2003/03/31 15:24:19 humppake Exp $
 
 #
 # Written by Benja Fallensten, Vesa Kaihlavirta, Asko Soukka
@@ -115,7 +115,7 @@
     init_working_directory = config.working_directory
 
     for pegdir in pegdirs:
-        dbg('processing PEG ' + pegdir)
+        dbg('Processing PEG ' + pegdir)
         config.working_directory = slashify(init_working_directory)+pegdir
         
         peg = {'authors': [], 'status': config.pegboard_undefined, 'topic': 
pegdir,
Index: navidoc/navidoc/mp/__init__.py
diff -u navidoc/navidoc/mp/__init__.py:1.6 navidoc/navidoc/mp/__init__.py:1.7
--- navidoc/navidoc/mp/__init__.py:1.6  Fri Mar 28 08:08:57 2003
+++ navidoc/navidoc/mp/__init__.py      Mon Mar 31 10:24:19 2003
@@ -19,7 +19,7 @@
 # MA  02111-1307  USA
 # 
 
-# $Id: __init__.py,v 1.6 2003/03/28 13:08:57 humppake Exp $
+# $Id: __init__.py,v 1.7 2003/03/31 15:24:19 humppake Exp $
 
 #
 # Written by Tuomas Lukka, Asko Soukka
@@ -45,7 +45,7 @@
         else: return 'showfocus("'+target+'", '+title+', ('+box+'));'
 navidoc.link.Link.draw_code = link_draw_code
 
-class MetaPostElement(navidoc.parser.NamedElement):
+class MetapostElement(navidoc.NamedElement):
     def repl(self, s):
        s = s.replace("%%", self.var)
        s = s.replace("%name%", self.name)
@@ -58,7 +58,7 @@
            """
        return self.repl(s)
 
-class SimpleElement(MetaPostElement):
+class SimpleElement(MetapostElement):
     def __init__(self, var, s, list):
        dbg("Simple element: %s %s %s" % (self, s, list))
        self.var = var or s
@@ -157,8 +157,8 @@
     PostScriptBoundingBox.
     """
     def __init__(self, els):
-       self.x=(roundDown(els[0]), roundUp(els[2]))
-       self.y=(roundUp(els[1]), roundDown(els[3]))
+       self.x=(round_down(els[0]), round_up(els[2]))
+       self.y=(round_up(els[1]), round_down(els[3]))
        self.scale = 1 # 1 point = 1 pixel
        self.w = self.scale*(self.x[1]-self.x[0])
        self.h = self.scale*(self.y[0]-self.y[1])
@@ -204,11 +204,12 @@
 
 class MetapostException(Exception):
     def __init__(self, value):
+        Exception.__init__(self)
         self.value = value
     def __str__(self):
         return self.value
 
-def roundDown(x):
+def round_down(x):
     return int(float(x) - 5)
-def roundUp(x):
+def round_up(x):
     return int(float(x) + 5)
Index: navidoc/navidoc/mp/uml.py
diff -u navidoc/navidoc/mp/uml.py:1.3 navidoc/navidoc/mp/uml.py:1.4
--- navidoc/navidoc/mp/uml.py:1.3       Fri Mar 28 08:08:57 2003
+++ navidoc/navidoc/mp/uml.py   Mon Mar 31 10:24:19 2003
@@ -19,7 +19,7 @@
 # MA  02111-1307  USA
 # 
 
-# $Id: uml.py,v 1.3 2003/03/28 13:08:57 humppake Exp $
+# $Id: uml.py,v 1.4 2003/03/31 15:24:19 humppake Exp $
 
 #
 # Written by Tuomas Lukka, Asko Soukka
@@ -31,11 +31,18 @@
 
 import re
 
-from navidoc.parser import *
+from navidoc.utils.parser import *
 
 dbg = config.dbg.shorthand('uml')
 
-class mpsequence(Element):
+class UMLException(Exception):
+    def __init__(self, value):
+        Exception.__init__(self)
+        self.value = value
+    def __str__(self):
+        return self.value
+
+class mpsequence(navidoc.Element):
     key = 'sequence'
     
     def getVarForY(self, before, after):
@@ -142,7 +149,7 @@
            elif s == "return":
                pass
            else:
-               raise umlException("Must have call or return, not '"+s+"'")
+               raise UMLException("Must have call or return, not '"+s+"'")
        return l
     def setup_code(self):
        return self.repl(
@@ -167,7 +174,7 @@
        s = s.replace("%%", self.var)
        return s
 
-class mpclass(MetaPostElement):
+class mpclass(navidoc.mp.MetapostElement):
     key = 'class'
     def __init__(self, var, s, list):
        dbg("mpclass: %s %s" % (s,list))
@@ -188,7 +195,7 @@
        elif el[0] == "fields":
            self.fields = el[1:]
        else:
-           MetaPostElement.handle_contained(self, el)
+           navidoc.mp.MetapostElement.handle_contained(self, el)
     def defaultlink(self):
        if self.linkpackage != None and "." not in self.name:
            return self.linkpackage + "." + self.name
@@ -234,7 +241,7 @@
            """ 
        return self.repl(s)
 
-class mppackage(MetaPostElement):
+class mppackage(navidoc.mp.MetapostElement):
     key = 'package'
     def __init__(self, var, s, list):
        dbg("mppackage: %s %s" % (s,l))
@@ -256,7 +263,7 @@
            """ 
        return self.repl(s)
 
-class mptitle(MetaPostElement):
+class mptitle(navidoc.mp.MetapostElement):
     key = 'title'
     def __init__(self, var, s, l = []):
        dbg("mp: %s %s" % (s,l))
@@ -277,7 +284,7 @@
        return self.repl(s)
 
 # XXX underlining
-class mpseqobject(SimpleElement):
+class mpseqobject(navidoc.mp.SimpleElement):
     key = 'seqobject'
     def setup_code(self):
        s = """
@@ -301,7 +308,7 @@
            """
        return self.repl(s)
 
-class mpcomponent(SimpleElement):
+class mpcomponent(navidoc.mp.SimpleElement):
     key = 'component'
     def setup_code(self):
        s = """
@@ -314,7 +321,7 @@
            """
        return self.repl(s)
 
-class mpinterface(SimpleElement):
+class mpinterface(navidoc.mp.SimpleElement):
     key = 'interface'
     def setup_code(self):
        s = """
@@ -337,7 +344,7 @@
        """
        return self.repl(s)
 
-class mpnary(SimpleElement):
+class mpnary(navidoc.mp.SimpleElement):
     key = 'naryassoc'
     def setup_code(self):
        s = """
@@ -352,7 +359,7 @@
        """
        return self.repl(s)
 
-class mpbigpackage(SimpleElement):
+class mpbigpackage(navidoc.mp.SimpleElement):
     key = 'bigpackage'
     def setup_code(self):
        s = """
@@ -375,7 +382,7 @@
             drawmeasuredpic(%%.titl);"""
        return self.repl(s)
 
-class mpqual(MetaPostElement):
+class mpqual(navidoc.mp.MetapostElement):
     key = 'qual'
     def __init__(self, var, s , list):
        self.var = var
@@ -386,7 +393,7 @@
        if el[0] == "fields":
            self.fields = el[1:]
        else:
-           MetaPostElement.handle_contained(self, el)
+           navidoc.mp.MetapostElement.handle_contained(self, el)
     def setup_code(self):
        s = """
            picture %%.pict;
@@ -398,9 +405,9 @@
            [ '"'+m[0]+'"' for m in self.fields ] ))
        return self.repl(s)
 
-class mpassoc(MetaPostElement):
+class mpassoc(navidoc.mp.MetapostElement):
     key = 'assoc'
-    class end(MetaPostElement):
+    class end(navidoc.mp.MetapostElement):
        def __init__(self, var, list):
            self.var = var
            self.name = ""
@@ -423,7 +430,7 @@
                    if mat:
                        self.role = mat.group(1)
                        continue
-                   raise umlException("Invalid assoc adorn "+el)
+                   raise UMLException("Invalid assoc adorn "+el)
        def setup_code(self):
            s = """
                picture %%.multi, %%.role;
@@ -491,14 +498,14 @@
        self.b.type = "vobinto"
 
 
-class SimpleRelation(MetaPostElement):
+class SimpleRelation(navidoc.mp.MetapostElement):
     def __init__(self, var, s , list):
        self.var = var or random_var()
        self.name = ""
        ends = s.split()
         #assert len(ends) == 2
         if len(ends) != 2:
-            raise umlException("len(ends) != 2")
+            raise UMLException("len(ends) != 2")
        self.start = ends[0]
        self.end = ends[1]
     def setup_code(self):
@@ -551,7 +558,7 @@
     def draw_code(self):
        return self.pathCode() + self.repl(" vobsubmatch(%%.p); ")
 
-class placement(MetaPostElement):
+class placement(navidoc.mp.MetapostElement):
     def __init__(self, var, s , list):
        self.var = var or random_var()
        self.name = ""
@@ -577,7 +584,7 @@
         return self.repl(' horizontally(%s, %s, %s, %s);' %
                          (self.length, self.var, self.start, self.end))
 
-class leftOf(placement):
+class rightOf(placement):
     key = 'right-of'
     def setup_code(self):
         return self.repl(' horizontally(%s, %s, %s, %s);' %
Index: navidoc/navidoc/parser.py
diff -u navidoc/navidoc/parser.py:1.6 navidoc/navidoc/parser.py:1.7
--- navidoc/navidoc/parser.py:1.6       Fri Mar 28 08:08:57 2003
+++ navidoc/navidoc/parser.py   Mon Mar 31 10:24:19 2003
@@ -19,7 +19,7 @@
 # MA  02111-1307  USA
 # 
 
-# $Id: parser.py,v 1.6 2003/03/28 13:08:57 humppake Exp $
+# $Id: parser.py,v 1.7 2003/03/31 15:24:19 humppake Exp $
 
 #
 # Written by Tuomas Lukka, Asko Soukka
@@ -34,43 +34,53 @@
 
 dbg = config.dbg.shorthand('parser')
 
-class ElementFactor:
+class Factor:
+    """
+    Gather available linktypes from modules.
+    """
+
+    types = {}
 
-    element_types = {}
-    link_types = {}
+    def __init__(self, element_list, module_paths, top_class):
+        self.types.clear()
+        self.element_list = element_list
+        for module_path in module_paths:
+            dbg ("Checking  module: "+str(module_path))
+            self.types.update(keys_for_classes(module_path, top_class))
+            for module in dir(module_path):
+                module = getattr(module_path, module)
+                if type(module) == type(navidoc):
+                    dbg ("Checking  module: "+str(module))
+                    self.types.update(keys_for_classes(module, top_class))
+        dbg("Collected: "+str(self.types))
 
-    def __init__(self):
+    def is_type(self, key): return self.types.has_key(key)
+        
+    def get_type(self, key):
         """
-        Gather available elements and linktypes from modules.
+        Return an element type class reference for key.
         """
-        #XXX: Fix key-name conflicts
-        element_types.update(keys4classes(navidoc.mp))
-        for module in dir(navidoc.mp):
-            module = getattr(navidoc.mp, module)
-            if type(module) == type(navidoc.parser):
-                print module
-                element_types.update(keys4classes(module))
-
-        #    link_types.update(keys4classes(navidoc.link))
-        #    for module in dir(navidoc.link):
-        #        module = getattr(navidoc.link, module)
-        #        link_types.update(keys4classes(module))
-
-        def keys4classes(self.module):
-            """
-            Gather a key -> class dictionary for all classes containing
-            'key' in sub modules under root module.
-            """
-            d = {}
-            for element in dir(module):
-                element = getattr(module, element)
-                if type(element) == type(Element) \
-                       and issubclass(element, Element):
-                    print element
-                    if hasattr(element, "key") \
-                           and type(element.key) == type(''):
-                        d[element.key] = element
-            return d
+        if self.types.has_key(key):
+            dbg("Internal: "+self.types[key])
+            return self.types[key]
+       else: raise ParserException("Unknown element key: "+key)
+
+class LinkFactor(Factor):
+    """
+    """
+    def create_new(self, key, target):
+        type = self.get_type(key)
+        new = type(target)
+        return new
+
+class ElementFactor(Factor):
+    """
+    """
+    def create_new(self, key, var, s, list):
+        type = self.get_type(key)
+        new = type(var, s, list)
+        new.list = self.element_list
+        return new
 
 class ElementList:
     """
@@ -81,6 +91,8 @@
         """
         Initializes ElementList by parsing all elements in list.
         """
+        self.element_factor = ElementFactor(self, [mp], navidoc.Element)
+        self.link_factor = LinkFactor(self, [link], link.Link)
         self.linkpackage = None
        self.extras = []
        self.list = [self.parse_element(element) for element in list]
@@ -93,10 +105,7 @@
        s = element[0]
        (w,s) = match_remove("^\s*(\w+)\s*", s)
        key = w.group(1)
-       type = self.get_type(key)
-       dbg("Internal: "+type)
-       element = type(None, super_name + " " + s, element[1:])
-        element.list = self
+       element = self.element_factor.create_new(key, None, super_name + " " + 
s, element[1:])
        self.extras.append(element)
 
     def parse_element(self, element):
@@ -112,19 +121,10 @@
        if key == "linkpackage": 
            self.linkpackage = s
            return None
-       type = self.get_type(key)
-       dbg("Type: "+type)
-        element = type(name, s, element[1:])
-        element.list = self
+        dbg('Creating %s %s %s %s.' % (key, name, s, element[1:]))
+        element = self.element_factor.create_new(key, name, s, element[1:])
         return element
 
-    def get_type(self, key):
-        """
-        Return an element type class reference for key.
-        """
-        if element_types.haskey(key): return element_types[key]
-       else: raise ParserException("Unknown element key: "+key)
-
     def setup_code(self):
        "Return the code to set up the objects for user geometry code"
        return "\n".join([element.setup_code() for element in self.list]) + "\n"
@@ -136,7 +136,7 @@
 
 class ParserException(Exception):
     def __init__(self, value):
-        Exception.__init__()
+        Exception.__init__(self)
         self.value = value
     def __str__(self):
         return self.value
Index: navidoc/navidoc/utils/parser.py
diff -u navidoc/navidoc/utils/parser.py:1.1 navidoc/navidoc/utils/parser.py:1.2
--- navidoc/navidoc/utils/parser.py:1.1 Mon Mar 31 04:32:00 2003
+++ navidoc/navidoc/utils/parser.py     Mon Mar 31 10:24:19 2003
@@ -19,7 +19,7 @@
 # MA  02111-1307  USA
 # 
 
-# $Id: parser.py,v 1.1 2003/03/31 09:32:00 humppake Exp $
+# $Id: parser.py,v 1.2 2003/03/31 15:24:19 humppake Exp $
 
 #
 # Written by Tuomas Lukka, Asko Soukka
@@ -28,6 +28,7 @@
 __docformat__ = 'reStructuredText'
 
 import re, random, string
+import navidoc
 
 def match_remove(p, s):
     """
@@ -85,7 +86,7 @@
            stack.append(new)
     return stack[0][1]
 
-def keys_for_classes(module):
+def keys_for_classes(module, top_class):
     """
     Gather a key -> class dictionary for all classes containing
     'key' in the given module.
@@ -93,9 +94,8 @@
     d = {}
     for element in dir(module):
         element = getattr(module, element)
-        if type(element) == type(Element) \
-                       and issubclass(element, Element):
-            print element
+        if type(element) == type(top_class) \
+                       and issubclass(element, top_class):
             if hasattr(element, "key") \
                    and type(element.key) == type(''):
                 d[element.key] = element
Index: navidoc/rst2any.py
diff -u navidoc/rst2any.py:1.16 navidoc/rst2any.py:1.17
--- navidoc/rst2any.py:1.16     Fri Mar 28 08:08:57 2003
+++ navidoc/rst2any.py  Mon Mar 31 10:24:19 2003
@@ -21,7 +21,7 @@
 # MA  02111-1307  USA
 # 
 
-#$Id: rst2any.py,v 1.16 2003/03/28 13:08:57 humppake Exp $
+#$Id: rst2any.py,v 1.17 2003/03/31 15:24:19 humppake Exp $
 
 #
 # Written by Asko Soukka
@@ -39,6 +39,8 @@
 import navidoc.modules
 
 from navidoc.utils.path import *
+
+import navidoc.mp.uml
 
 """
 The main frontend for running Navidoc.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]