docs: def canonicalize(self, namespace_targets: Mapping[str, List[str]] = None) -> "BEL":
          """
          Takes an AST and returns a canonicalized BEL statement string.
  
          Args:
              namespace_targets (Mapping[str, List[str]]): override default canonicalization
                  settings of BEL.bio API api_url - see {api_url}/status to get default canonicalization settings
  
          Returns:
              BEL: returns self
          """
  
          # TODO Need to order position independent args
  
          if not self.ast:
              return self
  
          # Collect canonical/decanonical NSArg values
          if not self.ast.collected_nsarg_norms:
              self = self.collect_nsarg_norms()
  
          # TODO Need to pass namespace target overrides for canonicalization
          self.ast.canonicalize()
  
          # self.ast = bel_utils.convert_namespaces_ast(self.ast, canonicalize=True, api_url=self.api_url, namespace_targets=namespace_targets)
  
          return self