[Feature Request] Add feature to format YAML output in blocks
Open
Nobody has claimed this yet.
feature
help wanted
- Dominant language
- Python
- Stars
- 65
- Forks
- 14
- PR merge metrics
- No merged PRs in 30d
Description
Currently a command such as y rl 11,12,13,14,15,16,20,30,40,50 | y --yaml rb --only=mp produces the following output:
11: {cyphal.l3xz-leg-ctrl.angle_offset_deg.a: 123.92578125, cyphal.l3xz-leg-ctrl.angle_offset_deg.b: 113.6865234375, cyphal.node.id: 11, cyphal.pub.AS5048_A.id: 1001, cyphal.pub.AS5048_B.id: 1002, cyphal.pub.bumper.id: 1003}
12: {cyphal.l3xz-leg-ctrl.angle_offset_deg.a: 0.0, cyphal.l3xz-leg-ctrl.angle_offset_deg.b: 0.0, cyphal.node.id: 12, cyphal.pub.AS5048_A.id: 1004, cyphal.pub.AS5048_B.id: 1005, cyphal.pub.bumper.id: 1006}
13: {cyphal.l3xz-leg-ctrl.angle_offset_deg.a: 0.0, cyphal.l3xz-leg-ctrl.angle_offset_deg.b: 0.0, cyphal.node.id: 13, cyphal.pub.AS5048_A.id: 1007, cyphal.pub.AS5048_B.id: 1008, cyphal.pub.bumper.id: 1009}
14: {cyphal.l3xz-leg-ctrl.angle_offset_deg.a: 0.0, cyphal.l3xz-leg-ctrl.angle_offset_deg.b: 0.0, cyphal.node.id: 14, cyphal.pub.AS5048_A.id: 1010, cyphal.pub.AS5048_B.id: 1011, cyphal.pub.bumper.id: 1012}
15: {cyphal.l3xz-leg-ctrl.angle_offset_deg.a: 0.0, cyphal.l3xz-leg-ctrl.angle_offset_deg.b: 0.0, cyphal.node.id: 15, cyphal.pub.AS5048_A.id: 1013, cyphal.pub.AS5048_B.id: 1014, cyphal.pub.bumper.id: 1015}
16: {cyphal.l3xz-leg-ctrl.angle_offset_deg.a: 0.0, cyphal.l3xz-leg-ctrl.angle_offset_deg.b: 0.0, cyphal.node.id: 16, cyphal.pub.AS5048_A.id: 1016, cyphal.pub.AS5048_B.id: 1017, cyphal.pub.bumper.id: 1018}
20: {cyphal.node.id: 20, cyphal.pub.estop.id: 2001, cyphal.sub.light_mode.id: 2002}
30: {}
40: {cyphal.node.id: 40, cyphal.sub.pulse_width.id: 4001}
50: {uavcan.node.id: 50, uavcan.pub.dynamics.id: 65535, uavcan.pub.dynamics.type: reg.udral.physics.dynamics.rotation.PlanarTs.0.1, uavcan.pub.esc_heartbeat.type: reg.udral.service.common.Heartbeat.0.1, uavcan.pub.feedback.id: 65535, uavcan.pub.feedback.type: reg.udral.service.actuator.common.Feedback.0.1, uavcan.pub.power.id: 65535, uavcan.pub.power.type: reg.udral.physics.electricity.PowerTs.0.1, uavcan.pub.status.id: 65535, uavcan.pub.status.type: reg.udral.service.actuator.common.Status.0.1, uavcan.sub.note_response.id: 65535, uavcan.sub.note_response.type: reg.udral.physics.acoustics.Note.0.1, uavcan.sub.readiness.id: 5001, uavcan.sub.readiness.type: reg.udral.service.common.Readiness.0.1, uavcan.sub.setpoint.id: 5002, uavcan.sub.setpoint.type: reg.udral.service.actuator.common.sp.Scalar.0.1}
When I afterwards manually edit the file I'd like to have it formatted in blocks, because that increases readability, i.e.
11:
cyphal.pub.AS5048_A.id: 1001
cyphal.pub.AS5048_B.id: 1002
cyphal.pub.bumper.id: 1003
12:
cyphal.pub.AS5048_A.id: 1004
cyphal.pub.AS5048_B.id: 1005
cyphal.pub.bumper.id: 1006
13:
cyphal.pub.AS5048_A.id: 1007
cyphal.pub.AS5048_B.id: 1008
cyphal.pub.bumper.id: 1009
14:
cyphal.pub.AS5048_A.id: 1010
cyphal.pub.AS5048_B.id: 1011
cyphal.pub.bumper.id: 1012
15:
cyphal.pub.AS5048_A.id: 1013
cyphal.pub.AS5048_B.id: 1014
cyphal.pub.bumper.id: 1015
16:
cyphal.pub.AS5048_A.id: 1016
cyphal.pub.AS5048_B.id: 1017
cyphal.pub.bumper.id: 1018
20:
cyphal.pub.estop.id: 2001
cyphal.sub.light_mode.id: 2002
30: {}
40:
cyphal.sub.pulse_width.id: 4001
50:
uavcan.sub.readiness.id: 5001
uavcan.sub.setpoint.id: 5002
This could be a parameter like --yaml-blocks.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the documented y rl ... | y --yaml rb --only=mp example and tracing the CLI path that produces YAML output. Add an optional --yaml-blocks mode while preserving the current default format; done means mappings are emitted in the requested block style, including empty mappings such as 30: {}.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100