summaryrefslogtreecommitdiff
path: root/devel/py-shandy-sqlfmt
diff options
context:
space:
mode:
Diffstat (limited to 'devel/py-shandy-sqlfmt')
-rw-r--r--devel/py-shandy-sqlfmt/Makefile34
-rw-r--r--devel/py-shandy-sqlfmt/distinfo3
-rw-r--r--devel/py-shandy-sqlfmt/pkg-descr32
3 files changed, 69 insertions, 0 deletions
diff --git a/devel/py-shandy-sqlfmt/Makefile b/devel/py-shandy-sqlfmt/Makefile
new file mode 100644
index 000000000000..08ac47ec12e2
--- /dev/null
+++ b/devel/py-shandy-sqlfmt/Makefile
@@ -0,0 +1,34 @@
+PORTNAME= shandy-sqlfmt
+PORTVERSION= 0.26.0
+CATEGORIES= devel python
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:S/-/_/g}-${PORTVERSION}
+
+MAINTAINER= ume@FreeBSD.org
+COMMENT= Sqlfmt formats your dbt SQL files so you don't have to
+WWW= https://sqlfmt.com \
+ https://github.com/tconbeer/sqlfmt
+
+LICENSE= APACHE20
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}poetry-core>=1.0.0:devel/py-poetry-core@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}black>=0:devel/py-black@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}click>=8.0<9.0:devel/py-click@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}Jinja2>=3.0<4.0:devel/py-Jinja2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}platformdirs>=2.4<5.0:devel/py-platformdirs@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}tqdm>=4.0<5.0:misc/py-tqdm@${PY_FLAVOR}
+
+USES= python:3.9+
+USE_PYTHON= autoplist pep517
+
+NO_ARCH= yes
+
+.include <bsd.port.pre.mk>
+
+.if ${PYTHON_REL} < 31100
+RUN_DEPENDS+= ${PYTHON_PKGNAMEPREFIX}toml>=2.0<3.0:textproc/py-toml@${PY_FLAVOR}
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/devel/py-shandy-sqlfmt/distinfo b/devel/py-shandy-sqlfmt/distinfo
new file mode 100644
index 000000000000..b61c5035c55f
--- /dev/null
+++ b/devel/py-shandy-sqlfmt/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1748694868
+SHA256 (shandy_sqlfmt-0.26.0.tar.gz) = d95abd381640a846c71b0e2effb30d47f0b3eb5f69fb337fafe663634857f7a5
+SIZE (shandy_sqlfmt-0.26.0.tar.gz) = 62228
diff --git a/devel/py-shandy-sqlfmt/pkg-descr b/devel/py-shandy-sqlfmt/pkg-descr
new file mode 100644
index 000000000000..d908af925830
--- /dev/null
+++ b/devel/py-shandy-sqlfmt/pkg-descr
@@ -0,0 +1,32 @@
+sqlfmt formats your dbt SQL files so you don't have to. It is similar
+in nature to black, gofmt, and rustfmt (but for SQL).
+
+sqlfmt promotes collaboration. An auto-formatter makes it easier to
+collaborate with your team and solicit contributions from new
+people. You will never have to mention (or argue about) code style in
+code reviews again.
+sqlfmt is fast. Forget about formatting your code, and spend your time
+on business logic instead. sqlfmt processes hundreds of files per
+second and only operates on files that have changed since the last
+run.
+sqlfmt works with Jinja. It formats the code that users look at, and
+therefore doesn't need to know anything about what happens after the
+templates are rendered.
+sqlfmt integrates with your workflow. As a CLI written in Python, it's
+easy to install locally on any OS and run in CI. Plays well with dbt,
+pre-commit, SQLFluff, VSCode, and GitHub Actions. sqlfmt powers the
+dbt Cloud IDE's Format button.
+sqlfmt is not configurable, except for line length. It enforces a
+single style. sqlfmt maintains comments and some extra newlines, but
+largely ignores all indentation and line breaks in the input file.
+
+sqlfmt is not a linter. It does not parse your code into an AST; it
+just lexes it and tracks a small subset of tokens that impact
+formatting. This lets us "do one thing and do it well:" sqlfmt is very
+fast, and easier to maintain and extend than linters that need a full
+SQL grammar.
+
+For now, sqlfmt only works on select, delete, grant, revoke, and
+create function statements (which is all you need if you use sqlfmt
+with a dbt project). It is being extended to additional DDL and
+DML. Visit this tracking issue for more information.