diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-12 06:57:33 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-12 06:57:33 +0000 |
commit | b14153a0bde4261e3ae43e3d24f50366b6756248 (patch) | |
tree | 005ecc04b45f998219b98d36cd4d8fe3768fb896 | |
parent | 5e450986306ef276e3d7a6afd6dbc3df274d28fd (diff) |
automatic import of python-sqlvalidatoropeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-sqlvalidator.spec | 538 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 540 insertions, 0 deletions
@@ -0,0 +1 @@ +/sqlvalidator-0.0.20.tar.gz 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 + +[](https://actions-badge.atrox.dev/David-Wobrock/sqlvalidator/goto?ref=main) +[](https://pypi.python.org/pypi/sqlvalidator/) +[](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 + +[](https://actions-badge.atrox.dev/David-Wobrock/sqlvalidator/goto?ref=main) +[](https://pypi.python.org/pypi/sqlvalidator/) +[](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 + +[](https://actions-badge.atrox.dev/David-Wobrock/sqlvalidator/goto?ref=main) +[](https://pypi.python.org/pypi/sqlvalidator/) +[](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 @@ -0,0 +1 @@ +4752fa334bae5c123532fbb9332ba455 sqlvalidator-0.0.20.tar.gz |