class_docstr: A settings object controls a variety of parameters that are used in
  falsification. These may control both the falsification strategy and the
  details of the data that is generated.
  
  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","controls","a","variety","of","parameters","that","are","used","in","falsification",".","These","may","control","both","the","falsification","strategy","and","the","details","of","the","data","that","is","generated",".","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=None, **kwargs):
      # type: (settings, **Any) -> None
      if parent is not None and not isinstance(parent, settings):
          raise InvalidArgument(
              "Invalid argument: parent=%r is not a settings instance"
              % (parent,)
          )
      if kwargs.get("derandomize"):
          if kwargs.get("database") is not None:
              raise InvalidArgument(
                  "derandomize=True implies database=None, so passing "
                  "database=%r too is invalid." % (kwargs["database"],)
              )
          kwargs["database"] = None
      self._construction_complete = False
      deprecations = []
      defaults = parent or settings.default
      if defaults is not None:
          for setting in all_settings.values():
              if kwargs.get(setting.name, not_set) is not_set:
                  kwargs[setting.name] = getattr(defaults, setting.name)
              else:
                  if setting.validator:
                      kwargs[setting.name] = setting.validator(
                          kwargs[setting.name]
                      )
                  if setting.deprecation_message is not None:
                      deprecations.append(setting)
      for name, value in kwargs.items():
          if name not in all_settings:
              raise InvalidArgument(
                  "Invalid argument: %r is not a valid setting"
                  % (name,)
              )
          setattr(self, name, value)
      self.storage = threading.local()
      self._construction_complete = True
  
      for d in deprecations:
          note_deprecation(
              d.deprecation_message, since=d.deprecated_since
          )
  
imports: from __future__ import absolute_import, division, print_function
  import contextlib
  import datetime
  import inspect
  import threading
  import warnings
  from enum import Enum, IntEnum, unique
  import attr
  from hypothesis.errors import HypothesisDeprecationWarning, InvalidArgument, InvalidState
  from hypothesis.internal.compat import integer_types, quiet_raise, string_types
  from hypothesis.internal.reflection import get_pretty_function_description
  from hypothesis.internal.validation import check_type, try_convert
  from hypothesis.utils.conventions import UniqueIdentifier, not_set
  from hypothesis.utils.dynamicvariables import DynamicVariable
label_desc: Use image node_id 2 to create a new settings object from inherited base classes:  with example: obj = settings(parent)