parameters: (cls)
return_statement: return cls.product_name()
docstring: product_source_name() -> str
  
          The name of the source code directory of this product.
          It provides a customization point for Product subclasses. It is set to
          the value of product_name() by default for this reason.
docstring_summary: product_source_name() -> str
docstring_tokens: product_source_name () - > str
function: def product_source_name(cls):
          """product_source_name() -> str
  
          The name of the source code directory of this product.
          It provides a customization point for Product subclasses. It is set to
          the value of product_name() by default for this reason.
          """
  
          llvm_projects = ['clang',
                           'clang-tools-extra',
                           'compiler-rt',
                           'libcxx',
                           'lldb',
                           'llvm']
  
          if cls.product_name() in llvm_projects:
              return "llvm-project/{}".format(cls.product_name())
          return cls.product_name()
function_tokens: def product_source_name ( cls ) : llvm_projects = [ 'clang' , 'clang-tools-extra' , 'compiler-rt' , 'libcxx' , 'lldb' , 'llvm' ] if cls . product_name ( ) in llvm_projects : return "llvm-project/{}" . format ( cls . product_name ( ) ) return cls . product_name ( )