YAML support
This commit is contained in:
parent
840983f36e
commit
a01645a1c8
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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}
|
||||
|
|
Reference in New Issue