# HG changeset patch # User Paul Boddie # Date 1532450732 -7200 # Node ID 36d2a24d166bb32fe6114cf87e68e1abd9675455 # Parent 851b65d39f8c387b601371a63bfd44a84a82eab6 Changed the convenience functions for parsing and serialising. diff -r 851b65d39f8c -r 36d2a24d166b convert.py --- a/convert.py Tue Jul 24 18:45:13 2018 +0200 +++ b/convert.py Tue Jul 24 18:45:32 2018 +0200 @@ -1,6 +1,6 @@ #!/usr/bin/env python -from moinformat import all_parsers, get_serialiser, parse, serialise +from moinformat import get_serialiser, parse, serialise from os.path import split import sys @@ -45,7 +45,7 @@ f = open(filename) try: - d = parse(f.read(), all_parsers) + d = parse(f.read()) if tree: print d.prettyprint() else: diff -r 851b65d39f8c -r 36d2a24d166b moinformat/__init__.py --- a/moinformat/__init__.py Tue Jul 24 18:45:13 2018 +0200 +++ b/moinformat/__init__.py Tue Jul 24 18:45:32 2018 +0200 @@ -22,9 +22,21 @@ from moinformat.parsers import parse, parsers as all_parsers from moinformat.serialisers import serialise, serialisers as all_serialisers +def get_parser(name="moin"): + + "Return the parser class supporting the format with the given 'name'." + + return all_parsers[name] + +def make_parser(name="moin"): + + "Return a parser instance for the format with the given 'name'." + + return get_parser(name)(all_parsers) + def get_serialiser(name): - "Return the main serialiser for the format having the given 'name'." + "Return the main serialiser class for the format having the given 'name'." return all_serialisers["%s.moin" % name] diff -r 851b65d39f8c -r 36d2a24d166b moinformat/parsers/__init__.py --- a/moinformat/parsers/__init__.py Tue Jul 24 18:45:13 2018 +0200 +++ b/moinformat/parsers/__init__.py Tue Jul 24 18:45:32 2018 +0200 @@ -3,7 +3,7 @@ """ Moin wiki parsers. -Copyright (C) 2017 Paul Boddie +Copyright (C) 2017, 2018 Paul Boddie This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -20,10 +20,15 @@ """ from moinformat.parsers.manifest import parsers +from moinformat.parsers.moin import MoinParser # Top-level functions. -def parse(s, formats=None): - return parsers["moin"](formats).parse(s) +def parse(s, parser=None): + + "Parse 's' with 'parser' or the Moin format parser if omitted." + + parser = parser or MoinParser(parsers) + return parser.parse(s) # vim: tabstop=4 expandtab shiftwidth=4 diff -r 851b65d39f8c -r 36d2a24d166b tests/test_parser.py --- a/tests/test_parser.py Tue Jul 24 18:45:13 2018 +0200 +++ b/tests/test_parser.py Tue Jul 24 18:45:32 2018 +0200 @@ -12,7 +12,7 @@ if split(parent)[1] == "MoinLight": sys.path.append(parent) -from moinformat import all_parsers, get_serialiser, parse, serialise +from moinformat import get_serialiser, parse, serialise from moinformat.tree.moin import Container from glob import glob @@ -185,7 +185,7 @@ tree_filename = "%s.tree" % filename.rsplit(".", 1)[0] s = readfile(filename) - d = parse(s, all_parsers) + d = parse(s) if exists(tree_filename): ts = readfile(tree_filename)