code: def compile_files_cwd(*args, **kwargs):
      
      # get root directory of the contracts
      compile_wd = os.path.commonprefix(args[0])
      # edge case - compiling a single file
      if os.path.isfile(compile_wd):
          compile_wd = os.path.dirname(compile_wd)
      # remove prefix from the files
      if compile_wd[-1] != '/':
          compile_wd += '/'
      file_list = [
          x.replace(compile_wd, '')
          for x in args[0]
      ]
      cwd = os.getcwd()
      try:
          os.chdir(compile_wd)
          compiled_contracts = compile_files(
              source_files=file_list,
              # We need to specify output values here because py-solc by default
              # provides them all and does not know that "clone-bin" does not exist
              # in solidity >= v0.5.0
              output_values=('abi', 'asm', 'ast', 'bin', 'bin-runtime'),
              **kwargs,
          )
      finally:
          os.chdir(cwd)
      return compiled_contracts
docs: change working directory to contract's dir in order to avoid symbol
      name conflicts