code: def _get_spacing_conventions(self, use_names):
          
          before_theories = defaultdict(lambda: 0)
          after_theories = defaultdict(lambda: 0)
          for param in self.params:
              if not param.showkey:
                  continue
              if use_names:
                  component = str(param.name)
              else:
                  component = str(param.value)
              match = re.search(r"^(\s*).*?(\s*)$", component, FLAGS)
              before, after = match.group(1), match.group(2)
              if not use_names and component.isspace() and "\n" in before:
                  # If the value is empty, we expect newlines in the whitespace
                  # to be after the content, not before it:
                  before, after = before.split("\n", 1)
                  after = "\n" + after
              before_theories[before] += 1
              after_theories[after] += 1
  
          before = self._select_theory(before_theories)
          after = self._select_theory(after_theories)
          return before, after
docs: Try to determine the whitespace conventions for parameters.
  
          This will examine the existing parameters and use
          :meth:`_select_theory` to determine if there are any preferred styles
          for how much whitespace to put before or after the value.