From a91cc23d4783e7b94365113516e1056d3363e38e Mon Sep 17 00:00:00 2001 From: JustAnotherArchivist Date: Sat, 11 Jul 2020 22:05:30 +0000 Subject: [PATCH] Simplify get_software_info's signature to just the extra dependency packages As a consequence, SpecDependencies.extra can now be any data type that can be put into JSON; unhashable types previously caused a crash due to the lru_cache. --- qwarc/utils.py | 4 ++-- qwarc/warc.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/qwarc/utils.py b/qwarc/utils.py index 93fd624..a8f292a 100644 --- a/qwarc/utils.py +++ b/qwarc/utils.py @@ -209,11 +209,11 @@ def _get_dependency_versions(*pkgs): @functools.lru_cache(maxsize = 1) -def get_software_info(specFile, specDependencies): +def get_software_info(specDependencyPackages): # Based on crocoite.utils, authored by PromyLOPh in commit 6ccd72ab on 2018-12-08 under MIT licence baseDependencyPackageVersions = list(_get_dependency_versions(__package__)) baseDependencyPackages = set(x[0] for x in baseDependencyPackageVersions) - specDependencyPackageVersions = list(_get_dependency_versions(*specDependencies.packages)) + specDependencyPackageVersions = list(_get_dependency_versions(*specDependencyPackages)) return { 'platform': platform.platform(), 'python': { diff --git a/qwarc/warc.py b/qwarc/warc.py index 8e71ee8..8e292c2 100644 --- a/qwarc/warc.py +++ b/qwarc/warc.py @@ -68,7 +68,7 @@ class WARC: def _write_warcinfo_record(self): data = { - 'software': qwarc.utils.get_software_info(self._specFile, self._specDependencies), + 'software': qwarc.utils.get_software_info(self._specDependencies.packages), 'command': self._command, 'files': { 'spec': self._specFile,