import json
import shutil
from lxml import etree
-from StringIO import StringIO
from optparse import OptionParser
from pprint import PrettyPrinter
from tempfile import mkstemp
from sfa.util.version import version_core
from sfa.util.cache import Cache
from sfa.util.printable import printable
+from sfa.util.py23 import StringIO
from sfa.storage.record import Record
from __future__ import print_function
from lxml import etree
-from StringIO import StringIO
from sfa.util.xrn import Xrn, urn_to_hrn
from sfa.rspecs.rspec import RSpec
from sfa.rspecs.version_manager import VersionManager
+from sfa.util.py23 import StringIO
+
xslt='''<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="no"/>
from sfa.util.sfalogging import logger
from sfa.util.sfatime import SFATIME_FORMAT
-from StringIO import StringIO
from xml.dom.minidom import Document, parseString
+from sfa.util.py23 import StringIO
+
HAVELXML = False
try:
from lxml import etree
import os, os.path
import subprocess
import datetime
-from StringIO import StringIO
from tempfile import mkstemp
from xml.dom.minidom import Document, parseString
from sfa.util.py23 import StringType
+from sfa.util.py23 import StringIO
HAVELXML = False
try:
import sys
import tempfile
from xml.dom.minidom import *
-from StringIO import StringIO
from sfa.util.sfatime import SFATIME_FORMAT
from sfa.trust.credential_factory import CredentialFactory
from sfa.trust.gid import GID
from sfa.util.sfalogging import logger
+from sfa.util.py23 import StringIO
# Routine to validate that a speaks-for credential
# says what it claims to say:
import ConfigParser
import tempfile
import codecs
-from StringIO import StringIO
from sfa.util.xml import XML
+from sfa.util.py23 import StringIO
default_config = \
"""
StringType = basestring
except:
StringType = str
+
+try:
+ from StringIO import StringIO
+except:
+ from io import StringIO
#!/usr/bin/python
from lxml import etree
-from StringIO import StringIO
from sfa.util.faults import InvalidXML
from sfa.rspecs.elements.element import Element
from sfa.util.py23 import StringType
+from sfa.util.py23 import StringIO
# helper functions to help build xpaths
class XpathFilter: