def update_default(cls) -> 'TrustStoresRepository':
        """Update the default trust stores used by SSLyze.

        The latest stores will be downloaded from https://github.com/nabla-c0d3/trust_stores_observatory.
        """
        temp_path = mkdtemp()
        try:
            # Download the latest trust stores
            archive_path = join(temp_path, 'trust_stores_as_pem.tar.gz')
            urlretrieve(cls._UPDATE_URL, archive_path)

            # Extract the archive
            extract_path = join(temp_path, 'extracted')
            tarfile.open(archive_path).extractall(extract_path)

            # Copy the files to SSLyze and overwrite the existing stores
            shutil.rmtree(cls._DEFAULT_TRUST_STORES_PATH)
            shutil.copytree(extract_path, cls._DEFAULT_TRUST_STORES_PATH)
        finally:
            shutil.rmtree(temp_path)

        # Re-generate the default repo - not thread-safe
        cls._DEFAULT_REPOSITORY = cls(cls._DEFAULT_TRUST_STORES_PATH)
        return cls._DEFAULT_REPOSITORY
def update_default ( cls ) -> 'TrustStoresRepository' : temp_path = mkdtemp ( ) try : archive_path = join ( temp_path , 'trust_stores_as_pem.tar.gz' ) urlretrieve ( cls . _UPDATE_URL , archive_path ) extract_path = join ( temp_path , 'extracted' ) tarfile . open ( archive_path ) . extractall ( extract_path ) shutil . rmtree ( cls . _DEFAULT_TRUST_STORES_PATH ) shutil . copytree ( extract_path , cls . _DEFAULT_TRUST_STORES_PATH ) finally : shutil . rmtree ( temp_path ) cls . _DEFAULT_REPOSITORY = cls ( cls . _DEFAULT_TRUST_STORES_PATH ) return cls . _DEFAULT_REPOSITORY
Update the default trust stores used by SSLyze.

        The latest stores will be downloaded from https://github.com/nabla-c0d3/trust_stores_observatory.