class_docstr: A namespace for rules so that they can be accessed via dot notation.
class_docstr_tok: ["A","namespace","for","rules","so","that","they","can","be","accessed","via","dot","notation","."]
code: def __getattr__(self, name):
      from snakemake.exceptions import WorkflowError
  
      try:
          return self._rules[name]
      except KeyError:
          raise WorkflowError(
              f"Rule {name} is not defined in this workflow. "
              f"Available rules: {', '.join(self._rules)}"
          )
  
imports: import contextlib
  import itertools
  import math
  import operator
  import platform
  import hashlib
  import inspect
  import sys
  import uuid
  import os
  import asyncio
  import collections
  from pathlib import Path
  from snakemake._version import get_versions
  from snakemake_interface_common.exceptions import WorkflowError
label_desc: Use image node_id 3 for calling the Rules obj's underlying member method code with example usage: obj.__getattr__(name) and returns: self