pyoq-sql 1.0.0__tar.gz → 1.0.2__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.
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/Cargo.lock +1 -1
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/Cargo.toml +1 -1
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/PKG-INFO +32 -16
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/README.md +27 -15
- pyoq_sql-1.0.2/docs/web/README.md +83 -0
- pyoq_sql-1.0.2/docs/web/astro.config.mjs +50 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/bun.lock +16 -1
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/package.json +4 -0
- pyoq_sql-1.0.2/docs/web/public/brand/pyoq-banner.png +0 -0
- pyoq_sql-1.0.2/docs/web/public/brand/pyoq-banner.svg +51 -0
- pyoq_sql-1.0.2/docs/web/public/brand/pyoq-favicon-32.png +0 -0
- pyoq_sql-1.0.2/docs/web/public/brand/pyoq-mark-180.png +0 -0
- pyoq_sql-1.0.2/docs/web/public/brand/pyoq-mark-512.png +0 -0
- pyoq_sql-1.0.2/docs/web/public/brand/pyoq-mark.svg +15 -0
- pyoq_sql-1.0.2/docs/web/src/code-head.mjs +49 -0
- pyoq_sql-1.0.2/docs/web/src/components/AppearanceToggle.astro +19 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/components/Assumed.astro +2 -2
- pyoq_sql-1.0.2/docs/web/src/components/Brand.astro +27 -0
- pyoq_sql-1.0.2/docs/web/src/components/CodeCopy.astro +38 -0
- pyoq_sql-1.0.2/docs/web/src/components/CodeEditors.astro +171 -0
- pyoq_sql-1.0.2/docs/web/src/components/Diagrams.astro +267 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/components/Pager.astro +2 -3
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/components/Search.astro +11 -4
- pyoq_sql-1.0.2/docs/web/src/components/Sidebar.astro +116 -0
- pyoq_sql-1.0.2/docs/web/src/components/SiteHead.astro +157 -0
- pyoq_sql-1.0.2/docs/web/src/content/docs/agents.md +281 -0
- pyoq_sql-1.0.2/docs/web/src/content/docs/async.md +121 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/bulk.md +6 -2
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/cli.md +24 -3
- pyoq_sql-1.0.2/docs/web/src/content/docs/configuration.md +262 -0
- pyoq_sql-1.0.2/docs/web/src/content/docs/connections.md +187 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/django.md +14 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/errors.md +19 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/expressions.md +2 -2
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/fastapi.md +4 -2
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/first-query.md +32 -63
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/generating.md +50 -6
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/inserting.md +11 -3
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/installing.md +50 -2
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/joins.md +63 -3
- pyoq_sql-1.0.2/docs/web/src/content/docs/licence.md +17 -0
- pyoq_sql-1.0.2/docs/web/src/content/docs/migrations.md +116 -0
- pyoq_sql-1.0.2/docs/web/src/content/docs/mysql-application.md +425 -0
- pyoq_sql-1.0.0/docs/web/src/content/docs/index.md → pyoq_sql-1.0.2/docs/web/src/content/docs/overview.md +13 -3
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/performance.md +42 -1
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/reference.md +3 -3
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/releasing.md +1 -1
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/results.md +3 -1
- pyoq_sql-1.0.2/docs/web/src/content/docs/routines.md +111 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/sanic.md +3 -1
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/security.md +9 -6
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/selecting.md +10 -7
- pyoq_sql-1.0.2/docs/web/src/content/docs/serving.md +69 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/snapshots.md +4 -45
- pyoq_sql-1.0.2/docs/web/src/content/docs/testing.md +125 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/transactions.md +42 -68
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/troubleshooting.md +11 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/types.md +15 -4
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/updating.md +19 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/when-to-use.md +6 -4
- pyoq_sql-1.0.2/docs/web/src/layouts/Doc.astro +75 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/layouts/app.css +649 -52
- pyoq_sql-1.0.2/docs/web/src/layouts/landing.css +687 -0
- pyoq_sql-1.0.2/docs/web/src/links.ts +33 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/nav.ts +48 -2
- pyoq_sql-1.0.2/docs/web/src/pages/404.astro +88 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/pages/[slug].astro +1 -1
- pyoq_sql-1.0.2/docs/web/src/pages/index.astro +272 -0
- pyoq_sql-1.0.2/docs/web/src/pages/sitemap.xml.ts +34 -0
- pyoq_sql-1.0.2/docs/web/src/project.ts +31 -0
- pyoq_sql-1.0.2/docs/web/src/remark-base.mjs +34 -0
- pyoq_sql-1.0.2/docs/web/src/remark-code-shell.mjs +54 -0
- pyoq_sql-1.0.2/docs/web/src/remark-licence.mjs +33 -0
- pyoq_sql-1.0.2/docs/web/src/remark-mermaid.mjs +103 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/remark-pairs.mjs +5 -15
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/pyproject.toml +11 -1
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/scripts/verify_sdist.py +6 -2
- pyoq_sql-1.0.2/src/pyoq/__init__.py +10 -0
- pyoq_sql-1.0.2/src/pyoq/config/__init__.py +31 -0
- pyoq_sql-1.0.2/src/pyoq/config/connection.py +161 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/config/loader.py +86 -1
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/config/models.py +52 -50
- pyoq_sql-1.0.2/src/pyoq/config/values.py +142 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/mysql/connection.py +4 -3
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/postgres/connection.py +4 -3
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/sqlite/connection.py +4 -4
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/serving/__init__.py +4 -0
- pyoq_sql-1.0.2/src/pyoq/serving/opening.py +331 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/config/test_config.py +368 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/distribution/test_ci_contract.py +16 -9
- pyoq_sql-1.0.2/tests/distribution/test_mysql_application_guide.py +58 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/distribution/test_one_source_of_versions.py +12 -6
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/distribution/test_public_attribution.py +8 -2
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/distribution/test_verify_sdist.py +7 -4
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/schema/mysql/test_reflection.py +1 -1
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/schema/postgres/test_reflection.py +1 -1
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/schema/sqlite/test_source.py +13 -0
- pyoq_sql-1.0.2/tests/serving/__init__.py +1 -0
- pyoq_sql-1.0.2/tests/serving/test_opening.py +382 -0
- pyoq_sql-1.0.2/tests/serving/test_opening_servers.py +89 -0
- pyoq_sql-1.0.2/typings/cognitive_complexity/__init__.pyi +0 -0
- pyoq_sql-1.0.0/docs/web/README.md +0 -46
- pyoq_sql-1.0.0/docs/web/astro.config.mjs +0 -30
- pyoq_sql-1.0.0/docs/web/src/components/Sidebar.astro +0 -44
- pyoq_sql-1.0.0/docs/web/src/content/docs/configuration.md +0 -94
- pyoq_sql-1.0.0/docs/web/src/content/docs/serving.md +0 -74
- pyoq_sql-1.0.0/docs/web/src/layouts/Doc.astro +0 -89
- pyoq_sql-1.0.0/docs/web/src/pages/index.astro +0 -13
- pyoq_sql-1.0.0/src/pyoq/__init__.py +0 -7
- pyoq_sql-1.0.0/src/pyoq/config/__init__.py +0 -19
- pyoq_sql-1.0.0/tests/distribution/test_documentation.py +0 -126
- pyoq_sql-1.0.0/tests/distribution/test_documentation_imports.py +0 -69
- pyoq_sql-1.0.0/tests/distribution/test_documentation_links.py +0 -80
- pyoq_sql-1.0.0/tests/distribution/test_documentation_pairs.py +0 -158
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/.gitignore +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/LICENSE +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/benchmarks/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/benchmarks/bulk_planning.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/benchmarks/fetch_execution.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/benchmarks/hydration.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/benchmarks/observability.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/benchmarks/performance_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/django.md +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/.gitignore +0 -0
- /pyoq_sql-1.0.0/examples/django_project/__init__.py → /pyoq_sql-1.0.2/docs/web/public/.nojekyll +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/components/Contents.astro +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/conflicts.md +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/diagnostics.md +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/dialects.md +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/policies.md +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content/docs/relations.md +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/src/content.config.ts +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/docs/web/tsconfig.json +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/bulk_writes.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_integration.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/README.md +0 -0
- {pyoq_sql-1.0.0/examples/django_project/analytics → pyoq_sql-1.0.2/examples/django_project}/__init__.py +0 -0
- {pyoq_sql-1.0.0/examples/django_project/analytics/migrations → pyoq_sql-1.0.2/examples/django_project/analytics}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/analytics/admin.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/analytics/apps.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/analytics/migrations/0001_initial.py +0 -0
- {pyoq_sql-1.0.0/examples/django_project/catalog → pyoq_sql-1.0.2/examples/django_project/analytics/migrations}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/analytics/models.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/analytics/queries.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/analytics/urls.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/analytics/views.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/asgi.py +0 -0
- {pyoq_sql-1.0.0/examples/django_project/catalog/migrations → pyoq_sql-1.0.2/examples/django_project/catalog}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/catalog/admin.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/catalog/apps.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/catalog/migrations/0001_initial.py +0 -0
- {pyoq_sql-1.0.0/src/pyoq/django/management → pyoq_sql-1.0.2/examples/django_project/catalog/migrations}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/catalog/models.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/catalog/queries.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/catalog/templates/catalog/title_detail.html +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/catalog/urls.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/catalog/views.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/manage.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/routers.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/settings.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/urls.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/django_project/wsgi.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/dsl_context.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/expressions.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/fastapi_application.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/fetch_plans.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/generated_types.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/generation_pipeline.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/mysql_execution.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/nested_collections.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/observability.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/policies.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/postgres_execution.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/relation_model.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/sanic_application.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/select_queries.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/sqlite_compilation.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/sqlite_execution.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/sqlite_generation.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/sqlite_transactions.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/typed_inserts.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/typed_updates.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/examples/typed_upserts.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/rust/lib.rs +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/rust-toolchain.toml +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/scripts/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/scripts/example_requirements.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/scripts/examples.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/scripts/run_examples.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/scripts/verify_wheels.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/__main__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/_native.pyi +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/cli/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/cli/commands.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/cli/defaults.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/cli/services.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/descriptors.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/diagnostics/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/diagnostics/budget.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/diagnostics/events.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/diagnostics/fingerprint.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/diagnostics/instrumented.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/diagnostics/metrics.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/diagnostics/observation.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/diagnostics/scoped.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/django/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/django/apps.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/django/execution.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/django/generation.py +0 -0
- {pyoq_sql-1.0.0/src/pyoq/django/management/commands → pyoq_sql-1.0.2/src/pyoq/django/management}/__init__.py +0 -0
- {pyoq_sql-1.0.0/tests/architecture → pyoq_sql-1.0.2/src/pyoq/django/management/commands}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/django/management/commands/makemigrations.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/django/management/commands/pyoq_codegen.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/django/parameters.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/django/schema.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/django/settings.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/django/timeouts.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/dsl/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/dsl/aio/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/dsl/aio/context.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/dsl/aio/queries.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/dsl/aio/writes.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/dsl/context.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/dsl/entry.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/dsl/labels.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/dsl/queries.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/dsl/result.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/dsl/writes.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/errors.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/fastapi/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/fastapi/dependencies.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/fastapi/lifespan.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/fetching/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/fetching/collections.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/fetching/execution.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/fetching/joined.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/fetching/nesting.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/fetching/plans.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/fetching/select_in.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/fetching/tables.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/cleanup.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/contracts.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/drift.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/lock.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/manifest.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/model.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/pipeline.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/rendering/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/rendering/domains.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/rendering/enums.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/rendering/exports.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/rendering/imports.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/rendering/package.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/rendering/relations.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/rendering/routines.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/rendering/rows.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/rendering/source.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/rendering/tables.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/rendering/writes.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/validation.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/generation/writer.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/hydration/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/hydration/engine.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/hydration/identity.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/hydration/plan.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/migrations/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/migrations/alembic.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/migrations/hooks.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/naming.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/policies/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/policies/bypass.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/policies/governed.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/policies/model.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/policies/rewriting.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/py.typed +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/aggregates.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/arrays.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/binding.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/capabilities.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/casts.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/choices.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/decoding.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/documents.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/execution/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/execution/aio/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/execution/aio/operations.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/execution/aio/pooling.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/execution/aio/streaming.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/execution/aio/transactions.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/execution/batch.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/execution/binding_style.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/execution/compilation.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/execution/context.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/execution/control.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/execution/operations.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/execution/planning.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/execution/pooling.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/execution/results.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/execution/streaming.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/execution/transactions.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/expressions.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/fields.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/aio/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/aio/commands.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/aio/driver.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/aio/executor.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/aio/factory.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/aio/operations.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/aio/pool.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/aio/transactions.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/commands.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/compiler.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/context.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/executor.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/expressions.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/factory.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/health.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/identifiers.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/model.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/operations.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/parameters.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/planning.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/pool.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/transactions.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/mysql/writes.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/nodes.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/aio/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/aio/bulk.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/aio/commands.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/aio/executor.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/aio/factory.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/aio/operations.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/aio/pool.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/aio/transactions.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/bulk.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/commands.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/compiler.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/context.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/executor.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/expressions.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/factory.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/health.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/identifiers.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/model.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/operations.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/parameters.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/planning.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/pool.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/transactions.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/postgres/writes.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/projections.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/raw.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/recursion.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/rendering/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/rendering/expressions.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/rendering/identifiers.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/rendering/projections.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/rendering/queries.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/rendering/sources.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/rendering/writes.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/results.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/routines.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/rows.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/select.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/select_nodes.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/sources.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/sqlite/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/sqlite/commands.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/sqlite/compiler.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/sqlite/context.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/sqlite/executor.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/sqlite/expressions.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/sqlite/factory.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/sqlite/health.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/sqlite/identifiers.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/sqlite/model.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/sqlite/operations.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/sqlite/parameters.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/sqlite/planning.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/sqlite/pool.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/sqlite/streaming.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/sqlite/transactions.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/sqlite/writes.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/statements.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/values.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/vendor.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/windows.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/write_nodes.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/query/writes.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/relations/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/relations/batching.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/relations/derivation.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/relations/fetching.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/relations/graph.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/relations/loading.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/relations/model.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/relations/planning.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/runtime/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/runtime/kernels.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/runtime/python.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/runtime/selection.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/sanic/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/sanic/scope.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/sanic/workers.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/codec.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/models.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/mysql/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/mysql/dsn.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/mysql/records.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/mysql/reflection.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/mysql/source.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/mysql/sql.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/mysql/types.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/postgres/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/postgres/records.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/postgres/reflection.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/postgres/source.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/postgres/sql.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/postgres/types.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/registry.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/source.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/sqlite/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/sqlite/records.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/sqlite/reflection.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/sqlite/source.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/sqlite/sql.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/schema/sqlite/types.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/serving/databases.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/snapshots/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/snapshots/drift.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/snapshots/files.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/snapshots/routing.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/snapshots/source.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/tracing/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/tracing/spans.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/src/pyoq/unset.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/__init__.py +0 -0
- {pyoq_sql-1.0.0/tests/cli → pyoq_sql-1.0.2/tests/architecture}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/architecture/test_layering.py +0 -0
- {pyoq_sql-1.0.0/tests/config → pyoq_sql-1.0.2/tests/cli}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/cli/test_cli.py +0 -0
- {pyoq_sql-1.0.0/tests/contracts → pyoq_sql-1.0.2/tests/config}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/conftest.py +0 -0
- {pyoq_sql-1.0.0/tests/diagnostics → pyoq_sql-1.0.2/tests/contracts}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/aliasing_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/array_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/async_execution_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/cast_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/collection_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/compiler_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/execution_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/fetch_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/joined_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/json_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/lateral_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/locking_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/null_order_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/recursion_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/roundtrip_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/routine_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/row_value_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/select_in_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/snapshot_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/support.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/contracts/window_contract.py +0 -0
- {pyoq_sql-1.0.0/tests/distribution → pyoq_sql-1.0.2/tests/diagnostics}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/diagnostics/test_budget.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/diagnostics/test_events.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/diagnostics/test_fingerprint.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/diagnostics/test_instrumented.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/diagnostics/test_instrumented_aio.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/diagnostics/test_metrics.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/diagnostics/test_observation.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/diagnostics/test_scoped.py +0 -0
- {pyoq_sql-1.0.0/tests/django → pyoq_sql-1.0.2/tests/distribution}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/distribution/test_api_reference.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/distribution/test_capability_documentation.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/distribution/test_cognitive_complexity.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/distribution/test_every_example_runs.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/distribution/test_examples_run.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/distribution/test_fetch_execution_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/distribution/test_hydration_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/distribution/test_performance_contract.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/distribution/test_run_examples.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/distribution/test_verify_wheels.py +0 -0
- {pyoq_sql-1.0.0/tests/django/catalog → pyoq_sql-1.0.2/tests/django}/__init__.py +0 -0
- {pyoq_sql-1.0.0/tests/django/catalog/migrations → pyoq_sql-1.0.2/tests/django/catalog}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/django/catalog/apps.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/django/catalog/fields.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/django/catalog/migrations/0001_initial.py +0 -0
- {pyoq_sql-1.0.0/tests/dsl → pyoq_sql-1.0.2/tests/django/catalog/migrations}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/django/catalog/models.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/django/conftest.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/django/routing.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/django/test_example.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/django/test_execution.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/django/test_generation.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/django/test_generation_equivalence.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/django/test_makemigrations.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/django/test_parameters.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/django/test_settings.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/django/test_timeouts.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/django/test_transactions.py +0 -0
- {pyoq_sql-1.0.0/tests/fastapi → pyoq_sql-1.0.2/tests/dsl}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/dsl/aio_support.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/dsl/conftest.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/dsl/test_aio.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/dsl/test_aio_writes.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/dsl/test_context.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/dsl/test_queries.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/dsl/test_result.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/dsl/test_writes.py +0 -0
- {pyoq_sql-1.0.0/tests/fetching → pyoq_sql-1.0.2/tests/fastapi}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/fastapi/conftest.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/fastapi/test_async_routes.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/fastapi/test_lifespan.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/fastapi/test_routes.py +0 -0
- {pyoq_sql-1.0.0/tests/generation → pyoq_sql-1.0.2/tests/fetching}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/fetching/test_collection_execution.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/fetching/test_collections.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/fetching/test_dialect_aliasing.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/fetching/test_dialect_fetching.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/fetching/test_dialect_fetching_aio.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/fetching/test_execution.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/fetching/test_joined.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/fetching/test_joined_fetch.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/fetching/test_multi_schema_relations.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/fetching/test_nesting.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/fetching/test_plans.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/fetching/test_select_in.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/fetching/test_select_in_reduction.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/fetching/test_typed_rows.py +0 -0
- {pyoq_sql-1.0.0/tests/hydration → pyoq_sql-1.0.2/tests/generation}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/generation/test_contracts.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/generation/test_filesystem.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/generation/test_generated_overloads.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/generation/test_generated_package_imports.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/generation/test_generated_relations.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/generation/test_generated_result_types.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/generation/test_generated_types.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/generation/test_manifest.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/generation/test_pipeline.py +0 -0
- {pyoq_sql-1.0.0/tests/policies → pyoq_sql-1.0.2/tests/hydration}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/hydration/test_engine.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/hydration/test_engine_properties.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/hydration/test_identity.py +0 -0
- {pyoq_sql-1.0.0/tests/query → pyoq_sql-1.0.2/tests/policies}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/policies/test_adapters.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/policies/test_isolation.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/policies/test_isolation_aio.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/policies/test_no_bypass.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/policies/test_rewriting.py +0 -0
- {pyoq_sql-1.0.0/tests/query/mysql → pyoq_sql-1.0.2/tests/query}/__init__.py +0 -0
- {pyoq_sql-1.0.0/tests/query/mysql/aio → pyoq_sql-1.0.2/tests/query/mysql}/__init__.py +0 -0
- {pyoq_sql-1.0.0/tests/query/postgres → pyoq_sql-1.0.2/tests/query/mysql/aio}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/mysql/aio/test_driver_failures.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/mysql/aio/test_execution.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/mysql/aio/test_read_throughput.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/mysql/test_compiler.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/mysql/test_driver_failures.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/mysql/test_driver_recovery.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/mysql/test_execution.py +0 -0
- {pyoq_sql-1.0.0/tests/query/postgres/aio → pyoq_sql-1.0.2/tests/query/postgres}/__init__.py +0 -0
- {pyoq_sql-1.0.0/tests/query/sqlite → pyoq_sql-1.0.2/tests/query/postgres/aio}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/postgres/aio/test_driver_failures.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/postgres/aio/test_execution.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/postgres/aio/test_final_paths.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/postgres/aio/test_lifecycle.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/postgres/aio/test_state_guards.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/postgres/test_command_translation.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/postgres/test_compiler.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/postgres/test_driver_failures.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/postgres/test_driver_recovery.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/postgres/test_execution.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/postgres/test_pipeline_bulk.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/postgres/test_transaction_lifecycle.py +0 -0
- {pyoq_sql-1.0.0/tests/query/writes → pyoq_sql-1.0.2/tests/query/sqlite}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/sqlite/test_bulk_execution.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/sqlite/test_compiler.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/sqlite/test_control.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/sqlite/test_dialect_contracts.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/sqlite/test_executor.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/sqlite/test_pool.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/sqlite/test_streaming.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/sqlite/test_transactions.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_advanced_types.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_arrays.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_binding.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_capabilities.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_casts.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_choices.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_collection_execution.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_collection_rendering.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_decoding.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_expressions.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_json.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_locking.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_parameter_styles.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_recursion.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_results.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_routines.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_rows.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_select_queries.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_vendor.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_watchdog_cancellation.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/test_windows.py +0 -0
- {pyoq_sql-1.0.0/tests/relations → pyoq_sql-1.0.2/tests/query/writes}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/writes/test_insert_statements.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/writes/test_update_delete_statements.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/query/writes/test_upsert_statements.py +0 -0
- {pyoq_sql-1.0.0/tests/runtime → pyoq_sql-1.0.2/tests/relations}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/relations/test_batching.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/relations/test_derivation.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/relations/test_fetching.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/relations/test_graph.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/relations/test_loading.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/relations/test_planning.py +0 -0
- {pyoq_sql-1.0.0/tests/sanic → pyoq_sql-1.0.2/tests/runtime}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/runtime/test_kernels.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/runtime/test_runtime.py +0 -0
- {pyoq_sql-1.0.0/tests/schema → pyoq_sql-1.0.2/tests/sanic}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/sanic/conftest.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/sanic/notes.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/sanic/test_attachment.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/sanic/test_scope.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/sanic/test_synchronous_scope.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/sanic/test_workers.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/sanic/worker_application.py +0 -0
- {pyoq_sql-1.0.0/tests/schema/mysql → pyoq_sql-1.0.2/tests/schema}/__init__.py +0 -0
- {pyoq_sql-1.0.0/tests/schema/postgres → pyoq_sql-1.0.2/tests/schema/mysql}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/schema/mysql/test_catalog_records.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/schema/mysql/test_dsn.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/schema/mysql/test_types.py +0 -0
- {pyoq_sql-1.0.0/tests/schema/sqlite → pyoq_sql-1.0.2/tests/schema/postgres}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/schema/postgres/test_catalog_records.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/schema/postgres/test_types.py +0 -0
- {pyoq_sql-1.0.0/tests/snapshots → pyoq_sql-1.0.2/tests/schema/sqlite}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/schema/sqlite/test_records.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/schema/sqlite/test_reflection.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/schema/sqlite/test_sql.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/schema/sqlite/test_types.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/schema/test_codec.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/schema/test_registry.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/schema/test_schema.py +0 -0
- {pyoq_sql-1.0.0/tests/support → pyoq_sql-1.0.2/tests/snapshots}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/snapshots/test_alembic_lifecycle.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/snapshots/test_dialect_snapshots.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/snapshots/test_drift_and_hooks.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/snapshots/test_offline_generation.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/snapshots/test_snapshot_files.py +0 -0
- {pyoq_sql-1.0.0/tests/tracing → pyoq_sql-1.0.2/tests/support}/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/support/checkers.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/support/generation_fixtures.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/support/mysql.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/support/postgres.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/support/schema_fixtures.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/test_descriptors.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/test_errors.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/test_naming.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/test_package.py +0 -0
- /pyoq_sql-1.0.0/typings/cognitive_complexity/__init__.pyi → /pyoq_sql-1.0.2/tests/tracing/__init__.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/tests/tracing/test_spans.py +0 -0
- {pyoq_sql-1.0.0 → pyoq_sql-1.0.2}/typings/cognitive_complexity/api.pyi +0 -0
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: pyoq-sql
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.2
|
|
4
4
|
Summary: A fully typed, database-first SQL toolkit for Python.
|
|
5
|
+
Project-URL: Homepage, https://teqpod.com/pyoq-sql/
|
|
6
|
+
Project-URL: Documentation, https://teqpod.com/pyoq-sql/overview/
|
|
7
|
+
Project-URL: Issues, https://github.com/Teqpod/pyoq-sql/issues
|
|
8
|
+
Project-URL: Security, https://github.com/Teqpod/pyoq-sql/security/advisories/new
|
|
5
9
|
License-Expression: MPL-2.0
|
|
6
10
|
License-File: LICENSE
|
|
7
11
|
Keywords: database,query-builder,sql,typing
|
|
@@ -99,6 +103,7 @@ flowchart TD
|
|
|
99
103
|
Package --> Query[query]
|
|
100
104
|
Package --> Runtime[runtime]
|
|
101
105
|
Package --> Schema[schema]
|
|
106
|
+
Package --> Serving[serving]
|
|
102
107
|
Package --> Errors[errors]
|
|
103
108
|
Package --> Naming[naming]
|
|
104
109
|
Runtime --> Native[private native extension]
|
|
@@ -112,8 +117,8 @@ surfaces.
|
|
|
112
117
|
## Configuration
|
|
113
118
|
|
|
114
119
|
Configuration is read from `pyproject.toml`. Generated code always lives in a
|
|
115
|
-
dedicated directory below the project root.
|
|
116
|
-
|
|
120
|
+
dedicated directory below the project root. Use a complete environment
|
|
121
|
+
reference when a data source name contains credentials.
|
|
117
122
|
|
|
118
123
|
```toml
|
|
119
124
|
[tool.pyoq]
|
|
@@ -123,32 +128,43 @@ selected-profile = "default"
|
|
|
123
128
|
|
|
124
129
|
[tool.pyoq.profiles.default]
|
|
125
130
|
dialect = "postgres"
|
|
126
|
-
|
|
131
|
+
host = "localhost"
|
|
132
|
+
port = 5432
|
|
133
|
+
database = "${POSTGRES_DATABASE}"
|
|
134
|
+
username = "${POSTGRES_USERNAME}"
|
|
135
|
+
password = "${POSTGRES_PASSWORD}"
|
|
136
|
+
minimum-pool-size = 1
|
|
137
|
+
maximum-pool-size = 8
|
|
138
|
+
pool-checkout-timeout = 3.0
|
|
127
139
|
|
|
128
140
|
[tool.pyoq.profiles.testing]
|
|
129
141
|
dialect = "sqlite"
|
|
130
142
|
database-path = "database/testing.sqlite"
|
|
131
143
|
```
|
|
132
144
|
|
|
133
|
-
|
|
145
|
+
Open the selected profile through the fully typed lifecycle API:
|
|
134
146
|
|
|
135
147
|
```python
|
|
136
|
-
from
|
|
148
|
+
from pyoq import connect
|
|
149
|
+
from application.database.tables import ACCOUNT
|
|
137
150
|
|
|
138
|
-
from pyoq.config import load_configuration
|
|
139
151
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
if profile.dsn_environment is not None:
|
|
144
|
-
database_url = profile.dsn_environment.resolve()
|
|
145
|
-
connect_value = database_url.reveal()
|
|
152
|
+
with connect(profile="default") as database:
|
|
153
|
+
rows = database.select_from(ACCOUNT).limit(10).fetch_all()
|
|
146
154
|
```
|
|
147
155
|
|
|
156
|
+
Omit `profile` to use `selected-profile`. The context creates one process-owned
|
|
157
|
+
pool from the profile limits and closes it on exit. A framework-free
|
|
158
|
+
application can instead pass a data source directly with
|
|
159
|
+
`connect(dsn, dialect=Dialect.MYSQL)`. An explicit `pool_policy` replaces the
|
|
160
|
+
complete profile pool policy for one call.
|
|
161
|
+
|
|
148
162
|
SQLite file paths use `database-path`. They are resolved relative to the project
|
|
149
163
|
root, must remain inside it, and are opened read-only during inspection. An
|
|
150
|
-
environment reference
|
|
151
|
-
|
|
164
|
+
environment reference in the exact `${VARIABLE_NAME}` form may be used for any
|
|
165
|
+
structured server or pool value. Any other string is literal. Server profiles
|
|
166
|
+
may alternatively define one `dsn`, but cannot combine it with structured
|
|
167
|
+
connection fields.
|
|
152
168
|
|
|
153
169
|
`SecretValue` renders as `[REDACTED]`; access to its underlying value is always
|
|
154
170
|
explicit. An explicit `Configuration` object takes precedence over the file,
|
|
@@ -317,7 +333,7 @@ python -m pip install "pyoq-sql[mysql-async]"
|
|
|
317
333
|
Without them, PostgreSQL and MySQL query construction and compilation still
|
|
318
334
|
work because they are pure Python. Only connecting requires a driver, and its
|
|
319
335
|
absence raises an explicit error naming the extra to install. PostgreSQL and
|
|
320
|
-
MySQL profiles supply their connection string through `dsn
|
|
336
|
+
PostgreSQL and MySQL profiles supply their connection string through `dsn`, and
|
|
321
337
|
inspection opens the connection read-only.
|
|
322
338
|
|
|
323
339
|
A MySQL connection string names one database, which is reflected as the
|
|
@@ -59,6 +59,7 @@ flowchart TD
|
|
|
59
59
|
Package --> Query[query]
|
|
60
60
|
Package --> Runtime[runtime]
|
|
61
61
|
Package --> Schema[schema]
|
|
62
|
+
Package --> Serving[serving]
|
|
62
63
|
Package --> Errors[errors]
|
|
63
64
|
Package --> Naming[naming]
|
|
64
65
|
Runtime --> Native[private native extension]
|
|
@@ -72,8 +73,8 @@ surfaces.
|
|
|
72
73
|
## Configuration
|
|
73
74
|
|
|
74
75
|
Configuration is read from `pyproject.toml`. Generated code always lives in a
|
|
75
|
-
dedicated directory below the project root.
|
|
76
|
-
|
|
76
|
+
dedicated directory below the project root. Use a complete environment
|
|
77
|
+
reference when a data source name contains credentials.
|
|
77
78
|
|
|
78
79
|
```toml
|
|
79
80
|
[tool.pyoq]
|
|
@@ -83,32 +84,43 @@ selected-profile = "default"
|
|
|
83
84
|
|
|
84
85
|
[tool.pyoq.profiles.default]
|
|
85
86
|
dialect = "postgres"
|
|
86
|
-
|
|
87
|
+
host = "localhost"
|
|
88
|
+
port = 5432
|
|
89
|
+
database = "${POSTGRES_DATABASE}"
|
|
90
|
+
username = "${POSTGRES_USERNAME}"
|
|
91
|
+
password = "${POSTGRES_PASSWORD}"
|
|
92
|
+
minimum-pool-size = 1
|
|
93
|
+
maximum-pool-size = 8
|
|
94
|
+
pool-checkout-timeout = 3.0
|
|
87
95
|
|
|
88
96
|
[tool.pyoq.profiles.testing]
|
|
89
97
|
dialect = "sqlite"
|
|
90
98
|
database-path = "database/testing.sqlite"
|
|
91
99
|
```
|
|
92
100
|
|
|
93
|
-
|
|
101
|
+
Open the selected profile through the fully typed lifecycle API:
|
|
94
102
|
|
|
95
103
|
```python
|
|
96
|
-
from
|
|
104
|
+
from pyoq import connect
|
|
105
|
+
from application.database.tables import ACCOUNT
|
|
97
106
|
|
|
98
|
-
from pyoq.config import load_configuration
|
|
99
107
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if profile.dsn_environment is not None:
|
|
104
|
-
database_url = profile.dsn_environment.resolve()
|
|
105
|
-
connect_value = database_url.reveal()
|
|
108
|
+
with connect(profile="default") as database:
|
|
109
|
+
rows = database.select_from(ACCOUNT).limit(10).fetch_all()
|
|
106
110
|
```
|
|
107
111
|
|
|
112
|
+
Omit `profile` to use `selected-profile`. The context creates one process-owned
|
|
113
|
+
pool from the profile limits and closes it on exit. A framework-free
|
|
114
|
+
application can instead pass a data source directly with
|
|
115
|
+
`connect(dsn, dialect=Dialect.MYSQL)`. An explicit `pool_policy` replaces the
|
|
116
|
+
complete profile pool policy for one call.
|
|
117
|
+
|
|
108
118
|
SQLite file paths use `database-path`. They are resolved relative to the project
|
|
109
119
|
root, must remain inside it, and are opened read-only during inspection. An
|
|
110
|
-
environment reference
|
|
111
|
-
|
|
120
|
+
environment reference in the exact `${VARIABLE_NAME}` form may be used for any
|
|
121
|
+
structured server or pool value. Any other string is literal. Server profiles
|
|
122
|
+
may alternatively define one `dsn`, but cannot combine it with structured
|
|
123
|
+
connection fields.
|
|
112
124
|
|
|
113
125
|
`SecretValue` renders as `[REDACTED]`; access to its underlying value is always
|
|
114
126
|
explicit. An explicit `Configuration` object takes precedence over the file,
|
|
@@ -277,7 +289,7 @@ python -m pip install "pyoq-sql[mysql-async]"
|
|
|
277
289
|
Without them, PostgreSQL and MySQL query construction and compilation still
|
|
278
290
|
work because they are pure Python. Only connecting requires a driver, and its
|
|
279
291
|
absence raises an explicit error naming the extra to install. PostgreSQL and
|
|
280
|
-
MySQL profiles supply their connection string through `dsn
|
|
292
|
+
PostgreSQL and MySQL profiles supply their connection string through `dsn`, and
|
|
281
293
|
inspection opens the connection read-only.
|
|
282
294
|
|
|
283
295
|
A MySQL connection string names one database, which is reflected as the
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# PyOQ documentation site
|
|
2
|
+
|
|
3
|
+
The landing page lives in `src/pages/index.astro`. Documentation is Markdown
|
|
4
|
+
in `src/content/docs`, one file per guide. Its reading order lives in
|
|
5
|
+
`src/nav.ts`, because a reader following the site from the top is walking a
|
|
6
|
+
path somebody chose rather than a directory listing.
|
|
7
|
+
|
|
8
|
+
## Running it
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
bun install
|
|
12
|
+
bun run dev # http://localhost:4321, with reload
|
|
13
|
+
bun run build # static site into dist/, then the search index
|
|
14
|
+
bun run preview # serve what was built
|
|
15
|
+
bun run check # types across the Astro components
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Search is built by Pagefind from the finished HTML, so `bun run dev` has no
|
|
19
|
+
index and the field says so. Run `bun run build` to search.
|
|
20
|
+
|
|
21
|
+
## Adding a page
|
|
22
|
+
|
|
23
|
+
1. Write `src/content/docs/<name>.md` with `title` and `summary` at the top.
|
|
24
|
+
2. Add it to the right group in `src/nav.ts`, with the same title and summary.
|
|
25
|
+
3. Link it from the nearest existing guide so a reader has a reason to find it.
|
|
26
|
+
4. Add checked SQL and Python pairs where rendered SQL is part of the lesson.
|
|
27
|
+
|
|
28
|
+
A page that exists but is not in the navigation is not built, which is
|
|
29
|
+
deliberate: an unreachable page is worse than a missing one, because nobody
|
|
30
|
+
finds out it went stale.
|
|
31
|
+
|
|
32
|
+
## Writing a guide
|
|
33
|
+
|
|
34
|
+
Start with the reader's task and the smallest complete example. Explain
|
|
35
|
+
ownership, failure behavior, and dialect limits beside the feature rather than
|
|
36
|
+
in a distant caveat. Use supported public imports and show bound values outside
|
|
37
|
+
SQL text.
|
|
38
|
+
|
|
39
|
+
Cross-link concepts instead of copying their full explanation into several
|
|
40
|
+
pages. A page may summarize a related contract, but its authoritative details
|
|
41
|
+
should have one home. Use Mermaid when a process or state transition needs a
|
|
42
|
+
diagram.
|
|
43
|
+
|
|
44
|
+
The Python suite validates local links, documented imports, and every adjacent
|
|
45
|
+
`sql pair` and Python block. The site check validates components and routes.
|
|
46
|
+
Both are required because either one alone can miss a broken guide.
|
|
47
|
+
|
|
48
|
+
## Where things are
|
|
49
|
+
|
|
50
|
+
| Path | Holds |
|
|
51
|
+
| --- | --- |
|
|
52
|
+
| `src/pages/index.astro` | the product landing page |
|
|
53
|
+
| `src/content/docs` | every page, as Markdown |
|
|
54
|
+
| `src/nav.ts` | the order, and which group each page is in |
|
|
55
|
+
| `src/layouts/Doc.astro` | the page shell |
|
|
56
|
+
| `src/layouts/app.css` | the whole design |
|
|
57
|
+
| `src/components` | sidebar, search, on-this-page, prev and next |
|
|
58
|
+
|
|
59
|
+
## Checking a change
|
|
60
|
+
|
|
61
|
+
From this directory:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
bun run check
|
|
65
|
+
bun run build
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
From the repository root:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
uv run --no-sync pytest tests/distribution/test_documentation_links.py \
|
|
72
|
+
tests/distribution/test_documentation_imports.py \
|
|
73
|
+
tests/distribution/test_documentation_pairs.py
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Deploying
|
|
77
|
+
|
|
78
|
+
`dist/` is a directory of files. It needs no server of its own, so any static
|
|
79
|
+
host will do. Set `DOCS_BASE` when it is served from a subdirectory:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
DOCS_BASE=/docs/ bun run build
|
|
83
|
+
```
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { unified } from "@astrojs/markdown-remark";
|
|
3
|
+
import { defineConfig } from "astro/config";
|
|
4
|
+
|
|
5
|
+
import { remarkBase } from "./src/remark-base.mjs";
|
|
6
|
+
import { remarkCodeShell } from "./src/remark-code-shell.mjs";
|
|
7
|
+
import { remarkLicence } from "./src/remark-licence.mjs";
|
|
8
|
+
import { remarkMermaid } from "./src/remark-mermaid.mjs";
|
|
9
|
+
import { remarkPairs } from "./src/remark-pairs.mjs";
|
|
10
|
+
|
|
11
|
+
// The site is a directory of files when it is built, so it works from a
|
|
12
|
+
// bucket, a static host, or a laptop without anything running behind it.
|
|
13
|
+
export default defineConfig({
|
|
14
|
+
// Both are read from the environment and neither is written down here, so
|
|
15
|
+
// the build carries no host and no assumption about where it is served.
|
|
16
|
+
// DOCS_BASE is the path the site is published under; every internal link is
|
|
17
|
+
// built from it through src/links.ts. Unset means the root, which is what a
|
|
18
|
+
// local `astro dev` wants.
|
|
19
|
+
site: process.env.DOCS_SITE,
|
|
20
|
+
base: process.env.DOCS_BASE ?? "/",
|
|
21
|
+
build: { format: "directory" },
|
|
22
|
+
vite: {
|
|
23
|
+
// The package metadata sits above this directory, and src/project.ts reads
|
|
24
|
+
// the licence straight out of it.
|
|
25
|
+
server: { fs: { allow: [".", "../.."] } },
|
|
26
|
+
build: {
|
|
27
|
+
rollupOptions: {
|
|
28
|
+
// Astro names a bundled asset after the specifier that imported it,
|
|
29
|
+
// and a relative one leaves ".." in the filename. Static servers read
|
|
30
|
+
// that as a walk out of the directory and refuse to serve it.
|
|
31
|
+
output: { assetFileNames: "_astro/[name].[hash][extname]" },
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
markdown: {
|
|
36
|
+
processor: unified({ remarkPlugins: [
|
|
37
|
+
remarkMermaid,
|
|
38
|
+
remarkLicence,
|
|
39
|
+
remarkCodeShell,
|
|
40
|
+
remarkPairs,
|
|
41
|
+
remarkBase,
|
|
42
|
+
] }),
|
|
43
|
+
shikiConfig: {
|
|
44
|
+
// The themes the editor this UI is modelled on renders with, so a
|
|
45
|
+
// snippet here is coloured exactly as it is there.
|
|
46
|
+
themes: { light: "light-plus", dark: "dark-plus" },
|
|
47
|
+
wrap: false,
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
});
|
|
@@ -7,12 +7,15 @@
|
|
|
7
7
|
"dependencies": {
|
|
8
8
|
"@astrojs/markdown-remark": "^7.2.4",
|
|
9
9
|
"@fontsource/cascadia-code": "^5.3.0",
|
|
10
|
+
"@monaco-editor/loader": "^1.7.0",
|
|
10
11
|
"astro": "^7.2.6",
|
|
12
|
+
"beautiful-mermaid": "^1.1.3",
|
|
11
13
|
"pagefind": "^1.5.2",
|
|
12
14
|
},
|
|
13
15
|
"devDependencies": {
|
|
14
16
|
"@astrojs/check": "^0.9.10",
|
|
15
17
|
"@types/node": "^26.3.0",
|
|
18
|
+
"monaco-editor": "^0.52.2",
|
|
16
19
|
"typescript": "^6",
|
|
17
20
|
},
|
|
18
21
|
},
|
|
@@ -220,6 +223,8 @@
|
|
|
220
223
|
|
|
221
224
|
"@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.5", "", {}, "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og=="],
|
|
222
225
|
|
|
226
|
+
"@monaco-editor/loader": ["@monaco-editor/loader@1.7.0", "", { "dependencies": { "state-local": "^1.0.6" } }, "sha512-gIwR1HrJrrx+vfyOhYmCZ0/JcWqG5kbfG7+d3f/C1LXk2EvzAbHSg3MQ5lO2sMlo9izoAZ04shohfKLVT6crVA=="],
|
|
227
|
+
|
|
223
228
|
"@napi-rs/wasm-runtime": ["@napi-rs/wasm-runtime@1.2.3", "", { "dependencies": { "@tybys/wasm-util": "^0.10.3" }, "peerDependencies": { "@emnapi/core": "^1.7.1 || ^2.0.0-alpha.4", "@emnapi/runtime": "^1.7.1 || ^2.0.0-alpha.4" } }, "sha512-UMduMbqO5s5zF2NkNacMT/yK5Y5QiKvWr2+50bzIIxFDwVJ2h49b+oyjaCGPhJxd2/gC2x39EHv/gHVuu36x2Q=="],
|
|
224
229
|
|
|
225
230
|
"@oslojs/encoding": ["@oslojs/encoding@1.1.0", "", {}, "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ=="],
|
|
@@ -352,6 +357,8 @@
|
|
|
352
357
|
|
|
353
358
|
"bail": ["bail@2.0.2", "", {}, "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw=="],
|
|
354
359
|
|
|
360
|
+
"beautiful-mermaid": ["beautiful-mermaid@1.1.3", "", { "dependencies": { "elkjs": "^0.11.0", "entities": "^7.0.1" } }, "sha512-TItrtrAyHp1vwFfFVYauWGrquouk/6SS21Aq3RsxindSYZODcN4xYrPZD6BiZRU+o5mKJzDPz9MUSMvELdylyg=="],
|
|
361
|
+
|
|
355
362
|
"boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="],
|
|
356
363
|
|
|
357
364
|
"ccount": ["ccount@2.0.1", "", {}, "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg=="],
|
|
@@ -424,11 +431,13 @@
|
|
|
424
431
|
|
|
425
432
|
"dset": ["dset@3.1.4", "", {}, "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA=="],
|
|
426
433
|
|
|
434
|
+
"elkjs": ["elkjs@0.11.1", "", {}, "sha512-zxxR9k+rx5ktMwT/FwyLdPCrq7xN6e4VGGHH8hA01vVYKjTFik7nHOxBnAYtrgYUB1RpAiLvA1/U2YraWxyKKg=="],
|
|
435
|
+
|
|
427
436
|
"emmet": ["emmet@2.4.11", "", { "dependencies": { "@emmetio/abbreviation": "^2.3.3", "@emmetio/css-abbreviation": "^2.1.8" } }, "sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ=="],
|
|
428
437
|
|
|
429
438
|
"emoji-regex": ["emoji-regex@10.6.0", "", {}, "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A=="],
|
|
430
439
|
|
|
431
|
-
"entities": ["entities@
|
|
440
|
+
"entities": ["entities@7.0.1", "", {}, "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA=="],
|
|
432
441
|
|
|
433
442
|
"es-module-lexer": ["es-module-lexer@2.3.2", "", {}, "sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw=="],
|
|
434
443
|
|
|
@@ -636,6 +645,8 @@
|
|
|
636
645
|
|
|
637
646
|
"micromark-util-types": ["micromark-util-types@2.0.2", "", {}, "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA=="],
|
|
638
647
|
|
|
648
|
+
"monaco-editor": ["monaco-editor@0.52.2", "", {}, "sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ=="],
|
|
649
|
+
|
|
639
650
|
"mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="],
|
|
640
651
|
|
|
641
652
|
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
|
|
@@ -756,6 +767,8 @@
|
|
|
756
767
|
|
|
757
768
|
"space-separated-tokens": ["space-separated-tokens@2.0.2", "", {}, "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q=="],
|
|
758
769
|
|
|
770
|
+
"state-local": ["state-local@1.0.7", "", {}, "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w=="],
|
|
771
|
+
|
|
759
772
|
"string-width": ["string-width@8.2.2", "", { "dependencies": { "get-east-asian-width": "^1.5.0", "strip-ansi": "^7.1.2" } }, "sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg=="],
|
|
760
773
|
|
|
761
774
|
"stringify-entities": ["stringify-entities@4.0.4", "", { "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" } }, "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg=="],
|
|
@@ -898,6 +911,8 @@
|
|
|
898
911
|
|
|
899
912
|
"dom-serializer/entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="],
|
|
900
913
|
|
|
914
|
+
"parse5/entities": ["entities@6.0.1", "", {}, "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g=="],
|
|
915
|
+
|
|
901
916
|
"svgo/commander": ["commander@11.1.0", "", {}, "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ=="],
|
|
902
917
|
|
|
903
918
|
"unstorage/chokidar": ["chokidar@5.0.0", "", { "dependencies": { "readdirp": "^5.0.0" } }, "sha512-TQMmc3w+5AxjpL8iIiwebF73dRDF4fBIieAqGn9RGCWaEVwQ6Fb2cGe31Yns0RRIzii5goJ1Y7xbMwo1TxMplw=="],
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
"name": "pyoq-docs",
|
|
3
3
|
"private": true,
|
|
4
4
|
"type": "module",
|
|
5
|
+
"version": "1.0.2",
|
|
5
6
|
"scripts": {
|
|
6
7
|
"dev": "astro dev",
|
|
7
8
|
"build": "astro build && pagefind --site dist",
|
|
@@ -11,12 +12,15 @@
|
|
|
11
12
|
"dependencies": {
|
|
12
13
|
"@astrojs/markdown-remark": "^7.2.4",
|
|
13
14
|
"@fontsource/cascadia-code": "^5.3.0",
|
|
15
|
+
"@monaco-editor/loader": "^1.7.0",
|
|
14
16
|
"astro": "^7.2.6",
|
|
17
|
+
"beautiful-mermaid": "^1.1.3",
|
|
15
18
|
"pagefind": "^1.5.2"
|
|
16
19
|
},
|
|
17
20
|
"devDependencies": {
|
|
18
21
|
"@astrojs/check": "^0.9.10",
|
|
19
22
|
"@types/node": "^26.3.0",
|
|
23
|
+
"monaco-editor": "^0.52.2",
|
|
20
24
|
"typescript": "^6"
|
|
21
25
|
}
|
|
22
26
|
}
|
|
Binary file
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="630" viewBox="0 0 1200 630" role="img" aria-labelledby="banner-title">
|
|
2
|
+
<title id="banner-title">PyOQ, fully typed database-first SQL for Python</title>
|
|
3
|
+
<defs>
|
|
4
|
+
<linearGradient id="ground" x1="0" y1="0" x2="1" y2="1">
|
|
5
|
+
<stop offset="0" stop-color="#0c1220" />
|
|
6
|
+
<stop offset="1" stop-color="#131c2f" />
|
|
7
|
+
</linearGradient>
|
|
8
|
+
<radialGradient id="glow" cx="0.5" cy="0.5" r="0.5">
|
|
9
|
+
<stop offset="0" stop-color="#1b6ef3" stop-opacity="0.42" />
|
|
10
|
+
<stop offset="0.55" stop-color="#1b6ef3" stop-opacity="0.13" />
|
|
11
|
+
<stop offset="1" stop-color="#1b6ef3" stop-opacity="0" />
|
|
12
|
+
</radialGradient>
|
|
13
|
+
<linearGradient id="rule" x1="0" y1="0" x2="1" y2="0">
|
|
14
|
+
<stop offset="0" stop-color="#1b6ef3" />
|
|
15
|
+
<stop offset="1" stop-color="#1b6ef3" stop-opacity="0" />
|
|
16
|
+
</linearGradient>
|
|
17
|
+
</defs>
|
|
18
|
+
|
|
19
|
+
<rect width="1200" height="630" fill="url(#ground)" />
|
|
20
|
+
<circle cx="1046" cy="118" r="392" fill="url(#glow)" />
|
|
21
|
+
<rect x="0" y="0" width="1200" height="6" fill="url(#rule)" />
|
|
22
|
+
|
|
23
|
+
<g transform="translate(96 128) scale(1.75)">
|
|
24
|
+
<rect x="2" y="2" width="60" height="60" rx="14" fill="#1b6ef3" />
|
|
25
|
+
<g fill="none" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="7">
|
|
26
|
+
<path d="M18 49V16h17" />
|
|
27
|
+
<circle cx="35" cy="31" r="15" />
|
|
28
|
+
<path d="m45 42 7 7" />
|
|
29
|
+
</g>
|
|
30
|
+
<g fill="#fff">
|
|
31
|
+
<rect x="28" y="24" width="5" height="5" rx="1" />
|
|
32
|
+
<rect x="36" y="24" width="5" height="5" rx="1" />
|
|
33
|
+
<rect x="28" y="32" width="5" height="5" rx="1" />
|
|
34
|
+
<rect x="36" y="32" width="5" height="5" rx="1" />
|
|
35
|
+
</g>
|
|
36
|
+
</g>
|
|
37
|
+
|
|
38
|
+
<text x="232" y="196" font-family="Helvetica Neue, Helvetica, Arial, sans-serif" font-size="92" font-weight="700" fill="#ffffff" letter-spacing="-2">PyOQ</text>
|
|
39
|
+
<text x="236" y="238" font-family="Menlo, Consolas, monospace" font-size="21" fill="#7c9bd6" letter-spacing="3">PIP INSTALL PYOQ-SQL</text>
|
|
40
|
+
|
|
41
|
+
<text x="96" y="352" font-family="Helvetica Neue, Helvetica, Arial, sans-serif" font-size="52" font-weight="600" fill="#eef2f9" letter-spacing="-1">Fully typed, database-first SQL</text>
|
|
42
|
+
<text x="96" y="416" font-family="Helvetica Neue, Helvetica, Arial, sans-serif" font-size="52" font-weight="600" fill="#eef2f9" letter-spacing="-1">for Python.</text>
|
|
43
|
+
|
|
44
|
+
<rect x="96" y="470" width="1008" height="1" fill="#26324a" />
|
|
45
|
+
|
|
46
|
+
<text x="96" y="533" font-family="Menlo, Consolas, monospace" font-size="25" fill="#7f8ba3"
|
|
47
|
+
>dsl.<tspan fill="#6fb0ff">select</tspan>(TITLES.NAME).<tspan fill="#6fb0ff">from_</tspan>(TITLES)</text>
|
|
48
|
+
|
|
49
|
+
<text x="96" y="586" font-family="Helvetica Neue, Helvetica, Arial, sans-serif" font-size="23" fill="#5f6f8c"
|
|
50
|
+
>Generated types<tspan dx="20" fill="#3d4a63">·</tspan><tspan dx="20">Explicit execution</tspan><tspan dx="20" fill="#3d4a63">·</tspan><tspan dx="20">Native acceleration</tspan></text>
|
|
51
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-labelledby="title">
|
|
2
|
+
<title id="title">PyOQ</title>
|
|
3
|
+
<rect x="2" y="2" width="60" height="60" rx="14" fill="#1b6ef3" />
|
|
4
|
+
<g fill="none" stroke="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="7">
|
|
5
|
+
<path d="M18 49V16h17" />
|
|
6
|
+
<circle cx="35" cy="31" r="15" />
|
|
7
|
+
<path d="m45 42 7 7" />
|
|
8
|
+
</g>
|
|
9
|
+
<g fill="#fff">
|
|
10
|
+
<rect x="28" y="24" width="5" height="5" rx="1" />
|
|
11
|
+
<rect x="36" y="24" width="5" height="5" rx="1" />
|
|
12
|
+
<rect x="28" y="32" width="5" height="5" rx="1" />
|
|
13
|
+
<rect x="36" y="32" width="5" height="5" rx="1" />
|
|
14
|
+
</g>
|
|
15
|
+
</svg>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The bar above a code block, written once.
|
|
3
|
+
*
|
|
4
|
+
* A snippet is labelled the same way whether it stands alone or sits beside
|
|
5
|
+
* the SQL it compiles to, so both the plugin that wraps a lone fence and the
|
|
6
|
+
* one that pairs two of them build their head from here.
|
|
7
|
+
*/
|
|
8
|
+
const LABELS = {
|
|
9
|
+
bash: "Shell",
|
|
10
|
+
console: "Console",
|
|
11
|
+
json: "JSON",
|
|
12
|
+
python: "Python",
|
|
13
|
+
sql: "SQL",
|
|
14
|
+
text: "Text",
|
|
15
|
+
toml: "Configuration",
|
|
16
|
+
yaml: "YAML",
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const COPY_ICON =
|
|
20
|
+
'<svg class="i-copy" viewBox="0 0 16 16" aria-hidden="true"><rect x="5.6" y="5.6" width="7.9" height="7.9" rx="1.6" fill="none" stroke="currentColor" stroke-width="1.3"/><path d="M10.4 5.6V4.1A1.6 1.6 0 0 0 8.8 2.5H4.1A1.6 1.6 0 0 0 2.5 4.1v4.7a1.6 1.6 0 0 0 1.6 1.6h1.5" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round"/></svg>';
|
|
21
|
+
|
|
22
|
+
const DONE_ICON =
|
|
23
|
+
'<svg class="i-done" viewBox="0 0 16 16" aria-hidden="true"><path d="m3.5 8.4 3 3 6-6.4" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></svg>';
|
|
24
|
+
|
|
25
|
+
/** Languages that are a session at a prompt rather than a file of code. */
|
|
26
|
+
const TERMINALS = new Set(["bash", "sh", "shell", "zsh", "console"]);
|
|
27
|
+
|
|
28
|
+
export function isTerminal(language) {
|
|
29
|
+
return TERMINALS.has((language ?? "").toLowerCase());
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function label(language) {
|
|
33
|
+
if (isTerminal(language)) return "Terminal";
|
|
34
|
+
if (!language) return "Text";
|
|
35
|
+
return LABELS[language] ?? language.toUpperCase();
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function codeHead(language) {
|
|
39
|
+
const named = label(language);
|
|
40
|
+
return (
|
|
41
|
+
'<div class="code-head">' +
|
|
42
|
+
`<span class="code-lang">${named}</span>` +
|
|
43
|
+
`<button class="code-copy" type="button" data-copy aria-label="Copy ${named} code">` +
|
|
44
|
+
COPY_ICON +
|
|
45
|
+
DONE_ICON +
|
|
46
|
+
"<span data-copy-label>Copy</span></button>" +
|
|
47
|
+
"</div>"
|
|
48
|
+
);
|
|
49
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<button id="appearance" type="button" aria-label="Switch appearance">
|
|
2
|
+
<svg viewBox="0 0 20 20" width="16" height="16" aria-hidden="true">
|
|
3
|
+
<path
|
|
4
|
+
fill="currentColor"
|
|
5
|
+
d="M10 2a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm0 1.6V16.4a6.4 6.4 0 0 1 0-12.8Z"
|
|
6
|
+
></path>
|
|
7
|
+
</svg>
|
|
8
|
+
</button>
|
|
9
|
+
|
|
10
|
+
<script>
|
|
11
|
+
const root = document.documentElement;
|
|
12
|
+
document.getElementById("appearance")?.addEventListener("click", () => {
|
|
13
|
+
const next = root.dataset.appearance === "dark" ? "light" : "dark";
|
|
14
|
+
root.dataset.appearance = next;
|
|
15
|
+
try {
|
|
16
|
+
localStorage.setItem("pyoq-appearance", next);
|
|
17
|
+
} catch {}
|
|
18
|
+
});
|
|
19
|
+
</script>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// What every example on a page takes as already there. Written once, shown
|
|
3
3
|
// on the pages that rely on it, so no example begins with a name the reader
|
|
4
4
|
// has not met.
|
|
5
|
-
|
|
5
|
+
import { linkTo } from "../links";
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
<aside class="assumed">
|
|
@@ -18,7 +18,7 @@ const base = import.meta.env.BASE_URL;
|
|
|
18
18
|
</li>
|
|
19
19
|
</ul>
|
|
20
20
|
<p>
|
|
21
|
-
<a href={
|
|
21
|
+
<a href={linkTo("first-query/")}
|
|
22
22
|
>Your first query</a
|
|
23
23
|
> builds all three from nothing.
|
|
24
24
|
</p>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
interface Props {
|
|
3
|
+
variant: "landing" | "documentation";
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
import { linkTo } from "../links";
|
|
7
|
+
|
|
8
|
+
const { variant } = Astro.props;
|
|
9
|
+
|
|
10
|
+
const documentation = variant === "documentation";
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
<a
|
|
14
|
+
class={documentation ? "wordmark" : "landing-wordmark"}
|
|
15
|
+
href={linkTo()}
|
|
16
|
+
aria-label={documentation ? "PyOQ documentation home" : "PyOQ home"}
|
|
17
|
+
>
|
|
18
|
+
<img
|
|
19
|
+
class="brand-image"
|
|
20
|
+
src={linkTo("brand/pyoq-mark.svg")}
|
|
21
|
+
width="30"
|
|
22
|
+
height="30"
|
|
23
|
+
alt=""
|
|
24
|
+
/>
|
|
25
|
+
<span class="brand-name">PyOQ</span>
|
|
26
|
+
{documentation && <span class="brand-context">docs</span>}
|
|
27
|
+
</a>
|