github m3trik/pythontk v0.25.0
pythontk v0.25.0

32 minutes ago
  • 2026-11-13 -- Removed: SceneExporterBase.generate_log_file_path (core_utils/engines/scene_export/scene_exporter.py). Retired 2026-10-14 for log_file_path (the run log is keyed by the scene, not the export file), due in 0.17.0; its 30-day window closed with 2026-11-13 UTC, and check_api_surface.py --check and test_deprecation.py test_nothing_in_pythontk_has_outlived_its_window read it as expired. Nothing in the ecosystem calls it. A removal: the release is 0.25.0.
    • Test(s): test_scene_exporter.py test_generate_log_file_path_is_retired goes with the alias; check_api_surface.py --check: API retirements on time for all seven packages.
  • 2026-11-13 -- Fixed: an RPC plugin answers while its host is busy (net_utils/rpc/plugin_core.py RpcPlugin.start, new _ThreadedServer, OpRegistry.register(main_thread=), new OpRegistry.needs_main_thread). The server answered one request at a time, and an op waits for the host's main thread: while a bake, an export or a save held that thread nothing was answered, not /health and not a job's status. A client following a job timed out, found no health either, reported a job that was running fine as failed, and a bridge then dropped the live instance's record. start now answers each request on a thread of its own; host ops still run one at a time (RpcPlugin._op_lock). An op registered main_thread=False reads only the plugin's own bookkeeping and is answered on the request's thread at once, as system.ping, list_ops, describe and identity now are. A pumped server (Toolbag) and serve are unchanged: every op on the host's, or the caller's, thread.
    • Test(s): red first, then green: test_plugin_core.py new TestABusyHostStillAnswers (3: health and a bookkeeping op answer while a host op is under way, host ops still one at a time, a pumped server stays on the host's thread); test_plugin_core, test_rpc, test_look_capture 145 passed, 5 skipped. Staged into the five plugin payloads (sync_rpc_core.py --check).
  • 2026-11-12 -- Tests: the test folder is tests/, the pytest convention (was test/). test is the standard library's own package name, so from test.x import ... could resolve to it. pyproject.toml testpaths, pythonpath and the CI workflows follow. With it: the coverage upload names ./coverage.xml, the file pytest-cov writes (it named a path inside the test folder, before and after the rename, so no report was ever found); tests/test_naming_convention.py runs standalone as python -m tests.test_naming_convention.

Don't miss a new pythontk release

NewReleases is sending notifications on new releases.