Noting something odd in my config.yaml

I remember making a change lately in my printer's Settings -> Filters screen, pressing the Save button having done so. I'm pretty sure I was trying to adjust the temperature filter, I'd guess.

plugins:
    _disabled:
    - forcelogin
...
serial:
    additionalPorts:
    - /dev/smoothieboard
    autoconnect: true
...
temperature:
    profiles:
    -   bed: 100
        chamber: null
        extruder: 210
        name: ABS
    -   bed: 60
        chamber: null
        extruder: 180
        name: PLA
terminalFilters:
-   name: Suppress temperature messages
    regex: '(Send: (N\d+\s+)?M105)|(Recv:\s+(ok\s+((P|B|N)\d+\s+)*)?(B|T\d*):(-)?\d+)'
-   name: Suppress SD status messages
    regex: '(Send: (N\d+\s+)?M27)|(Recv: SD printing byte)|(Recv: Not SD printing)'
-   name: Suppress wait responses
    regex: 'Recv: wait'
webcam:
    ffmpeg: /usr/bin/ffmpeg
    snapshot: http://127.0.0.1:8080/?action=snapshot
    stream: /webcam/?action=stream

What I see, though, is that the indentation levels of the children of terminalFilters appear to be one level too high.

The earlier temperature.profiles's children all have 4 + hyphen + 3 + entry as a format. terminalFilters's children have hypen + 3 + entry.

serial.additionalPorts's children have 4 + hyphen + 1 + entry format. plugins._disabled's children have 4 + hypen + 1 + entry format which again, to me, looks like it's one indentation level too high.

The documentation for adding custom controls suggests this:

controls:
  - name: Fan
    layout: horizontal
    children:
      - name: Enable Fan
        type: parametric_command
        command: M106 S%(speed)s
        input:
          - name: Speed (0-255)
            parameter: speed
            default: 255
      - name: Disable Fan
        type: command
        command: M107

I note that the documentation includes two-space indentation levels and my own config.yaml has four-space indentations. I know that I have personally copied/pasted straight from the docs in the past for modifying my own file. I recently just did a PR against OctoPi for a config.yaml-configuration script in which I'd gotten the indentation level wrong. I note also that the accessControl.localNetworks's children also have this listing indentation that's unexpected to me.

I guess I'm looking for some guidance here. The hyphen-list indentation syntax appears to be somewhat consistent in the documentation¹ but not-as-consistent in implementation. I was just about to help someone with a config.yaml formatting problem but I realize that I don't know how lists are supposed to be indented.

  1. See the controls section documentation which doesn't necessarily agree with the others

I've noticed this in my windows/python 3 development environment as well, the 4 spaces instead of 2.

In theory, this is the mother of all indentation intent.

with atomic_write(self._configfile, "wb", prefix="octoprint-config-", suffix=".yaml", permissions=0o600, max_permissions=0o666) as configFile:
				yaml.safe_dump(self._config, configFile, default_flow_style=False, indent="    ", allow_unicode=True)
				self._dirty = False

But then, what's going on with this in config.py effective_command with what appears to be a tab...?

We've got a two-space indent here in a test. Maybe the yaml indentation changed over time from 2 -> 4? But that matches with this. Or is it?

The printer profiles are stored at two-space. Software update at two.

Personally, I code with four-space indents for Python files.

.editorconfig in OctoPrint repository

I can see that the software update system might need to stay at whatever it was just so that things don't break.

It would be nice if the documentation, the cookiecutter and reality were to be matched up. Minimally, it would be nice to know what works.