summaryrefslogtreecommitdiff
path: root/python-sqlvalidator.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-sqlvalidator.spec')
-rw-r--r--python-sqlvalidator.spec538
1 files changed, 538 insertions, 0 deletions
diff --git a/python-sqlvalidator.spec b/python-sqlvalidator.spec
new file mode 100644
index 0000000..44d3b3f
--- /dev/null
+++ b/python-sqlvalidator.spec
@@ -0,0 +1,538 @@
+%global _empty_manifest_terminate_build 0
+Name: python-sqlvalidator
+Version: 0.0.20
+Release: 1
+Summary: SQL queries formatting, syntactic and semantic validation
+License: MIT
+URL: https://github.com/David-Wobrock/sqlvalidator
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/21/7f/bd1ba351693e60b4dcddd3a84dad89ea75cbc627f9631da17809761a3eb4/sqlvalidator-0.0.20.tar.gz
+BuildArch: noarch
+
+Requires: python3-pytest
+
+%description
+# sqlvalidator
+
+[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2FDavid-Wobrock%2Fsqlvalidator%2Fbadge%3Fref%3Dmain&style=popout)](https://actions-badge.atrox.dev/David-Wobrock/sqlvalidator/goto?ref=main)
+[![PyPI](https://img.shields.io/pypi/v/sqlvalidator.svg)](https://pypi.python.org/pypi/sqlvalidator/)
+[![codecov](https://codecov.io/gh/David-Wobrock/sqlvalidator/branch/main/graph/badge.svg?token=WTORMKIIMU)](https://codecov.io/gh/David-Wobrock/sqlvalidator)
+
+SQL queries formatting, syntactic and semantic validation
+
+**Only supports SELECT statements**
+
+## Command line usage
+
+### SQL Formatting
+
+_sql.py_
+```
+def fun():
+ return "select col1, column2 from table"
+```
+
+Command line:
+```
+$ sqlvalidator --format sql.py
+reformatted sql.py (1 changed SQL)
+1 file reformatted (1 changed SQL queries).
+```
+
+_sql.py_
+```
+def fun():
+ return """
+SELECT
+ col1,
+ column2
+FROM table
+"""
+```
+
+A `nosqlformat` comment can be appended to indicate to `sqlvalidator` that this string should not be formatted.
+
+
+### Check SQL format
+One can verify also that the file would be reformatted or not:
+```
+$ sqlvalidator --check-format sql.py
+would reformat sql.py (1 changed SQL)
+1 file would be reformatted (1 changed SQL queries).
+
+
+$ sqlvalidator --format sql.py
+reformatted sql.py (1 changed SQL)
+1 file reformatted (1 changed SQL queries).
+
+
+$ sqlvalidator --check-format sql.py
+No file would be reformatted.
+
+
+$ sqlvalidator --format sql.py
+No file reformatted.
+```
+
+`--check-format` won't write the file back and just return a status code:
+* Status code 0 when nothing would change.
+* Status code 1 when some files would be reformatted.
+
+The option is meant to be used within the CI/CD pipeline and ensure that SQL statements are formatted.
+
+### SQL Validation
+
+One can verify that the files SQL is valid:
+```
+$ sqlvalidator --validate sql.py
+invalid queries in sql.py (1 invalid SQL)
+1 file detected with invalid SQL (1 invalid SQL queries).
+
+# ... do some manual fixes to the SQL ...
+
+$ sqlvalidator --validate sql.py
+No invalid queries found.
+```
+
+To get more details about the found invalid elements, use `--verbose-validate`
+
+## API / Python code usage
+
+### SQL Formatting
+
+```python
+import sqlvalidator
+
+formatted_sql = sqlvalidator.format_sql("SELECT * FROM table")
+```
+
+### SQL Validation
+
+```python
+import sqlvalidator
+
+sql_query = sqlvalidator.parse("SELECT * from table")
+
+if not sql_query.is_valid():
+ print(sql_query.errors)
+```
+
+**Warning**: only a limited set of validation are implemented.
+
+## Details about SQL Validation
+
+Validation contains:
+* not using a missing column
+* existing functions
+* correct aggregations
+* schemaless (not assume that table names and columns in those exist)
+* types correctness in functions
+
+(only on SELECT-statements)
+
+## SQL Syntax
+
+* https://www.postgresql.org/docs/9.6/sql-select.html
+* https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax
+
+## Use with [pre-commit](https://pre-commit.com)
+
+Add this to your `.pre-commit-config.yaml`:
+```yaml
+ - repo: https://github.com/David-Wobrock/sqlvalidator
+ rev: <sha1 of the latest sqlvalidator commit>
+ hooks:
+ - id: sqlvalidator
+```
+
+## Contributing
+
+If you want to contribute to the sqlvalidator, first, thank you for the interest.
+
+Don't hesitate to open an Issue with a snippet of the failing SQL query and what the expected output would be.
+
+However, I don't guarantee that will accept any Pull Request made to the repository.
+This is not because I don't value the work and energy put into contribution, but more because the project is
+still early stage, and I want to keep full control of its direction for now.
+
+## Internals
+
+### Run tests
+
+```
+pytest
+```
+
+### Publishing
+
+* `python3 setup.py sdist bdist_wheel`
+* `twine upload dist/sqlvalidator-X.Y.Z-py3-none-any.whl dist/sqlvalidator-X.Y.Z.tar.gz`
+
+
+%package -n python3-sqlvalidator
+Summary: SQL queries formatting, syntactic and semantic validation
+Provides: python-sqlvalidator
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-sqlvalidator
+# sqlvalidator
+
+[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2FDavid-Wobrock%2Fsqlvalidator%2Fbadge%3Fref%3Dmain&style=popout)](https://actions-badge.atrox.dev/David-Wobrock/sqlvalidator/goto?ref=main)
+[![PyPI](https://img.shields.io/pypi/v/sqlvalidator.svg)](https://pypi.python.org/pypi/sqlvalidator/)
+[![codecov](https://codecov.io/gh/David-Wobrock/sqlvalidator/branch/main/graph/badge.svg?token=WTORMKIIMU)](https://codecov.io/gh/David-Wobrock/sqlvalidator)
+
+SQL queries formatting, syntactic and semantic validation
+
+**Only supports SELECT statements**
+
+## Command line usage
+
+### SQL Formatting
+
+_sql.py_
+```
+def fun():
+ return "select col1, column2 from table"
+```
+
+Command line:
+```
+$ sqlvalidator --format sql.py
+reformatted sql.py (1 changed SQL)
+1 file reformatted (1 changed SQL queries).
+```
+
+_sql.py_
+```
+def fun():
+ return """
+SELECT
+ col1,
+ column2
+FROM table
+"""
+```
+
+A `nosqlformat` comment can be appended to indicate to `sqlvalidator` that this string should not be formatted.
+
+
+### Check SQL format
+One can verify also that the file would be reformatted or not:
+```
+$ sqlvalidator --check-format sql.py
+would reformat sql.py (1 changed SQL)
+1 file would be reformatted (1 changed SQL queries).
+
+
+$ sqlvalidator --format sql.py
+reformatted sql.py (1 changed SQL)
+1 file reformatted (1 changed SQL queries).
+
+
+$ sqlvalidator --check-format sql.py
+No file would be reformatted.
+
+
+$ sqlvalidator --format sql.py
+No file reformatted.
+```
+
+`--check-format` won't write the file back and just return a status code:
+* Status code 0 when nothing would change.
+* Status code 1 when some files would be reformatted.
+
+The option is meant to be used within the CI/CD pipeline and ensure that SQL statements are formatted.
+
+### SQL Validation
+
+One can verify that the files SQL is valid:
+```
+$ sqlvalidator --validate sql.py
+invalid queries in sql.py (1 invalid SQL)
+1 file detected with invalid SQL (1 invalid SQL queries).
+
+# ... do some manual fixes to the SQL ...
+
+$ sqlvalidator --validate sql.py
+No invalid queries found.
+```
+
+To get more details about the found invalid elements, use `--verbose-validate`
+
+## API / Python code usage
+
+### SQL Formatting
+
+```python
+import sqlvalidator
+
+formatted_sql = sqlvalidator.format_sql("SELECT * FROM table")
+```
+
+### SQL Validation
+
+```python
+import sqlvalidator
+
+sql_query = sqlvalidator.parse("SELECT * from table")
+
+if not sql_query.is_valid():
+ print(sql_query.errors)
+```
+
+**Warning**: only a limited set of validation are implemented.
+
+## Details about SQL Validation
+
+Validation contains:
+* not using a missing column
+* existing functions
+* correct aggregations
+* schemaless (not assume that table names and columns in those exist)
+* types correctness in functions
+
+(only on SELECT-statements)
+
+## SQL Syntax
+
+* https://www.postgresql.org/docs/9.6/sql-select.html
+* https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax
+
+## Use with [pre-commit](https://pre-commit.com)
+
+Add this to your `.pre-commit-config.yaml`:
+```yaml
+ - repo: https://github.com/David-Wobrock/sqlvalidator
+ rev: <sha1 of the latest sqlvalidator commit>
+ hooks:
+ - id: sqlvalidator
+```
+
+## Contributing
+
+If you want to contribute to the sqlvalidator, first, thank you for the interest.
+
+Don't hesitate to open an Issue with a snippet of the failing SQL query and what the expected output would be.
+
+However, I don't guarantee that will accept any Pull Request made to the repository.
+This is not because I don't value the work and energy put into contribution, but more because the project is
+still early stage, and I want to keep full control of its direction for now.
+
+## Internals
+
+### Run tests
+
+```
+pytest
+```
+
+### Publishing
+
+* `python3 setup.py sdist bdist_wheel`
+* `twine upload dist/sqlvalidator-X.Y.Z-py3-none-any.whl dist/sqlvalidator-X.Y.Z.tar.gz`
+
+
+%package help
+Summary: Development documents and examples for sqlvalidator
+Provides: python3-sqlvalidator-doc
+%description help
+# sqlvalidator
+
+[![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2FDavid-Wobrock%2Fsqlvalidator%2Fbadge%3Fref%3Dmain&style=popout)](https://actions-badge.atrox.dev/David-Wobrock/sqlvalidator/goto?ref=main)
+[![PyPI](https://img.shields.io/pypi/v/sqlvalidator.svg)](https://pypi.python.org/pypi/sqlvalidator/)
+[![codecov](https://codecov.io/gh/David-Wobrock/sqlvalidator/branch/main/graph/badge.svg?token=WTORMKIIMU)](https://codecov.io/gh/David-Wobrock/sqlvalidator)
+
+SQL queries formatting, syntactic and semantic validation
+
+**Only supports SELECT statements**
+
+## Command line usage
+
+### SQL Formatting
+
+_sql.py_
+```
+def fun():
+ return "select col1, column2 from table"
+```
+
+Command line:
+```
+$ sqlvalidator --format sql.py
+reformatted sql.py (1 changed SQL)
+1 file reformatted (1 changed SQL queries).
+```
+
+_sql.py_
+```
+def fun():
+ return """
+SELECT
+ col1,
+ column2
+FROM table
+"""
+```
+
+A `nosqlformat` comment can be appended to indicate to `sqlvalidator` that this string should not be formatted.
+
+
+### Check SQL format
+One can verify also that the file would be reformatted or not:
+```
+$ sqlvalidator --check-format sql.py
+would reformat sql.py (1 changed SQL)
+1 file would be reformatted (1 changed SQL queries).
+
+
+$ sqlvalidator --format sql.py
+reformatted sql.py (1 changed SQL)
+1 file reformatted (1 changed SQL queries).
+
+
+$ sqlvalidator --check-format sql.py
+No file would be reformatted.
+
+
+$ sqlvalidator --format sql.py
+No file reformatted.
+```
+
+`--check-format` won't write the file back and just return a status code:
+* Status code 0 when nothing would change.
+* Status code 1 when some files would be reformatted.
+
+The option is meant to be used within the CI/CD pipeline and ensure that SQL statements are formatted.
+
+### SQL Validation
+
+One can verify that the files SQL is valid:
+```
+$ sqlvalidator --validate sql.py
+invalid queries in sql.py (1 invalid SQL)
+1 file detected with invalid SQL (1 invalid SQL queries).
+
+# ... do some manual fixes to the SQL ...
+
+$ sqlvalidator --validate sql.py
+No invalid queries found.
+```
+
+To get more details about the found invalid elements, use `--verbose-validate`
+
+## API / Python code usage
+
+### SQL Formatting
+
+```python
+import sqlvalidator
+
+formatted_sql = sqlvalidator.format_sql("SELECT * FROM table")
+```
+
+### SQL Validation
+
+```python
+import sqlvalidator
+
+sql_query = sqlvalidator.parse("SELECT * from table")
+
+if not sql_query.is_valid():
+ print(sql_query.errors)
+```
+
+**Warning**: only a limited set of validation are implemented.
+
+## Details about SQL Validation
+
+Validation contains:
+* not using a missing column
+* existing functions
+* correct aggregations
+* schemaless (not assume that table names and columns in those exist)
+* types correctness in functions
+
+(only on SELECT-statements)
+
+## SQL Syntax
+
+* https://www.postgresql.org/docs/9.6/sql-select.html
+* https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax
+
+## Use with [pre-commit](https://pre-commit.com)
+
+Add this to your `.pre-commit-config.yaml`:
+```yaml
+ - repo: https://github.com/David-Wobrock/sqlvalidator
+ rev: <sha1 of the latest sqlvalidator commit>
+ hooks:
+ - id: sqlvalidator
+```
+
+## Contributing
+
+If you want to contribute to the sqlvalidator, first, thank you for the interest.
+
+Don't hesitate to open an Issue with a snippet of the failing SQL query and what the expected output would be.
+
+However, I don't guarantee that will accept any Pull Request made to the repository.
+This is not because I don't value the work and energy put into contribution, but more because the project is
+still early stage, and I want to keep full control of its direction for now.
+
+## Internals
+
+### Run tests
+
+```
+pytest
+```
+
+### Publishing
+
+* `python3 setup.py sdist bdist_wheel`
+* `twine upload dist/sqlvalidator-X.Y.Z-py3-none-any.whl dist/sqlvalidator-X.Y.Z.tar.gz`
+
+
+%prep
+%autosetup -n sqlvalidator-0.0.20
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-sqlvalidator -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed Apr 12 2023 Python_Bot <Python_Bot@openeuler.org> - 0.0.20-1
+- Package Spec generated