From abbaff435a587ba18fe14b973f042dd883c2be23 Mon Sep 17 00:00:00 2001 From: Sean Finney Date: Tue, 24 Jun 2008 20:46:42 +0200 Subject: remove Writers, move to templates to Templates --- TODO | 2 +- pagehandler.py | 2 +- patchtracker/Templates.py | 61 ++++++++++++++++++++++++++++++ patchtracker/Writers.py | 94 ----------------------------------------------- 4 files changed, 63 insertions(+), 96 deletions(-) create mode 100755 patchtracker/Templates.py delete mode 100755 patchtracker/Writers.py diff --git a/TODO b/TODO index 0e8e592..24353a6 100644 --- a/TODO +++ b/TODO @@ -14,7 +14,7 @@ code cleanup from really ugly stuff (look for XXX) dead code removal/cleanup after switching a few design decisions, there's some code that's no longer - used or should be renamed/moved (i.e. writers/templates) + used or should be removed == medium-range TODO == diff --git a/pagehandler.py b/pagehandler.py index 48d6cb4..e6267ed 100755 --- a/pagehandler.py +++ b/pagehandler.py @@ -5,7 +5,7 @@ import cgi import os import sys import patchtracker.Conf as Conf -from patchtracker.Writers import ErrorTemplate, PatchTemplate, PackageVersTemplate, LetterTocTemplate, FrontPageTemplate +from patchtracker.Templates import ErrorTemplate, PatchTemplate, PackageVersTemplate, LetterTocTemplate, FrontPageTemplate from patchtracker.DiffGzHandler import DiffGzHandler import patchtracker.DB as DB from patchtracker.DB import PatchTrackerDB diff --git a/patchtracker/Templates.py b/patchtracker/Templates.py new file mode 100755 index 0000000..d8657c1 --- /dev/null +++ b/patchtracker/Templates.py @@ -0,0 +1,61 @@ +from patchtracker import Conf +from patchtracker.DiffGzHandler import DiffGzHandler + +from Cheetah.Template import Template +from Cheetah.Compiler import Compiler +import os +import errno + +class OurTemplate(Template): + def __init__(self, file, searchList=None): + ourSearchList={"conf":Conf} + if searchList: + for k,v in searchList.iteritems(): + ourSearchList[k]=v + Template.__init__(self, file=file, searchList=ourSearchList) + + +class PackageVersTemplate(OurTemplate): + def __init__(self, srcpkg, suite): + self.src = srcpkg + self.suite = suite + tpl=os.sep.join([Conf.template_dir, "package_vers.tmpl"]) + sl = {} + if srcpkg.diffgz_name: + dfile = os.sep.join([Conf.archive_root,srcpkg.loc,srcpkg.diffgz_name]) + sl['diffhandler'] = DiffGzHandler(dfile) + else: + sl['diffhandler'] = None + OurTemplate.__init__(self, file=tpl, searchList=sl) + +class FrontPageTemplate(OurTemplate): + def __init__(self, allindex): + tpl = os.sep.join([Conf.template_dir, "frontpage.tmpl"]) + OurTemplate.__init__(self, file=tpl) + self.allindex = allindex + +class LetterTocTemplate(OurTemplate): + def __init__(self, letter, collection): + self.pkgs = collection + self.idx = letter + self.dists = {} + for name,packagelist in collection.iteritems(): + for d in packagelist.iterkeys(): + self.dists[d] = True + tpl = os.sep.join([Conf.template_dir, "letter_toc.tmpl"]) + OurTemplate.__init__(self, file=tpl) + + def releases(self): + return dists + +class ErrorTemplate(OurTemplate): + def __init__(self, msg): + tpl = os.sep.join([Conf.template_dir, "cgi_error.tmpl"]) + OurTemplate.__init__(self, file=tpl, searchList={'error':msg}) + +class PatchTemplate(OurTemplate): + def __init__(self, pkg=None, vers=None, name=None, patch=None): + tpl = os.sep.join([Conf.template_dir, "patch_view.tmpl"]) + sl = {'package':pkg, 'version':vers, 'name':name, 'patch':patch} + OurTemplate.__init__(self, file=tpl, searchList=sl) + diff --git a/patchtracker/Writers.py b/patchtracker/Writers.py deleted file mode 100755 index c3b59aa..0000000 --- a/patchtracker/Writers.py +++ /dev/null @@ -1,94 +0,0 @@ -from patchtracker import Conf -from patchtracker.DiffGzHandler import DiffGzHandler - -from Cheetah.Template import Template -from Cheetah.Compiler import Compiler -import os -import errno - -class OurTemplate(Template): - def __init__(self, file, searchList=None): - ourSearchList={"conf":Conf} - if searchList: - for k,v in searchList.iteritems(): - ourSearchList[k]=v - Template.__init__(self, file=file, searchList=ourSearchList) - -class PackageVersTemplate(OurTemplate): - src = None - suite = None - - def __init__(self, srcpkg, suite): - self.src = srcpkg - self.suite = suite - tpl=os.sep.join([Conf.template_dir, "package_vers.tmpl"]) - sl = {} - if srcpkg.diffgz_name: - dfile = os.sep.join([Conf.archive_root,srcpkg.loc,srcpkg.diffgz_name]) - sl['diffhandler'] = DiffGzHandler(dfile) - else: - sl['diffhandler'] = None - OurTemplate.__init__(self, file=tpl, searchList=sl) - -class FrontPageTemplate(OurTemplate): - allindex = None - relindices = [] - - def __init__(self, allindex): - tpl = os.sep.join([Conf.template_dir, "frontpage.tmpl"]) - OurTemplate.__init__(self, file=tpl) - self.allindex = allindex - -class LetterTocTemplate(OurTemplate): - def __init__(self, letter, collection): - self.pkgs = collection - self.idx = letter - self.dists = {} - for name,packagelist in collection.iteritems(): - for d in packagelist.iterkeys(): - self.dists[d] = True - tpl = os.sep.join([Conf.template_dir, "letter_toc.tmpl"]) - OurTemplate.__init__(self, file=tpl) - - def releases(self): - return dists - -class ErrorTemplate(OurTemplate): - def __init__(self, msg): - tpl = os.sep.join([Conf.template_dir, "cgi_error.tmpl"]) - OurTemplate.__init__(self, file=tpl, searchList={'error':msg}) - -class PatchTemplate(OurTemplate): - def __init__(self, pkg=None, vers=None, name=None, patch=None): - tpl = os.sep.join([Conf.template_dir, "patch_view.tmpl"]) - sl = {'package':pkg, 'version':vers, 'name':name, 'patch':patch} - OurTemplate.__init__(self, file=tpl, searchList=sl) - -class PageWriter: - def __init__(self, filename, template): - try: - os.makedirs(os.path.dirname(filename)) - except OSError, e: - if e.errno != errno.EEXIST: - raise e - o = file(filename, "w") - o.write(str(template)) - o.close() - -class PackageVersWriter(PageWriter): - def __init__(self, srcpkg, suite): - t = PackageVersTemplate(srcpkg,suite) - dstdir = os.sep.join([Conf.output_dir, "package", t.src.name, t.src.version]) - try: - os.makedirs(dstdir) - except OSError, e: - if e.errno != errno.EEXIST: - raise e - dst = os.sep.join([dstdir, "index.html"]) - PageWriter.__init__(self, dst, t) - -class FrontPageWriter(PageWriter): - def __init__(self, allindex, release_indices=[]): - t = FrontPageTemplate(allindex, release_indices) - dest = os.sep.join([Conf.output_dir, "index.html"]) - PageWriter.__init__(self, dest, t) -- cgit v1.2.3