code: def apply_obfuscation(source):
      
      global keyword_args
      global imported_modules
      tokens = token_utils.listified_tokenizer(source)
      keyword_args = analyze.enumerate_keyword_args(tokens)
      imported_modules = analyze.enumerate_imports(tokens)
      variables = find_obfuscatables(tokens, obfuscatable_variable)
      classes = find_obfuscatables(tokens, obfuscatable_class)
      functions = find_obfuscatables(tokens, obfuscatable_function)
      for variable in variables:
          replace_obfuscatables(
              tokens, obfuscate_variable, variable, name_generator)
      for function in functions:
          replace_obfuscatables(
              tokens, obfuscate_function, function, name_generator)
      for _class in classes:
          replace_obfuscatables(tokens, obfuscate_class, _class, name_generator)
      return token_utils.untokenize(tokens)
docs: Returns 'source' all obfuscated.