Run every profile maintenance job from one tool (#15726)

* Run every profile maintenance job from one tool

orca_id_tool.py becomes orca_profile_tool.py, and orca_extra_profile_check.py
and orca_filament_lib.py fold into it as subcommands: check, generate-id, fix,
trim, update-index and update-snapshot. The three scripts already overlapped --
the checker imported half of its rules from the id tool, which in turn kept a
copy-pasted set of output helpers to avoid the resulting import cycle -- while
disagreeing on how a vendor is enumerated, how a JSON file is read and what the
exit code means. One file settles all three.

check, normalize, trim and update-index reproduce their predecessors exactly; normalize and
update-index were diffed byte-for-byte against the old scripts over a copy of
the whole tree. Deliberate changes: the compatible-printers check no longer
switches itself off when --check-materials is passed, an error exits 1 rather
than -1, update-index honours --profile-type and reports a profile it cannot
place instead of dropping it from the index, fix and update-index gained
--dry-run, trim keeps an unindexed file some surviving profile still inherits
from, and vendors are enumerated as directories with an index -- which is why
blacklist.json, a data file that an unscoped index rebuild once wrote four empty
list sections into, loses them here and will not collect them again. The dead
rename_filament_system() helper is gone.

The suite under scripts/tests now covers the maintenance commands too, and CI
runs it; nothing there ran in CI before. No shipped profile data changes apart
from those four keys.

* update vendor index files with "python3 ./scripts/orca_profile_tool.py update-index" and "python3 ./scripts/orca_profile_tool.py normalize"
This commit is contained in:
SoftFever
2026-09-16 19:53:23 +08:00
committed by GitHub
parent 93c8b3f2b0
commit ade9e77b6b
112 changed files with 13257 additions and 17140 deletions
@@ -1,91 +0,0 @@
{
"type": "filament",
"name": "fdm_filament_paht",
"inherits": "fdm_filament_common",
"from": "system",
"instantiation": "false",
"filament_max_volumetric_speed": [
"12"
],
"filament_type": [
"PAHT"
],
"filament_density": [
"1.24"
],
"filament_cost": [
"0"
],
"cool_plate_temp": [
"35"
],
"eng_plate_temp": [
"0"
],
"textured_plate_temp": [
"60"
],
"cool_plate_temp_initial_layer": [
"35"
],
"eng_plate_temp_initial_layer": [
"0"
],
"textured_plate_temp_initial_layer": [
"60"
],
"nozzle_temperature_initial_layer": [
"220"
],
"reduce_fan_stop_start_freq": [
"1"
],
"overhang_fan_threshold": [
"50%"
],
"close_fan_the_first_x_layers": [
"1"
],
"nozzle_temperature": [
"220"
],
"temperature_vitrification": [
"45"
],
"nozzle_temperature_range_low": [
"190"
],
"nozzle_temperature_range_high": [
"240"
],
"slow_down_min_speed": [
"20"
],
"additional_cooling_fan_speed": [
"0"
],
"fan_cooling_layer_time": [
"80"
],
"fan_min_speed": [
"50"
],
"hot_plate_temp": [
"60"
],
"hot_plate_temp_initial_layer": [
"60"
],
"slow_down_layer_time": [
"8"
],
"filament_start_gcode": [
"; Filament start gcode\n"
],
"filament_end_gcode": [
"; filament end gcode \n"
],
"filament_vendor": [
"Generic"
]
}
@@ -1,15 +1,14 @@
{
"type": "process",
"name": "0.30mm Standard @Elegoo Giga 0.6 nozzle",
"renamed_from": "0.30mm Standard @EOS Giga 0.6 nozzle",
"inherits": "fdm_process_elegoo_06030",
"from": "system",
"setting_id": "mMP6cZhv9TYjYlEh",
"instantiation": "true",
"renamed_from": "0.30mm Standard @EOS Giga 0.6 nozzle",
"default_acceleration": "3000",
"filename_format": "EOGiga1_{nozzle_diameter[0]}_{input_filename_base}_{filament_name}_{layer_height}_{print_time}.gcode",
"initial_layer_acceleration": "1000",
"is_custom_defined": "0",
"make_overhang_printable_angle": "90",
"outer_wall_acceleration": "2000",
"resolution": "0.05",
@@ -24,7 +24,6 @@
"sparse_infill_speed": "100",
"inner_wall_speed": "100",
"internal_solid_infill_speed": "100",
"is_custom_defined": "0",
"outer_wall_speed": "60",
"top_surface_speed": "80"
}