docstr: A strategy for :rfc:`1035` fully qualified domain names.
  
  The upper limit for max_length is 255 in accordance with :rfc:`1035#section-2.3.4`
  The lower limit for max_length is 4, corresponding to a two letter domain
  with a single letter subdomain.
  The upper limit for max_element_length is 63 in accordance with :rfc:`1035#section-2.3.4`
  The lower limit for max_element_length is 1 in accordance with :rfc:`1035#section-2.3.4`
docstr_tok: ["A","strategy","for",":","rfc",":","`","1035","`","fully","qualified","domain","names",".","The","upper","limit","for","max_length","is","255","in","accordance","with",":","rfc",":","`","1035","#","section-2.3.4","`","The","lower","limit","for","max_length","is","4",",","corresponding","to","a","two","letter","domain","with","a","single","letter","subdomain",".","The","upper","limit","for","max_element_length","is","63","in","accordance","with",":","rfc",":","`","1035","#","section-2.3.4","`","The","lower","limit","for","max_element_length","is","1","in","accordance","with",":","rfc",":","`","1035","#","section-2.3.4","`"]
code: def __init__(self, max_length=None, max_element_length=None):
      """
      A strategy for :rfc:`1035` fully qualified domain names.
  
      The upper limit for max_length is 255 in accordance with :rfc:`1035#section-2.3.4`
      The lower limit for max_length is 4, corresponding to a two letter domain
      with a single letter subdomain.
      The upper limit for max_element_length is 63 in accordance with :rfc:`1035#section-2.3.4`
      The lower limit for max_element_length is 1 in accordance with :rfc:`1035#section-2.3.4`
      """
      # https://tools.ietf.org/html/rfc1035#section-2.3.4
  
      max_length = self.clean_inputs(4, 255, max_length, "max_length")
      max_element_length = self.clean_inputs(
          1, 63, max_element_length, "max_element_length"
      )
  
      super().__init__()
      self.max_length = max_length
      self.max_element_length = max_element_length
  
      # These regular expressions are constructed to match the documented
      # information in https://tools.ietf.org/html/rfc1035#section-2.3.1
      # which defines the allowed syntax of a subdomain string.
      if self.max_element_length == 1:
          self.label_regex = r"[a-zA-Z]"
      elif self.max_element_length == 2:
          self.label_regex = r"[a-zA-Z][a-zA-Z0-9]?"
      else:
          maximum_center_character_pattern_repetitions = (
              self.max_element_length - 2
          )
          self.label_regex = (
              r"[a-zA-Z]([a-zA-Z0-9\-]{0,%d}[a-zA-Z0-9])?"
              % (maximum_center_character_pattern_repetitions,)
          )
  
file_path: catboost/contrib/python/hypothesis/py3/hypothesis/provisional.py
imports: import string
  from importlib import resources
  from hypothesis import strategies
  from hypothesis.errors import InvalidArgument
  from hypothesis.internal.conjecture import utils
  from hypothesis.strategies._internal.utils import defines_strategy
label_desc: Use image node_id 2 to create a new DomainNameStrategy object from inherited base classes: st with example: obj = DomainNameStrategy(max_length, max_element_length)