Currently the vendor is only detected for systems running
Raspberry Pi OS and reported as 'raspberry-pi'. This may be
used to filter Pi specific dependencies.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Implement optional polling for devices that are not updated
asynchronously. GPIO, RF, Klipper, and MQTT devices are
excluded.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Avoid binding to the detected unit name of the Klipper
service, if available. Exclude all async notifications
sent when the device is processing a request.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Version of Tornado prior to 6.5.0 have a bug that may
prematurely close websocket connections when pinging
is enabled. Disable pinging for Moonraker's websocket
server and spoolman's client.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Tornado client websockets treat the ping timeout differently
from server websockets. The ping timeout should be less than
the ping interval.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Newer versions of Python can potentially destroy tasks
before they are complete due to garbage collection. To
prevent this a reference to all created tasks are kept in
a set and removed when the task is done.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Anomalies do not prevent updates, they are intended to alert
users of potential issues detected within an extension for
update. Anomalies are always logged, however it is not
necessary for them to be reported to frontends. This option
gives users the ability to silence anomalies on a per extension
basis.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Don't use the detected public IP when the user
has configured Moonraker to listen exclusively
on the localhost.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Pillow 10 does not support Python 3.13 and Pillow 11 does not support
Python 3.8.
Allowing Pillow from 9.5.0 to 11.1.0 in requirements to adapt Pillow 11
when it's available.
Signed-off-by: Icenowy Zheng <uwu@icenowy.me>
Support logging to json structures, useful for log parsers
and analytics. When enabled logging to stdout is still human
readable, so both forms of logging are available simultaneously.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Added additional essential metdata for single extruder multi-material printing. This is critical to new Mainsail functionality to map tools to MMU spools when using Happy Hare (Klipper MMU driver)
Signed-off-by: Paul Morgan (moggieuk@hotmail.com)
Embed the sysdeps_parser module in the install script
for package dependency resolution. This method is
more robust than the bash implementation and adds
support for the new requirement specifiers.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
Use the sysdeps_parser utility to parse the correct dependencies
out of the data returned by the configured system dependencies
json file.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This functionality is used by the update manager to parse
the result from system dependency files. By moving it
out of the update manager it becomes easier to test,
extend, and maintain. Additionally it can be embedded
in the install script.
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
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>
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>
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>
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>
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>
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>
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>