Articles of pyyaml

¿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 […]

lector de yaml y jinja2

Me gustaría poder leer en python un archivo de configuración jinja de YAML como usar la biblioteca PyYAML pero recibo errores: {% set name = “abawaca” %} {% set version = “1.00” %} package: name: {{ name }} version: {{ version }} source: fn: {{ name }}-{{ version }}.tar.gz url: https://github.com/CK7/abawaca/archive/v{{ version }}.tar.gz sha256: 57465bb291c3a9af93605ffb11d704324079036205e5ac279601c9e98c467529 […]

Creando etiqueta personalizada en PyYAML

Estoy tratando de usar PyYAML de Python para crear una etiqueta personalizada que me permita recuperar las variables de entorno con mi YAML. import os import yaml class EnvTag(yaml.YAMLObject): yaml_tag = u’!Env’ def __init__(self, env_var): self.env_var = env_var def __repr__(self): return os.environ.get(self.env_var) settings_file = open(‘conf/defaults.yaml’, ‘r’) settings = yaml.load(settings_file) Y dentro de defaults.yaml es simplemente: […]

Cambiar un valor en un archivo yaml usando Python

Tengo un archivo .yaml que quiero actualizar con un código Python. Digamos que se ve algo así: state: ‘present’ Me gustaría tener un código que cambie el estado y guarde el archivo. Estoy tratando con algo como esto y fallaré: def set_state(state): with open(“file_to_edit.yaml”, ‘rw’) as f: doc = yaml.load(f) doc[‘state’] = state yaml.dump(f) Estoy […]

¿Cómo usar la clase de diccionario personalizada al cargar yaml?

Actualmente estoy cargando un archivo YAML como este import yaml yaml.load(”’level0: stuff: string0 level1: stuff: string1 level2: …”’) El código anterior crea diccionarios nesteds . En lugar de crear diccionarios nesteds, quiero crear instancias anidadas de objetos FancyDict . class FancyDict(collections.MutableMapping): def __init__(self, *args, **kwargs): for name in kwargs: setattr(self, name, kwargs[name]) La sección sobre […]