Пример #1
0
 def get_signature(self, classname):
     ''' Get constructor argument signature for `classname`.
     '''
     try:
         return get_signature(str(classname))
     except Exception as err:
         self._error(err, sys.exc_info())
 def get_signature(self, classname):
     ''' Get constructor argument signature for `classname`.
     '''
     try:
         return get_signature(str(classname))
     except Exception as err:
         self._error(err, sys.exc_info())
Пример #3
0
    def test_importing(self):
        projdirname = 'myproj.projdir'
        dirstruct = {
            os.path.splitext(projdirname)[0]: {
                'top.py': """
from openmdao.main.api import Component
class MyClass(Component):
    pass
""",
                'pkgdir': {
                    '__init__.py': '',
                    'pkgfile.py':
                    'from openmdao.main.api import Component, Assembly',
                    'pkgdir2': {
                        '__init__.py':
                        '',
                        'pkgfile2.py':
                        """
from openmdao.main.api import Component
class PkgClass2(Component):
    def __init__(self, somearg=8, anotherarg=False):
        super(PkgClass2, self).__init__()
""",
                    }
                },
                'plaindir': {
                    'plainfile.py':
                    """
from pkgdir.pkgdir2.pkgfile2 import PkgClass2
p = PkgClass2()
""",
                },
            },
        }

        build_directory(dirstruct, topdir=os.getcwd())
        try:
            sys.path_hooks = [ProjFinder] + sys.path_hooks
            sys.path = [os.path.join(os.getcwd(), projdirname)] + sys.path
            __import__('top')
            __import__('pkgdir.pkgfile')
            __import__('pkgdir.pkgdir2.pkgfile2')

            mod = sys.modules['pkgdir.pkgdir2.pkgfile2']
            expected_classname = 'pkgdir.pkgdir2.pkgfile2.PkgClass2'
            matches = _match_insts([expected_classname])
            self.assertEqual(matches, set())

            sig = get_signature('pkgdir.pkgdir2.pkgfile2.PkgClass2')
            self.assertEqual(sig['args'],
                             [['somearg', '8'], ['anotherarg', 'False']])
            inst = getattr(mod, 'PkgClass2')()  # create an inst of PkgClass2
            matches = _match_insts([expected_classname])
            self.assertEqual(matches, set([expected_classname]))

        finally:
            sys.path = sys.path[1:]
Пример #4
0
    def test_importing(self):
        projdirname = 'myproj.projdir'
        dirstruct = {
            os.path.splitext(projdirname)[0]: {
                'top.py': """
from openmdao.main.api import Component
class MyClass(Component):
    pass
""",
                'pkgdir': {
                    '__init__.py': '',
                    'pkgfile.py': 'from openmdao.main.api import Component, Assembly',
                    'pkgdir2': {
                          '__init__.py': '',
                          'pkgfile2.py': """
from openmdao.main.api import Component
class PkgClass2(Component):
    def __init__(self, somearg=8, anotherarg=False):
        super(PkgClass2, self).__init__()
""",
                    }
                },
                'plaindir': {
                    'plainfile.py': """
from pkgdir.pkgdir2.pkgfile2 import PkgClass2
p = PkgClass2()
""",
                },
            },
        }

        build_directory(dirstruct, topdir=os.getcwd())
        try:
            sys.path_hooks = [ProjFinder]+sys.path_hooks
            sys.path = [os.path.join(os.getcwd(), projdirname)]+sys.path
            __import__('top')
            __import__('pkgdir.pkgfile')
            __import__('pkgdir.pkgdir2.pkgfile2')

            mod = sys.modules['pkgdir.pkgdir2.pkgfile2']
            expected_classname = 'pkgdir.pkgdir2.pkgfile2.PkgClass2'
            matches = _match_insts([expected_classname])
            self.assertEqual(matches, set())

            sig = get_signature('pkgdir.pkgdir2.pkgfile2.PkgClass2')
            self.assertEqual(sig['args'], [['somearg', '8'], ['anotherarg', 'False']])
            inst = getattr(mod, 'PkgClass2')()  # create an inst of PkgClass2
            matches = _match_insts([expected_classname])
            self.assertEqual(matches, set([expected_classname]))

        finally:
            sys.path = sys.path[1:]
Пример #5
0
    def get_signature(self, typname, version=None):
        """Return constructor argument signature for *typname,* using the
        specified package version. The return value is a dictionary.

        typname: string
            Type of object to constructor to inspect.

        version: string or None
            Version of `typname` to create.
        """
        self._logger.debug('get_signature typname %s version %s',
                           typname, version)
        signature = get_signature(typname, version)
        self._logger.log(LOG_DEBUG2, '    %s', signature)
        return signature
    def get_signature(self, typname, version=None):
        """Return constructor argument signature for *typname,* using the
        specified package version. The return value is a dictionary.

        typname: string
            Type of object to constructor to inspect.

        version: string or None
            Version of `typname` to create.
        """
        self._logger.debug('get_signature typname %s version %s', typname,
                           version)
        signature = get_signature(typname, version)
        self._logger.log(LOG_DEBUG2, '    %s', signature)
        return signature