class_docstr: A plugin definition.
  
  Args:
      directory: the directory containing the plugin
      metadata: a plugin metadata dict
class_docstr_tok: ["A","plugin","definition",".","Args",":","directory",":","the","directory","containing","the","plugin","metadata",":","a","plugin","metadata","dict"]
docstr: The FiftyOne requirement as a string like ``fiftyone>=0.21``.
docstr_tok: ["The","FiftyOne","requirement","as","a","string","like","``","fiftyone",">","=0.21","``","."]
code: def fiftyone_requirement(self):
      """The FiftyOne requirement as a string like ``fiftyone>=0.21``."""
      req_str = self.fiftyone_compatibility or ""
      req_str = req_str.strip()
  
      if not req_str or req_str == "*":
          return None
  
      if not req_str.startswith("fiftyone"):
          req_str = "fiftyone" + req_str
  
      return req_str
  
imports: import os
  import yaml
  import eta.core.serial
  import fiftyone
label_desc: Use image node_id 10 for calling the PluginDefinition obj's underlying member method code with example usage: obj.fiftyone_requirement() and returns: req_str, None