mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-30 13:10:47 +00:00
feat(epc-prediction): anonymised Tier-1 fixture + builder (ADR-0030)
The committed gate needs frozen, reproducible data without dumping real UK addresses into the repo. Add: - harness anonymise_payload + stable_hash: hash street address + cert number into opaque, dedup-stable tokens; blank secondary address lines + post_town; keep postcode + all component/lodged fields (gov data is OGL). Unit-tested. - scripts/build_epc_prediction_fixture.py: curate qualifying postcodes (>=1 SAP 10.2 target + >=2 distinct addresses) from the local scratch corpus, anonymise, freeze under tests/fixtures/epc_prediction/. - The frozen fixture: 15 postcodes / 280 certs / 36 SAP-10.2 targets. Verified no plaintext address_line_1 and post_town all blank. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
027ee1fba3
commit
008c1922c4
284 changed files with 789 additions and 0 deletions
|
|
@ -13,6 +13,7 @@ not. Layout: `<dir>/<POSTCODE>/<cert>.json` + `<dir>/_index.json`.
|
|||
|
||||
from __future__ import annotations
|
||||
|
||||
import hashlib
|
||||
import json
|
||||
from datetime import date
|
||||
from pathlib import Path
|
||||
|
|
@ -21,6 +22,10 @@ from typing import Any, Optional
|
|||
from datatypes.epc.domain.mapper import EpcPropertyDataMapper
|
||||
from domain.epc_prediction.comparable_properties import Comparable
|
||||
|
||||
# Identifying free-text fields blanked when freezing a payload into the committed
|
||||
# fixture (postcode is kept — it is coarse open data and the cohort key).
|
||||
_PII_BLANK_FIELDS = ("address_line_2", "address_line_3", "post_town")
|
||||
|
||||
|
||||
def load_corpus(corpus_dir: Path) -> list[list[Comparable]]:
|
||||
"""Load every postcode cohort under `corpus_dir`. Returns one list of
|
||||
|
|
@ -61,6 +66,33 @@ def _load_cohort(
|
|||
return cohort
|
||||
|
||||
|
||||
def stable_hash(prefix: str, value: str) -> str:
|
||||
"""A short, deterministic, one-way token for a free-text identifier. Stable
|
||||
across re-lodgements of the same address (normalised first), so dedup still
|
||||
collapses them — but the plaintext address never lands in the repo."""
|
||||
digest = hashlib.sha1(value.strip().upper().encode()).hexdigest()[:12]
|
||||
return f"{prefix}-{digest}"
|
||||
|
||||
|
||||
def anonymise_payload(raw: dict[str, Any]) -> dict[str, Any]:
|
||||
"""De-identify a cert payload for the committed fixture: hash the street
|
||||
address (`address_line_1`) and certificate number into stable tokens, blank
|
||||
the other free-text address lines, and keep everything else — postcode,
|
||||
registration date, SAP version, lodged figures, and all component fields —
|
||||
untouched (gov data is OGL; only the direct identifiers are removed)."""
|
||||
out = dict(raw)
|
||||
address = raw.get("address_line_1")
|
||||
if address:
|
||||
out["address_line_1"] = stable_hash("addr", str(address))
|
||||
cert = raw.get("certificate_number")
|
||||
if cert:
|
||||
out["certificate_number"] = stable_hash("cert", str(cert))
|
||||
for blank_field in _PII_BLANK_FIELDS:
|
||||
if blank_field in out:
|
||||
out[blank_field] = ""
|
||||
return out
|
||||
|
||||
|
||||
def _address(raw: dict[str, Any]) -> Optional[str]:
|
||||
value = raw.get("address_line_1")
|
||||
return str(value).strip().upper() if value else None
|
||||
|
|
|
|||
94
scripts/build_epc_prediction_fixture.py
Normal file
94
scripts/build_epc_prediction_fixture.py
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
"""Freeze a small, anonymised EPC Prediction fixture for the Tier-1 gate (ADR-0030).
|
||||
|
||||
Curates a deterministic subset of the local scratch corpus
|
||||
(`/tmp/epc_prediction_corpus`, gitignored) into a committed fixture under
|
||||
`tests/fixtures/epc_prediction/`. Selection keeps postcodes that can actually be
|
||||
scored — at least one SAP 10.2 target plus a second distinct address to predict
|
||||
it from. Every payload is run through `anonymise_payload` first, so the street
|
||||
address + certificate number become opaque tokens and no plaintext address lands
|
||||
in the repo (postcode + component data are open gov data and kept).
|
||||
|
||||
The committed fixture is the deterministic basis for the ratcheting gate; the
|
||||
large scratch corpus stays local for iteration + the offline battle-test.
|
||||
|
||||
USAGE
|
||||
-----
|
||||
PYTHONPATH=. python scripts/build_epc_prediction_fixture.py
|
||||
|
||||
Source: $EPC_PREDICTION_CORPUS (default /tmp/epc_prediction_corpus).
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
from harness.epc_prediction_corpus import anonymise_payload, stable_hash
|
||||
|
||||
SOURCE = Path(os.environ.get("EPC_PREDICTION_CORPUS", "/tmp/epc_prediction_corpus"))
|
||||
FIXTURE = Path("tests/fixtures/epc_prediction")
|
||||
|
||||
_SAP_10_2 = "10.2"
|
||||
_MAX_POSTCODES = 15 # keep the committed fixture small
|
||||
_MAX_COHORT = 25 # cap certs per postcode to bound repo size
|
||||
|
||||
|
||||
def _load_payloads(
|
||||
postcode: str, certs: list[str]
|
||||
) -> list[tuple[str, dict[str, Any]]]:
|
||||
"""The `(source cert number, payload)` pairs for a postcode — the cert
|
||||
number lives in the index/filename, not the cached payload."""
|
||||
payloads: list[tuple[str, dict[str, Any]]] = []
|
||||
for cert in certs:
|
||||
path = SOURCE / postcode / f"{cert}.json"
|
||||
if path.exists():
|
||||
payloads.append((cert, json.loads(path.read_text())))
|
||||
return payloads
|
||||
|
||||
|
||||
def _qualifies(payloads: list[tuple[str, dict[str, Any]]]) -> bool:
|
||||
"""A postcode is usable iff it has ≥1 SAP 10.2 cert (a valid target) and ≥2
|
||||
distinct addresses (so the target has at least one neighbour to predict it)."""
|
||||
has_target = any(
|
||||
str(p.get("sap_version")) == _SAP_10_2 for _, p in payloads
|
||||
)
|
||||
addresses = {
|
||||
str(p.get("address_line_1", "")).strip().upper() for _, p in payloads
|
||||
}
|
||||
return has_target and len(addresses) >= 2
|
||||
|
||||
|
||||
def main() -> None:
|
||||
index: dict[str, list[str]] = json.loads(
|
||||
(SOURCE / "_index.json").read_text()
|
||||
)
|
||||
fixture_index: dict[str, list[str]] = {}
|
||||
total_certs = 0
|
||||
for postcode, certs in index.items():
|
||||
if len(fixture_index) >= _MAX_POSTCODES:
|
||||
break
|
||||
payloads = _load_payloads(postcode, certs)
|
||||
if not _qualifies(payloads):
|
||||
continue
|
||||
kept: list[str] = []
|
||||
for cert, raw in payloads[:_MAX_COHORT]:
|
||||
cert_token = stable_hash("cert", cert)
|
||||
anon = anonymise_payload(raw)
|
||||
out = FIXTURE / postcode / f"{cert_token}.json"
|
||||
out.parent.mkdir(parents=True, exist_ok=True)
|
||||
out.write_text(json.dumps(anon))
|
||||
kept.append(cert_token)
|
||||
fixture_index[postcode] = kept
|
||||
total_certs += len(kept)
|
||||
(FIXTURE / "_index.json").parent.mkdir(parents=True, exist_ok=True)
|
||||
(FIXTURE / "_index.json").write_text(json.dumps(fixture_index, indent=2))
|
||||
print(
|
||||
f"wrote {len(fixture_index)} postcodes / {total_certs} anonymised certs "
|
||||
f"to {FIXTURE}"
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
1
tests/fixtures/epc_prediction/BD24JG/cert-01f1488000e8.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-01f1488000e8.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-15c0ce8ea563.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-15c0ce8ea563.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-1ef220911b4b.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-1ef220911b4b.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-208c5dfbaee2.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-208c5dfbaee2.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-496b8c226d26.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-496b8c226d26.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-4cce4c3fb33b.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-4cce4c3fb33b.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-5e427854bd6d.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-5e427854bd6d.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-5f4d37dacdf8.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-5f4d37dacdf8.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-6439eb9f1504.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-6439eb9f1504.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-75aa70bdd22a.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-75aa70bdd22a.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-7e61d706db57.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-7e61d706db57.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-8d1b1e15063c.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-8d1b1e15063c.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-cc1c722822ba.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-cc1c722822ba.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-d1396ff56fec.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-d1396ff56fec.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-d7e3196e1a0c.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-d7e3196e1a0c.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-dcb2c6ff3317.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-dcb2c6ff3317.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-e648d6164f10.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-e648d6164f10.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-e8c34b2323e0.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-e8c34b2323e0.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-eb71d39605ae.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-eb71d39605ae.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-eed1ed76757a.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-eed1ed76757a.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-f089b44ae169.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-f089b44ae169.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-f326c2524ab3.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-f326c2524ab3.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-f3aae3d2c3c9.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-f3aae3d2c3c9.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-f481cd1abc1f.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-f481cd1abc1f.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/BD24JG/cert-f52356b57b37.json
vendored
Normal file
1
tests/fixtures/epc_prediction/BD24JG/cert-f52356b57b37.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CF481ND/cert-0dd25677d889.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CF481ND/cert-0dd25677d889.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CF481ND/cert-3077aedcbe8b.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CF481ND/cert-3077aedcbe8b.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CF481ND/cert-5aad1cfe207c.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CF481ND/cert-5aad1cfe207c.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CF481ND/cert-5b3816460805.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CF481ND/cert-5b3816460805.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CF481ND/cert-6030fde8e888.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CF481ND/cert-6030fde8e888.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CF481ND/cert-6e6d1776f8b7.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CF481ND/cert-6e6d1776f8b7.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CF481ND/cert-7791c2c9073d.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CF481ND/cert-7791c2c9073d.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CF481ND/cert-8a1b88d2a80a.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CF481ND/cert-8a1b88d2a80a.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CF481ND/cert-96d09ac53f57.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CF481ND/cert-96d09ac53f57.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CF481ND/cert-ca16b6a09f55.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CF481ND/cert-ca16b6a09f55.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CF481ND/cert-e54dae311758.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CF481ND/cert-e54dae311758.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CF481ND/cert-f5de74d7fffc.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CF481ND/cert-f5de74d7fffc.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV15QJ/cert-1b4b3d26f79c.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV15QJ/cert-1b4b3d26f79c.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV15QJ/cert-346dc8ab15a0.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV15QJ/cert-346dc8ab15a0.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV15QJ/cert-526df35482d7.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV15QJ/cert-526df35482d7.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV15QJ/cert-73d50930d0ac.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV15QJ/cert-73d50930d0ac.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV15QJ/cert-8105f351163f.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV15QJ/cert-8105f351163f.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV15QJ/cert-840682d5f191.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV15QJ/cert-840682d5f191.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV15QJ/cert-f9dee3ea91ac.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV15QJ/cert-f9dee3ea91ac.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV15QJ/cert-fc5fe3d2a055.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV15QJ/cert-fc5fe3d2a055.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV78UG/cert-0246fdfa9718.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV78UG/cert-0246fdfa9718.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV78UG/cert-2e6f5943059a.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV78UG/cert-2e6f5943059a.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV78UG/cert-7d9beea6555e.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV78UG/cert-7d9beea6555e.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV78UG/cert-89894e90fc9c.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV78UG/cert-89894e90fc9c.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV78UG/cert-91dd248e55ee.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV78UG/cert-91dd248e55ee.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV78UG/cert-924d78d64f06.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV78UG/cert-924d78d64f06.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV78UG/cert-94454d5d782e.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV78UG/cert-94454d5d782e.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV78UG/cert-9b4787ad7813.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV78UG/cert-9b4787ad7813.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV78UG/cert-9c0b5437b98b.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV78UG/cert-9c0b5437b98b.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV78UG/cert-aef738e4b1c0.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV78UG/cert-aef738e4b1c0.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV78UG/cert-ba51394914cf.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV78UG/cert-ba51394914cf.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV78UG/cert-cd99c8b93a27.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV78UG/cert-cd99c8b93a27.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/CV78UG/cert-e8197b1db767.json
vendored
Normal file
1
tests/fixtures/epc_prediction/CV78UG/cert-e8197b1db767.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/DN327BH/cert-0402dc341842.json
vendored
Normal file
1
tests/fixtures/epc_prediction/DN327BH/cert-0402dc341842.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/DN327BH/cert-0c3791e9d4ff.json
vendored
Normal file
1
tests/fixtures/epc_prediction/DN327BH/cert-0c3791e9d4ff.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/DN327BH/cert-836df153600a.json
vendored
Normal file
1
tests/fixtures/epc_prediction/DN327BH/cert-836df153600a.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/DN327BH/cert-b2f03024d9a1.json
vendored
Normal file
1
tests/fixtures/epc_prediction/DN327BH/cert-b2f03024d9a1.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/DN327BH/cert-c48e73075389.json
vendored
Normal file
1
tests/fixtures/epc_prediction/DN327BH/cert-c48e73075389.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-0348cfa1f7fb.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-0348cfa1f7fb.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-05dd23b424ce.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-05dd23b424ce.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-0a2ed0dc5163.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-0a2ed0dc5163.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-21c48aaf77bc.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-21c48aaf77bc.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-2d0b11c96e70.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-2d0b11c96e70.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-2dc2ae2de152.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-2dc2ae2de152.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-347869ac4a1a.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-347869ac4a1a.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-486444742055.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-486444742055.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-54bfdb4d1c09.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-54bfdb4d1c09.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-57892e818162.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-57892e818162.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-638aadec0643.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-638aadec0643.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-63aab4ceadcb.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-63aab4ceadcb.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-76b6fa0e95e6.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-76b6fa0e95e6.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-8302c7e8ef17.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-8302c7e8ef17.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-8be823987a0d.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-8be823987a0d.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-8ef979bd232d.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-8ef979bd232d.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-a22930e3cac6.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-a22930e3cac6.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-a511bb525a56.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-a511bb525a56.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-acbdc6227e39.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-acbdc6227e39.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-aecc7219ecf0.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-aecc7219ecf0.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-b1ffcc93cf6f.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-b1ffcc93cf6f.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-b2ea6b08493d.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-b2ea6b08493d.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-be62fb9fa85e.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-be62fb9fa85e.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-c45ffd28e947.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-c45ffd28e947.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/E153FA/cert-dacaed6475e2.json
vendored
Normal file
1
tests/fixtures/epc_prediction/E153FA/cert-dacaed6475e2.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/EN12PU/cert-040368bb642d.json
vendored
Normal file
1
tests/fixtures/epc_prediction/EN12PU/cert-040368bb642d.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/EN12PU/cert-0660c5366da9.json
vendored
Normal file
1
tests/fixtures/epc_prediction/EN12PU/cert-0660c5366da9.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/EN12PU/cert-08627d0739e2.json
vendored
Normal file
1
tests/fixtures/epc_prediction/EN12PU/cert-08627d0739e2.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/EN12PU/cert-0ad8443821d5.json
vendored
Normal file
1
tests/fixtures/epc_prediction/EN12PU/cert-0ad8443821d5.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/EN12PU/cert-0f29be810bed.json
vendored
Normal file
1
tests/fixtures/epc_prediction/EN12PU/cert-0f29be810bed.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/EN12PU/cert-19b2aea93797.json
vendored
Normal file
1
tests/fixtures/epc_prediction/EN12PU/cert-19b2aea93797.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/EN12PU/cert-1bbc01d15d4c.json
vendored
Normal file
1
tests/fixtures/epc_prediction/EN12PU/cert-1bbc01d15d4c.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/EN12PU/cert-20ebf6ff4e97.json
vendored
Normal file
1
tests/fixtures/epc_prediction/EN12PU/cert-20ebf6ff4e97.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/EN12PU/cert-60e676acb734.json
vendored
Normal file
1
tests/fixtures/epc_prediction/EN12PU/cert-60e676acb734.json
vendored
Normal file
File diff suppressed because one or more lines are too long
1
tests/fixtures/epc_prediction/EN12PU/cert-fe6faf36381f.json
vendored
Normal file
1
tests/fixtures/epc_prediction/EN12PU/cert-fe6faf36381f.json
vendored
Normal file
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue