Changes for 2.3 Release

Steven F. Lott
  • Changed to Python 3.3 -- Fixed except, raise and %.

  • Removed doWrite() and simplified doOpen() and doClose().

  • Cleaned up RST output to be much nicer.

  • Change the baseline pyweb.w file to be RST instead of HTML.
    docutils required to produce HTML from the woven output.

  • Removed the unconstrained eval() function. Provided a slim set of globals.
    os is really just os.path.
    Any os.getcwd() can be changed to os.path.realpath('.').
    time was removed and replaced with datetime.
    Any time.asctime() must be datetime.datetime.now().ctime().

  • Resolved a small dispute between weaveReferenceTo() (wrong) and tangle() (right).
    for NamedChunks. The issue was one of failure to understand the differences
    between weaving -- where indentation is localized -- and tangling -- where indentation
    must be tracked globally. Root cause was a huge problem in codeBlock() which didn't
    really weave properly at all.

  • Fix the tokenizer and parsing. Stop using a complex tokenizer and use a simpler
    iterator over the tokens with StopIteration exception handling.

  • Replace optparse with argparse.

  • Get rid of the global logger variable.

  • Remove the filename as part of Web() initial creation.
    A basename comes from the initial .w file loaded by the WebReader.

  • Fix the Action class hierarchy so that composite actions are simpler.

  • Change references to return Chunk objects, not (name,sequence) pairs.

  • Make the ref list separator in Weaver reference summary... a proper template
    feature, not a hidden punctuation mark in the code.

  • Configure Web.reference_style properly so that simple or transitive references
    can be included as a command-line option. The default is Simple.
    Add the -r option so that -rt includes transitive references.

  • Reduce the "hard-coded" punctuation. For example, the ", " in
    @@d Web weave... weaveChunk(). This was moved into a template.

  • Add an __enter__() and __exit__() to make an Emitter
    into a proper Context Manager that can be used with a with statement.

  • Add the -n option to include tangler line numbers if the @@o includes
    the comment characters.

  • Cleanup the TanglerMake unit tests to remove the sleep()
    used to assure that the timestamps really are different.

  • Cleanup the syntax for adding a comment template to @@o. Use -start and -end
    before the filename.

  • Cleanup the syntax for noindent named chunks. Use -noindent before the chunk name.
    This creates a distinct NamedChunk_Noindent instance that handles indentation
    differently from other Chunk subclasses.

  • Cleanup the TangleAction summary.


Related

Wiki: Home