code: def __init__(
      self,
      max_num_edges: int,
      num_nodes: Categorical[int],
      operations: List[Categorical],
      inputs: List[CategoricalMultiple],
  ):
      self.label = auto_label("final")
      self.max_num_edges = max_num_edges
      self.num_nodes = num_nodes
      self.operations = operations
      self.inputs = inputs
  
imports: import logging
  from collections import OrderedDict
  from typing import Callable, List, Optional, Union, Dict, Tuple, Callable, Iterable, Any, cast
  import numpy
  import torch
  import torch.nn
  from nni.mutable import Constraint, Categorical, CategoricalMultiple, Constraint, ConstraintViolation, Mutable, LabeledMutable, Sample, SampleValidationError, auto_label, label_scope
  from nni.mutable.mutable import _mutable_equal
  from nni.nas.nn.pytorch import InputChoice, LayerChoice, MutableModule
label_desc: Use image node_id 1 to create a new NasBench101CellConstraint object from inherited base classes: Constraint with example: obj = NasBench101CellConstraint(max_num_edges, num_nodes, operations, inputs)