TOML概述

发现我的排名掉了好多,赶紧水篇帖子 ~~

概述

https://juejin.cn/post/7276281005744767017 https://zh.wikipedia.org/wiki/TOML

直观上来讲,TOML 属于一种配置文件的格式,类比于 .ini.yaml.json这些常见的项目配置文件,LangGraph 框架的官方也是使用的这一种文件格式来进行配置管理。

配置文件是一种非常基础的文件格式,但远没有数据文件格式(如 SQLite)、文档文件格式(如 Markdown)、编程语言(如 JavaScript)、甚至二进制文件格式(如 PNG)需求那么复杂。

只要严谨但不严苛、支持必要的数据类型和嵌套,又易于人类手工直接阅读和编辑就可以了。

“TOML”这个名字是“Tom's Obvious, Minimal Language(汤姆的浅显的、极简的语言)”的首字母略写词。“Tom”指它的作者Tom Preston-Werner。

TOML已在一些软件工程中使用,并且很多编程语言都支持TOML格式数据的解析。

语法示例

TOML的语法广泛地由 key = "value"[节名]#注释 构成。

它支持以下数据类型:字符串、整形、浮点型、布尔型、日期时间、数组和图表。

以下为维基百科的一个 TOML 示例:

toml
复制代码
# 這是一份 TOML 文件 title = "TOML 範例" [owner] name = "Tom Preston-Werner" dob = 1979-05-27T07:32:00-08:00 # First class dates [database] server = "192.168.1.1" ports = [ 8001, 8001, 8002 ] connection_max = 5000 enabled = true [servers] # 可以使用縮排(TAB或是空格),但不是必要的 [servers.alpha] ip = "10.0.0.1" dc = "eqdc10" [servers.beta] ip = "10.0.0.2" dc = "eqdc10" [clients] data = [ ["gamma", "delta"], [1, 2] ] # 可以在陣列中換行 hosts = [ "alpha", "omega" ]

更多参考

https://github.com/LongTengDao/TOML/blob/%E9%BE%99%E8%85%BE%E9%81%93-%E8%AF%91/toml-v1.0.0.md

Python 工程中使用

更多使用请参考官方文档:https://python-poetry.org/docs/

在 Python 工程中使用 TOML 来进行包管理和部署,一个常用的流行框架是Poetry,它简化了依赖管理和虚拟环境的工作流程,并且默认使用TOML格式(pyproject.toml)来定义项目的依赖和元数据。

安装 poetry可以使用 pip 命令来进行:

powershell
复制代码
pip install poetry

常用命令

初始化新项目

要开始一个新项目或初始化现有项目以使用Poetry,可以在项目根目录下运行:

powershell
复制代码
poetry init

这将引导你完成创建pyproject.toml文件的过程,包括设置项目名称、版本、描述、作者等信息,并允许你指定初始依赖项。

添加依赖

你可以通过以下命令向项目添加依赖,依赖支持一行添加多个

plain
复制代码
poetry add <package_name>

例如,添加requests库作为项目依赖:

plain
复制代码
poetry add requests

这将在pyproject.toml文件中自动更新依赖列表,并在你的虚拟环境中安装该依赖。

管理虚拟环境

Poetry自动为每个项目创建独立的虚拟环境,这意味着不同项目之间的依赖不会相互干扰。你可以通过以下命令查看当前项目的虚拟环境路径:

plain
复制代码
poetry env info

如果你想激活虚拟环境(尽管大多数情况下不需要手动激活,因为Poetry会在执行命令时自动使用正确的环境),可以使用:

plain
复制代码
source $(poetry env info --path)/bin/activate

对于Windows用户,激活命令稍有不同:

plain
复制代码
$(poetry env info --path)\Scripts\activate

示例

如下是使用 poetry 初始化一个项目配置项的使用示例:

shell
复制代码
PS E:\PyGarden\Langchain-Demo> poetry init This command will guide you through creating your pyproject.toml config. Package name [langchain-demo]: Version [0.1.0]: Description []: LangGraph构建Agent示例工程 Author [LiangshouX <BIT_kiwiSean@163.com>, n to skip]: LiangshouX <xiaoliangshou.bit@gmail.com> License []: Compatible Python versions [^3.8]: ^3.10 Would you like to define your main dependencies interactively? (yes/no) [yes] You can specify a package in the following forms: - A single name (requests): this will search for matches on PyPI - A name and a constraint (requests@^2.23.0) - A git url (git+https://github.com/python-poetry/poetry.git) - A git url with a revision (git+https://github.com/python-poetry/poetry.git#develop) - A file path (../my-package/my-package.whl) - A directory (../my-package/) - A url (https://example.com/packages/my-package-0.1.0.tar.gz) Package to add or search for (leave blank to skip): Would you like to define your development dependencies interactively? (yes/no) [yes] Package to add or search for (leave blank to skip): Generated file [tool.poetry] name = "langchain-demo" version = "0.1.0" description = "LangGraph构建Agent示例工程" authors = ["LiangshouX <xiaoliangshou.bit@gmail.com>"] readme = "README.md" [tool.poetry.dependencies] python = "^3.10" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" Do you confirm generation? (yes/no) [yes]

更多的 poetry 命令参考:

https://python-poetry.org/docs/cli/#shell

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP