fmartingr
/
jeeves
Archived
1
0
Fork 0

YAML support

This commit is contained in:
Felipe Martin 2020-04-29 20:30:11 +02:00
parent 840983f36e
commit a01645a1c8
Signed by: fmartingr
GPG Key ID: 716BC147715E716F
3 changed files with 22 additions and 2 deletions

View File

@ -3,6 +3,11 @@ from typing import Any, Text, MutableMapping
from pathlib import Path
import toml
import yaml
try:
from yaml import CLoader as Loader, CDumper as Dumper
except ImportError:
from yaml import Loader, Dumper
from jeeves.core.objects import Flow, BaseObject
@ -44,6 +49,20 @@ class ObjectParser:
def to_toml(cls, obj: BaseObject) -> Text:
return toml.dumps(cls.to_dict(obj))
@classmethod
def from_yaml(cls, serialized: Text) -> BaseObject:
dct = yaml.load(serialized, Loader=Loader)
return cls.from_dict(dct)
@classmethod
def from_yaml_file(cls, path) -> BaseObject:
dct = yaml.load(path, Loader=Loader)
return cls.from_dict(dct)
@classmethod
def to_yaml(cls, obj: BaseObject) -> Text:
return yaml.dump(cls.to_dict(obj), Dumper=Dumper)
class FlowParser(ObjectParser):
object = Flow

4
poetry.lock generated
View File

@ -771,7 +771,7 @@ python-versions = "*"
version = "227"
[[package]]
category = "dev"
category = "main"
description = "YAML parser and emitter for Python"
name = "pyyaml"
optional = false
@ -1081,7 +1081,7 @@ docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
testing = ["jaraco.itertools", "func-timeout"]
[metadata]
content-hash = "5748d878d35d06c5a3aa0a58cf0701e0b530a7552bf3912cd1ebf9c796ac6f89"
content-hash = "5971fde5b20ddae1180a2f625dadd45dbb75af3a1d16a296867853e38d1044c7"
python-versions = "^3.7"
[metadata.files]

View File

@ -14,6 +14,7 @@ pydantic = "^0.32.2"
click = "^7.0"
toml = "^0.10.0"
docker = "^4.1.0"
pyyaml = "^5.3.1"
[tool.poetry.dev-dependencies]
black = {version = "^18.3-alpha.0", allow-prereleases = true}