def file_build(self, path, modname=None):
        """Build astroid from a source code file (i.e. from an ast)

        *path* is expected to be a python source file
        """
        try:
            stream, encoding, data = open_source_file(path)
        except IOError as exc:
            raise exceptions.AstroidBuildingError(
                "Unable to load file {path}:\n{error}",
                modname=modname,
                path=path,
                error=exc,
            ) from exc
        except (SyntaxError, LookupError) as exc:
            raise exceptions.AstroidSyntaxError(
                "Python 3 encoding specification error or unknown encoding:\n"
                "{error}",
                modname=modname,
                path=path,
                error=exc,
            ) from exc
        except UnicodeError as exc:  # wrong encoding
            # detect_encoding returns utf-8 if no encoding specified
            raise exceptions.AstroidBuildingError(
                "Wrong or no encoding specified for {filename}.", filename=path
            ) from exc
        with stream:
            # get module name if necessary
            if modname is None:
                try:
                    modname = ".".join(modutils.modpath_from_file(path))
                except ImportError:
                    modname = os.path.splitext(os.path.basename(path))[0]
            # build astroid representation
            module = self._data_build(data, modname, path)
            return self._post_build(module, encoding)
def file_build ( self , path , modname = None ) : try : stream , encoding , data = open_source_file ( path ) except IOError as exc : raise exceptions . AstroidBuildingError ( "Unable to load file {path}:\n{error}" , modname = modname , path = path , error = exc , ) from exc except ( SyntaxError , LookupError ) as exc : raise exceptions . AstroidSyntaxError ( "Python 3 encoding specification error or unknown encoding:\n" "{error}" , modname = modname , path = path , error = exc , ) from exc except UnicodeError as exc : raise exceptions . AstroidBuildingError ( "Wrong or no encoding specified for {filename}." , filename = path ) from exc with stream : if modname is None : try : modname = "." . join ( modutils . modpath_from_file ( path ) ) except ImportError : modname = os . path . splitext ( os . path . basename ( path ) ) [ 0 ] module = self . _data_build ( data , modname , path ) return self . _post_build ( module , encoding )
Build astroid from a source code file (i.e. from an ast)

        *path* is expected to be a python source file