Browse Source

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.
master
JustAnotherArchivist 3 years ago
parent
commit
a91cc23d47
2 changed files with 3 additions and 3 deletions
  1. +2
    -2
      qwarc/utils.py
  2. +1
    -1
      qwarc/warc.py

+ 2
- 2
qwarc/utils.py View File

@@ -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': {


+ 1
- 1
qwarc/warc.py View File

@@ -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,


Loading…
Cancel
Save