Articles of pyyaml

¿Cómo escribo un representante para PyYAML?

Quiero tener una función personalizada que serialice objetos de python arbitrarios, como que la función json.dump tenga un argumento opcional llamado ‘predeterminado’, que debería ser una función a la que llamará el dumper json si el objeto no es serializable por json. Simplemente quiero hacer el equivalente de esto desde el paquete json. json.dump(tests_dump, file(‘somefile’, […]

obligando a pyYAML a volcar constantemente

In [136]: a = [1,2,3,4,5] In [137]: print yaml.dump(a) [1, 2, 3, 4, 5] In [138]: a = [1,2,3,4,5, [1,2,3]] In [139]: print yaml.dump(a) – 1 – 2 – 3 – 4 – 5 – [1, 2, 3] ¿Por qué las salidas de los dos dumps anteriores son diferentes? ¿Es posible forzar a pyYAML a […]

Formato de salida de clase personalizada en PyYAML

Estoy trabajando en un ejemplo simple aquí, pero los documentos todavía me dejan un poco confundido. Aquí está el código de ejemplo: class A(yaml.YAMLObject): yaml_tag = u’!A’ def __init__(self, val): self.val = val if __name__ == ‘__main__’: t = datetime.time() a = A(t) print yaml.dump(a) print yaml.load(yaml.dump(a)).val == t La salida es ! A val: […]

¿Por qué PyYAML invierte tanto tiempo en analizar un archivo YAML?

Estoy analizando un archivo YAML con alrededor de 6500 líneas con este formato: foo1: bar1: blah: { name: “john”, age: 123 } metadata: { whatever1: “whatever”, whatever2: “whatever” } stuff: thing1: bluh1: { name: “Doe1”, age: 123 } bluh2: { name: “Doe2”, age: 123 } thing2: … thingN: foo2: … fooN: Solo quiero analizarlo con […]

¿Cómo forzar a PyYAML a cargar cadenas como objetos Unicode?

El paquete PyYAML carga cadenas no marcadas como objetos unicode o str, dependiendo de su contenido. Me gustaría usar objetos Unicode en mi progtwig (y, desafortunadamente, todavía no puedo cambiar a Python 3). ¿Existe una manera fácil de forzar a PyYAML a que siempre las cadenas carguen objetos Unicode? No quiero saturar mi YAML con […]

pyyaml: dumping sin tags

yo tengo >>> import yaml >>> yaml.dump(u’abc’) “!!python/unicode ‘abc’\n” Pero yo quiero >>> import yaml >>> yaml.dump(u’abc’, magic=’something’) ‘abc\n’ ¿Qué fuerza mágica no fuerza el etiquetado?

Cómo crear un objeto datetime con PyYAML

Me gustaría poder crear un objeto datetime.datetime.now() con datetime.datetime.now() PyYAML. Es fácil llamar a algunas funciones: >>> y = “””#YAML … description: Something … ts: !!python/object/apply:time.time []””” >>> yaml.load(y) {‘description’: ‘Something’, ‘ts’: 1289955567.940973} >>> Sin embargo, parece que no puedo averiguar cómo obtener un datetime.now() . He intentado tantas permutaciones con llamadas a eso utilizando […]

La nueva versión de PyYAML se rompe en la mayoría de los objetos de Python personalizados – RepresenterError

Hace aproximadamente 5 horas, se lanzó la versión 4.1.0 . Está rompiendo mis pruebas unitarias. Aquí hay un MVCE limpio que muestra esto: Versión 3.12: >>> import numpy as np >>> import yaml >>> x = np.int64(2) >>> yaml.dump(x, Dumper=yaml.Dumper) ‘!!python/object/apply:numpy.core.multiarray.scalar\n- !!python/object/apply:numpy.dtype\n args: [i8, 0, 1]\n state: !!python/tuple [3, <, null, null, null, -1, -1, […]

pyyaml ​​y usando comillas solo para cadenas

Tengo el siguiente archivo YAML: — my_vars: my_env: “dev” my_count: 3 Cuando lo leo con PyYAML y lo vuelvo a descargar, obtengo el siguiente resultado: — my_vars: my_env: dev my_count: 3 El código en cuestión: with open(env_file) as f: env_dict = yaml.load(f) print(yaml.dump(env_dict, indent=4, default_flow_style=False, explicit_start=True)) Intenté usar el parámetro default_style : with open(env_file) as […]

Cargando documento como cadena cruda en yaml con PyYAML

Quiero analizar documentos yaml como los siguientes meta-info-1: val1 meta-info-2: val2 — Plain text/markdown content! jhaha Si load_all esto con PyYAML, obtengo lo siguiente >>> list(yaml.load_all(open(‘index.yml’))) [{‘meta-info-1’: ‘val1’, ‘meta-info-2’: ‘val2’}, ‘Plain text/markdown content! jhaha’] Lo que estoy tratando de lograr aquí es que el archivo yaml debe contener dos documentos, y el segundo se debe […]