github m3trik/pythontk v0.24.0
pythontk v0.24.0

one hour ago
  • 2026-11-12 -- Removed: AppInstaller's retired location="temp" (core_utils/app_installer.py) and TempArtifacts' legacy flat-temp window (file_utils/temp_artifacts.py, core_utils/test_sandbox.py); fixed: every deprecation window is judged on the UTC date (core_utils/deprecation.py new Deprecation.today).
    • The legacy flat-temp window is closed (opened 2026-10-13 for one release, its schedule test now due). A store no longer sweeps its prefix's leftovers flat in the system temp dir, TestSandbox no longer sweeps old roots there, and TempArtifacts.contains reads the root alone: a path in the system temp dir outside the root is not the store's.
    • location="temp" is gone (noticed 2026-10-13, due in 0.16.0; its 30-day window closed 2026-11-12). Pass "cache"; "temp" now raises ValueError like any unknown location. Nothing in the ecosystem passed it.
    • One day for every gate. window_expired defaulted to the machine's local date and CI judges in UTC, so between local and UTC midnight check_api_surface.py --check in CI called this retirement overdue while the local --semver gate held it, and no tree could release. Deprecation.today is the UTC date; the rule and check_api_surface.py both read it.
    • Test(s): red first, then green: test_deprecation.py new test_the_window_is_judged_on_the_utc_date (AttributeError before); test_app_installer.py loses the retired spelling's test; test_temp_artifacts.py loses TestLegacyFlatSweep, and test_contains_reads_the_root_alone holds a flat temp entry outside; test_deprecation, test_app_installer, test_temp_artifacts, test_test_sandbox, test_material_record, test_script_run 341 passed.
  • 2026-11-11 -- Fixed: an export's report says why a scene record failed, and names LOD groups sharing a name (core_utils/engines/scene_export/export_snapshot.py ExportSnapshot.assemble; file_utils/lod_chain.py LodChain.record_groups new note=).
    • A failed record says why. A producer's exception went to this module's log alone, so the export's report said only "materials (FAILED, left as stored)". It is noted now (ctx.note, the exception's type and message), with the traceback kept at debug level. On a production scene the reason was one material's missing map.
    • LOD groups sharing a name are said. A reader binds the lods record by group name, so it binds none of two groups named alike; the record's producers now say so in the export's report. Unity's importer refused two such groups on a production delivery.
    • Test(s): red first, then green: test_scene_records.py new test_a_failed_record_says_why_in_the_report; test_lod_chain.py new test_groups_sharing_a_name_are_said; test_scene_records, test_lod_chain, test_export_snapshot, test_glb_lods 315 passed.

Don't miss a new pythontk release

NewReleases is sending notifications on new releases.