From 924fff7c85a7f4fa5ce9982011817ba1c6c33f76 Mon Sep 17 00:00:00 2001 From: Toshio Kuratomi Date: Fri, 26 Feb 2016 16:42:18 -0800 Subject: [PATCH] Use io.StringIO and io.BytesIO instead of StringIO.StringIO for compat with py3 --- lib/ansible/module_utils/facts.py | 7 ++++++- lib/ansible/module_utils/shell.py | 6 +++++- lib/ansible/plugins/lookup/ini.py | 6 +++--- lib/ansible/template/__init__.py | 3 ++- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/lib/ansible/module_utils/facts.py b/lib/ansible/module_utils/facts.py index aec54a7c785..0757a662183 100644 --- a/lib/ansible/module_utils/facts.py +++ b/lib/ansible/module_utils/facts.py @@ -34,7 +34,12 @@ import datetime import getpass import pwd import ConfigParser -import StringIO + +# py2 vs py3; replace with six via ziploader +try: + from StringIO import StringIO +except ImportError: + from io import StringIO from string import maketrans diff --git a/lib/ansible/module_utils/shell.py b/lib/ansible/module_utils/shell.py index 0107911ba02..e1be749cf1e 100644 --- a/lib/ansible/module_utils/shell.py +++ b/lib/ansible/module_utils/shell.py @@ -19,7 +19,11 @@ import re import socket -from StringIO import StringIO +# py2 vs py3; replace with six via ziploader +try: + from StringIO import StringIO +except ImportError: + from io import StringIO try: import paramiko diff --git a/lib/ansible/plugins/lookup/ini.py b/lib/ansible/plugins/lookup/ini.py index 3adbd2c7d67..0e68816dc32 100644 --- a/lib/ansible/plugins/lookup/ini.py +++ b/lib/ansible/plugins/lookup/ini.py @@ -17,7 +17,7 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type -import StringIO +from io import StringIO import os import ConfigParser import re @@ -28,8 +28,8 @@ from ansible.plugins.lookup import LookupBase class LookupModule(LookupBase): def read_properties(self, filename, key, dflt, is_regexp): - config = StringIO.StringIO() - config.write('[java_properties]\n' + open(filename).read()) + config = StringIO() + config.write(u'[java_properties]\n' + open(filename).read()) config.seek(0, os.SEEK_SET) self.cp.readfp(config) return self.get_value(key, 'java_properties', dflt, is_regexp) diff --git a/lib/ansible/template/__init__.py b/lib/ansible/template/__init__.py index 991641fa24a..76c69762402 100644 --- a/lib/ansible/template/__init__.py +++ b/lib/ansible/template/__init__.py @@ -23,8 +23,9 @@ import ast import contextlib import os import re +from io import StringIO -from ansible.compat.six import string_types, text_type, binary_type, StringIO +from ansible.compat.six import string_types, text_type, binary_type from jinja2 import Environment from jinja2.loaders import FileSystemLoader from jinja2.exceptions import TemplateSyntaxError, UndefinedError