Gets an asset smart repository session for the given repository.

        arg:    repository_id (osid.id.Id): the Id of the repository
        arg     proxy (osid.proxy.Proxy): a proxy
        return: (osid.repository.AssetSmartRepositorySession) - an
                AssetSmartRepositorySession
        raise:  NotFound - repository_id not found
        raise:  NullArgument - repository_id is null
        raise:  OperationFailed - unable to complete request
        raise:  Unimplemented - supports_asset_smart_repository()  false
        compliance: optional - This method must be implemented if
                    supports_asset_smart_repository() is true.

def get_asset_smart_repository_session(self, repository_id, proxy):
        """Gets an asset smart repository session for the given repository.

        arg:    repository_id (osid.id.Id): the Id of the repository
        arg     proxy (osid.proxy.Proxy): a proxy
        return: (osid.repository.AssetSmartRepositorySession) - an
                AssetSmartRepositorySession
        raise:  NotFound - repository_id not found
        raise:  NullArgument - repository_id is null
        raise:  OperationFailed - unable to complete request
        raise:  Unimplemented - supports_asset_smart_repository()  false
        compliance: optional - This method must be implemented if
                    supports_asset_smart_repository() is true.

        """
        if not repository_id:
            raise NullArgument()
        if not self.supports_asset_smart_repository():
            raise Unimplemented()
        try:
            from . import sessions
        except ImportError:
            raise OperationFailed('import error')
        proxy = self._convert_proxy(proxy)
        try:
            session = sessions.AssetSmartRepositorySession(repository_id, proxy, runtime=self._runtime)
        except AttributeError:
            raise OperationFailed('attribute error')
        return session