]> git.ipfire.org Git - thirdparty/fastapi/sqlmodel.git/commitdiff
✨ Add sqlmodel-slim setup (#916)
authorSebastián Ramírez <tiangolo@gmail.com>
Tue, 30 Apr 2024 06:22:28 +0000 (23:22 -0700)
committerGitHub <noreply@github.com>
Tue, 30 Apr 2024 06:22:28 +0000 (06:22 +0000)
.github/workflows/publish.yml
.github/workflows/test-redistribute.yml
pdm_build.py [new file with mode: 0644]
pyproject.toml
sqlmodel/__init__.py

index 6f57b7f8ef4f1520841ea2c6b603cfa52639089d..1397e17ae6135da7a3145b97d437310fd9bb978f 100644 (file)
@@ -18,6 +18,7 @@ jobs:
       matrix:
         package:
           - sqlmodel
+          - sqlmodel-slim
     permissions:
       id-token: write
     steps:
index 45b82414c477fd63c51c57a613c5278980dc79d5..2994da2fe5e82436ad306b2f696a2cf27deeb184 100644 (file)
@@ -16,6 +16,7 @@ jobs:
       matrix:
         package:
           - sqlmodel
+          - sqlmodel-slim
     steps:
       - name: Dump GitHub context
         env:
diff --git a/pdm_build.py b/pdm_build.py
new file mode 100644 (file)
index 0000000..2324670
--- /dev/null
@@ -0,0 +1,39 @@
+import os
+from typing import Any, Dict, List
+
+from pdm.backend.hooks import Context
+
+TIANGOLO_BUILD_PACKAGE = os.getenv("TIANGOLO_BUILD_PACKAGE", "sqlmodel")
+
+
+def pdm_build_initialize(context: Context) -> None:
+    metadata = context.config.metadata
+    # Get custom config for the current package, from the env var
+    config: Dict[str, Any] = context.config.data["tool"]["tiangolo"][
+        "_internal-slim-build"
+    ]["packages"][TIANGOLO_BUILD_PACKAGE]
+    project_config: Dict[str, Any] = config["project"]
+    # Get main optional dependencies, extras
+    optional_dependencies: Dict[str, List[str]] = metadata.get(
+        "optional-dependencies", {}
+    )
+    # Get custom optional dependencies name to always include in this (non-slim) package
+    include_optional_dependencies: List[str] = config.get(
+        "include-optional-dependencies", []
+    )
+    # Override main [project] configs with custom configs for this package
+    for key, value in project_config.items():
+        metadata[key] = value
+    # Get custom build config for the current package
+    build_config: Dict[str, Any] = (
+        config.get("tool", {}).get("pdm", {}).get("build", {})
+    )
+    # Override PDM build config with custom build config for this package
+    for key, value in build_config.items():
+        context.config.build_config[key] = value
+    # Get main dependencies
+    dependencies: List[str] = metadata.get("dependencies", [])
+    # Add optional dependencies to the default dependencies for this (non-slim) package
+    for include_optional in include_optional_dependencies:
+        optional_dependencies_group = optional_dependencies.get(include_optional, [])
+        dependencies.extend(optional_dependencies_group)
index 17f72941b8bb0fe1c56dba78f3fa6f86e5eda7b4..ade520ab48377699a103b611b4e622c5533f10db 100644 (file)
@@ -57,6 +57,18 @@ source-includes = [
     "sqlmodel/sql/expression.py.jinja2",
     ]
 
+[tool.tiangolo._internal-slim-build.packages.sqlmodel-slim.project]
+name = "sqlmodel-slim"
+
+[tool.tiangolo._internal-slim-build.packages.sqlmodel]
+# include-optional-dependencies = ["standard"]
+
+[tool.tiangolo._internal-slim-build.packages.sqlmodel.project]
+optional-dependencies = {}
+
+# [tool.tiangolo._internal-slim-build.packages.sqlmodel.project.scripts]
+# sqlmodel = "sqlmodel.cli:main"
+
 [tool.coverage.run]
 parallel = true
 source = [
index aa108fefe9097ec190e8e516de64509cd38b1f78..39a8d4641892cba8cdd23f6a215e1664c2bba1e1 100644 (file)
@@ -1,4 +1,4 @@
-__version__ = "0.0.17"
+__version__ = "0.0.18.dev1"
 
 # Re-export from SQLAlchemy
 from sqlalchemy.engine import create_engine as create_engine