跳转到主要内容

一个用于解析和加载Compose文件的Python库

项目描述

compose-py

一个用于解析和加载Compose文件的Python库

安装

pip install compose-py

默认情况下,该库没有dataclass库的依赖。选择'pydantic'或'dataclasses'并安装库。我们还为库提供了extras

# If you prefer Pydantic models
pip install "compose-py[pydantic]"

# If you prefer dataclasses models
pip install "compose-py[dataclasses]"

教程:加载、修改和保存docker-compose.yml

Pydantic.BaseModel(默认)

import compose_py

with open("docker-compose.yml", "r") as f:
    obj = compose_py.load_yaml(f)
print(obj)  # Prints 'compose_py.models_pydantic.ComposeSpecification(...)'
print(obj.services["web"])  # Prints 'compose_py.models_pydantic.Service(...)'

# Copy and modify the existing service, then add it to the specification
web2 = obj.services["web"].copy()
web2.command = "--port 8081"
obj.services["web2"] = web2

print(compose_py.dump_yaml_str(obj))
with open("docker-compose-modified.yml", "w") as f:
    compose_py.dump_yaml(obj, f)

您可以在compose_py.models_pydantic包下找到更多API。

dataclasses.dataclass

import compose_py

with open("docker-compose.yml", "r") as f:
    obj = compose_py.load_yaml(f, model=compose_py.ModelType.DATACLASSES)
print(obj)  # Prints 'compose_py.models_dataclasses.ComposeSpecification(...)'
print(obj.services["web"])  # Prints 'compose_py.models_dataclasses.Service(...)'

# Copy and modify the existing service, then add it to the specification
web2 = obj.services["web"].copy()
web2.command = "--port 8081"
obj.services["web2"] = web2

print(compose_py.dump_yaml_str(obj))
with open("docker-compose-modified.yml", "w") as f:
    compose_py.dump_yaml(obj, f, model=compose_py.ModelType.DATACLASSES)

您可以在compose_py.models_dataclasses包下找到更多API。

示例

请参阅examples/目录以获取示例。

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

compose-py-0.3.0.tar.gz (9.8 kB 查看哈希值)

上传时间:

构建分发

compose_py-0.3.0-py3-none-any.whl (13.4 kB 查看哈希值)

上传时间 Python 3

由以下支持