class_docstr: Helper object that allows to configure `characters` strategy with
  various unicode categories and characters. Also allows negation of
  configured set.
  
  :param negate: If True, configure :func:`hypothesis.strategies.characters`
      to match anything other than configured character set
  :param flags: Regex flags. They affect how and which characters are matched
class_docstr_tok: ["Helper","object","that","allows","to","configure","`","characters","`","strategy","with","various","unicode","categories","and","characters",".","Also","allows","negation","of","configured","set",".",":","param","negate",":","If","True",",","configure",":","func",":","`","hypothesis.strategies.characters","`","to","match","anything","other","than","configured","character","set",":","param","flags",":","Regex","flags",".","They","affect","how","and","which","characters","are","matched"]
docstr: Returns resulting strategy that generates configured char set.
docstr_tok: ["Returns","resulting","strategy","that","generates","configured","char","set","."]
code: def strategy(self):
      """Returns resulting strategy that generates configured char set."""
      # Start by getting the set of all characters allowed by the pattern
      white_chars = self._whitelist_chars - self._blacklist_chars
      multi_chars = {c for c in white_chars if len(c) > 1}
      intervals = charmap.query(
          categories=self._categories,
          exclude_characters=self._blacklist_chars,
          include_characters=white_chars - multi_chars,
      )
      # Then take the complement if this is from a negated character class
      if self._negate:
          intervals = charmap.query() - intervals
          multi_chars.clear()
      # and finally return the intersection with our alphabet
      return OneCharStringStrategy(
          intervals & self._alphabet.intervals
      ) | (
          st.sampled_from(sorted(multi_chars))
          if multi_chars
          else st.nothing()
      )
  
imports: import operator
  import re
  from hypothesis.errors import InvalidArgument
  from hypothesis.internal import charmap
  from hypothesis.strategies._internal.lazy import unwrap_strategies
  from hypothesis.strategies._internal.strings import OneCharStringStrategy
  from hypothesis import reject, strategies
  from hypothesis.internal.charmap import as_general_categories, categories
  from hypothesis.internal.compat import add_note, int_to_byte
label_desc: Use image node_id 2 for calling the CharactersBuilder obj's underlying member method code with example usage: obj.strategy() and returns: unknown