code: def from_line(cls, line: str) -> Optional["Param"]:
      if ":" not in line:
          return None
  
      ident, description = line.split(":", 1)
      ident = ident.strip()
      description = description.strip()
  
      if " " in ident:
          return None
  
      maybe_match = REQUIRED_PARAM_RE.match(description)
      if maybe_match:
          ty = maybe_match.group(1)
          return cls(ident=ident, ty=ty, required=True)
  
      maybe_match = OPTIONAL_PARAM_RE.match(description)
      if maybe_match:
          ty = maybe_match.group(1)
          default = maybe_match.group(4)
          return cls(
              ident=ident, ty=ty, required=False, default=default
          )
  
      maybe_match = OPTIONAL_PARAM_NO_DEFAULT_RE.match(description)
      if maybe_match:
          ty = maybe_match.group(1)
          return cls(ident=ident, ty=ty, required=False)
  
      raise DocstringError(
          f"Invalid parameter / attribute description: '{line}'\n"
          "Make sure types are enclosed in backticks.\n"
          "Required parameters should be documented like: '{ident} : `{type}`'\n"
          "Optional parameters should be documented like: '{ident} : `{type}`, optional (default = `{expr}`)'\n"
      )
  
imports: import argparse
  import logging
  import os
  import re
  import sys
  from collections import OrderedDict
  from dataclasses import dataclass
  from enum import Enum
  from multiprocessing import Pool, cpu_count
  from pathlib import Path
  from typing import List, Optional, Tuple
  import docspec
  from docspec import ApiObject, Class, Data, Function, Indirection, Module
  from docspec_python import format_arglist
  from pydoc_markdown import Processor, PydocMarkdown, Resolver
  from pydoc_markdown.contrib.loaders.python import PythonLoader
  from pydoc_markdown.contrib.renderers.markdown import MarkdownRenderer
label_desc: Use image node_id 1 for calling the Param obj's underlying member method code with example usage: obj.from_line(cls, line) and returns: None, None, cls, cls, cls