2185 Commits

Author SHA1 Message Date
Eric Callahan
c35353ed2a file_manager: delay file observer initialization
The addition of "gcode file processors" makes it possible
for processor registration to occur in "component_init".
The file observer init must be delayed until after all processors
are registered to correctly process metadata for gcode files
added while Moonraker was not running.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-17 15:32:45 -05:00
Eric Callahan
35cb7501c6 docs: update analysis and metadata docs
Signed-off-by:  Eric Callahan
2025-02-17 15:32:45 -05:00
Eric Callahan
58f060730b analysis: add process endpoint
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-17 15:32:45 -05:00
Eric Callahan
cb39c8c88a analysis: don't allow an estimate to update metadata
Early feedback is that replacing the "estimated_time" field of the metadata
with the value returned by Klipper Estimator is not sufficient.  The
post-process performed by Klipper Estimator also updates M73 gcode
commands, ETAs calculated based on progress are inaccurate without
these mods.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-17 15:32:45 -05:00
Eric Callahan
a95405f800 file_manager: handle inotify edge move case
It is possible to create, move, then close a file.  Handle this case
by rescheduling the "create_file" event under the new name.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-17 15:32:45 -05:00
Eric Callahan
1f4888cded analysis: change behavior of auto analysis
Perform a post-process with Klipper Estimator rather than
analyze and replace the "estimated_time" field in the metadata.
This updates the M73 commands in the gcode file, allowing for
more accurate ETAs.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-17 15:32:45 -05:00
Eric Callahan
b8b28bc0c9 file_manager: add support for metadata gcode processors
Allow components to register gcode processors which will modify
the gcode file prior to metadata processing.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-17 08:06:46 -05:00
Eric Callahan
e338f537f5 pip_utils: handle exceptions when updating pip
Don't propagate exceptions when update_pip fails.  Some
systems may not be able to update pip, and the current
version of pip should be sufficient to install packages.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-17 08:06:46 -05:00
Pedro Lamas
ccbb03f5f3 docs: fixes invalid JSON in example
Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
2025-02-17 08:05:17 -05:00
Eric Callahan
354cc11b8e
docs: fix typos
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-12 06:28:53 -05:00
Eric Callahan
706455a6f8 source_info: include git worktree detection
Standard git repos contain a ".git" folder, however worktrees
contain a ".git" file.  The file provides the path to the worktree's
git directory.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-11 16:51:04 -05:00
Eric Callahan
2fcc542d85 docs: update documentation with latest changes
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-11 08:01:50 -05:00
Eric Callahan
f2c564cfb7 analysis: initial implementation
Adds support for GCode file time analysis using Klipper Estimator.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-11 08:01:50 -05:00
Eric Callahan
3ec968d873 python_deploy: update local state on refresh
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-10 18:17:39 -05:00
Eric Callahan
c7c2bb20d9 python_deploy: fix rollback procedure
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-10 18:17:39 -05:00
Eric Callahan
7f1907beb3 python_deploy: enable the eager pip update strategy
Attempt to update all dependencies of a python package to the
latest version compatible with its requirement specifier.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-10 18:17:39 -05:00
Eric Callahan
bda03dcf29 file_manager: emit event after gcode metadata has been processed
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-10 18:17:39 -05:00
Eric Callahan
530f1c2016 update_manager: add support for executable types
This change refactors zip_deploy.py, renaming it net_deploy.py.
Net hosted executables that currently exist on the system
with a valid `release_info.json` file can now be updated.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-10 18:17:39 -05:00
Eric Callahan
636626506a file_manager: provide method to look up paths by root
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-07 15:20:46 -05:00
Eric Callahan
152837959a authorization: add method to return api key
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-07 15:20:46 -05:00
Eric Callahan
ff2571180c update_manager: support internal updaters
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-07 15:20:46 -05:00
Eric Callahan
1117890327
docs: update changelog
Also add a warning to the "webhooks" printer object description
stating that it should not be used to receive async "ready"
updates.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-07 10:31:56 -05:00
Eric Callahan
fb6e416e1c
mqtt: push Klipper status updates after subscription
This resolves an issue where MQTT clients miss the first status
update after a Klipper restart.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-07 06:15:26 -05:00
Eric Callahan
b8388db18d
klippy_connection: improve subscription request handling
If the connection requesting the subscription already had
an outstanding subscription, remove it before processing.
This prevents immediate status updates from being pushed
to the requesting connection.

Don't add connections to the dictionary of subscribed
connections if the request is an empty object, as this
is a request to unsubscribe from all objects.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-07 06:08:49 -05:00
Eric Callahan
71ab2fb80e
docs: update readthedocs configuration
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-06 19:17:41 -05:00
Eric Callahan
fae2b31acc docs: config doc formatting improvements
Use block style admonitions and add titles to
fenced code.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-06 19:15:38 -05:00
Eric Callahan
9c550a8f9a docs: complete API documentation rework
Moonraker's external API documentation has been significantly
overhauled in an effort to improve clarity and readability.
All parameters and responses are documented with specifications.
Tables and other elements are used to make documentation more
visible and less verbose.

Spelling and other corrections have also been added.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-06 19:15:38 -05:00
Eric Callahan
5a3b35f5ac docs: add collapse_code extension from pymdown-ex
This extension is used to collapse the example responses presented
in the API documentation, which can be quite long.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-05 07:35:31 -05:00
Eric Callahan
549f9fe91d
build: bump pdm-backend to 2.4.3
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-04 05:44:32 -05:00
Eric Callahan
f3b0afd574
build: bump streaming-form-data package
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-03 06:08:49 -05:00
Eric Callahan
ac4959cfbf
build: bump tornado and apprise packages
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-03 05:37:27 -05:00
dependabot[bot]
8f4ed621a7 build(deps): bump jinja2 from 3.1.4 to 3.1.5
Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.4 to 3.1.5.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/3.1.4...3.1.5)

---
updated-dependencies:
- dependency-name: jinja2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-03 05:25:08 -05:00
Eric Callahan
fad1a1531b
docs: update changelog
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-01 08:15:43 -05:00
Eric Callahan
e417d80244 update_manager: add upgrade endpoint
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-02-01 07:49:25 -05:00
Eric Callahan
7e3c86e09a
docs: update documentation with latest changes
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-01-30 07:43:54 -05:00
Eric Callahan
0848fa1b59
update_manager: support "extra" reqs for python updates
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-01-29 16:31:58 -05:00
Eric Callahan
50e1f3c0c4
update_manager: report name and type for os package manager
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-01-29 16:28:33 -05:00
Eric Callahan
52781fbd9e update_manager: report updater name for git_repo types
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-01-27 20:25:04 -05:00
Eric Callahan
d4d2074466 scripts: update fetch-apikey.sh
Fetch the API Key from Moonraker's SQL database when available.

Add a -g option which will generate a new API Key and insert it into the database.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-01-24 07:42:19 -05:00
Eric Callahan
db64bc02c8 pip_utils: upgrade existing packages during installation
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-01-24 05:22:46 -05:00
Eric Callahan
432a3a653a
application: log http API request exceptions in verbose mode
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-01-23 08:11:41 -05:00
Eric Callahan
72ed175c52
src: type comparison fix
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-01-13 12:35:08 -05:00
Eric Callahan
7e765b667c
wled: lint fix
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-01-13 12:31:55 -05:00
Eric Callahan
73dc4e50eb build: remove pyserial-asyncio requirement
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-01-13 11:13:41 -05:00
Eric Callahan
239494e4dc wled: initial support for responses
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-01-13 11:13:41 -05:00
Eric Callahan
ca2772df79 wled: formatting and annotation fixes
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-01-13 11:13:41 -05:00
Eric Callahan
308a5eb5d4 wled: use async_serial utility
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-01-13 11:13:41 -05:00
Eric Callahan
0307a32e1b paneldue: use async_serial utility
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-01-13 11:13:41 -05:00
Eric Callahan
60c2bef474 async_serial: support for asyncio serial devices
Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-01-13 11:13:41 -05:00
Eric Callahan
fe60ebd89a wled: don't import tornado dependencies
Use Moonraker's http client to communicate with the wled device.

Signed-off-by:  Eric Callahan <arksine.code@gmail.com>
2025-01-12 10:24:56 -05:00