class_docstr: Construct a PassManager.
  
  Collects passes and constraints. This defines the pass schedule, manages
  pass constraints and pass execution.
  
  Args:
      passes (Optional[List[Callable]]): List of passes. A pass is a
          callable which modifies an object and returns a PassResult
      constraint (Optional[List[Callable]]): List of constraints. A
          constraint is a callable which takes two passes (A, B) and returns
          True if A depends on B and False otherwise. See implementation of
          `this_before_that_pass_constraint` for example.
      steps (int): Max number of times we run the passes (default = 1).
      run_checks_after_each_pass (bool): Whether to run checks and linting
          after each pass
      suppress_check_failures (bool): Whether to raise errors when running
          checks
code: def __init__(
      self,
      passes=None,
      constraints=None,
      steps=None,
      run_checks_after_each_pass: bool = False,
      suppress_check_failures: bool = False,
  ):
      self.passes = passes or []
      self.constraints = constraints or []
      if steps:
          self.steps = steps
  
      self.run_checks_after_each_pass = run_checks_after_each_pass
      self.suppress_check_failures = suppress_check_failures
  
imports: import inspect
  import logging
  from queue import Queue
  from functools import wraps
  from typing import Callable, Dict, List
  import torch.nn
  from torch.fx.graph_module import GraphModule
  from torch.fx._compatibility import compatibility
  from torch.fx.passes.infra.pass_base import PassResult
label_desc: Use image node_id 1 to create a new PassManager object  with example: obj = PassManager(passes, constraints, steps, run_checks_after_each_pass, suppress_check_failures)