class_docstr: A settings object configures options including verbosity, runtime controls,
  persistence, determinism, and more.
  
  Default values are picked up from the settings.default object and
  changes made there will be picked up in newly created settings.
class_docstr_tok: ["A","settings","object","configures","options","including","verbosity",",","runtime","controls",",","persistence",",","determinism",",","and","more",".","Default","values","are","picked","up","from","the","settings.default","object","and","changes","made","there","will","be","picked","up","in","newly","created","settings","."]
code: def __init__(
      self,
      parent: Optional["settings"] = None,
      *,
      # This looks pretty strange, but there's good reason: we want Mypy to detect
      # bad calls downstream, but not to freak out about the `= not_set` part even
      # though it's not semantically valid to pass that as an argument value.
      # The intended use is "like **kwargs, but more tractable for tooling".
      max_examples: int = not_set,  # type: ignore
      derandomize: bool = not_set,  # type: ignore
      database: Optional["ExampleDatabase"] = not_set,  # type: ignore
      verbosity: "Verbosity" = not_set,  # type: ignore
      phases: Collection["Phase"] = not_set,  # type: ignore
      stateful_step_count: int = not_set,  # type: ignore
      report_multiple_bugs: bool = not_set,  # type: ignore
      suppress_health_check: Collection["HealthCheck"] = not_set,  # type: ignore
      deadline: Union[int, float, datetime.timedelta, None] = not_set,  # type: ignore
      print_blob: bool = not_set,  # type: ignore
  ) -> None:
      if parent is not None:
          check_type(settings, parent, "parent")
      if derandomize not in (not_set, False):
          if database not in (not_set, None):  # type: ignore
              raise InvalidArgument(
                  "derandomize=True implies database=None, so passing "
                  f"{database=} too is invalid."
              )
          database = None
  
      defaults = parent or settings.default
      if defaults is not None:
          for setting in all_settings.values():
              value = locals()[setting.name]
              if value is not_set:
                  object.__setattr__(
                      self,
                      setting.name,
                      getattr(defaults, setting.name),
                  )
              else:
                  object.__setattr__(
                      self, setting.name, setting.validator(value)
                  )
  
imports: import contextlib
  import datetime
  import inspect
  import os
  import warnings
  from enum import Enum, EnumMeta, IntEnum, unique
  from typing import TYPE_CHECKING, Any, ClassVar, Collection, Dict, List, Optional, TypeVar, Union
  import attr
  from hypothesis.errors import HypothesisDeprecationWarning, InvalidArgument, InvalidState
  from hypothesis.internal.reflection import get_pretty_function_description
  from hypothesis.internal.validation import check_type, try_convert
  from hypothesis.utils.conventions import not_set
  from hypothesis.utils.dynamicvariables import DynamicVariable
label_desc: Use image node_id 2 to create a new settings object  with example: obj = settings(parent)