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","."]
docstr: Make the settings object (self) an attribute of the test.
  
  The settings are later discovered by looking them up on the test itself.
docstr_tok: ["Make","the","settings","object","(","self",")","an","attribute","of","the","test",".","The","settings","are","later","discovered","by","looking","them","up","on","the","test","itself","."]
code: def __call__(self, test):
      """Make the settings object (self) an attribute of the test.
  
      The settings are later discovered by looking them up on the test itself.
      """
      if not callable(test):
          raise InvalidArgument(
              "settings objects can be called as a decorator with @given, "
              "but decorated test=%r is not callable." % (test,)
          )
      if inspect.isclass(test):
          from hypothesis.stateful import GenericStateMachine
  
          if issubclass(test, GenericStateMachine):
              attr_name = "_hypothesis_internal_settings_applied"
              if getattr(test, attr_name, False):
                  raise InvalidArgument(
                      "Applying the @settings decorator twice would "
                      "overwrite the first version; merge their arguments "
                      "instead."
                  )
              setattr(test, attr_name, True)
              test.TestCase.settings = self
              return test
          else:
              raise InvalidArgument(
                  "@settings(...) can only be used as a decorator on "
                  "functions, or on subclasses of GenericStateMachine."
              )
      if hasattr(test, "_hypothesis_internal_settings_applied"):
          # Can't use _hypothesis_internal_use_settings as an indicator that
          # @settings was applied, because @given also assigns that attribute.
          raise InvalidArgument(
              "%s has already been decorated with a settings object."
              "\n    Previous:  %r\n    This:  %r"
              % (
                  get_pretty_function_description(test),
                  test._hypothesis_internal_use_settings,
                  self,
              )
          )
  
      test._hypothesis_internal_use_settings = self
      test._hypothesis_internal_settings_applied = True
      return test
  
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 3 for calling the settings obj's underlying member method code with example usage: obj.__call__(test) and returns: test, test