From: Sebastián Ramírez Date: Tue, 30 Apr 2024 06:22:28 +0000 (-0700) Subject: ✨ Add sqlmodel-slim setup (#916) X-Git-Tag: 0.0.18~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9ebbf255f71ba4dc2f17b22443e7a87d3da33b36;p=thirdparty%2Ffastapi%2Fsqlmodel.git ✨ Add sqlmodel-slim setup (#916) --- diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 6f57b7f8..1397e17a 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -18,6 +18,7 @@ jobs: matrix: package: - sqlmodel + - sqlmodel-slim permissions: id-token: write steps: diff --git a/.github/workflows/test-redistribute.yml b/.github/workflows/test-redistribute.yml index 45b82414..2994da2f 100644 --- a/.github/workflows/test-redistribute.yml +++ b/.github/workflows/test-redistribute.yml @@ -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 index 00000000..23246701 --- /dev/null +++ b/pdm_build.py @@ -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) diff --git a/pyproject.toml b/pyproject.toml index 17f72941..ade520ab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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 = [ diff --git a/sqlmodel/__init__.py b/sqlmodel/__init__.py index aa108fef..39a8d464 100644 --- a/sqlmodel/__init__.py +++ b/sqlmodel/__init__.py @@ -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