1.1 --- a/convert.py Tue Jul 24 18:45:13 2018 +0200
1.2 +++ b/convert.py Tue Jul 24 18:45:32 2018 +0200
1.3 @@ -1,6 +1,6 @@
1.4 #!/usr/bin/env python
1.5
1.6 -from moinformat import all_parsers, get_serialiser, parse, serialise
1.7 +from moinformat import get_serialiser, parse, serialise
1.8 from os.path import split
1.9 import sys
1.10
1.11 @@ -45,7 +45,7 @@
1.12
1.13 f = open(filename)
1.14 try:
1.15 - d = parse(f.read(), all_parsers)
1.16 + d = parse(f.read())
1.17 if tree:
1.18 print d.prettyprint()
1.19 else:
2.1 --- a/moinformat/__init__.py Tue Jul 24 18:45:13 2018 +0200
2.2 +++ b/moinformat/__init__.py Tue Jul 24 18:45:32 2018 +0200
2.3 @@ -22,9 +22,21 @@
2.4 from moinformat.parsers import parse, parsers as all_parsers
2.5 from moinformat.serialisers import serialise, serialisers as all_serialisers
2.6
2.7 +def get_parser(name="moin"):
2.8 +
2.9 + "Return the parser class supporting the format with the given 'name'."
2.10 +
2.11 + return all_parsers[name]
2.12 +
2.13 +def make_parser(name="moin"):
2.14 +
2.15 + "Return a parser instance for the format with the given 'name'."
2.16 +
2.17 + return get_parser(name)(all_parsers)
2.18 +
2.19 def get_serialiser(name):
2.20
2.21 - "Return the main serialiser for the format having the given 'name'."
2.22 + "Return the main serialiser class for the format having the given 'name'."
2.23
2.24 return all_serialisers["%s.moin" % name]
2.25
3.1 --- a/moinformat/parsers/__init__.py Tue Jul 24 18:45:13 2018 +0200
3.2 +++ b/moinformat/parsers/__init__.py Tue Jul 24 18:45:32 2018 +0200
3.3 @@ -3,7 +3,7 @@
3.4 """
3.5 Moin wiki parsers.
3.6
3.7 -Copyright (C) 2017 Paul Boddie <paul@boddie.org.uk>
3.8 +Copyright (C) 2017, 2018 Paul Boddie <paul@boddie.org.uk>
3.9
3.10 This program is free software; you can redistribute it and/or modify it under
3.11 the terms of the GNU General Public License as published by the Free Software
3.12 @@ -20,10 +20,15 @@
3.13 """
3.14
3.15 from moinformat.parsers.manifest import parsers
3.16 +from moinformat.parsers.moin import MoinParser
3.17
3.18 # Top-level functions.
3.19
3.20 -def parse(s, formats=None):
3.21 - return parsers["moin"](formats).parse(s)
3.22 +def parse(s, parser=None):
3.23 +
3.24 + "Parse 's' with 'parser' or the Moin format parser if omitted."
3.25 +
3.26 + parser = parser or MoinParser(parsers)
3.27 + return parser.parse(s)
3.28
3.29 # vim: tabstop=4 expandtab shiftwidth=4
4.1 --- a/tests/test_parser.py Tue Jul 24 18:45:13 2018 +0200
4.2 +++ b/tests/test_parser.py Tue Jul 24 18:45:32 2018 +0200
4.3 @@ -12,7 +12,7 @@
4.4 if split(parent)[1] == "MoinLight":
4.5 sys.path.append(parent)
4.6
4.7 -from moinformat import all_parsers, get_serialiser, parse, serialise
4.8 +from moinformat import get_serialiser, parse, serialise
4.9 from moinformat.tree.moin import Container
4.10 from glob import glob
4.11
4.12 @@ -185,7 +185,7 @@
4.13 tree_filename = "%s.tree" % filename.rsplit(".", 1)[0]
4.14
4.15 s = readfile(filename)
4.16 - d = parse(s, all_parsers)
4.17 + d = parse(s)
4.18
4.19 if exists(tree_filename):
4.20 ts = readfile(tree_filename)