Files
app-catalog-felhom.eu/audits/persistence-sweep-2026-08-02/evidence/crafty-controller/probe.json
T
admin 2b22a23d60 persistence sweep: 53 templates measured; gramps-web + wishlist fixed; runtime gate added
Campaign 10's R-156 found papra writing its database into the container's writable layer while the
volume the template preserves stayed empty — a backup that completes, verifies, and contains
nothing. papra was never the point: nothing anywhere checked that the folder a template preserves
is the folder the app writes to. All 53 templates have now been measured live.

43 CLEAN / 3 BROKEN / 7 UNDETERMINED. UNDETERMINED is counted separately, each with its reason,
and never folded into CLEAN.

FIXED (neither app is deployed anywhere, so nothing was stranded):
- gramps-web mounted /app/data, /app/media, /tmp — and /app/data is a path the application never
  writes. Its accounts database and ITS FAMILY TREE both landed in the writable layer while
  gramps_data was tarred nightly as an empty directory. Now persists the eight paths the image's
  own environment names, matching upstream's reference compose. Proven: users.sqlite and the
  family-tree files survive a redeploy byte-identical, same inode.
- wishlist mounted wishlist_data:/data, another path the app never writes; prod.db landed in the
  ANONYMOUS volume from the image's VOLUME directive — absent from ResolveDockerVolumeNames, so
  never backed up, and orphaned by a redeploy. Now mounts /usr/src/app/data + /usr/src/app/uploads.
  Proven: prod.db byte-identical, same inode, across a redeploy.

Every corrected path confirmed by two independent sources — the shipped image's own
environment/Config.Volumes and upstream's reference compose — never inferred from a directory name.

papra is NOT fixed. It is live on one box, and changing the mount target makes the next compose up
recreate the container and destroy the writable layer its documents live in. The fix is prepared
and proven in the scratch guest (current: db.sqlite differs after a redeploy, so a real account
created via the API is lost; fixed: byte-identical, it survives). Referred to the operator with the
two options; no migration written.

NEW GATE scripts/check-volume-persistence.py — the third catalog gate and the only RUNTIME one.
This class is invisible to static analysis, measured not assumed: a static audit of all 53 composes
reports the catalog clean AND reports papra clean. Exit 0 clean / 1 REFUSED / 2 undecided. It
refuses to report at all unless it has just re-proven itself in both directions against two canary
templates that differ only in which path the volume mounts at, so every run carries a live
demonstration of R-156 and of its fix. No docker exec anywhere (Campaign 7 §1.1). 44 fixture tests
driving check(), the function __main__ calls; every rule red-proofed.

Enforcement is convention, not CI — this repo has no CI. Stated plainly in the report; raising it
is proposed as R-160.

Report, per-app evidence, proofs and proposed register entries (R-158..R-161, NOT filed — felhom.eu
is fenced this session): audits/persistence-sweep-2026-08-02/
2026-08-02 12:21:30 +02:00

6433 lines
185 KiB
JSON

{
"probe": {
"app": "crafty-controller",
"containers": [
{
"diff_added": 166,
"diff_benign_db_touches": [],
"diff_data_dirs": [],
"diff_other_dirs": [
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/",
"files": [
"usr",
"crafty"
]
},
{
"added": [
"import",
"servers",
"backups",
"logs"
],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty",
"files": [
"import",
"servers",
"backups",
"logs"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv",
"files": [
"pyvenv.cfg",
"bin",
"include",
"lib"
]
},
{
"added": [],
"changed_count": 14,
"db_signature": false,
"dir": "/crafty/.venv/bin",
"files": [
"pip",
"activate.fish",
"cbor2",
"jsonschema",
"normalizer",
"pip3.12",
"activate",
"activate.csh",
"httpx",
"idna",
"Activate.ps1",
"distro",
"pip3",
"pwiz.py"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/include",
"files": [
"python3.12"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib",
"files": [
"python3.12"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12",
"files": [
"site-packages"
]
},
{
"added": [],
"changed_count": 40,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages",
"files": [
"pip-26.1.2.dist-info",
"playhouse",
"psutil",
"pyotp-2.9.0.dist-info",
"python_dateutil-2.9.0.post0.dist-info",
"certifi-2026.5.20.dist-info",
"colorama",
"packaging",
"pip",
"asn1crypto-1.5.1.dist-info",
"markupsafe-3.0.3.dist-info",
"setuptools",
"pycparser-3.0.dist-info",
"pytz",
"pytz-2026.2.dist-info",
"rpds_py-2026.5.1.dist-info",
"tzlocal",
"cryptography-48.0.0.dist-info",
"distro-1.8.0.dist-info",
"termcolor.py",
"charset_normalizer-3.4.7.dist-info",
"_argon2_cffi_bindings",
"anyio-4.9.0.dist-info",
"asn1crypto",
"attrs",
"tornado-6.5.4.dist-info",
"psutil-5.9.5.dist-info",
"referencing",
"81d243bd2c585b0f4821__mypyc.cpython-312-x86_64-linux-gnu.so",
"aiofiles-24.1.0.dist-info",
"jinja2-3.1.6.dist-info",
"requests",
"charset_normalizer",
"jinja2",
"jsonschema",
"orjson",
"pillow.libs",
"pwiz.py",
"cryptography",
"httpcore-1.0.9.dist-info"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/APScheduler-3.10.4.dist-info",
"files": [
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"entry_points.txt",
"top_level.txt",
"INSTALLER",
"LICENSE.txt"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/OpenSSL",
"files": [
"__init__.py",
"_util.py",
"crypto.py",
"py.typed",
"SSL.py",
"debug.py",
"rand.py",
"version.py"
]
},
{
"added": [],
"changed_count": 40,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/PIL",
"files": [
"_imagingcms.cpython-312-x86_64-linux-gnu.so",
"ImageChops.py",
"XpmImagePlugin.py",
"report.py",
"_tkinter_finder.py",
"GimpGradientFile.py",
"IcoImagePlugin.py",
"AvifImagePlugin.py",
"ImageMath.py",
"MpoImagePlugin.py",
"PcxImagePlugin.py",
"ImageTk.py",
"PpmImagePlugin.py",
"_imagingmorph.cpython-312-x86_64-linux-gnu.so",
"ImageOps.py",
"ImageSequence.py",
"ImageText.py",
"SgiImagePlugin.py",
"_imagingmorph.pyi",
"GdImageFile.py",
"ContainerIO.py",
"ExifTags.py",
"ImageDraw2.py",
"McIdasImagePlugin.py",
"PcfFontFile.py",
"_imagingft.cpython-312-x86_64-linux-gnu.so",
"ImageStat.py",
"Jpeg2KImagePlugin.py",
"ImageWin.py",
"MpegImagePlugin.py",
"__init__.py",
"_imagingmath.pyi",
"GbrImagePlugin.py",
"ImageDraw.py",
"PaletteFile.py",
"SunImagePlugin.py",
"DcxImagePlugin.py",
"PsdImagePlugin.py",
"WebPImagePlugin.py",
"DdsImagePlugin.py"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/PyJWT-2.8.0.dist-info",
"files": [
"AUTHORS.rst",
"INSTALLER",
"LICENSE",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"top_level.txt"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/PyYAML-6.0.1.dist-info",
"files": [
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"top_level.txt",
"INSTALLER",
"LICENSE"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/_argon2_cffi_bindings",
"files": [
"__init__.py",
"_ffi.abi3.so",
"_ffi_build.py"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/_distutils_hack",
"files": [
"__init__.py",
"override.py"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/_yaml",
"files": [
"__init__.py"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/aiofiles",
"files": [
"base.py",
"os.py",
"ospath.py",
"tempfile",
"threadpool",
"__init__.py"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/aiofiles-24.1.0.dist-info",
"files": [
"INSTALLER",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"licenses"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/aiofiles-24.1.0.dist-info/licenses",
"files": [
"LICENSE",
"NOTICE"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/aiofiles/tempfile",
"files": [
"__init__.py",
"temptypes.py"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/aiofiles/threadpool",
"files": [
"text.py",
"utils.py",
"__init__.py",
"binary.py"
]
},
{
"added": [],
"changed_count": 12,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/anyio",
"files": [
"__init__.py",
"_backends",
"streams",
"to_interpreter.py",
"to_process.py",
"_core",
"abc",
"from_thread.py",
"lowlevel.py",
"py.typed",
"pytest_plugin.py",
"to_thread.py"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/anyio-4.9.0.dist-info",
"files": [
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"entry_points.txt",
"top_level.txt",
"INSTALLER",
"LICENSE"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/anyio/_backends",
"files": [
"_asyncio.py",
"_trio.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 15,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/anyio/_core",
"files": [
"__init__.py",
"_synchronization.py",
"_eventloop.py",
"_exceptions.py",
"_fileio.py",
"_signals.py",
"_sockets.py",
"_subprocesses.py",
"_tasks.py",
"_testing.py",
"_asyncio_selector_thread.py",
"_resources.py",
"_streams.py",
"_tempfile.py",
"_typedattr.py"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/anyio/abc",
"files": [
"_tasks.py",
"_testing.py",
"__init__.py",
"_subprocesses.py",
"_eventloop.py",
"_resources.py",
"_sockets.py",
"_streams.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/anyio/streams",
"files": [
"buffered.py",
"file.py",
"memory.py",
"stapled.py",
"text.py",
"tls.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/apscheduler",
"files": [
"schedulers",
"util.py",
"events.py",
"executors",
"job.py",
"jobstores",
"triggers",
"__init__.py"
]
},
{
"added": [],
"changed_count": 9,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/apscheduler/executors",
"files": [
"__init__.py",
"asyncio.py",
"base_py3.py",
"debug.py",
"pool.py",
"tornado.py",
"base.py",
"gevent.py",
"twisted.py"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/apscheduler/jobstores",
"files": [
"base.py",
"memory.py",
"redis.py",
"rethinkdb.py",
"__init__.py",
"mongodb.py",
"sqlalchemy.py",
"zookeeper.py"
]
},
{
"added": [],
"changed_count": 9,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/apscheduler/schedulers",
"files": [
"tornado.py",
"twisted.py",
"__init__.py",
"background.py",
"blocking.py",
"qt.py",
"asyncio.py",
"base.py",
"gevent.py"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/apscheduler/triggers",
"files": [
"combining.py",
"cron",
"date.py",
"interval.py",
"__init__.py",
"base.py"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/apscheduler/triggers/cron",
"files": [
"__init__.py",
"expressions.py",
"fields.py"
]
},
{
"added": [],
"changed_count": 10,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/argon2",
"files": [
"__init__.py",
"__main__.py",
"_legacy.py",
"_password_hasher.py",
"_utils.py",
"low_level.py",
"profiles.py",
"py.typed",
"_typing.py",
"exceptions.py"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/argon2_cffi-23.1.0.dist-info",
"files": [
"licenses",
"INSTALLER",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/argon2_cffi-23.1.0.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/argon2_cffi_bindings-25.1.0.dist-info",
"files": [
"RECORD",
"WHEEL",
"licenses",
"top_level.txt",
"INSTALLER",
"METADATA"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/argon2_cffi_bindings-25.1.0.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 23,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/asn1crypto",
"files": [
"version.py",
"_int.py",
"_ordereddict.py",
"_teletex_codec.py",
"core.py",
"pdf.py",
"x509.py",
"_errors.py",
"crl.py",
"parser.py",
"util.py",
"csr.py",
"__init__.py",
"_types.py",
"cms.py",
"keys.py",
"pem.py",
"pkcs12.py",
"tsp.py",
"_inet.py",
"_iri.py",
"algos.py",
"ocsp.py"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/asn1crypto-1.5.1.dist-info",
"files": [
"INSTALLER",
"LICENSE",
"METADATA",
"RECORD",
"WHEEL",
"top_level.txt"
]
},
{
"added": [],
"changed_count": 23,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/attr",
"files": [
"validators.pyi",
"__init__.pyi",
"converters.pyi",
"filters.pyi",
"setters.py",
"__init__.py",
"_config.py",
"_version_info.py",
"converters.py",
"exceptions.pyi",
"filters.py",
"setters.pyi",
"_cmp.py",
"_cmp.pyi",
"_compat.py",
"_next_gen.py",
"_typing_compat.pyi",
"exceptions.py",
"py.typed",
"_funcs.py",
"_make.py",
"_version_info.pyi",
"validators.py"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/attrs",
"files": [
"py.typed",
"setters.py",
"__init__.py",
"__init__.pyi",
"converters.py",
"exceptions.py",
"filters.py",
"validators.py"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/attrs-26.1.0.dist-info",
"files": [
"INSTALLER",
"METADATA",
"RECORD",
"WHEEL",
"licenses"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/attrs-26.1.0.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cached_property-1.5.2.dist-info",
"files": [
"AUTHORS.rst",
"INSTALLER",
"LICENSE",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"top_level.txt"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cbor2",
"files": [
"_cbor2.cpython-312-x86_64-linux-gnu.so",
"py.typed",
"tool.py",
"__init__.py",
"__init__.pyi"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cbor2-6.1.2.dist-info",
"files": [
"entry_points.txt",
"licenses",
"top_level.txt",
"INSTALLER",
"METADATA",
"RECORD",
"WHEEL"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cbor2-6.1.2.dist-info/licenses",
"files": [
"LICENSE.txt"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/certifi",
"files": [
"__init__.py",
"__main__.py",
"cacert.pem",
"core.py",
"py.typed"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/certifi-2026.5.20.dist-info",
"files": [
"WHEEL",
"licenses",
"top_level.txt",
"INSTALLER",
"METADATA",
"RECORD"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/certifi-2026.5.20.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 22,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cffi",
"files": [
"cffi_opcode.py",
"error.py",
"lock.py",
"recompiler.py",
"verifier.py",
"_cffi_errors.h",
"_embedding.h",
"api.py",
"commontypes.py",
"pkgconfig.py",
"vengine_cpy.py",
"_cffi_include.h",
"_imp_emulation.py",
"cparser.py",
"model.py",
"parse_c_type.h",
"setuptools_ext.py",
"ffiplatform.py",
"vengine_gen.py",
"__init__.py",
"_shimmed_dist_utils.py",
"backend_ctypes.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info",
"files": [
"licenses",
"top_level.txt",
"INSTALLER",
"METADATA",
"RECORD",
"WHEEL",
"entry_points.txt"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cffi-2.0.0.dist-info/licenses",
"files": [
"AUTHORS",
"LICENSE"
]
},
{
"added": [],
"changed_count": 14,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/charset_normalizer",
"files": [
"cd.py",
"legacy.py",
"utils.py",
"version.py",
"api.py",
"md.py",
"models.py",
"py.typed",
"__init__.py",
"__main__.py",
"cli",
"md.cpython-312-x86_64-linux-gnu.so",
"cd.cpython-312-x86_64-linux-gnu.so",
"constant.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info",
"files": [
"METADATA",
"RECORD",
"WHEEL",
"entry_points.txt",
"licenses",
"top_level.txt",
"INSTALLER"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/charset_normalizer-3.4.7.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/charset_normalizer/cli",
"files": [
"__init__.py",
"__main__.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/colorama",
"files": [
"ansi.py",
"ansitowin32.py",
"initialise.py",
"tests",
"win32.py",
"winterm.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/colorama-0.4.6.dist-info",
"files": [
"RECORD",
"REQUESTED",
"WHEEL",
"licenses",
"INSTALLER",
"METADATA"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/colorama-0.4.6.dist-info/licenses",
"files": [
"LICENSE.txt"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/colorama/tests",
"files": [
"__init__.py",
"ansi_test.py",
"ansitowin32_test.py",
"initialise_test.py",
"isatty_test.py",
"utils.py",
"winterm_test.py"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/croniter",
"files": [
"croniter.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/croniter-1.4.1.dist-info",
"files": [
"top_level.txt",
"INSTALLER",
"LICENSE",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography",
"files": [
"__about__.py",
"exceptions.py",
"fernet.py",
"hazmat",
"py.typed",
"__init__.py",
"utils.py",
"x509"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography-48.0.0.dist-info",
"files": [
"INSTALLER",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"licenses",
"sboms"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography-48.0.0.dist-info/licenses",
"files": [
"LICENSE",
"LICENSE.APACHE",
"LICENSE.BSD"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography-48.0.0.dist-info/sboms",
"files": [
"cryptography-rust.cyclonedx.json",
"sbom.json"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography/hazmat",
"files": [
"_oid.py",
"asn1",
"backends",
"bindings",
"decrepit",
"primitives",
"__init__.py"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography/hazmat/asn1",
"files": [
"__init__.py",
"asn1.py"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography/hazmat/backends",
"files": [
"__init__.py",
"openssl"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography/hazmat/backends/openssl",
"files": [
"__init__.py",
"backend.py"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography/hazmat/bindings",
"files": [
"__init__.py",
"_rust",
"_rust.abi3.so",
"openssl"
]
},
{
"added": [],
"changed_count": 11,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust",
"files": [
"test_support.pyi",
"exceptions.pyi",
"ocsp.pyi",
"openssl",
"pkcs12.pyi",
"x509.pyi",
"__init__.pyi",
"_openssl.pyi",
"asn1.pyi",
"declarative_asn1.pyi",
"pkcs7.pyi"
]
},
{
"added": [],
"changed_count": 20,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/_rust/openssl",
"files": [
"hpke.pyi",
"ciphers.pyi",
"ed448.pyi",
"mldsa.pyi",
"mlkem.pyi",
"kdf.pyi",
"keys.pyi",
"__init__.pyi",
"aead.pyi",
"dh.pyi",
"dsa.pyi",
"ec.pyi",
"ed25519.pyi",
"cmac.pyi",
"hashes.pyi",
"hmac.pyi",
"poly1305.pyi",
"rsa.pyi",
"x25519.pyi",
"x448.pyi"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography/hazmat/bindings/openssl",
"files": [
"binding.py",
"__init__.py",
"_conditional.py"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography/hazmat/decrepit",
"files": [
"ciphers",
"__init__.py"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography/hazmat/decrepit/ciphers",
"files": [
"__init__.py",
"algorithms.py",
"modes.py"
]
},
{
"added": [],
"changed_count": 18,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography/hazmat/primitives",
"files": [
"hmac.py",
"poly1305.py",
"serialization",
"twofactor",
"_modes.py",
"_serialization.py",
"ciphers",
"constant_time.py",
"hpke.py",
"padding.py",
"_asymmetric.py",
"_cipheralgorithm.py",
"cmac.py",
"keywrap.py",
"kdf",
"__init__.py",
"asymmetric",
"hashes.py"
]
},
{
"added": [],
"changed_count": 14,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/asymmetric",
"files": [
"utils.py",
"__init__.py",
"mldsa.py",
"mlkem.py",
"x448.py",
"ed448.py",
"ec.py",
"padding.py",
"rsa.py",
"types.py",
"dh.py",
"dsa.py",
"ed25519.py",
"x25519.py"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/ciphers",
"files": [
"aead.py",
"algorithms.py",
"base.py",
"modes.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/kdf",
"files": [
"__init__.py",
"argon2.py",
"pbkdf2.py",
"scrypt.py",
"x963kdf.py",
"concatkdf.py",
"hkdf.py",
"kbkdf.py"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/serialization",
"files": [
"pkcs7.py",
"ssh.py",
"__init__.py",
"base.py",
"pkcs12.py"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography/hazmat/primitives/twofactor",
"files": [
"__init__.py",
"hotp.py",
"totp.py"
]
},
{
"added": [],
"changed_count": 9,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/cryptography/x509",
"files": [
"oid.py",
"base.py",
"certificate_transparency.py",
"name.py",
"verification.py",
"__init__.py",
"extensions.py",
"general_name.py",
"ocsp.py"
]
},
{
"added": [],
"changed_count": 11,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/dateutil",
"files": [
"zoneinfo",
"__init__.py",
"_common.py",
"relativedelta.py",
"rrule.py",
"tzwin.py",
"_version.py",
"easter.py",
"parser",
"tz",
"utils.py"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/dateutil/parser",
"files": [
"__init__.py",
"_parser.py",
"isoparser.py"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/dateutil/tz",
"files": [
"__init__.py",
"_common.py",
"_factories.py",
"tz.py",
"win.py"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/dateutil/zoneinfo",
"files": [
"dateutil-zoneinfo.tar.gz",
"rebuild.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/distro",
"files": [
"distro.py",
"py.typed",
"__init__.py",
"__main__.py"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/distro-1.8.0.dist-info",
"files": [
"REQUESTED",
"WHEEL",
"entry_points.txt",
"top_level.txt",
"INSTALLER",
"LICENSE",
"METADATA",
"RECORD"
]
},
{
"added": [],
"changed_count": 12,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/h11",
"files": [
"_readers.py",
"_receivebuffer.py",
"_state.py",
"_version.py",
"_writers.py",
"py.typed",
"__init__.py",
"_connection.py",
"_events.py",
"_headers.py",
"_util.py",
"_abnf.py"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/h11-0.16.0.dist-info",
"files": [
"INSTALLER",
"METADATA",
"RECORD",
"WHEEL",
"licenses",
"top_level.txt"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/h11-0.16.0.dist-info/licenses",
"files": [
"LICENSE.txt"
]
},
{
"added": [],
"changed_count": 12,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/httpcore",
"files": [
"_ssl.py",
"_utils.py",
"_backends",
"_models.py",
"_sync",
"_synchronization.py",
"_trace.py",
"py.typed",
"__init__.py",
"_api.py",
"_async",
"_exceptions.py"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/httpcore-1.0.9.dist-info",
"files": [
"METADATA",
"RECORD",
"WHEEL",
"licenses",
"INSTALLER"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/httpcore-1.0.9.dist-info/licenses",
"files": [
"LICENSE.md"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/httpcore/_async",
"files": [
"interfaces.py",
"connection.py",
"http2.py",
"http_proxy.py",
"socks_proxy.py",
"__init__.py",
"connection_pool.py",
"http11.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/httpcore/_backends",
"files": [
"anyio.py",
"auto.py",
"base.py",
"mock.py",
"sync.py",
"trio.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/httpcore/_sync",
"files": [
"connection_pool.py",
"http_proxy.py",
"__init__.py",
"connection.py",
"http11.py",
"http2.py",
"interfaces.py",
"socks_proxy.py"
]
},
{
"added": [],
"changed_count": 19,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/httpx",
"files": [
"_urls.py",
"_utils.py",
"py.typed",
"__init__.py",
"_content.py",
"_decoders.py",
"_exceptions.py",
"_config.py",
"_status_codes.py",
"_models.py",
"_multipart.py",
"__version__.py",
"_auth.py",
"_client.py",
"_main.py",
"_urlparse.py",
"_api.py",
"_transports",
"_types.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/httpx-0.28.1.dist-info",
"files": [
"INSTALLER",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"entry_points.txt",
"licenses"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/httpx-0.28.1.dist-info/licenses",
"files": [
"LICENSE.md"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/httpx/_transports",
"files": [
"__init__.py",
"asgi.py",
"base.py",
"default.py",
"mock.py",
"wsgi.py"
]
},
{
"added": [],
"changed_count": 11,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/idna",
"files": [
"__init__.py",
"__main__.py",
"codec.py",
"compat.py",
"core.py",
"package_data.py",
"uts46data.py",
"cli.py",
"idnadata.py",
"intranges.py",
"py.typed"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/idna-3.18.dist-info",
"files": [
"entry_points.txt",
"licenses",
"INSTALLER",
"METADATA",
"RECORD",
"WHEEL"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/idna-3.18.dist-info/licenses",
"files": [
"LICENSE.md"
]
},
{
"added": [],
"changed_count": 26,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jinja2",
"files": [
"py.typed",
"_identifier.py",
"debug.py",
"defaults.py",
"exceptions.py",
"ext.py",
"lexer.py",
"optimizer.py",
"async_utils.py",
"filters.py",
"runtime.py",
"sandbox.py",
"tests.py",
"utils.py",
"visitor.py",
"bccache.py",
"compiler.py",
"constants.py",
"meta.py",
"__init__.py",
"environment.py",
"idtracking.py",
"loaders.py",
"nativetypes.py",
"nodes.py",
"parser.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jinja2-3.1.6.dist-info",
"files": [
"entry_points.txt",
"licenses",
"INSTALLER",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jinja2-3.1.6.dist-info/licenses",
"files": [
"LICENSE.txt"
]
},
{
"added": [],
"changed_count": 14,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jsonschema",
"files": [
"__init__.py",
"_format.py",
"cli.py",
"benchmarks",
"exceptions.py",
"validators.py",
"_keywords.py",
"_legacy_keywords.py",
"_types.py",
"_typing.py",
"__main__.py",
"_utils.py",
"protocols.py",
"tests"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jsonschema-4.19.1.dist-info",
"files": [
"licenses",
"INSTALLER",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"entry_points.txt"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jsonschema-4.19.1.dist-info/licenses",
"files": [
"COPYING"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jsonschema/benchmarks",
"files": [
"issue232",
"subcomponents.py",
"unused_registry.py",
"validator_creation.py",
"issue232.py",
"json_schema_test_suite.py",
"nested_schemas.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jsonschema/benchmarks/issue232",
"files": [
"issue.json"
]
},
{
"added": [],
"changed_count": 11,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jsonschema/tests",
"files": [
"_suite.py",
"test_deprecations.py",
"test_exceptions.py",
"test_format.py",
"test_types.py",
"test_utils.py",
"fuzz_validate.py",
"test_cli.py",
"test_jsonschema_test_suite.py",
"test_validators.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jsonschema_specifications",
"files": [
"_core.py",
"schemas",
"tests",
"__init__.py"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jsonschema_specifications-2025.9.1.dist-info",
"files": [
"licenses",
"INSTALLER",
"METADATA",
"RECORD",
"WHEEL"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jsonschema_specifications-2025.9.1.dist-info/licenses",
"files": [
"COPYING"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jsonschema_specifications/schemas",
"files": [
"draft7",
"draft201909",
"draft202012",
"draft3",
"draft4",
"draft6"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jsonschema_specifications/schemas/draft201909",
"files": [
"metaschema.json",
"vocabularies"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jsonschema_specifications/schemas/draft201909/vocabularies",
"files": [
"validation",
"applicator",
"content",
"core",
"format",
"meta-data"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jsonschema_specifications/schemas/draft202012",
"files": [
"vocabularies",
"metaschema.json"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jsonschema_specifications/schemas/draft202012/vocabularies",
"files": [
"applicator",
"content",
"core",
"format-annotation",
"format-assertion",
"meta-data",
"unevaluated",
"validation"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jsonschema_specifications/schemas/draft3",
"files": [
"metaschema.json"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jsonschema_specifications/schemas/draft4",
"files": [
"metaschema.json"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jsonschema_specifications/schemas/draft6",
"files": [
"metaschema.json"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jsonschema_specifications/schemas/draft7",
"files": [
"metaschema.json"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jsonschema_specifications/tests",
"files": [
"__init__.py",
"test_jsonschema_specifications.py"
]
},
{
"added": [],
"changed_count": 13,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/jwt",
"files": [
"py.typed",
"types.py",
"utils.py",
"warnings.py",
"__init__.py",
"algorithms.py",
"api_jwk.py",
"api_jws.py",
"api_jwt.py",
"exceptions.py",
"jwk_set_cache.py",
"help.py",
"jwks_client.py"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/libgravatar",
"files": [
"__init__.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/libgravatar-1.0.4.dist-info",
"files": [
"REQUESTED",
"WHEEL",
"top_level.txt",
"INSTALLER",
"LICENSE",
"METADATA",
"RECORD"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/markupsafe",
"files": [
"__init__.py",
"_native.py",
"_speedups.c",
"_speedups.cpython-312-x86_64-linux-gnu.so",
"_speedups.pyi",
"py.typed"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/markupsafe-3.0.3.dist-info",
"files": [
"WHEEL",
"licenses",
"top_level.txt",
"INSTALLER",
"METADATA",
"RECORD"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/markupsafe-3.0.3.dist-info/licenses",
"files": [
"LICENSE.txt"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/nh3",
"files": [
"__init__.pyi",
"nh3.abi3.so",
"py.typed",
"__init__.py"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/nh3-0.2.14.dist-info",
"files": [
"INSTALLER",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/orjson",
"files": [
"orjson.cpython-312-x86_64-linux-gnu.so",
"py.typed",
"__init__.py",
"__init__.pyi"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/orjson-3.11.4.dist-info",
"files": [
"licenses",
"INSTALLER",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/orjson-3.11.4.dist-info/licenses",
"files": [
"LICENSE-APACHE",
"LICENSE-MIT"
]
},
{
"added": [],
"changed_count": 16,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/packaging",
"files": [
"py.typed",
"__init__.py",
"_musllinux.py",
"_structures.py",
"licenses",
"metadata.py",
"tags.py",
"version.py",
"_tokenizer.py",
"utils.py",
"_elffile.py",
"_parser.py",
"markers.py",
"_manylinux.py",
"requirements.py",
"specifiers.py"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/packaging-24.2.dist-info",
"files": [
"INSTALLER",
"LICENSE",
"LICENSE.APACHE",
"LICENSE.BSD",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/packaging/licenses",
"files": [
"__init__.py",
"_spdx.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/peewee-3.13.0.dist-info",
"files": [
"WHEEL",
"licenses",
"top_level.txt",
"INSTALLER",
"METADATA",
"RECORD",
"REQUESTED"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/peewee-3.13.0.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 9,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pillow-12.2.0.dist-info",
"files": [
"RECORD",
"licenses",
"sboms",
"INSTALLER",
"REQUESTED",
"WHEEL",
"top_level.txt",
"zip-safe",
"METADATA"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pillow-12.2.0.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pillow-12.2.0.dist-info/sboms",
"files": [
"auditwheel.cdx.json"
]
},
{
"added": [],
"changed_count": 18,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pillow.libs",
"files": [
"libsharpyuv-0bacc318.so.0.1.2",
"libtiff-f4bc73ff.so.6.2.0",
"libwebp-67ee3789.so.7.2.0",
"libwebpdemux-eeb71312.so.2.0.17",
"libwebpmux-20a90b09.so.3.1.2",
"libbrotlicommon-785b7a00.so.1.2.0",
"libharfbuzz-ef65cc8a.so.0.61321.0",
"libjpeg-8296d2fa.so.62.4.0",
"libpng16-65c953c0.so.16.56.0",
"libxcb-bac6ebc8.so.1.1.0",
"libbrotlidec-08d35d18.so.1.2.0",
"libzstd-6ea785c0.so.1.5.7",
"libfreetype-d2d71ad9.so.6.20.6",
"liblcms2-545f6561.so.2.0.18",
"libopenjp2-f3576751.so.2.5.4",
"libXau-154567c4.so.6.0.0",
"libavif-a883386a.so.16.4.1",
"liblzma-3c942967.so.5.8.3"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip",
"files": [
"__init__.py",
"__main__.py",
"__pip-runner__.py",
"_internal",
"_vendor",
"py.typed"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info",
"files": [
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"entry_points.txt",
"licenses",
"INSTALLER"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses",
"files": [
"AUTHORS.txt",
"LICENSE.txt",
"src"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src",
"files": [
"pip"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip",
"files": [
"_vendor"
]
},
{
"added": [],
"changed_count": 18,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor",
"files": [
"cachecontrol",
"certifi",
"tomli_w",
"truststore",
"urllib3",
"distlib",
"packaging",
"pkg_resources",
"pygments",
"resolvelib",
"rich",
"tomli",
"idna",
"platformdirs",
"requests",
"distro",
"msgpack",
"pyproject_hooks"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/cachecontrol",
"files": [
"LICENSE.txt"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/certifi",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/distlib",
"files": [
"LICENSE.txt"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/distro",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/idna",
"files": [
"LICENSE.md"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/msgpack",
"files": [
"COPYING"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/packaging",
"files": [
"LICENSE",
"LICENSE.APACHE",
"LICENSE.BSD"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/pkg_resources",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/platformdirs",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/pygments",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/pyproject_hooks",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/requests",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/resolvelib",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/rich",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/tomli",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/tomli_w",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/truststore",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip-26.1.2.dist-info/licenses/src/pip/_vendor/urllib3",
"files": [
"LICENSE.txt"
]
},
{
"added": [],
"changed_count": 22,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_internal",
"files": [
"build_env.py",
"cache.py",
"configuration.py",
"locations",
"models",
"operations",
"resolution",
"__init__.py",
"commands",
"distributions",
"index",
"main.py",
"network",
"pyproject.py",
"req",
"cli",
"self_outdated_check.py",
"vcs",
"exceptions.py",
"metadata",
"utils",
"wheel_builder.py"
]
},
{
"added": [],
"changed_count": 13,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_internal/cli",
"files": [
"__init__.py",
"cmdoptions.py",
"main_parser.py",
"progress_bars.py",
"req_command.py",
"spinners.py",
"status_codes.py",
"autocompletion.py",
"base_command.py",
"command_context.py",
"index_command.py",
"main.py",
"parser.py"
]
},
{
"added": [],
"changed_count": 19,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_internal/commands",
"files": [
"check.py",
"completion.py",
"hash.py",
"inspect.py",
"install.py",
"configuration.py",
"debug.py",
"download.py",
"list.py",
"lock.py",
"search.py",
"uninstall.py",
"freeze.py",
"help.py",
"show.py",
"wheel.py",
"__init__.py",
"cache.py",
"index.py"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_internal/distributions",
"files": [
"installed.py",
"sdist.py",
"wheel.py",
"__init__.py",
"base.py"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_internal/index",
"files": [
"__init__.py",
"collector.py",
"package_finder.py",
"sources.py"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_internal/locations",
"files": [
"__init__.py",
"_distutils.py",
"_sysconfig.py",
"base.py"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_internal/metadata",
"files": [
"_json.py",
"base.py",
"importlib",
"pkg_resources.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_internal/metadata/importlib",
"files": [
"_compat.py",
"_dists.py",
"_envs.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 13,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_internal/models",
"files": [
"__init__.py",
"direct_url.py",
"format_control.py",
"link.py",
"release_control.py",
"scheme.py",
"search_scope.py",
"candidate.py",
"index.py",
"installation_report.py",
"selection_prefs.py",
"target_python.py",
"wheel.py"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_internal/network",
"files": [
"__init__.py",
"auth.py",
"lazy_wheel.py",
"utils.py",
"cache.py",
"download.py",
"session.py",
"xmlrpc.py"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_internal/operations",
"files": [
"install",
"prepare.py",
"__init__.py",
"build",
"check.py",
"freeze.py"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_internal/operations/build",
"files": [
"__init__.py",
"build_tracker.py",
"metadata.py",
"metadata_editable.py",
"wheel.py",
"wheel_editable.py"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_internal/operations/install",
"files": [
"wheel.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_internal/req",
"files": [
"__init__.py",
"constructors.py",
"req_file.py",
"req_set.py",
"pep723.py",
"req_dependency_group.py",
"req_install.py",
"req_uninstall.py"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_internal/resolution",
"files": [
"base.py",
"legacy",
"resolvelib",
"__init__.py"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_internal/resolution/legacy",
"files": [
"__init__.py",
"resolver.py"
]
},
{
"added": [],
"changed_count": 9,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib",
"files": [
"__init__.py",
"base.py",
"factory.py",
"found_candidates.py",
"resolver.py",
"candidates.py",
"provider.py",
"reporter.py",
"requirements.py"
]
},
{
"added": [],
"changed_count": 26,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_internal/utils",
"files": [
"temp_dir.py",
"urls.py",
"virtualenv.py",
"wheel.py",
"appdirs.py",
"filesystem.py",
"filetypes.py",
"retry.py",
"subprocess.py",
"_jaraco_text.py",
"_log.py",
"compat.py",
"deprecation.py",
"direct_url_helpers.py",
"hashes.py",
"misc.py",
"unpacking.py",
"__init__.py",
"compatibility_tags.py",
"egg_link.py",
"entrypoints.py",
"glibc.py",
"logging.py",
"packaging.py",
"datetime.py",
"pylock.py"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_internal/vcs",
"files": [
"mercurial.py",
"subversion.py",
"versioncontrol.py",
"__init__.py",
"bazaar.py",
"git.py"
]
},
{
"added": [],
"changed_count": 21,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor",
"files": [
"msgpack",
"pkg_resources",
"resolvelib",
"urllib3",
"vendor.txt",
"README.rst",
"rich",
"cachecontrol",
"distlib",
"idna",
"pygments",
"truststore",
"__init__.py",
"distro",
"packaging",
"platformdirs",
"pyproject_hooks",
"requests",
"tomli",
"tomli_w",
"certifi"
]
},
{
"added": [],
"changed_count": 12,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol",
"files": [
"caches",
"controller.py",
"filewrapper.py",
"heuristics.py",
"LICENSE.txt",
"adapter.py",
"py.typed",
"serialize.py",
"wrapper.py",
"__init__.py",
"_cmd.py",
"cache.py"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches",
"files": [
"file_cache.py",
"redis_cache.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/certifi",
"files": [
"__init__.py",
"__main__.py",
"cacert.pem",
"core.py",
"py.typed",
"LICENSE"
]
},
{
"added": [],
"changed_count": 12,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/distlib",
"files": [
"__init__.py",
"compat.py",
"resources.py",
"t32.exe",
"t64-arm.exe",
"t64.exe",
"w64.exe",
"LICENSE.txt",
"scripts.py",
"util.py",
"w32.exe",
"w64-arm.exe"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/distro",
"files": [
"__main__.py",
"distro.py",
"py.typed",
"LICENSE",
"__init__.py"
]
},
{
"added": [],
"changed_count": 10,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/idna",
"files": [
"py.typed",
"LICENSE.md",
"__init__.py",
"codec.py",
"idnadata.py",
"intranges.py",
"package_data.py",
"uts46data.py",
"compat.py",
"core.py"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/msgpack",
"files": [
"fallback.py",
"COPYING",
"__init__.py",
"exceptions.py",
"ext.py"
]
},
{
"added": [],
"changed_count": 23,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/packaging",
"files": [
"_structures.py",
"errors.py",
"specifiers.py",
"__init__.py",
"_manylinux.py",
"_musllinux.py",
"_tokenizer.py",
"markers.py",
"pylock.py",
"version.py",
"LICENSE.APACHE",
"LICENSE.BSD",
"_elffile.py",
"_parser.py",
"dependency_groups.py",
"direct_url.py",
"utils.py",
"licenses",
"metadata.py",
"py.typed",
"requirements.py",
"tags.py",
"LICENSE"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/packaging/licenses",
"files": [
"__init__.py",
"_spdx.py"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/pkg_resources",
"files": [
"LICENSE",
"__init__.py"
]
},
{
"added": [],
"changed_count": 10,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/platformdirs",
"files": [
"__init__.py",
"__main__.py",
"android.py",
"unix.py",
"version.py",
"windows.py",
"LICENSE",
"api.py",
"macos.py",
"py.typed"
]
},
{
"added": [],
"changed_count": 20,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/pygments",
"files": [
"modeline.py",
"plugin.py",
"style.py",
"filter.py",
"filters",
"formatters",
"lexer.py",
"lexers",
"token.py",
"LICENSE",
"__init__.py",
"formatter.py",
"regexopt.py",
"scanner.py",
"sphinxext.py",
"util.py",
"__main__.py",
"console.py",
"styles",
"unistring.py"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/filters",
"files": [
"__init__.py"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters",
"files": [
"__init__.py",
"_mapping.py"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers",
"files": [
"__init__.py",
"_mapping.py",
"python.py"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/pygments/styles",
"files": [
"_mapping.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks",
"files": [
"_in_process",
"py.typed",
"LICENSE",
"__init__.py",
"_impl.py"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process",
"files": [
"_in_process.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 19,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/requests",
"files": [
"__init__.py",
"certs.py",
"cookies.py",
"models.py",
"sessions.py",
"_internal_utils.py",
"compat.py",
"hooks.py",
"status_codes.py",
"structures.py",
"__version__.py",
"api.py",
"exceptions.py",
"help.py",
"utils.py",
"LICENSE",
"adapters.py",
"auth.py",
"packages.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/resolvelib",
"files": [
"__init__.py",
"providers.py",
"py.typed",
"reporters.py",
"resolvers",
"structs.py",
"LICENSE"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers",
"files": [
"abstract.py",
"criterion.py",
"exceptions.py",
"resolution.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 40,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/rich",
"files": [
"_windows.py",
"abc.py",
"prompt.py",
"table.py",
"terminal_theme.py",
"traceback.py",
"_timer.py",
"box.py",
"spinner.py",
"__init__.py",
"align.py",
"bar.py",
"pager.py",
"screen.py",
"_emoji_replace.py",
"_loop.py",
"_ratio.py",
"_stack.py",
"_wrap.py",
"progress_bar.py",
"_spinners.py",
"columns.py",
"errors.py",
"styled.py",
"_win32_console.py",
"color_triplet.py",
"live.py",
"markup.py",
"protocol.py",
"_palettes.py",
"style.py",
"theme.py",
"_inspect.py",
"_pick.py",
"ansi.py",
"default_styles.py",
"filesize.py",
"_fileno.py",
"color.py",
"rule.py"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/tomli",
"files": [
"_parser.py",
"_re.py",
"_types.py",
"py.typed",
"LICENSE",
"__init__.py"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/tomli_w",
"files": [
"LICENSE",
"__init__.py",
"_writer.py",
"py.typed"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/truststore",
"files": [
"_macos.py",
"_openssl.py",
"_ssl_constants.py",
"_windows.py",
"LICENSE",
"__init__.py",
"py.typed",
"_api.py"
]
},
{
"added": [],
"changed_count": 17,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3",
"files": [
"response.py",
"util",
"_base_connection.py",
"_request_methods.py",
"connection.py",
"connectionpool.py",
"exceptions.py",
"fields.py",
"poolmanager.py",
"py.typed",
"__init__.py",
"_version.py",
"contrib",
"filepost.py",
"http2",
"LICENSE.txt",
"_collections.py"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib",
"files": [
"__init__.py",
"emscripten",
"pyopenssl.py",
"socks.py"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/emscripten",
"files": [
"emscripten_fetch_worker.js",
"fetch.py",
"request.py",
"response.py",
"__init__.py",
"connection.py"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/http2",
"files": [
"__init__.py",
"connection.py",
"probe.py"
]
},
{
"added": [],
"changed_count": 13,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pip/_vendor/urllib3/util",
"files": [
"wait.py",
"__init__.py",
"connection.py",
"ssl_.py",
"ssltransport.py",
"timeout.py",
"url.py",
"util.py",
"proxy.py",
"request.py",
"response.py",
"retry.py",
"ssl_match_hostname.py"
]
},
{
"added": [],
"changed_count": 22,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/playhouse",
"files": [
"fields.py",
"kv.py",
"pool.py",
"sqlite_udf.py",
"apsw_ext.py",
"cockroachdb.py",
"dataset.py",
"mysql_ext.py",
"reflection.py",
"sqlcipher_ext.py",
"db_url.py",
"flask_utils.py",
"hybrid.py",
"postgres_ext.py",
"shortcuts.py",
"sqlite_changelog.py",
"sqlite_ext.py",
"sqliteq.py",
"__init__.py",
"migrate.py",
"signals.py",
"test_utils.py"
]
},
{
"added": [],
"changed_count": 22,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/prometheus_client",
"files": [
"exposition.py",
"mmap_dict.py",
"utils.py",
"values.py",
"multiprocess.py",
"py.typed",
"context_managers.py",
"core.py",
"metrics_core.py",
"parser.py",
"platform_collector.py",
"samples.py",
"twisted",
"__init__.py",
"asgi.py",
"bridge",
"gc_collector.py",
"metrics.py",
"openmetrics",
"process_collector.py",
"registry.py",
"decorator.py"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/prometheus_client-0.17.1.dist-info",
"files": [
"REQUESTED",
"WHEEL",
"top_level.txt",
"INSTALLER",
"LICENSE",
"METADATA",
"NOTICE",
"RECORD"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/prometheus_client/bridge",
"files": [
"__init__.py",
"graphite.py"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/prometheus_client/openmetrics",
"files": [
"exposition.py",
"parser.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/prometheus_client/twisted",
"files": [
"_exposition.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 13,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/psutil",
"files": [
"_common.py",
"_psaix.py",
"_pslinux.py",
"_psposix.py",
"_psutil_linux.abi3.so",
"tests",
"__init__.py",
"_compat.py",
"_psbsd.py",
"_psosx.py",
"_pssunos.py",
"_psutil_posix.abi3.so",
"_pswindows.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/psutil-5.9.5.dist-info",
"files": [
"LICENSE",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"top_level.txt",
"INSTALLER"
]
},
{
"added": [],
"changed_count": 18,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/psutil/tests",
"files": [
"test_contracts.py",
"test_linux.py",
"test_posix.py",
"__init__.py",
"test_aix.py",
"test_bsd.py",
"test_memleaks.py",
"test_misc.py",
"test_windows.py",
"__main__.py",
"test_connections.py",
"test_sunos.py",
"test_system.py",
"test_testutils.py",
"test_unicode.py",
"test_osx.py",
"test_process.py",
"runner.py"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pycparser",
"files": [
"c_lexer.py",
"c_parser.py",
"_ast_gen.py",
"_c_ast.cfg",
"ast_transforms.py",
"c_generator.py",
"__init__.py",
"c_ast.py"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pycparser-3.0.dist-info",
"files": [
"INSTALLER",
"METADATA",
"RECORD",
"WHEEL",
"licenses",
"top_level.txt"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pycparser-3.0.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pyopenssl-26.2.0.dist-info",
"files": [
"INSTALLER",
"METADATA",
"RECORD",
"WHEEL",
"licenses",
"top_level.txt"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pyopenssl-26.2.0.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pyotp",
"files": [
"__init__.py",
"compat.py",
"otp.py",
"py.typed",
"totp.py",
"utils.py",
"contrib",
"hotp.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pyotp-2.9.0.dist-info",
"files": [
"INSTALLER",
"LICENSE",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"top_level.txt"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pyotp/contrib",
"files": [
"__init__.py",
"steam.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/python_dateutil-2.9.0.post0.dist-info",
"files": [
"zip-safe",
"INSTALLER",
"LICENSE",
"METADATA",
"RECORD",
"WHEEL",
"top_level.txt"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz",
"files": [
"tzinfo.py",
"zoneinfo",
"__init__.py",
"exceptions.py",
"lazy.py",
"reference.py",
"tzfile.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz-2026.2.dist-info",
"files": [
"RECORD",
"WHEEL",
"top_level.txt",
"zip-safe",
"INSTALLER",
"LICENSE.txt",
"METADATA"
]
},
{
"added": [],
"changed_count": 40,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo",
"files": [
"America",
"Etc",
"Zulu",
"Turkey",
"UTC",
"iso3166.tab",
"EST",
"Eire",
"PST8PDT",
"Singapore",
"zone.tab",
"Canada",
"Egypt",
"NZ-CHAT",
"ROC",
"ROK",
"CST6CDT",
"Japan",
"Poland",
"Portugal",
"W-SU",
"Arctic",
"Asia",
"GB",
"Iceland",
"MST7MDT",
"GMT0",
"GMT+0",
"GMT-0",
"zone1970.tab",
"Europe",
"GMT",
"NZ",
"MST",
"Mexico",
"WET",
"HST",
"Hongkong",
"Libya",
"UCT"
]
},
{
"added": [],
"changed_count": 40,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Africa",
"files": [
"Kampala",
"Khartoum",
"Kinshasa",
"Malabo",
"Nouakchott",
"Timbuktu",
"Accra",
"Addis_Ababa",
"Bangui",
"Bujumbura",
"Dakar",
"Lome",
"Tunis",
"Windhoek",
"Bissau",
"Blantyre",
"Johannesburg",
"Juba",
"Maseru",
"Mbabane",
"Ndjamena",
"Sao_Tome",
"Banjul",
"Conakry",
"Douala",
"Lagos",
"Algiers",
"Asmara",
"Brazzaville",
"Casablanca",
"Lubumbashi",
"Ouagadougou",
"El_Aaiun",
"Freetown",
"Libreville",
"Maputo",
"Mogadishu",
"Niamey",
"Dar_es_Salaam",
"Djibouti"
]
},
{
"added": [],
"changed_count": 40,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/America",
"files": [
"Aruba",
"Barbados",
"Chihuahua",
"Coral_Harbour",
"Lower_Princes",
"Argentina",
"Buenos_Aires",
"Guatemala",
"Rainy_River",
"St_Johns",
"Swift_Current",
"Nipigon",
"Coyhaique",
"Miquelon",
"St_Vincent",
"Anguilla",
"Antigua",
"Cancun",
"Detroit",
"Iqaluit",
"Montevideo",
"New_York",
"Edmonton",
"Shiprock",
"Monterrey",
"Belem",
"Asuncion",
"Eirunepe",
"Halifax",
"Indiana",
"Matamoros",
"Manaus",
"Marigot",
"Martinique",
"Merida",
"Montreal",
"Rankin_Inlet",
"Danmarkshavn",
"Jujuy",
"Noronha"
]
},
{
"added": [],
"changed_count": 13,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/America/Argentina",
"files": [
"Buenos_Aires",
"ComodRivadavia",
"Jujuy",
"La_Rioja",
"Mendoza",
"Salta",
"Ushuaia",
"Catamarca",
"Cordoba",
"Rio_Gallegos",
"San_Juan",
"San_Luis",
"Tucuman"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/America/Indiana",
"files": [
"Marengo",
"Petersburg",
"Tell_City",
"Vevay",
"Vincennes",
"Winamac",
"Indianapolis",
"Knox"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/America/Kentucky",
"files": [
"Louisville",
"Monticello"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/America/North_Dakota",
"files": [
"New_Salem",
"Beulah",
"Center"
]
},
{
"added": [],
"changed_count": 12,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Antarctica",
"files": [
"Rothera",
"South_Pole",
"Syowa",
"Troll",
"Vostok",
"Casey",
"Davis",
"DumontDUrville",
"McMurdo",
"Palmer",
"Macquarie",
"Mawson"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Arctic",
"files": [
"Longyearbyen"
]
},
{
"added": [],
"changed_count": 40,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Asia",
"files": [
"Almaty",
"Chongqing",
"Harbin",
"Tomsk",
"Bishkek",
"Kamchatka",
"Macao",
"Manila",
"Riyadh",
"Seoul",
"Thimbu",
"Tokyo",
"Aden",
"Colombo",
"Hong_Kong",
"Jayapura",
"Kabul",
"Qyzylorda",
"Srednekolymsk",
"Macau",
"Chita",
"Choibalsan",
"Chungking",
"Dili",
"Ho_Chi_Minh",
"Jerusalem",
"Qostanay",
"Amman",
"Anadyr",
"Baghdad",
"Beirut",
"Kashgar",
"Ujung_Pandang",
"Yakutsk",
"Brunei",
"Kolkata",
"Samarkand",
"Thimphu",
"Vladivostok",
"Ashkhabad"
]
},
{
"added": [],
"changed_count": 12,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Atlantic",
"files": [
"Cape_Verde",
"Faeroe",
"Faroe",
"Madeira",
"South_Georgia",
"Stanley",
"Canary",
"Jan_Mayen",
"Reykjavik",
"St_Helena",
"Azores",
"Bermuda"
]
},
{
"added": [],
"changed_count": 23,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Australia",
"files": [
"Darwin",
"Hobart",
"NSW",
"North",
"Queensland",
"Tasmania",
"Adelaide",
"Canberra",
"Lord_Howe",
"South",
"Victoria",
"ACT",
"Broken_Hill",
"LHI",
"Lindeman",
"Melbourne",
"Sydney",
"Yancowinna",
"Eucla",
"Perth",
"West",
"Brisbane",
"Currie"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Brazil",
"files": [
"West",
"Acre",
"DeNoronha",
"East"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Canada",
"files": [
"Eastern",
"Mountain",
"Newfoundland",
"Pacific",
"Saskatchewan",
"Yukon",
"Atlantic",
"Central"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Chile",
"files": [
"Continental",
"EasterIsland"
]
},
{
"added": [],
"changed_count": 35,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Etc",
"files": [
"GMT-4",
"GMT-8",
"GMT0",
"GMT-7",
"GMT+1",
"GMT+4",
"GMT-12",
"GMT",
"GMT+5",
"GMT+7",
"GMT-1",
"GMT-2",
"GMT-5",
"GMT-6",
"GMT+11",
"GMT+2",
"GMT+8",
"UCT",
"Zulu",
"GMT+0",
"GMT+10",
"GMT-10",
"GMT-13",
"GMT-9",
"Greenwich",
"UTC",
"GMT+12",
"GMT+9",
"GMT-0",
"GMT-14",
"GMT-3",
"GMT+3",
"GMT+6",
"GMT-11",
"Universal"
]
},
{
"added": [],
"changed_count": 40,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Europe",
"files": [
"Gibraltar",
"London",
"Moscow",
"Prague",
"Uzhgorod",
"Helsinki",
"Monaco",
"Samara",
"Kirov",
"San_Marino",
"Tiraspol",
"Vaduz",
"Zaporozhye",
"Guernsey",
"Stockholm",
"Ulyanovsk",
"Volgograd",
"Dublin",
"Kiev",
"Malta",
"Paris",
"Zagreb",
"Copenhagen",
"Kyiv",
"Mariehamn",
"Jersey",
"Kaliningrad",
"Ljubljana",
"Nicosia",
"Sofia",
"Tallinn",
"Vatican",
"Berlin",
"Brussels",
"Bucharest",
"Minsk",
"Rome",
"Skopje",
"Belgrade",
"Bratislava"
]
},
{
"added": [],
"changed_count": 11,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Indian",
"files": [
"Mahe",
"Maldives",
"Mauritius",
"Reunion",
"Antananarivo",
"Christmas",
"Cocos",
"Comoro",
"Kerguelen",
"Mayotte",
"Chagos"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Mexico",
"files": [
"BajaSur",
"General",
"BajaNorte"
]
},
{
"added": [],
"changed_count": 40,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/Pacific",
"files": [
"Enderbury",
"Fiji",
"Gambier",
"Guadalcanal",
"Saipan",
"Yap",
"Auckland",
"Efate",
"Kiritimati",
"Niue",
"Port_Moresby",
"Truk",
"Galapagos",
"Guam",
"Kanton",
"Tongatapu",
"Chatham",
"Easter",
"Fakaofo",
"Honolulu",
"Johnston",
"Norfolk",
"Samoa",
"Tahiti",
"Kosrae",
"Kwajalein",
"Majuro",
"Pago_Pago",
"Pitcairn",
"Pohnpei",
"Tarawa",
"Wake",
"Apia",
"Bougainville",
"Funafuti",
"Palau",
"Ponape",
"Chuuk",
"Marquesas",
"Midway"
]
},
{
"added": [],
"changed_count": 12,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/pytz/zoneinfo/US",
"files": [
"Eastern",
"Hawaii",
"Michigan",
"Mountain",
"Pacific",
"Alaska",
"Aleutian",
"Indiana-Starke",
"Samoa",
"Arizona",
"Central",
"East-Indiana"
]
},
{
"added": [],
"changed_count": 10,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/referencing",
"files": [
"py.typed",
"retrieval.py",
"tests",
"typing.py",
"__init__.py",
"_attrs.py",
"_attrs.pyi",
"jsonschema.py",
"_core.py",
"exceptions.py"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/referencing-0.37.0.dist-info",
"files": [
"WHEEL",
"licenses",
"INSTALLER",
"METADATA",
"RECORD"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/referencing-0.37.0.dist-info/licenses",
"files": [
"COPYING"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/referencing/tests",
"files": [
"test_core.py",
"test_exceptions.py",
"test_jsonschema.py",
"test_referencing_suite.py",
"test_retrieval.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 18,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/requests",
"files": [
"__init__.py",
"_internal_utils.py",
"adapters.py",
"api.py",
"hooks.py",
"status_codes.py",
"__version__.py",
"certs.py",
"compat.py",
"exceptions.py",
"models.py",
"packages.py",
"sessions.py",
"auth.py",
"cookies.py",
"help.py",
"structures.py",
"utils.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/requests-2.32.4.dist-info",
"files": [
"INSTALLER",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"licenses",
"top_level.txt"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/requests-2.32.4.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/rpds",
"files": [
"__init__.py",
"__init__.pyi",
"py.typed",
"rpds.cpython-312-x86_64-linux-gnu.so"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/rpds_py-2026.5.1.dist-info",
"files": [
"INSTALLER",
"METADATA",
"RECORD",
"WHEEL",
"licenses",
"sboms"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/rpds_py-2026.5.1.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/rpds_py-2026.5.1.dist-info/sboms",
"files": [
"rpds-py.cyclonedx.json"
]
},
{
"added": [],
"changed_count": 40,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools",
"files": [
"_core_metadata.py",
"_entry_points.py",
"command",
"config",
"errors.py",
"monkey.py",
"msvc.py",
"script.tmpl",
"cli-64.exe",
"cli-arm64.exe",
"compat",
"_distutils",
"_shutil.py",
"_static.py",
"_vendor",
"_discovery.py",
"discovery.py",
"gui-64.exe",
"installer.py",
"_itertools.py",
"_reqs.py",
"gui-32.exe",
"logging.py",
"modified.py",
"unicode_utils.py",
"version.py",
"wheel.py",
"extension.py",
"glob.py",
"launch.py",
"namespaces.py",
"script (dev).tmpl",
"tests",
"warnings.py",
"windows_support.py",
"build_meta.py",
"cli-32.exe",
"depends.py",
"dist.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools-82.0.1.dist-info",
"files": [
"top_level.txt",
"INSTALLER",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"entry_points.txt",
"licenses"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools-82.0.1.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 32,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_distutils",
"files": [
"dir_util.py",
"dist.py",
"errors.py",
"filelist.py",
"log.py",
"zosccompiler.py",
"cmd.py",
"compilers",
"_macos_compat.py",
"core.py",
"sysconfig.py",
"_msvccompiler.py",
"command",
"compat",
"unixccompiler.py",
"version.py",
"_log.py",
"debug.py",
"fancy_getopt.py",
"spawn.py",
"tests",
"file_util.py",
"util.py",
"archive_util.py",
"ccompiler.py",
"cygwinccompiler.py",
"dep_util.py",
"text_file.py",
"versionpredicate.py",
"__init__.py",
"extension.py",
"_modified.py"
]
},
{
"added": [],
"changed_count": 20,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_distutils/command",
"files": [
"check.py",
"build_clib.py",
"install.py",
"install_headers.py",
"install_scripts.py",
"sdist.py",
"_framework_compat.py",
"bdist.py",
"build.py",
"install_egg_info.py",
"install_lib.py",
"clean.py",
"__init__.py",
"bdist_dumb.py",
"bdist_rpm.py",
"build_ext.py",
"build_py.py",
"build_scripts.py",
"config.py",
"install_data.py"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_distutils/compat",
"files": [
"py39.py",
"__init__.py",
"numpy.py"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_distutils/compilers",
"files": [
"C"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_distutils/compilers/C",
"files": [
"zos.py",
"base.py",
"cygwin.py",
"errors.py",
"msvc.py",
"tests",
"unix.py"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_distutils/compilers/C/tests",
"files": [
"test_msvc.py",
"test_unix.py",
"test_base.py",
"test_cygwin.py",
"test_mingw.py"
]
},
{
"added": [],
"changed_count": 37,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_distutils/tests",
"files": [
"test_text_file.py",
"test_build_ext.py",
"test_build_scripts.py",
"test_install_headers.py",
"test_install_lib.py",
"test_versionpredicate.py",
"__init__.py",
"compat",
"test_archive_util.py",
"test_bdist_rpm.py",
"test_sysconfig.py",
"test_install_data.py",
"test_install_scripts.py",
"test_build.py",
"test_cmd.py",
"test_dist.py",
"test_file_util.py",
"test_version.py",
"support.py",
"test_log.py",
"test_spawn.py",
"test_clean.py",
"test_core.py",
"test_modified.py",
"test_filelist.py",
"test_install.py",
"test_sdist.py",
"unix_compat.py",
"test_build_clib.py",
"test_check.py",
"test_dir_util.py",
"test_extension.py",
"test_util.py",
"test_bdist.py",
"test_bdist_dumb.py",
"test_build_py.py",
"test_config_cmd.py"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_distutils/tests/compat",
"files": [
"__init__.py",
"py39.py"
]
},
{
"added": [],
"changed_count": 23,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor",
"files": [
"autocommand",
"importlib_metadata",
"more_itertools-10.8.0.dist-info",
"platformdirs-4.4.0.dist-info",
"tomli",
"zipp",
".lock",
"autocommand-2.2.2.dist-info",
"jaraco_context-6.1.0.dist-info",
"more_itertools",
"packaging",
"tomli-2.4.0.dist-info",
"backports",
"jaraco",
"jaraco_functools-4.4.0.dist-info",
"platformdirs",
"zipp-3.23.0.dist-info",
"backports.tarfile-1.2.0.dist-info",
"importlib_metadata-8.7.1.dist-info",
"jaraco.text-4.0.0.dist-info",
"packaging-26.0.dist-info",
"wheel",
"wheel-0.46.3.dist-info"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/autocommand",
"files": [
"autocommand.py",
"automain.py",
"autoparse.py",
"errors.py",
"__init__.py",
"autoasync.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/autocommand-2.2.2.dist-info",
"files": [
"top_level.txt",
"INSTALLER",
"LICENSE",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/backports",
"files": [
"__init__.py",
"tarfile"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/backports.tarfile-1.2.0.dist-info",
"files": [
"LICENSE",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"top_level.txt",
"INSTALLER"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/backports/tarfile",
"files": [
"__init__.py",
"__main__.py",
"compat"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/backports/tarfile/compat",
"files": [
"__init__.py",
"py38.py"
]
},
{
"added": [],
"changed_count": 12,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata",
"files": [
"diagnose.py",
"py.typed",
"__init__.py",
"_compat.py",
"_functools.py",
"_text.py",
"_typing.py",
"compat",
"_adapters.py",
"_collections.py",
"_itertools.py",
"_meta.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.7.1.dist-info",
"files": [
"INSTALLER",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"licenses",
"top_level.txt"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/importlib_metadata/compat",
"files": [
"__init__.py",
"py311.py",
"py39.py"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/jaraco",
"files": [
"context",
"functools",
"text"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/jaraco.text-4.0.0.dist-info",
"files": [
"WHEEL",
"top_level.txt",
"INSTALLER",
"LICENSE",
"METADATA",
"RECORD",
"REQUESTED"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/jaraco/context",
"files": [
"py.typed",
"__init__.py"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/jaraco/functools",
"files": [
"__init__.py",
"__init__.pyi",
"py.typed"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/jaraco/text",
"files": [
"Lorem ipsum.txt",
"__init__.py",
"layouts.py",
"show-newlines.py",
"strip-prefix.py",
"to-dvorak.py",
"to-qwerty.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/jaraco_context-6.1.0.dist-info",
"files": [
"REQUESTED",
"WHEEL",
"licenses",
"top_level.txt",
"INSTALLER",
"METADATA",
"RECORD"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/jaraco_context-6.1.0.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/jaraco_functools-4.4.0.dist-info",
"files": [
"top_level.txt",
"INSTALLER",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"licenses"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/jaraco_functools-4.4.0.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/more_itertools",
"files": [
"more.py",
"more.pyi",
"py.typed",
"recipes.py",
"recipes.pyi",
"__init__.py",
"__init__.pyi"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/more_itertools-10.8.0.dist-info",
"files": [
"RECORD",
"REQUESTED",
"WHEEL",
"licenses",
"INSTALLER",
"METADATA"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/more_itertools-10.8.0.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 17,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging",
"files": [
"markers.py",
"version.py",
"__init__.py",
"tags.py",
"_tokenizer.py",
"licenses",
"metadata.py",
"py.typed",
"pylock.py",
"utils.py",
"_elffile.py",
"_manylinux.py",
"_parser.py",
"_structures.py",
"specifiers.py",
"requirements.py",
"_musllinux.py"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging-26.0.dist-info",
"files": [
"licenses",
"INSTALLER",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging-26.0.dist-info/licenses",
"files": [
"LICENSE",
"LICENSE.APACHE",
"LICENSE.BSD"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/packaging/licenses",
"files": [
"__init__.py",
"_spdx.py"
]
},
{
"added": [],
"changed_count": 9,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/platformdirs",
"files": [
"__init__.py",
"__main__.py",
"py.typed",
"windows.py",
"android.py",
"api.py",
"macos.py",
"unix.py",
"version.py"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/platformdirs-4.4.0.dist-info",
"files": [
"INSTALLER",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"licenses"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/platformdirs-4.4.0.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/tomli",
"files": [
"__init__.py",
"_parser.py",
"_re.py",
"_types.py",
"py.typed"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/tomli-2.4.0.dist-info",
"files": [
"REQUESTED",
"WHEEL",
"licenses",
"INSTALLER",
"METADATA",
"RECORD"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/tomli-2.4.0.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 10,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel",
"files": [
"_setuptools_logging.py",
"bdist_wheel.py",
"wheelfile.py",
"__main__.py",
"_commands",
"macosx_libfile.py",
"metadata.py",
"__init__.py",
"_bdist_wheel.py",
"_metadata.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel-0.46.3.dist-info",
"files": [
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"entry_points.txt",
"licenses",
"INSTALLER"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel-0.46.3.dist-info/licenses",
"files": [
"LICENSE.txt"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/wheel/_commands",
"files": [
"tags.py",
"unpack.py",
"__init__.py",
"convert.py",
"pack.py"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/zipp",
"files": [
"compat",
"glob.py",
"__init__.py",
"_functools.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/zipp-3.23.0.dist-info",
"files": [
"INSTALLER",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"licenses",
"top_level.txt"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/zipp-3.23.0.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/_vendor/zipp/compat",
"files": [
"__init__.py",
"overlay.py",
"py310.py",
"py313.py"
]
},
{
"added": [],
"changed_count": 24,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/command",
"files": [
"_requirestxt.py",
"alias.py",
"bdist_egg.py",
"bdist_rpm.py",
"build_py.py",
"dist_info.py",
"editable_wheel.py",
"install_lib.py",
"__init__.py",
"bdist_wheel.py",
"build_clib.py",
"develop.py",
"install.py",
"install_scripts.py",
"rotate.py",
"build_ext.py",
"easy_install.py",
"egg_info.py",
"install_egg_info.py",
"saveopts.py",
"test.py",
"build.py",
"sdist.py",
"setopt.py"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/compat",
"files": [
"py311.py",
"py312.py",
"py39.py",
"__init__.py",
"py310.py"
]
},
{
"added": [],
"changed_count": 9,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/config",
"files": [
"NOTICE",
"__init__.py",
"_validate_pyproject",
"expand.py",
"pyprojecttoml.py",
"setuptools.schema.json",
"_apply_pyprojecttoml.py",
"distutils.schema.json",
"setupcfg.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/config/_validate_pyproject",
"files": [
"__init__.py",
"error_reporting.py",
"extra_validations.py",
"fastjsonschema_exceptions.py",
"fastjsonschema_validations.py",
"formats.py",
"NOTICE"
]
},
{
"added": [],
"changed_count": 40,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/tests",
"files": [
"test_build_py.py",
"test_find_py_modules.py",
"test_virtualenv.py",
"test_wheel.py",
"test_bdist_deprecations.py",
"test_distutils_adoption.py",
"compat",
"indexes",
"test_config_discovery.py",
"test_core_metadata.py",
"test_find_packages.py",
"test_logging.py",
"test_namespaces.py",
"__init__.py",
"namespaces.py",
"test_archive_util.py",
"test_build_meta.py",
"test_dist.py",
"test_warnings.py",
"integration",
"script-with-bom.py",
"test_bdist_wheel.py",
"test_build_clib.py",
"test_depends.py",
"test_dist_info.py",
"test_install_scripts.py",
"test_manifest.py",
"config",
"environment.py",
"test_build.py",
"test_develop.py",
"test_scripts.py",
"test_setopt.py",
"test_shutil_wrapper.py",
"contexts.py",
"mod_with_constant.py",
"test_bdist_egg.py",
"test_editable_install.py",
"test_egg_info.py",
"test_setuptools.py"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/tests/compat",
"files": [
"py39.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/tests/config",
"files": [
"setupcfg_examples.txt",
"test_apply_pyprojecttoml.py",
"test_expand.py",
"downloads",
"test_pyprojecttoml.py",
"test_pyprojecttoml_dynamic_deps.py",
"test_setupcfg.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/tests/config/downloads",
"files": [
"__init__.py",
"preload.py"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/tests/indexes",
"files": [
"test_links_priority"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/tests/indexes/test_links_priority",
"files": [
"external.html",
"simple"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/tests/indexes/test_links_priority/simple",
"files": [
"foobar"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/tests/indexes/test_links_priority/simple/foobar",
"files": [
"index.html"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/setuptools/tests/integration",
"files": [
"test_pip_install_sdist.py",
"__init__.py",
"helpers.py",
"test_pbr.py"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/six-1.17.0.dist-info",
"files": [
"METADATA",
"RECORD",
"WHEEL",
"top_level.txt",
"INSTALLER",
"LICENSE"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/sniffio",
"files": [
"py.typed",
"__init__.py",
"_impl.py",
"_tests",
"_version.py"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/sniffio-1.3.1.dist-info",
"files": [
"top_level.txt",
"INSTALLER",
"LICENSE",
"LICENSE.APACHE2",
"LICENSE.MIT",
"METADATA",
"RECORD",
"WHEEL"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/sniffio/_tests",
"files": [
"test_sniffio.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/termcolor-1.1.0.dist-info",
"files": [
"INSTALLER",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"licenses",
"top_level.txt"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/termcolor-1.1.0.dist-info/licenses",
"files": [
"COPYING.txt"
]
},
{
"added": [],
"changed_count": 37,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/tornado",
"files": [
"__init__.py",
"concurrent.py",
"escape.py",
"http1connection.py",
"routing.py",
"speedups.pyi",
"__init__.pyi",
"process.py",
"simple_httpclient.py",
"tcpclient.py",
"wsgi.py",
"httputil.py",
"curl_httpclient.py",
"ioloop.py",
"log.py",
"platform",
"auth.py",
"httpserver.py",
"template.py",
"_locale_data.py",
"httpclient.py",
"locks.py",
"netutil.py",
"options.py",
"queues.py",
"websocket.py",
"speedups.abi3.so",
"py.typed",
"gen.py",
"iostream.py",
"locale.py",
"tcpserver.py",
"test",
"testing.py",
"autoreload.py",
"util.py",
"web.py"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/tornado-6.5.4.dist-info",
"files": [
"top_level.txt",
"INSTALLER",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"licenses"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/tornado-6.5.4.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/tornado/platform",
"files": [
"asyncio.py",
"caresresolver.py",
"twisted.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 40,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/tornado/test",
"files": [
"ioloop_test.py",
"queues_test.py",
"routing_test.py",
"gettext_translations",
"log_test.py",
"static_foo.txt",
"twisted_test.py",
"autoreload_test.py",
"circlerefs_test.py",
"locale_test.py",
"locks_test.py",
"resolve_test_helper.py",
"templates",
"util_test.py",
"httpserver_test.py",
"static",
"tcpserver_test.py",
"test.key",
"websocket_test.py",
"__init__.py",
"asyncio_test.py",
"auth_test.py",
"escape_test.py",
"gen_test.py",
"httputil_test.py",
"netutil_test.py",
"options_test_types.cfg",
"iostream_test.py",
"options_test.cfg",
"options_test.py",
"process_test.py",
"runtests.py",
"simple_httpclient_test.py",
"tcpclient_test.py",
"template_test.py",
"concurrent_test.py",
"csv_translations",
"httpclient_test.py",
"options_test_types_str.cfg",
"test.crt"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/tornado/test/csv_translations",
"files": [
"fr_FR.csv"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/tornado/test/gettext_translations",
"files": [
"fr_FR"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/tornado/test/gettext_translations/fr_FR",
"files": [
"LC_MESSAGES"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/tornado/test/gettext_translations/fr_FR/LC_MESSAGES",
"files": [
"tornado_test.mo",
"tornado_test.po"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/tornado/test/static",
"files": [
"sample.xml",
"sample.xml.bz2",
"sample.xml.gz",
"dir",
"robots.txt"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/tornado/test/static/dir",
"files": [
"index.html"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/tornado/test/templates",
"files": [
"utf8.html"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/typing_extensions-4.15.0.dist-info",
"files": [
"RECORD",
"WHEEL",
"licenses",
"INSTALLER",
"METADATA"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/typing_extensions-4.15.0.dist-info/licenses",
"files": [
"LICENSE"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/tzlocal",
"files": [
"unix.py",
"utils.py",
"win32.py",
"windows_tz.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 8,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/tzlocal-5.1.dist-info",
"files": [
"WHEEL",
"top_level.txt",
"zip-safe",
"INSTALLER",
"LICENSE.txt",
"METADATA",
"RECORD",
"REQUESTED"
]
},
{
"added": [],
"changed_count": 16,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/urllib3",
"files": [
"contrib",
"filepost.py",
"http2",
"util",
"fields.py",
"_base_connection.py",
"_collections.py",
"connectionpool.py",
"exceptions.py",
"py.typed",
"_request_methods.py",
"response.py",
"poolmanager.py",
"__init__.py",
"_version.py",
"connection.py"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/urllib3-2.7.0.dist-info",
"files": [
"INSTALLER",
"METADATA",
"RECORD",
"WHEEL",
"licenses"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/urllib3-2.7.0.dist-info/licenses",
"files": [
"LICENSE.txt"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/urllib3/contrib",
"files": [
"pyopenssl.py",
"socks.py",
"__init__.py",
"emscripten"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/urllib3/contrib/emscripten",
"files": [
"emscripten_fetch_worker.js",
"fetch.py",
"request.py",
"response.py",
"__init__.py",
"connection.py"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/urllib3/http2",
"files": [
"__init__.py",
"connection.py",
"probe.py"
]
},
{
"added": [],
"changed_count": 13,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/urllib3/util",
"files": [
"__init__.py",
"proxy.py",
"response.py",
"retry.py",
"ssl_.py",
"timeout.py",
"url.py",
"connection.py",
"request.py",
"ssl_match_hostname.py",
"ssltransport.py",
"util.py",
"wait.py"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/webauthn",
"files": [
"helpers",
"py.typed",
"registration",
"__init__.py",
"authentication"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/webauthn-2.0.0.dist-info",
"files": [
"INSTALLER",
"LICENSE",
"METADATA",
"RECORD",
"REQUESTED",
"WHEEL",
"top_level.txt"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/webauthn/authentication",
"files": [
"generate_authentication_options.py",
"verify_authentication_response.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 32,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/webauthn/helpers",
"files": [
"generate_challenge.py",
"options_to_json.py",
"verify_signature.py",
"algorithms.py",
"structs.py",
"__init__.py",
"exceptions.py",
"hash_by_alg.py",
"validate_certificate_chain.py",
"verify_safetynet_timestamp.py",
"decoded_public_key_to_cryptography.py",
"pem_cert_bytes_to_open_ssl_x509.py",
"base64url_to_bytes.py",
"decode_credential_public_key.py",
"known_root_certs.py",
"parse_authentication_credential_json.py",
"parse_client_data_json.py",
"aaguid_to_string.py",
"byteslike_to_bytes.py",
"parse_attestation_statement.py",
"snake_case_to_camel_case.py",
"tpm",
"bytes_to_base64url.py",
"encode_cbor.py",
"parse_attestation_object.py",
"parse_registration_credential_json.py",
"asn1",
"cose.py",
"generate_user_handle.py",
"parse_authenticator_data.py",
"parse_backup_flags.py",
"parse_cbor.py"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/webauthn/helpers/asn1",
"files": [
"android_key.py",
"__init__.py"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/webauthn/helpers/tpm",
"files": [
"__init__.py",
"parse_cert_info.py",
"parse_pub_area.py",
"structs.py"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/webauthn/registration",
"files": [
"generate_registration_options.py",
"verify_registration_response.py",
"__init__.py",
"formats"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/webauthn/registration/formats",
"files": [
"packed.py",
"tpm.py",
"__init__.py",
"android_key.py",
"android_safetynet.py",
"apple.py",
"fido_u2f.py"
]
},
{
"added": [],
"changed_count": 18,
"db_signature": false,
"dir": "/crafty/.venv/lib/python3.12/site-packages/yaml",
"files": [
"composer.py",
"resolver.py",
"tokens.py",
"error.py",
"events.py",
"nodes.py",
"parser.py",
"cyaml.py",
"emitter.py",
"loader.py",
"reader.py",
"representer.py",
"serializer.py",
"__init__.py",
"constructor.py",
"dumper.py",
"scanner.py",
"_yaml.cpython-312-x86_64-linux-gnu.so"
]
},
{
"added": [
"config"
],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/app",
"files": [
"config"
]
},
{
"added": [],
"changed_count": 11,
"db_signature": false,
"dir": "/crafty/app/classes",
"files": [
"models",
"web",
"helpers",
"logging",
"remote_stats",
"shared",
"steamcmd",
"big_bucket",
"controllers",
"exceptions",
"installers"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/app/classes/web",
"files": [
"routes",
"webhooks"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/app/classes/web/routes",
"files": [
"metrics",
"api"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/app/classes/web/routes/api",
"files": [
"servers",
"crafty",
"roles",
"users",
"auth"
]
},
{
"added": [],
"changed_count": 7,
"db_signature": false,
"dir": "/crafty/app/classes/web/routes/api/crafty",
"files": [
"imports",
"upload",
"announcements",
"clogs",
"stats",
"antilockout",
"config"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/app/classes/web/routes/api/roles",
"files": [
"role"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/app/classes/web/routes/api/servers",
"files": [
"server"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/app/classes/web/routes/api/servers/server",
"files": [
"tasks",
"webhooks",
"backups"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/app/classes/web/routes/api/servers/server/backups",
"files": [
"backup"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/app/classes/web/routes/api/servers/server/tasks",
"files": [
"task"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/app/classes/web/routes/api/servers/server/webhooks",
"files": [
"webhook"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/app/classes/web/routes/api/users",
"files": [
"user"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/app/config_original",
"files": [
"default.json"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/app/frontend",
"files": [
"static",
"templates"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/app/frontend/static",
"files": [
"assets"
]
},
{
"added": [],
"changed_count": 5,
"db_signature": false,
"dir": "/crafty/app/frontend/static/assets",
"files": [
"css",
"fonts",
"images",
"js",
"vendors"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/app/frontend/static/assets/css",
"files": [
"shared",
"vendors",
"dark",
"internal",
"partial",
"themes"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/app/frontend/static/assets/css/shared",
"files": [
"screens"
]
},
{
"added": [],
"changed_count": 3,
"db_signature": false,
"dir": "/crafty/app/frontend/static/assets/fonts",
"files": [
"Atkinson_Hyperlegible_Next",
"Roboto",
"Sarabun"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/app/frontend/static/assets/fonts/Atkinson_Hyperlegible_Next",
"files": [
"static"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/app/frontend/static/assets/images",
"files": [
"credits",
"faces-clipart",
"sprites",
"auth"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/app/frontend/static/assets/js",
"files": [
"shared"
]
},
{
"added": [],
"changed_count": 10,
"db_signature": false,
"dir": "/crafty/app/frontend/static/assets/vendors",
"files": [
"flag-icon-css",
"phosphoricons",
"ti-icons",
"typicons",
"vanilla-datetimerange-picker",
"css",
"js",
"mdi",
"moment",
"ace-builds"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/app/frontend/static/assets/vendors/ace-builds",
"files": [
"src-min"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/app/frontend/static/assets/vendors/ace-builds/src-min",
"files": [
"snippets"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/app/frontend/static/assets/vendors/flag-icon-css",
"files": [
"css",
"flags"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/app/frontend/static/assets/vendors/flag-icon-css/flags",
"files": [
"1x1",
"4x3"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/app/frontend/static/assets/vendors/mdi",
"files": [
"css",
"fonts"
]
},
{
"added": [],
"changed_count": 6,
"db_signature": false,
"dir": "/crafty/app/frontend/static/assets/vendors/phosphoricons",
"files": [
"fill",
"light",
"regular",
"thin",
"bold",
"duotone"
]
},
{
"added": [],
"changed_count": 2,
"db_signature": false,
"dir": "/crafty/app/frontend/static/assets/vendors/ti-icons",
"files": [
"fonts",
"css"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/app/frontend/templates",
"files": [
"setup",
"panel",
"public",
"server"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/app/frontend/templates/panel",
"files": [
"parts"
]
},
{
"added": [
"status"
],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/app/migrations",
"files": [
"status"
]
},
{
"added": [
"20240308_multi-backup.json"
],
"changed_count": 0,
"db_signature": false,
"dir": "/crafty/app/migrations/status",
"files": [
"20240308_multi-backup.json"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/tests",
"files": [
"classes"
]
},
{
"added": [],
"changed_count": 4,
"db_signature": false,
"dir": "/crafty/tests/classes",
"files": [
"helpers",
"models",
"shared",
"web"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/crafty/tests/classes/web",
"files": [
"api"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/usr",
"files": [
"bin"
]
},
{
"added": [],
"changed_count": 1,
"db_signature": false,
"dir": "/usr/bin",
"files": [
"python3.12"
]
}
],
"diff_token_dirs": [],
"diff_total": 5365,
"diff_unresolved": [],
"exit": 0,
"gid": 0,
"health": "healthy",
"image": "registry.gitlab.com/crafty-controller/crafty-4:4.10.7",
"mounts": [
{
"class": "named-declared",
"files": 0,
"name": "volgate-craftycontroller_crafty_servers",
"sample": [],
"source": "/var/lib/docker/volumes/volgate-craftycontroller_crafty_servers/_data",
"target": "/crafty/servers",
"writable_by_app": "yes"
},
{
"class": "named-declared",
"files": 16,
"name": "volgate-craftycontroller_crafty_config",
"sample": [
"bigbucket.json",
"default.json",
"session.lock",
"motd_format.json",
"steamapps.json",
"default-creds.txt",
"hytale.json",
"version.json",
"logging.json",
"credits.json",
"config.json",
"web/certs/commander.key.pem",
"web/certs/commander.cert.pem",
"db/crafty.sqlite-shm",
"db/crafty.sqlite",
"db/crafty.sqlite-wal"
],
"source": "/var/lib/docker/volumes/volgate-craftycontroller_crafty_config/_data",
"target": "/crafty/app/config",
"writable_by_app": "yes"
},
{
"class": "named-declared",
"files": 0,
"name": "volgate-craftycontroller_crafty_import",
"sample": [],
"source": "/var/lib/docker/volumes/volgate-craftycontroller_crafty_import/_data",
"target": "/crafty/import",
"writable_by_app": "yes"
},
{
"class": "named-declared",
"files": 0,
"name": "volgate-craftycontroller_crafty_backups",
"sample": [],
"source": "/var/lib/docker/volumes/volgate-craftycontroller_crafty_backups/_data",
"target": "/crafty/backups",
"writable_by_app": "yes"
},
{
"class": "named-declared",
"files": 8,
"name": "volgate-craftycontroller_crafty_logs",
"sample": [
"tornado-access.log",
"session.log",
"audit.log",
"auth_tracker.log",
"auth.log",
"commander.log",
"cmd_queue.log",
"schedule.log"
],
"source": "/var/lib/docker/volumes/volgate-craftycontroller_crafty_logs/_data",
"target": "/crafty/logs",
"writable_by_app": "yes"
}
],
"name": "crafty-controller",
"restarts": null,
"status": "running",
"uid": 0
}
],
"declared_volumes": [
"crafty_backups",
"crafty_config",
"crafty_import",
"crafty_logs",
"crafty_servers"
],
"env_keys": [
"CRAFTY_PASSWORD",
"DOMAIN",
"HDD_PATH",
"IMPORT_PATH",
"SUBDOMAIN",
"TZ",
"USERDATA_PATH"
],
"exercise": [],
"ports": []
},
"reasons": [
"crafty-controller: declared volume /crafty/servers is EMPTY",
"crafty-controller: declared volume /crafty/import is EMPTY",
"crafty-controller: declared volume /crafty/backups is EMPTY"
],
"verdict": "CLEAN",
"verdict_recomputed_by": "check-volume-persistence.py classify() at final rules"
}