sqlspec 0.1.1__tar.gz → 0.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of sqlspec might be problematic. Click here for more details.
- {sqlspec-0.1.1 → sqlspec-0.4.0}/.pre-commit-config.yaml +1 -1
- {sqlspec-0.1.1 → sqlspec-0.4.0}/CONTRIBUTING.rst +4 -4
- sqlspec-0.4.0/Makefile +229 -0
- sqlspec-0.4.0/NOTICE +29 -0
- sqlspec-0.4.0/PKG-INFO +84 -0
- sqlspec-0.4.0/README.md +33 -0
- {sqlspec-0.1.1 → sqlspec-0.4.0}/pyproject.toml +167 -121
- {sqlspec-0.1.1 → sqlspec-0.4.0}/sqlspec/__metadata__.py +1 -1
- {sqlspec-0.1.1 → sqlspec-0.4.0}/sqlspec/_serialization.py +1 -1
- sqlspec-0.4.0/sqlspec/_typing.py +138 -0
- sqlspec-0.4.0/sqlspec/adapters/adbc/config.py +52 -0
- sqlspec-0.4.0/sqlspec/adapters/aiosqlite/__init__.py +3 -0
- sqlspec-0.4.0/sqlspec/adapters/aiosqlite/config.py +95 -0
- sqlspec-0.4.0/sqlspec/adapters/asyncmy/__init__.py +3 -0
- sqlspec-0.4.0/sqlspec/adapters/asyncmy/config.py +176 -0
- sqlspec-0.4.0/sqlspec/adapters/asyncpg/config.py +145 -0
- sqlspec-0.4.0/sqlspec/adapters/duckdb/config.py +201 -0
- sqlspec-0.4.0/sqlspec/adapters/oracledb/__init__.py +13 -0
- sqlspec-0.4.0/sqlspec/adapters/oracledb/config/__init__.py +9 -0
- sqlspec-0.4.0/sqlspec/adapters/oracledb/config/_asyncio.py +95 -0
- sqlspec-0.4.0/sqlspec/adapters/oracledb/config/_common.py +151 -0
- sqlspec-0.4.0/sqlspec/adapters/oracledb/config/_sync.py +95 -0
- sqlspec-0.4.0/sqlspec/adapters/psycopg/config/__init__.py +9 -0
- sqlspec-0.4.0/sqlspec/adapters/psycopg/config/_async.py +75 -0
- sqlspec-0.4.0/sqlspec/adapters/psycopg/config/_common.py +73 -0
- sqlspec-0.4.0/sqlspec/adapters/psycopg/config/_sync.py +75 -0
- sqlspec-0.4.0/sqlspec/adapters/sqlite/__init__.py +0 -0
- sqlspec-0.4.0/sqlspec/adapters/sqlite/config.py +92 -0
- sqlspec-0.4.0/sqlspec/config.py +16 -0
- {sqlspec-0.1.1 → sqlspec-0.4.0}/sqlspec/exceptions.py +29 -0
- sqlspec-0.4.0/sqlspec/extensions/__init__.py +0 -0
- sqlspec-0.4.0/sqlspec/extensions/litestar/__init__.py +0 -0
- sqlspec-0.4.0/sqlspec/extensions/litestar/plugin.py +34 -0
- {sqlspec-0.1.1 → sqlspec-0.4.0}/sqlspec/filters.py +35 -28
- sqlspec-0.4.0/sqlspec/py.typed +0 -0
- sqlspec-0.4.0/sqlspec/typing.py +415 -0
- sqlspec-0.4.0/tests/__init__.py +0 -0
- sqlspec-0.4.0/tests/unit/__init__.py +0 -0
- sqlspec-0.4.0/tests/unit/test_adapters/__init__.py +0 -0
- sqlspec-0.4.0/tests/unit/test_adapters/test_duckdb/__init__.py +0 -0
- sqlspec-0.4.0/tests/unit/test_adapters/test_duckdb/test_config.py +252 -0
- sqlspec-0.4.0/tests/unit/test_typing.py +276 -0
- sqlspec-0.4.0/tools/__init__.py +0 -0
- {sqlspec-0.1.1 → sqlspec-0.4.0}/tools/build_docs.py +1 -1
- sqlspec-0.4.0/uv.lock +3663 -0
- sqlspec-0.1.1/Makefile +0 -143
- sqlspec-0.1.1/PKG-INFO +0 -25
- sqlspec-0.1.1/README.md +0 -14
- sqlspec-0.1.1/sqlspec/types/empty.py +0 -18
- sqlspec-0.1.1/sqlspec/types/protocols.py +0 -117
- sqlspec-0.1.1/sqlspec/utils/dataclass.py +0 -130
- sqlspec-0.1.1/uv.lock +0 -1921
- {sqlspec-0.1.1 → sqlspec-0.4.0}/.gitignore +0 -0
- {sqlspec-0.1.1 → sqlspec-0.4.0}/sqlspec/__init__.py +0 -0
- {sqlspec-0.1.1/sqlspec/types → sqlspec-0.4.0/sqlspec/adapters}/__init__.py +0 -0
- {sqlspec-0.1.1/sqlspec/utils → sqlspec-0.4.0/sqlspec/adapters/adbc}/__init__.py +0 -0
- {sqlspec-0.1.1/tests → sqlspec-0.4.0/sqlspec/adapters/asyncpg}/__init__.py +0 -0
- {sqlspec-0.1.1/tools → sqlspec-0.4.0/sqlspec/adapters/duckdb}/__init__.py +0 -0
- /sqlspec-0.1.1/sqlspec/py.typed → /sqlspec-0.4.0/sqlspec/adapters/psycopg/__init__.py +0 -0
- {sqlspec-0.1.1 → sqlspec-0.4.0}/tests/conftest.py +0 -0
- {sqlspec-0.1.1 → sqlspec-0.4.0}/tools/pypi_readme.py +0 -0
- {sqlspec-0.1.1 → sqlspec-0.4.0}/tools/sphinx_ext/__init__.py +0 -0
- {sqlspec-0.1.1 → sqlspec-0.4.0}/tools/sphinx_ext/changelog.py +0 -0
- {sqlspec-0.1.1 → sqlspec-0.4.0}/tools/sphinx_ext/missing_references.py +0 -0
|
@@ -14,7 +14,7 @@ Code contributions
|
|
|
14
14
|
Workflow
|
|
15
15
|
++++++++
|
|
16
16
|
|
|
17
|
-
1. `Fork <https://github.com/litestar-org/
|
|
17
|
+
1. `Fork <https://github.com/litestar-org/sqlspec/fork>`_ the `sqlspec repository <https://github.com/litestar-org/sqlspec>`_
|
|
18
18
|
2. Clone your fork locally with git
|
|
19
19
|
3. `Set up the environment <#setting-up-the-environment>`_
|
|
20
20
|
4. Make your changes
|
|
@@ -59,13 +59,13 @@ You can serve the documentation with ``make docs-serve``, or build them with ``m
|
|
|
59
59
|
Creating a new release
|
|
60
60
|
----------------------
|
|
61
61
|
|
|
62
|
-
1. Increment the version in `pyproject.toml <https://github.com/litestar-org/
|
|
62
|
+
1. Increment the version in `pyproject.toml <https://github.com/litestar-org/sqlspec/blob/main/pyproject.toml>`_.
|
|
63
63
|
.. note:: The version should follow `semantic versioning <https://semver.org/>`_ and `PEP 440 <https://www.python.org/dev/peps/pep-0440/>`_.
|
|
64
|
-
2. `Draft a new release <https://github.com/litestar-org/
|
|
64
|
+
2. `Draft a new release <https://github.com/litestar-org/sqlspec/releases/new>`_ on GitHub
|
|
65
65
|
|
|
66
66
|
* Use ``vMAJOR.MINOR.PATCH`` (e.g. ``v1.2.3``) as both the tag and release title
|
|
67
67
|
* Fill in the release description. You can use the "Generate release notes" function to get a draft for this
|
|
68
68
|
3. Commit your changes and push to ``main``
|
|
69
69
|
4. Publish the release
|
|
70
|
-
5. Go to `Actions <https://github.com/litestar-org/
|
|
70
|
+
5. Go to `Actions <https://github.com/litestar-org/sqlspec/actions>`_ and approve the release workflow
|
|
71
71
|
6. Check that the workflow runs successfully
|
sqlspec-0.4.0/Makefile
ADDED
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
SHELL := /bin/bash
|
|
2
|
+
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# Configuration and Environment Variables
|
|
5
|
+
# =============================================================================
|
|
6
|
+
|
|
7
|
+
.DEFAULT_GOAL := help
|
|
8
|
+
.ONESHELL:
|
|
9
|
+
.EXPORT_ALL_VARIABLES:
|
|
10
|
+
MAKEFLAGS += --no-print-directory
|
|
11
|
+
|
|
12
|
+
# -----------------------------------------------------------------------------
|
|
13
|
+
# Display Formatting and Colors
|
|
14
|
+
# -----------------------------------------------------------------------------
|
|
15
|
+
BLUE := $(shell printf "\033[1;34m")
|
|
16
|
+
GREEN := $(shell printf "\033[1;32m")
|
|
17
|
+
RED := $(shell printf "\033[1;31m")
|
|
18
|
+
YELLOW := $(shell printf "\033[1;33m")
|
|
19
|
+
NC := $(shell printf "\033[0m")
|
|
20
|
+
INFO := $(shell printf "$(BLUE)ℹ$(NC)")
|
|
21
|
+
OK := $(shell printf "$(GREEN)✓$(NC)")
|
|
22
|
+
WARN := $(shell printf "$(YELLOW)⚠$(NC)")
|
|
23
|
+
ERROR := $(shell printf "$(RED)✖$(NC)")
|
|
24
|
+
|
|
25
|
+
# =============================================================================
|
|
26
|
+
# Help and Documentation
|
|
27
|
+
# =============================================================================
|
|
28
|
+
|
|
29
|
+
.PHONY: help
|
|
30
|
+
help: ## Display this help text for Makefile
|
|
31
|
+
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z0-9_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
|
|
32
|
+
|
|
33
|
+
# =============================================================================
|
|
34
|
+
# Installation and Environment Setup
|
|
35
|
+
# =============================================================================
|
|
36
|
+
|
|
37
|
+
.PHONY: install-uv
|
|
38
|
+
install-uv: ## Install latest version of uv
|
|
39
|
+
@echo "${INFO} Installing uv..."
|
|
40
|
+
@curl -LsSf https://astral.sh/uv/install.sh | sh >/dev/null 2>&1
|
|
41
|
+
@echo "${OK} UV installed successfully"
|
|
42
|
+
|
|
43
|
+
.PHONY: install
|
|
44
|
+
install: destroy clean ## Install the project, dependencies, and pre-commit
|
|
45
|
+
@echo "${INFO} Starting fresh installation..."
|
|
46
|
+
@uv python pin 3.12 >/dev/null 2>&1
|
|
47
|
+
@uv venv >/dev/null 2>&1
|
|
48
|
+
@uv sync --all-extras --dev
|
|
49
|
+
@echo "${OK} Installation complete! 🎉"
|
|
50
|
+
|
|
51
|
+
.PHONY: destroy
|
|
52
|
+
destroy: ## Destroy the virtual environment
|
|
53
|
+
@echo "${INFO} Destroying virtual environment... 🗑️"
|
|
54
|
+
@uv run pre-commit clean >/dev/null 2>&1
|
|
55
|
+
@rm -rf .venv
|
|
56
|
+
@echo "${OK} Virtual environment destroyed 🗑️"
|
|
57
|
+
|
|
58
|
+
# =============================================================================
|
|
59
|
+
# Dependency Management
|
|
60
|
+
# =============================================================================
|
|
61
|
+
|
|
62
|
+
.PHONY: upgrade
|
|
63
|
+
upgrade: ## Upgrade all dependencies to latest stable versions
|
|
64
|
+
@echo "${INFO} Updating all dependencies... 🔄"
|
|
65
|
+
@uv lock --upgrade
|
|
66
|
+
@echo "${OK} Dependencies updated 🔄"
|
|
67
|
+
@uv run pre-commit autoupdate
|
|
68
|
+
@echo "${OK} Updated Pre-commit hooks 🔄"
|
|
69
|
+
|
|
70
|
+
.PHONY: lock
|
|
71
|
+
lock: ## Rebuild lockfiles from scratch
|
|
72
|
+
@echo "${INFO} Rebuilding lockfiles... 🔄"
|
|
73
|
+
@uv lock --upgrade >/dev/null 2>&1
|
|
74
|
+
@echo "${OK} Lockfiles updated"
|
|
75
|
+
|
|
76
|
+
# =============================================================================
|
|
77
|
+
# Build and Release
|
|
78
|
+
# =============================================================================
|
|
79
|
+
|
|
80
|
+
.PHONY: build
|
|
81
|
+
build: ## Build the package
|
|
82
|
+
@echo "${INFO} Building package... 📦"
|
|
83
|
+
@uv build >/dev/null 2>&1
|
|
84
|
+
@echo "${OK} Package build complete"
|
|
85
|
+
|
|
86
|
+
.PHONY: release
|
|
87
|
+
release: ## Bump version and create release tag
|
|
88
|
+
@echo "${INFO} Preparing for release... 📦"
|
|
89
|
+
@make docs
|
|
90
|
+
@make clean
|
|
91
|
+
@make build
|
|
92
|
+
@uv lock --upgrade-package litestar-vite >/dev/null 2>&1
|
|
93
|
+
@uv run bump-my-version bump $(bump)
|
|
94
|
+
@echo "${OK} Release complete 🎉"
|
|
95
|
+
|
|
96
|
+
# =============================================================================
|
|
97
|
+
# Cleaning and Maintenance
|
|
98
|
+
# =============================================================================
|
|
99
|
+
|
|
100
|
+
.PHONY: clean
|
|
101
|
+
clean: ## Cleanup temporary build artifacts
|
|
102
|
+
@echo "${INFO} Cleaning working directory... 🧹"
|
|
103
|
+
@rm -rf .pytest_cache .ruff_cache .hypothesis build/ -rf dist/ .eggs/ .coverage coverage.xml coverage.json htmlcov/ .pytest_cache tests/.pytest_cache tests/**/.pytest_cache .mypy_cache .unasyncd_cache/ .auto_pytabs_cache >/dev/null 2>&1
|
|
104
|
+
@find . -name '*.egg-info' -exec rm -rf {} + >/dev/null 2>&1
|
|
105
|
+
@find . -type f -name '*.egg' -exec rm -f {} + >/dev/null 2>&1
|
|
106
|
+
@find . -name '*.pyc' -exec rm -f {} + >/dev/null 2>&1
|
|
107
|
+
@find . -name '*.pyo' -exec rm -f {} + >/dev/null 2>&1
|
|
108
|
+
@find . -name '*~' -exec rm -f {} + >/dev/null 2>&1
|
|
109
|
+
@find . -name '__pycache__' -exec rm -rf {} + >/dev/null 2>&1
|
|
110
|
+
@find . -name '.ipynb_checkpoints' -exec rm -rf {} + >/dev/null 2>&1
|
|
111
|
+
@echo "${OK} Working directory cleaned"
|
|
112
|
+
$(MAKE) docs-clean
|
|
113
|
+
|
|
114
|
+
# =============================================================================
|
|
115
|
+
# Testing and Quality Checks
|
|
116
|
+
# =============================================================================
|
|
117
|
+
|
|
118
|
+
.PHONY: test
|
|
119
|
+
test: ## Run the tests
|
|
120
|
+
@echo "${INFO} Running test cases... 🧪"
|
|
121
|
+
@uv run pytest tests
|
|
122
|
+
@echo "${OK} Tests complete ✨"
|
|
123
|
+
|
|
124
|
+
.PHONY: test-examples
|
|
125
|
+
test-examples: ## Run the examples tests
|
|
126
|
+
@echo "${INFO} Running example tests... 🧪"
|
|
127
|
+
@uv run pytest docs/examples
|
|
128
|
+
@echo "${OK} Example tests complete ✨"
|
|
129
|
+
|
|
130
|
+
.PHONY: test-all
|
|
131
|
+
test-all: test test-examples ## Run all tests
|
|
132
|
+
@echo "${INFO} All tests executed successfully ✨"
|
|
133
|
+
|
|
134
|
+
.PHONY: coverage
|
|
135
|
+
coverage: ## Run tests with coverage report
|
|
136
|
+
@echo "${INFO} Running tests with coverage... 📊"
|
|
137
|
+
@uv run pytest tests --cov -n auto --quiet
|
|
138
|
+
@uv run coverage html >/dev/null 2>&1
|
|
139
|
+
@uv run coverage xml >/dev/null 2>&1
|
|
140
|
+
@echo "${OK} Coverage report generated ✨"
|
|
141
|
+
|
|
142
|
+
.PHONY: mypy
|
|
143
|
+
mypy: ## Run mypy
|
|
144
|
+
@echo "${INFO} Running mypy... 🔍"
|
|
145
|
+
@uv run dmypy run
|
|
146
|
+
@echo "${OK} mypy complete ✨"
|
|
147
|
+
|
|
148
|
+
.PHONY: mypy-nocache
|
|
149
|
+
mypy-nocache: ## Run Mypy without cache
|
|
150
|
+
@echo "${INFO} Running mypy without cache... 🔍"
|
|
151
|
+
@uv run mypy
|
|
152
|
+
@echo "${OK} mypy complete ✨"
|
|
153
|
+
|
|
154
|
+
.PHONY: pyright
|
|
155
|
+
pyright: ## Run pyright
|
|
156
|
+
@echo "${INFO} Running pyright... 🔍"
|
|
157
|
+
@uv run pyright
|
|
158
|
+
@echo "${OK} pyright complete ✨"
|
|
159
|
+
|
|
160
|
+
.PHONY: type-check
|
|
161
|
+
type-check: mypy pyright ## Run all type checking
|
|
162
|
+
@echo "${OK} All type checks passed ✨"
|
|
163
|
+
|
|
164
|
+
# -----------------------------------------------------------------------------
|
|
165
|
+
# Linting and Formatting
|
|
166
|
+
# -----------------------------------------------------------------------------
|
|
167
|
+
|
|
168
|
+
.PHONY: pre-commit
|
|
169
|
+
pre-commit: ## Run pre-commit hooks
|
|
170
|
+
@echo "${INFO} Running pre-commit checks... 🔎"
|
|
171
|
+
@uv run pre-commit run --color=always --all-files
|
|
172
|
+
@echo "${OK} Pre-commit checks passed ✨"
|
|
173
|
+
|
|
174
|
+
.PHONY: slotscheck
|
|
175
|
+
slotscheck: ## Run slotscheck
|
|
176
|
+
@echo "${INFO} Running slotscheck... 🔍"
|
|
177
|
+
@uv run slotscheck sqlspec/
|
|
178
|
+
@echo "${OK} Slotscheck complete ✨"
|
|
179
|
+
|
|
180
|
+
.PHONY: fix
|
|
181
|
+
fix: ## Run code formatters
|
|
182
|
+
@echo "${INFO} Running code formatters... 🔧"
|
|
183
|
+
@uv run ruff check --fix --unsafe-fixes
|
|
184
|
+
@echo "${OK} Code formatting complete ✨"
|
|
185
|
+
|
|
186
|
+
.PHONY: lint
|
|
187
|
+
lint: fix pre-commit type-check slotscheck ## Run all linting checks
|
|
188
|
+
@echo "${OK} All linting checks passed ✨"
|
|
189
|
+
|
|
190
|
+
.PHONY: check-all
|
|
191
|
+
check-all: lint test-all coverage ## Run all checks (lint, test, coverage)
|
|
192
|
+
@echo "${OK} All checks passed successfully ✨"
|
|
193
|
+
|
|
194
|
+
# =============================================================================
|
|
195
|
+
# Documentation
|
|
196
|
+
# =============================================================================
|
|
197
|
+
|
|
198
|
+
.PHONY: docs-clean
|
|
199
|
+
docs-clean: ## Clean documentation build
|
|
200
|
+
@echo "${INFO} Cleaning documentation build assets... 🧹"
|
|
201
|
+
@rm -rf docs/_build >/dev/null 2>&1
|
|
202
|
+
@echo "${OK} Documentation assets cleaned"
|
|
203
|
+
|
|
204
|
+
.PHONY: docs-serve
|
|
205
|
+
docs-serve: docs-clean ## Serve documentation locally
|
|
206
|
+
@echo "${INFO} Starting documentation server... 📚"
|
|
207
|
+
@uv run sphinx-autobuild docs docs/_build/ -j auto --watch sqlspec --watch docs --watch tests --watch CONTRIBUTING.rst --port 8002
|
|
208
|
+
|
|
209
|
+
.PHONY: docs
|
|
210
|
+
docs: docs-clean ## Build documentation
|
|
211
|
+
@echo "${INFO} Building documentation... 📝"
|
|
212
|
+
@uv run sphinx-build -M html docs docs/_build/ -E -a -j auto -W --keep-going >/dev/null 2>&1
|
|
213
|
+
@echo "${OK} Documentation built successfully"
|
|
214
|
+
|
|
215
|
+
.PHONY: docs-linkcheck
|
|
216
|
+
docs-linkcheck: ## Check documentation links
|
|
217
|
+
@echo "${INFO} Checking documentation links... 🔗"
|
|
218
|
+
@uv run sphinx-build -b linkcheck ./docs ./docs/_build -D linkcheck_ignore='http://.*','https://.*'
|
|
219
|
+
@echo "${OK} Link check complete"
|
|
220
|
+
|
|
221
|
+
.PHONY: docs-linkcheck-full
|
|
222
|
+
docs-linkcheck-full: ## Run full documentation link check
|
|
223
|
+
@echo "${INFO} Running full link check... 🔗"
|
|
224
|
+
@uv run sphinx-build -b linkcheck ./docs ./docs/_build -D linkcheck_anchors=0
|
|
225
|
+
@echo "${OK} Full link check complete"
|
|
226
|
+
|
|
227
|
+
# =============================================================================
|
|
228
|
+
# End of Makefile
|
|
229
|
+
# =============================================================================
|
sqlspec-0.4.0/NOTICE
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Early versions of this utility adapt code from `aoisql`.
|
|
2
|
+
# BSD 2-Clause License
|
|
3
|
+
Copyright (c) 2014-2017, Honza Pokorny
|
|
4
|
+
Copyright (c) 2018, William Vaughn
|
|
5
|
+
All rights reserved.
|
|
6
|
+
|
|
7
|
+
Redistribution and use in source and binary forms, with or without
|
|
8
|
+
modification, are permitted provided that the following conditions are met:
|
|
9
|
+
|
|
10
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
|
11
|
+
list of conditions and the following disclaimer.
|
|
12
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
+
this list of conditions and the following disclaimer in the documentation
|
|
14
|
+
and/or other materials provided with the distribution.
|
|
15
|
+
|
|
16
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
17
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
18
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
19
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
|
20
|
+
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
21
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
22
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
23
|
+
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
24
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
25
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
26
|
+
|
|
27
|
+
The views and conclusions contained in the software and documentation are those
|
|
28
|
+
of the authors and should not be interpreted as representing official policies,
|
|
29
|
+
either expressed or implied, of the aiosql Project.
|
sqlspec-0.4.0/PKG-INFO
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: sqlspec
|
|
3
|
+
Version: 0.4.0
|
|
4
|
+
Summary: SQL Experiments in Python
|
|
5
|
+
Author-email: Cody Fincher <cody@litestar.dev>
|
|
6
|
+
Maintainer-email: Litestar Developers <hello@litestar.dev>
|
|
7
|
+
License-File: NOTICE
|
|
8
|
+
Requires-Python: <4.0,>=3.9
|
|
9
|
+
Requires-Dist: eval-type-backport; python_version <= '3.9'
|
|
10
|
+
Requires-Dist: sqlglot
|
|
11
|
+
Requires-Dist: typing-extensions>=4.0.0
|
|
12
|
+
Provides-Extra: adbc
|
|
13
|
+
Requires-Dist: adbc-driver-manager; extra == 'adbc'
|
|
14
|
+
Requires-Dist: pyarrow; extra == 'adbc'
|
|
15
|
+
Provides-Extra: aioodbc
|
|
16
|
+
Requires-Dist: aioodbc; extra == 'aioodbc'
|
|
17
|
+
Provides-Extra: aiosqlite
|
|
18
|
+
Requires-Dist: aiosqlite; extra == 'aiosqlite'
|
|
19
|
+
Provides-Extra: asyncmy
|
|
20
|
+
Requires-Dist: asyncmy; extra == 'asyncmy'
|
|
21
|
+
Provides-Extra: asyncpg
|
|
22
|
+
Requires-Dist: asyncpg; extra == 'asyncpg'
|
|
23
|
+
Provides-Extra: bigquery
|
|
24
|
+
Requires-Dist: google-cloud-bigquery; extra == 'bigquery'
|
|
25
|
+
Provides-Extra: duckdb
|
|
26
|
+
Requires-Dist: duckdb; extra == 'duckdb'
|
|
27
|
+
Provides-Extra: fastapi
|
|
28
|
+
Requires-Dist: fastapi; extra == 'fastapi'
|
|
29
|
+
Provides-Extra: flask
|
|
30
|
+
Requires-Dist: flask; extra == 'flask'
|
|
31
|
+
Provides-Extra: litestar
|
|
32
|
+
Requires-Dist: litestar; extra == 'litestar'
|
|
33
|
+
Provides-Extra: msgspec
|
|
34
|
+
Requires-Dist: msgspec; extra == 'msgspec'
|
|
35
|
+
Provides-Extra: oracledb
|
|
36
|
+
Requires-Dist: oracledb; extra == 'oracledb'
|
|
37
|
+
Provides-Extra: performance
|
|
38
|
+
Requires-Dist: google-re2; (sys_platform == 'linux') and extra == 'performance'
|
|
39
|
+
Requires-Dist: sqlglot[rs]; extra == 'performance'
|
|
40
|
+
Provides-Extra: psycopg
|
|
41
|
+
Requires-Dist: psycopg[binary,pool]; extra == 'psycopg'
|
|
42
|
+
Provides-Extra: pydantic
|
|
43
|
+
Requires-Dist: pydantic; extra == 'pydantic'
|
|
44
|
+
Provides-Extra: pymssql
|
|
45
|
+
Requires-Dist: pymssql; extra == 'pymssql'
|
|
46
|
+
Provides-Extra: pymysql
|
|
47
|
+
Requires-Dist: pymysql; extra == 'pymysql'
|
|
48
|
+
Provides-Extra: spanner
|
|
49
|
+
Requires-Dist: google-cloud-spanner; extra == 'spanner'
|
|
50
|
+
Description-Content-Type: text/markdown
|
|
51
|
+
|
|
52
|
+
<!-- markdownlint-disable -->
|
|
53
|
+
<p align="center">
|
|
54
|
+
<!-- github-banner-start -->
|
|
55
|
+
<img src="https://raw.githubusercontent.com/litestar-org/branding/main/assets/Branding%20-%20SVG%20-%20Transparent/Logo%20-%20Banner%20-%20Inline%20-%20Light.svg#gh-light-mode-only" alt="Litestar Logo - Light" width="100%" height="auto" />
|
|
56
|
+
<img src="https://raw.githubusercontent.com/litestar-org/branding/main/assets/Branding%20-%20SVG%20-%20Transparent/Logo%20-%20Banner%20-%20Inline%20-%20Dark.svg#gh-dark-mode-only" alt="Litestar Logo - Dark" width="100%" height="auto" />
|
|
57
|
+
<!-- github-banner-end -->
|
|
58
|
+
|
|
59
|
+
</p>
|
|
60
|
+
<div align="center">
|
|
61
|
+
<!-- markdownlint-restore -->
|
|
62
|
+
|
|
63
|
+
# SQLSpec
|
|
64
|
+
|
|
65
|
+
SQL Experiments in Python
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
## Minimal SQL Abstractions for Python.
|
|
69
|
+
|
|
70
|
+
- Modern: Typed and Extensible
|
|
71
|
+
- Multi-database: SQLite, Postgres, DuckDB, MySQL, Oracle, SQL Server, Spanner, Big Query, and more...
|
|
72
|
+
- Easy ability to manipulate and add filters to queries
|
|
73
|
+
- Validate and Convert between dialects with `sqlglot`
|
|
74
|
+
- and more...
|
|
75
|
+
|
|
76
|
+
## Can it do `X`?
|
|
77
|
+
|
|
78
|
+
- Probably not currently; but, if it makes sense we can add enhancements.
|
|
79
|
+
|
|
80
|
+
## Inspiration
|
|
81
|
+
|
|
82
|
+
`aiosql` is the primary influence for this library. However, I wanted to be able to use the query interface from `aiosql` a bit more flexibly.
|
|
83
|
+
|
|
84
|
+
Why not add it to `aiosql`? Where it makes sense, many of these changes will likely get submitted to aiosql as a PR (`spanner` and `bigquery` drivers are likely the starting point.)
|
sqlspec-0.4.0/README.md
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<!-- markdownlint-disable -->
|
|
2
|
+
<p align="center">
|
|
3
|
+
<!-- github-banner-start -->
|
|
4
|
+
<img src="https://raw.githubusercontent.com/litestar-org/branding/main/assets/Branding%20-%20SVG%20-%20Transparent/Logo%20-%20Banner%20-%20Inline%20-%20Light.svg#gh-light-mode-only" alt="Litestar Logo - Light" width="100%" height="auto" />
|
|
5
|
+
<img src="https://raw.githubusercontent.com/litestar-org/branding/main/assets/Branding%20-%20SVG%20-%20Transparent/Logo%20-%20Banner%20-%20Inline%20-%20Dark.svg#gh-dark-mode-only" alt="Litestar Logo - Dark" width="100%" height="auto" />
|
|
6
|
+
<!-- github-banner-end -->
|
|
7
|
+
|
|
8
|
+
</p>
|
|
9
|
+
<div align="center">
|
|
10
|
+
<!-- markdownlint-restore -->
|
|
11
|
+
|
|
12
|
+
# SQLSpec
|
|
13
|
+
|
|
14
|
+
SQL Experiments in Python
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## Minimal SQL Abstractions for Python.
|
|
18
|
+
|
|
19
|
+
- Modern: Typed and Extensible
|
|
20
|
+
- Multi-database: SQLite, Postgres, DuckDB, MySQL, Oracle, SQL Server, Spanner, Big Query, and more...
|
|
21
|
+
- Easy ability to manipulate and add filters to queries
|
|
22
|
+
- Validate and Convert between dialects with `sqlglot`
|
|
23
|
+
- and more...
|
|
24
|
+
|
|
25
|
+
## Can it do `X`?
|
|
26
|
+
|
|
27
|
+
- Probably not currently; but, if it makes sense we can add enhancements.
|
|
28
|
+
|
|
29
|
+
## Inspiration
|
|
30
|
+
|
|
31
|
+
`aiosql` is the primary influence for this library. However, I wanted to be able to use the query interface from `aiosql` a bit more flexibly.
|
|
32
|
+
|
|
33
|
+
Why not add it to `aiosql`? Where it makes sense, many of these changes will likely get submitted to aiosql as a PR (`spanner` and `bigquery` drivers are likely the starting point.)
|