class_docstr: Specifies resources usage or resource limits for execution.
  
  The value `None` represents unknown resource usage or an unspecified limit.
class_docstr_tok: ["Specifies","resources","usage","or","resource","limits","for","execution",".","The","value","`","None","`","represents","unknown","resource","usage","or","an","unspecified","limit","."]
docstr: Return if this resource struct meets the specified limits.
  
  Note that None for a field means no limit.
docstr_tok: ["Return","if","this","resource","struct","meets","the","specified","limits",".","Note","that","None","for","a","field","means","no","limit","."]
code: def satisfies_limit(self, limit: "ExecutionResources") -> bool:
      """Return if this resource struct meets the specified limits.
  
      Note that None for a field means no limit.
      """
  
      if (
          self.cpu is not None
          and limit.cpu is not None
          and self.cpu > limit.cpu
      ):
          return False
      if (
          self.gpu is not None
          and limit.gpu is not None
          and self.gpu > limit.gpu
      ):
          return False
      if (
          self.object_store_memory is not None
          and limit.object_store_memory is not None
          and self.object_store_memory > limit.object_store_memory
      ):
          return False
      return True
  
file_path: ray/python/ray/data/_internal/execution/interfaces/execution_options.py
imports: import os
  from dataclasses import dataclass, field
  from typing import List, Optional, Union
  from .common import NodeIdStr
  from ray.data._internal.execution.util import memory_string
  from ray.util.annotations import DeveloperAPI
label_desc: Use image node_id 3 for calling the ExecutionResources obj's underlying member method code with example usage: obj.satisfies_limit(limit) and returns: True, False, False, False