Changeset 69:843a49ed896c in livinglogic.python.pycoco for src/pycoco/__init__.py

Show
Ignore:
Timestamp:
05/07/09 19:39:45 (10 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
default
Message:

Port template to UL4.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/pycoco/__init__.py

    r68 r69  
    66import sys, os, datetime, urllib, optparse, contextlib 
    77 
    8 from ll import sisyphus, url 
     8from ll import sisyphus, url, ul4c 
    99 
    1010from pycoco import xmlns 
     
    160160        # Generate main page 
    161161        self.logProgress("### generating index page") 
    162         e = xmlns.page( 
    163             xmlns.filelist( 
    164                 ( 
    165                     xmlns.fileitem( 
    166                         name=file.name.split("/", 1)[-1], 
    167                         lines=len(file.lines), 
    168                         coverablelines=sum(line[0]>=0 for line in file.lines), 
    169                         coveredlines=sum(line[0]>0 for line in file.lines), 
    170                     ) 
    171                     for file in files 
    172                 ), 
    173                 timestamp=("Repository timestamp ", self.timestamp.strftime("%Y-%m-%d %H:%M:%S")), 
    174                 revision=self.revision, 
    175             ), 
    176             title=("Python code coverage (", self.timestamp.strftime("%Y-%m-%d"), ")"), 
    177             crumbs=( 
    178                 xmlns.crumb("Core Development", href="http://www.python.org/dev/", first=True), 
    179                 xmlns.crumb("Code coverage"), 
    180             ), 
    181             onload="files_prepare()", 
     162        template = ul4c.compile(xmlns.page(xmlns.filelist(), onload="files_prepare()").conv().string()) 
     163        s = template.renders( 
     164            filename=None, 
     165            now=datetime.datetime.now(), 
     166            timestamp=self.timestamp, 
     167            revision=self.revision, 
     168            crumbs=[ 
     169                dict(title="Core Development", href="http://www.python.org/dev/"), 
     170                dict(title="Code coverage", href=None), 
     171            ], 
     172            files=[ 
     173                dict( 
     174                    name=file.name.split("/", 1)[-1], 
     175                    lines=len(file.lines), 
     176                    coverablelines=sum(line[0]>=0 for line in file.lines), 
     177                    coveredlines=sum(line[0]>0 for line in file.lines), 
     178                ) for file in files 
     179            ], 
    182180        ) 
    183         e = e.conv() 
    184181        u = self.outputdir/"index.html" 
    185         e.write(u.openwrite(), base="root:index.html", encoding="utf-8") 
     182        with contextlib.closing(u.openwrite()) as f: 
     183            f.write(s.encode("utf-8")) 
    186184 
    187185        # Generate page for each source file 
     186        template = ul4c.compile(xmlns.page(xmlns.filecontent()).conv().string()) 
    188187        for (i, file) in enumerate(files): 
    189188            filename = file.name.split("/", 1)[-1] 
    190189            self.logProgress("### generating HTML %d/%d for %s" % (i+1, len(files), filename)) 
    191             e = xmlns.page( 
    192                 xmlns.filecontent(name=filename)( 
    193                     xmlns.fileline( 
    194                         content.decode("latin-1").expandtabs(8), 
    195                         lineno=i+1, 
    196                         count=count, 
    197                     ) 
    198                     for (i, (count, content)) in enumerate(file.lines) 
    199                 ), 
    200                 title=("Python code coverage: ", filename), 
    201                 crumbs=( 
    202                     xmlns.crumb("Core Development", href="http://www.python.org/dev/", first=True), 
    203                     xmlns.crumb("Code coverage", href="root:index.html"), 
    204                     xmlns.crumb(filename), 
     190            s = template.renders( 
     191                filename=filename, 
     192                crumbs=[ 
     193                    dict(title="Core Development", href="http://www.python.org/dev/"), 
     194                    dict(title="Code coverage", href="/index.html"), 
     195                    dict(title=filename, href=None), 
     196                ], 
     197                lines=( 
     198                    dict(count=count, content=content.decode("latin-1").expandtabs(8)) for (count, content) in file.lines 
    205199                ), 
    206200            ) 
    207             e = e.conv() 
    208201            u = self.outputdir/(filename + ".html") 
    209202            with contextlib.closing(u.openwrite()) as f: 
    210                 e.write(f, base="root:%s.html" % filename, encoding="utf-8") 
     203                f.write(s.encode("utf-8")) 
    211204 
    212205        # Copy CSS/JS files