Commit Graph

19 Commits

Author SHA1 Message Date
brett fa4a97f6fa Refactor: ApplicationContext DI wiring (#131)
* refactor: wire all services through ApplicationContext

- Created src/application_context.py as DI container with TYPE_CHECKING imports
- server.py now instantiates all services in dependency order via ApplicationContext
- Fixed infinite recursion bug: 48 instance methods renamed with underscore prefix
  to avoid shadowing by same-named @classmethod forwarders
- ZeroconfServer: instantiate Zeroconf() in __init__, add _sync_class() to
  configure forwarder, direct _configure/_start calls during wiring
- Config, EngineManager, PreviewManager: all forwarders and _sync_class() intact
- RenderQueue: load_state and subscribe moved to __init__, threading.Lock retained
- DistributedJobManager: subscribe_to_listener moved to __init__

* fix: greedy regex in get_render_devices swallows BlenderKit log output

Changed regex from greedy [\s\S]* to non-greedy .*? with re.DOTALL
so it stops at the first ] (the end of the GPU data JSON array)
instead of matching through timestamped log lines like
[19:36:22.109, __init__.py:2881] that contain trailing brackets.

* fix: AttributeError on .enabled in update_job_count prevents options from rendering

* refactor: log silent AttributeError catches, add _sync_class to remaining services, drop dead ctx slot
2026-06-05 22:01:20 -05:00
brett e8992fc91a Add missing docstrings and pylint improvements (#130) 2026-01-20 23:13:38 -06:00
brett 74dce5cc3d Windows path fixes (#129)
* Change uses of os.path to use Pathlib

* Add return types and type hints

* Add more docstrings

* Add missing import to api_server
2026-01-18 00:18:43 -06:00
brett d8af7c878e Job submission code and API cleanup (#127)
* Refactor add jobs and make add_job api only be one job (instead of a list)

* Renamed to JobImportHandler and misc cleanup

* Dont bury exceptions in server proxy post_job

* Update code to create child jobs in a cleaner manner
2025-12-31 23:14:28 -06:00
brett e335328530 Improve server shutdown (#126)
* Cleaned up server shutdown process

* Fix exception on shutdown in Windows
2025-12-30 17:46:53 -06:00
brett 4704806472 Settings Window (#124)
* Initial commit for settings window

* More WIP for the Settings panel

* Added Local Files section to Settings

* More WIP on Settings

* Add ability to ignore system builds

* Improvements to Launch and Delete buttons

* Fix issue where icons were not loading

* Network password settings WIP

* Update label

* Import and naming fixes

* Speed improvements to launch

* Update requirements.txt

* Update Windows CPU name lookup

* Add missing default values to a few settings

* More settings fixes

* Fix Windows Path issue

* Added hard types for getting settings values

* More UI cleanup

* Correctly refresh Engines list after downloading new engine

* Improve downloader with UI progress

* More download improvements

* Add Settings Button to Toolbar
2025-12-28 12:33:29 -06:00
brett 574c6f0755 Job Submission CLI (#122)
* Initial commit of job submission cli tool, with minor fixes in API code

* Refactored and further decoupled server / client code

* Clean up ServerProxy to not use hardcoded loopback addresses
2025-12-27 18:36:34 -06:00
Brett Williams 6b68d42b93 Misc minor fixes 2025-02-28 18:50:44 -06:00
brett 3600eeb21b Refactor: Move all initialization logic out of api_server and into init (#91)
* Zeroconf logging improvements

* Ignore RuntimeErrors in background threads - Prevents issues during shutdown

* Migrate start up code from api_server.py to init.py

* Add error handlers to the API server to handle detached instances

* Integrate RenderQueue eval loop into RenderQueue object

* Silently catch RuntimeErrors on evaluate_queue

* Stop background queue updates in prepare_for_shutdown
2024-08-08 04:47:22 -05:00
brett d3b84c6212 Remove legacy client (#58)
* Remove legacy client

* Misc cleanup
2023-11-04 16:13:40 -05:00
Brett Williams 39d6e95e9a Repo cleanup. Move job_server class to lib. 2022-10-27 10:44:19 -07:00
Brett Williams eb9e719f47 Add ability to get file list and download files from project output 2022-10-26 18:27:13 -07:00
Brett Williams 2da06ab166 RenderWorker cleanup and add camera methods to BlenderRenderWorker 2022-10-25 15:28:51 -07:00
Brett Williams 3ee3dfd4e2 Rename RenderManager to RenderQueue 2022-10-25 11:34:35 -07:00
Brett Williams 8bf064520b Fix add_job json parsing 2022-10-23 16:33:50 -07:00
Brett Williams 1af3828b11 Fix HTML error codes in server response 2022-10-23 16:32:26 -07:00
Brett Williams c78c4aee68 Improvements to the upload.html file 2022-10-12 17:30:42 -07:00
Brett Williams 2181ce54a2 Combine add_job and upload_file methods 2022-10-12 17:11:27 -07:00
Brett Williams fd6af10d56 Refactor and reorganize code. Split server into manager and server files. 2022-10-12 13:44:41 -07:00