REQ: Support ruamel.yaml's RoundTripLoader/Dumper for retaining comments
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 32/100
Línea de trabajo
Comienza en box/box.py, alrededor del código del constructor enlazado en el issue, y luego sigue el manejo de ruamel.yaml RoundTripLoader, RoundTripDumper y CommentedMap en from_yaml y to_yaml. Confirma cómo se convierten los datos en objetos Box y cómo se serializan. Se considera terminado cuando los comentarios y el orden de YAML sobreviven a un ciclo de load/dot-notation/use/dump.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Now that the default YAML library is ruamel.yaml, and its notable feature is round trip comment preservation, my expectation is that this should work:
In [1]: from box import Box
In [2]: yaml_doc = """---
...: # This is my YAML doc
...: zlast: 1 # This is a line comment on zlast
...: afirst: 2 # This should be shown second, not first!"""
In [3]: mybox = Box.from_yaml(yaml_doc)
In [4]: print(mybox.to_yaml())
afirst: 2
zlast: 1
Unordered, and no comments! However ruamel.yaml has RoundTripLoader and RoundTripDumper available!
In [8]: import ruamel.yaml as yaml
In [9]: data = yaml.load(yaml_doc, Loader=yaml.RoundTripLoader)
In [10]: print(yaml.dump(data, Dumper=yaml.RoundTripDumper))
# This is my YAML doc
zlast: 1 # This is a line comment on zlast
afirst: 2 # This should be shown second, not first!
But using them with Box only helps resolve the creation order issue -- the comments are gone:
In [11]: mybox = Box.from_yaml(yaml_doc, Loader=yaml.RoundTripLoader)
In [11]: print(mybox.to_yaml(Dumper=yaml.RoundTripDumper))
zlast: 1
afirst: 2
Naturally -- as the incoming data is unrolled into a Box in the constructor:
https://github.com/cdgriffith/Box/blob/4a505124686c1f0b79ea84bb292aec331ee70f51/box/box.py#L223
I'm not sure if there's reasonable way for Box to coexist with the ruamel.yaml.CommentedMap, but it would be VERY convenient to work with my YAML files in box dot notation, while leaving the human readable comments intact.
- Lenguaje dominante
- Python
- Estrellas
- 2.8k
- Forks
- 145
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de cdgriffith/Box
-
subclass of `Box` does not unpickle correctlyPosiblemente ocupada @koriyoshi2041 la tomó hace 143 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
cdgriffith/Box#308 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
cdgriffith/Box#307 · 1 comentario ·
-
Dotted keys read from YAML are lost with box_dots / default_boxPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
cdgriffith/Box#305 ·
-
[Bug] Camel killer box and box dots gives unexpected behaviourPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 30/100
cdgriffith/Box#300 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
cdgriffith/Box#298 ·
Todos los issues de cdgriffith/Box
Issues similares
-
bug documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
awslabs/visual-asset-management-system#514 ·
Los mantenedores suelen responder en 1 día
-
backend bug spec:REQ-053
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
nolte/kamerplanter#2547 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
EleutherAI/lm-evaluation-harness#4425 ·
Los mantenedores suelen responder en 1 día
-
Gemini: respect PLANNING_DISABLED=1 in lifecycle context hooksPosiblemente ocupada @AmariAugustin la tomó hoy. Abiertobug good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 87/100
OthmanAdi/planning-with-files#329 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
wr.dynamodb.read_items returns [{}] for a single partition value that does not existPosiblemente ocupada @auraseb la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
aws/aws-sdk-pandas#3520 ·
Los mantenedores suelen responder en 2 días