(cls, value, package_dir=None)
return value
Represents value as a module attribute.

        Examples:
            attr: package.attr
            attr: package.module.attr

        :param str value:
        :rtype: str
Represents value as a module attribute.
Represents value as a module attribute .
def _parse_attr(cls, value, package_dir=None):
        """Represents value as a module attribute.

        Examples:
            attr: package.attr
            attr: package.module.attr

        :param str value:
        :rtype: str
        """
        attr_directive = 'attr:'
        if not value.startswith(attr_directive):
            return value

        attrs_path = value.replace(attr_directive, '').strip().split('.')
        attr_name = attrs_path.pop()

        module_name = '.'.join(attrs_path)
        module_name = module_name or '__init__'

        parent_path = os.getcwd()
        if package_dir:
            if attrs_path[0] in package_dir:
                # A custom path was specified for the module we want to import
                custom_path = package_dir[attrs_path[0]]
                parts = custom_path.rsplit('/', 1)
                if len(parts) > 1:
                    parent_path = os.path.join(os.getcwd(), parts[0])
                    module_name = parts[1]
                else:
                    module_name = custom_path
            elif '' in package_dir:
                # A custom parent directory was specified for all root modules
                parent_path = os.path.join(os.getcwd(), package_dir[''])
        sys.path.insert(0, parent_path)
        try:
            module = import_module(module_name)
            value = getattr(module, attr_name)

        finally:
            sys.path = sys.path[1:]

        return value
def _parse_attr ( cls , value , package_dir = None ) : attr_directive = 'attr:' if not value . startswith ( attr_directive ) : return value attrs_path = value . replace ( attr_directive , '' ) . strip ( ) . split ( '.' ) attr_name = attrs_path . pop ( ) module_name = '.' . join ( attrs_path ) module_name = module_name or '__init__' parent_path = os . getcwd ( ) if package_dir : if attrs_path [ 0 ] in package_dir : # A custom path was specified for the module we want to import custom_path = package_dir [ attrs_path [ 0 ] ] parts = custom_path . rsplit ( '/' , 1 ) if len ( parts ) > 1 : parent_path = os . path . join ( os . getcwd ( ) , parts [ 0 ] ) module_name = parts [ 1 ] else : module_name = custom_path elif '' in package_dir : # A custom parent directory was specified for all root modules parent_path = os . path . join ( os . getcwd ( ) , package_dir [ '' ] ) sys . path . insert ( 0 , parent_path ) try : module = import_module ( module_name ) value = getattr ( module , attr_name ) finally : sys . path = sys . path [ 1 : ] return value