23 lines
2.2 KiB
Python
23 lines
2.2 KiB
Python
"""Replace whole-file decoding only in QA, keeping the source edition/matching rules."""
|
|
from pathlib import Path
|
|
import json
|
|
ROOT=Path(__file__).resolve().parent.parent
|
|
PRIVATE=ROOT/'storage/app/private/investmoz-v2/portal-audit'
|
|
plan=json.loads((PRIVATE/'portal-stability-latest.json').read_text(encoding='utf-8'));source=Path(plan['source'])
|
|
file=source/'app/Services/TerritoryGeometryImport.php';text=file.read_text(encoding='utf-8')
|
|
text=text.replace("[__FILE__, config_path('geometry-import.php')", "[__FILE__, app_path('Services/RetainedGeoJsonCollection.php'), config_path('geometry-import.php')")
|
|
old="$source = json_decode($this->readFile($file), true, 512, JSON_THROW_ON_ERROR);"
|
|
assert text.count(old)==1;text=text.replace(old,"$collection = new RetainedGeoJsonCollection($file);\n $source = $collection->manifest();")
|
|
text=text.replace("count($source['features'] ?? [])", "$source['feature_count']")
|
|
text=text.replace("$source['features'][0]['properties']", "$source['first_properties']")
|
|
text=text.replace("foreach ($source['features'] as $feature)","foreach ($collection->features() as $feature)")
|
|
old="$bytes = $this->readFile(config('geometry-import.directory').'/moz-adm'.$data['level'].'-ine-20190607.geojson');\n abort_unless(hash('sha256', $bytes) === $plan['source_sha256'], 409);\n $source = json_decode($bytes, true, 512, JSON_THROW_ON_ERROR);"
|
|
assert text.count(old)==1
|
|
text=text.replace(old,"$sourcePath = config('geometry-import.directory').'/moz-adm'.$data['level'].'-ine-20190607.geojson';\n abort_unless(hash_file('sha256', $sourcePath) === $plan['source_sha256'], 409);\n $collection = new RetainedGeoJsonCollection($sourcePath);")
|
|
text=text.replace("foreach ($plan['rows'] as $i => $row)","foreach ($collection->features() as $i => $feature)")
|
|
text=text.replace(" if ($row['status']", " $row = $plan['rows'][$i];\n if ($row['status']",1)
|
|
text=text.replace(" $feature = $source['features'][$i];\n",'')
|
|
assert "$source['features']" not in text
|
|
file.write_text(text,encoding='utf-8')
|
|
print(json.dumps({'result':'QA_streaming_reader_integrated','matching_and_edition_rules_preserved':True,'active_sources_changed':False}))
|