sqlfmt 项目教程
1. 项目的目录结构及介绍
sqlfmt 是一个用于格式化 dbt SQL 文件的工具。以下是项目的目录结构及其介绍:
sqlfmt/
├── docs/ # 文档目录
│ ├── getting_started.md
│ ├── integrations.md
│ ├── style.md
│ └── api_reference.md
├── src/ # 源代码目录
│ ├── sqlfmt/
│ │ ├── __init__.py
│ │ ├── formatter.py
│ │ ├── parser.py
│ │ └── utils.py
│ └── tests/ # 测试代码目录
│ ├── __init__.py
│ ├── test_formatter.py
│ └── test_parser.py
├── .gitignore # Git 忽略文件配置
├── LICENSE # 许可证文件
├── README.md # 项目说明文档
├── setup.py # 安装配置文件
└── pyproject.toml # 项目配置文件
目录结构介绍
docs/
: 包含项目的文档,如入门指南、集成说明、样式指南和 API 参考。src/
: 包含项目的源代码,其中sqlfmt/
目录是主要的功能实现,tests/
目录包含测试代码。.gitignore
: 配置 Git 忽略的文件和目录。LICENSE
: 项目的许可证。README.md
: 项目的说明文档。setup.py
: 用于安装项目的配置文件。pyproject.toml
: 项目的配置文件。
2. 项目的启动文件介绍
sqlfmt 的启动文件是 setup.py
,它负责安装和配置项目。以下是 setup.py
的主要内容:
from setuptools import setup, find_packages
setup(
name="shandy-sqlfmt",
version="0.10.0",
packages=find_packages(where="src"),
package_dir={"": "src"},
entry_points={
"console_scripts": [
"sqlfmt=sqlfmt.cli:main",
],
},
install_requires=[
"black",
"click",
"colorama",
"pyyaml",
"tree-sitter",
"tree-sitter-sql",
],
extras_require={
"jinjafmt": ["black"],
},
)
启动文件介绍
name
: 项目的名称。version
: 项目的版本号。packages
: 指定要包含的包。package_dir
: 指定包的目录。entry_points
: 定义命令行接口。install_requires
: 安装所需的依赖项。extras_require
: 额外的依赖项。
3. 项目的配置文件介绍
sqlfmt 的配置文件是 pyproject.toml
,它用于配置项目的构建和依赖项。以下是 pyproject.toml
的主要内容:
[tool.sqlfmt]
line_length = 88
exclude = ["target/**/*", "dbt_packages/**/*"]
[tool.black]
line_length = 88
配置文件介绍
[tool.sqlfmt]
: 配置 sqlfmt 的选项。line_length
: 设置格式化文件的行长度。exclude
: 指定要排除的文件和目录。
[tool.black]
: 配置 black 格式化工具的选项。line_length
: 设置 black 格式化工具的行长度。
通过以上配置,可以自定义 sqlfmt 的行为,以适应不同的项目需求。