def get_resource(self, resource_key, repository_type, location,<EOL>**variables):
path = "<STR_LIT>" % (repository_type, location)<EOL>repo = self.get_repository(path)<EOL>resource = repo.get_resource(**variables)<EOL>return resource<EOL>
Get a resource.

        Attempts to get and return a cached version of the resource if
        available, otherwise a new resource object is created and returned.

        Args:
            resource_key (`str`):  Name of the type of `Resources` to find
            repository_type (`str`): What sort of repository to look for the
                resource in
            location (`str`): location for the repository
            variables: data to identify / store on the resource

        Returns:
            `PackageRepositoryResource` instance.