From af666bba164d7a70a140b4898adcb301b3367b98 Mon Sep 17 00:00:00 2001 From: Ben Kurtovic Date: Mon, 11 Jan 2016 18:05:42 -0500 Subject: [PATCH] Properly read from file-like objects when passed to parse_anything() (#137) --- CHANGELOG | 1 + docs/changelog.rst | 2 ++ mwparserfromhell/utils.py | 2 ++ 3 files changed, 5 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 976f520..0fcee14 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -3,6 +3,7 @@ v0.5 (unreleased): - Fixed parsing bugs involving: - wikitables nested in templates; - wikitable error recovery when unable to recurse. +- Fixed parsing file-like objects. v0.4.3 (released October 29, 2015): diff --git a/docs/changelog.rst b/docs/changelog.rst index 5b4a909..66312d4 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -12,6 +12,8 @@ Unreleased - wikitables nested in templates; - wikitable error recovery when unable to recurse. +- Fixed parsing file-like objects. + v0.4.3 ------ diff --git a/mwparserfromhell/utils.py b/mwparserfromhell/utils.py index 28823fc..0c1f718 100644 --- a/mwparserfromhell/utils.py +++ b/mwparserfromhell/utils.py @@ -62,6 +62,8 @@ def parse_anything(value, context=0, skip_style_tags=False): return Parser().parse(str(value), context, skip_style_tags) elif value is None: return Wikicode(SmartList()) + elif hasattr(value, "read"): + return parse_anything(value.read(), context, skip_style_tags) try: nodelist = SmartList() for item in value: