def get_op(self, id: str, **kwargs: str) -> dict:
        """Queries the ESI by looking up an operation id.

        Endpoints are cached, so calls to this method
        for the same op and args will return the data
        from the cache instead of making the API call.

        Args:
            id: operation id
            kwargs: data to populate the endpoint's URL variables

        Returns:
            ESI data
        """
        path = self._get_path_for_op_id(id)
        return self.get_path(path, kwargs)
Queries the ESI by looking up an operation id.

        Endpoints are cached, so calls to this method
        for the same op and args will return the data
        from the cache instead of making the API call.

        Args:
            id: operation id
            kwargs: data to populate the endpoint's URL variables

        Returns:
            ESI data