def test_classes(): try: #XXX: should this be a 'special case'? from StringIO import StringIO x = "from StringIO import StringIO\n" y = x except ImportError: from io import BytesIO as StringIO x = "from io import BytesIO\n" y = "from _io import BytesIO\n" s = StringIO() assert likely_import(StringIO) == x assert likely_import(s) == y # interactively defined classes and class instances assert likely_import(Foo) == 'from %s import Foo\n' % __name__ assert likely_import(_foo) == 'from %s import Foo\n' % __name__
def test_classes(): try: #XXX: should this be a 'special case'? from StringIO import StringIO y = "from StringIO import StringIO\n" x = y except ImportError: from io import BytesIO as StringIO y = "from _io import BytesIO\n" x = y if (IS_PYPY3 or hex(sys.hexversion) >= PY310b ) else "from io import BytesIO\n" s = StringIO() assert likely_import(StringIO) == x assert likely_import(s) == y # interactively defined classes and class instances assert likely_import(Foo) == 'from %s import Foo\n' % __name__ assert likely_import(_foo) == 'from %s import Foo\n' % __name__
def test_builtin(): if PY3: builtin = 'builtins' else: builtin = '__builtin__' assert likely_import(pow) == 'pow\n' assert likely_import(100) == '100\n' assert likely_import(True) == 'True\n' assert likely_import(pow, explicit=True) == 'from %s import pow\n' % builtin assert likely_import(100, explicit=True) == '100\n' assert likely_import(True, explicit=True) == 'True\n' if PY3 else 'from %s import True\n' % builtin # this is kinda BS... you can't import a None assert likely_import(None) == 'None\n' assert likely_import(None, explicit=True) == 'None\n'
def test_imported(): from math import sin assert likely_import(sin) == 'from math import sin\n'
def test_itself(): assert likely_import( likely_import) == 'from dill.source import likely_import\n'
def test_dynamic(): assert likely_import(add) == 'from %s import add\n' % __name__ # interactive lambdas assert likely_import(squared) == 'from %s import squared\n' % __name__
assert getimportable(_foo.bar, explicit=True) == 'from %s import bar\n' % __name__ assert getimportable(None, explicit=True) == 'None\n' assert getimportable(100, explicit=True) == '100\n' try: from numpy import array x = array([1,2,3]) assert getimportable(x) == 'from numpy import array\narray([1, 2, 3])\n' assert getimportable(array) == 'from numpy.core.multiarray import array\n' assert getimportable(x, byname=False) == 'from numpy import array\narray([1, 2, 3])\n' assert getimportable(array, byname=False) == 'from numpy.core.multiarray import array\n' except ImportError: pass # test itself assert likely_import(likely_import)=='from dill.source import likely_import\n' # builtin functions and objects if PY3: builtin = 'builtins' else: builtin = '__builtin__' assert likely_import(pow) == 'pow\n' assert likely_import(100) == '100\n' assert likely_import(True) == 'True\n' assert likely_import(pow, explicit=True) == 'from %s import pow\n' % builtin assert likely_import(100, explicit=True) == '100\n' assert likely_import(True, explicit=True) == 'True\n' if PY3 else 'from %s import True\n' % builtin # this is kinda BS... you can't import a None assert likely_import(None) == 'None\n' assert likely_import(None, explicit=True) == 'None\n' # other imported functions
assert getimportable(100, explicit=True) == '100\n' try: from numpy import array x = array([1, 2, 3]) assert getimportable(x) == 'from numpy import array\narray([1, 2, 3])\n' assert getimportable(array) == 'from numpy.core.multiarray import array\n' assert getimportable( x, byname=False) == 'from numpy import array\narray([1, 2, 3])\n' assert getimportable( array, byname=False) == 'from numpy.core.multiarray import array\n' except ImportError: pass # test itself assert likely_import( likely_import) == 'from dill.source import likely_import\n' # builtin functions and objects if PY3: builtin = 'builtins' else: builtin = '__builtin__' assert likely_import(pow) == 'pow\n' assert likely_import(100) == '100\n' assert likely_import(True) == 'True\n' assert likely_import(pow, explicit=True) == 'from %s import pow\n' % builtin assert likely_import(100, explicit=True) == '100\n' assert likely_import( True, explicit=True) == 'True\n' if PY3 else 'from %s import True\n' % builtin # this is kinda BS... you can't import a None assert likely_import(None) == 'None\n' assert likely_import(None, explicit=True) == 'None\n'
def test_itself(): assert likely_import(likely_import)=='from dill.source import likely_import\n'
assert getimportable(100, alias="memo", byname=False) == "memo = 100\n" try: from numpy import array x = array([1, 2, 3]) assert getimportable(x) == "from numpy import array\narray([1, 2, 3])\n" assert getimportable(array) == "from numpy.core.multiarray import array\n" assert getimportable(x, byname=False) == "from numpy import array\narray([1, 2, 3])\n" assert getimportable(array, byname=False) == "from numpy.core.multiarray import array\n" except ImportError: pass # test itself assert likely_import(likely_import) == "from dill.source import likely_import\n" # builtin functions and objects assert likely_import(pow) == "" assert likely_import(100) == "" assert likely_import(True) == "" # this is kinda BS... you can't import a None assert likely_import(None) == "" # other imported functions from math import sin assert likely_import(sin) == "from math import sin\n" # interactively defined functions assert likely_import(add) == "from %s import add\n" % __name__