8000 Docstring changes · awesome-python/html5lib-python@2224543 · GitHub
[go: up one dir, main page]

Skip to content

Commit 2224543

Browse files
committed
Docstring changes
--HG-- extra : convert_revision : svn%3Aacbfec75-9323-0410-a652-858a13e371e0/trunk%40556
1 parent 0939d37 commit 2224543

File tree

4 files changed

+30
-17
lines changed

4 files changed

+30
-17
lines changed

src/html5parser.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ def __init__(self, strict = False, tree=simpletree.TreeBuilder):
4242
strict - raise an exception when a parse error is encountered
4343
4444
tree - a treebuilder class controlling the type of tree that will be
45-
returned. This class is almost always a subclass of
46-
html5lib.treebuilders._base.TreeBuilder
45+
returned. Built in treebuilders can be accessed through
46+
html5lib.treebuilders.getTreeBuilder(treeType)
4747
"""
4848

4949
# Raise an exception on the first error encountered

src/treebuilders/__init__.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,23 @@
3838
import etree
3939

4040

41-
def getTreebuilder(treeType, implementation=None, **kwargs):
41+
def getTreeBuilder(treeType, implementation=None, **kwargs):
42+
"""Get a TreeBuilder class for various types of tree with built-in support
43+
44+
treeType - the name of the tree type required (case-insensitive). Supported
45+
values are "simpletree", "dom", "etree"
46+
47+
"simpletree" - a built-in DOM-ish tree type with support for some
48+
more pythonic idioms.
49+
"dom" - The xml.dom.minidom DOM implementation
50+
"etree" - A generic builder for tree implementations exposing an
51+
elementtree-like interface (known to work with
52+
ElementTree, cElementTree and lxml.etree).
53+
54+
implementation - (Currently applies to the "etree" tree type only). A module
55+
implementing the tree type e.g. xml.etree.ElementTree or
56+
lxml.etree."""
57+
4258
treeType = treeType.lower()
4359
if treeType in ("dom", "simpletree"):
4460
return globals()[treeType].TreeBuilder

src/treebuilders/etree.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
import _base
22
import new
33

4+
moduleCache = {}
5+
46
def getETreeModule(ElementTreeImplementation, fullTree=False):
5-
mod = new.module("_" + ElementTreeImplementation.__name__+"builder")
6-
objs = getETreeBuilder(ElementTreeImplementation, fullTree)
7-
mod.__dict__.update(objs)
8-
return mod
7+
name = "_" + ElementTreeImplementation.__name__+"builder"
8+
if name in moduleCache:
9+
return moduleCache[name]
10+
else:
11+
mod = new.module("_" + ElementTreeImplementation.__name__+"builder")
12+
objs = getETreeBuilder(ElementTreeImplementation, fullTree)
13+
mod.__dict__.update(objs)
14+
moduleCache[name] = mod
15+
return mod
916

1017
def getETreeBuilder(ElementTreeImplementation, fullTree=False):
1118
ElementTree = ElementTreeImplementation

src/treebuilders/etreefull.py

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)
0