class_docstr: A strategy for lists which takes a strategy for its elements and the
  allowed lengths, and generates lists with the correct size and contents.
class_docstr_tok: ["A","strategy","for","lists","which","takes","a","strategy","for","its","elements","and","the","allowed","lengths",",","and","generates","lists","with","the","correct","size","and","contents","."]
code: def do_validate(self):
      self.element_strategy.validate()
      if self.is_empty:
          raise InvalidArgument(
              (
                  "Cannot create non-empty lists with elements drawn from "
                  "strategy %r because it has no values."
              )
              % (self.element_strategy,)
          )
      if self.element_strategy.is_empty and 0 < self.max_size < float(
          "inf"
      ):
          raise InvalidArgument(
              "Cannot create a collection of max_size=%r, because no "
              "elements can be drawn from the element strategy %r"
              % (self.max_size, self.element_strategy)
          )
  
imports: from __future__ import absolute_import, division, print_function
  from collections import OrderedDict
  import hypothesis.internal.conjecture.utils
  from hypothesis.errors import InvalidArgument
  from hypothesis.internal.conjecture.junkdrawer import LazySequenceCopy
  from hypothesis.internal.conjecture.utils import combine_labels
  from hypothesis.strategies._internal.strategies import MappedSearchStrategy, SearchStrategy, filter_not_satisfied
label_desc: Use image node_id 3 for calling the ListStrategy obj's underlying member method code with example usage: obj.do_validate() without return types