Compare commits

..

No commits in common. "3f0e3db427bd2ebdafeb960d2b5f996cd9cb5b5f" and "0e443f08b9ca6336e2cf3712dfa220a50d0f6c73" have entirely different histories.

5 changed files with 31 additions and 43 deletions

View File

@ -2,15 +2,17 @@ name: CI
on:
push:
branches: master
tags: 'v*.*.*'
branches:
- master
jobs:
test:
name: Test
uses: daniil-berg/reusable-workflows/.github/workflows/python-test.yaml@v0.2.1
test-and-check:
name: Tests and checks
uses: daniil-berg/reusable-workflows/.github/workflows/python-test.yaml@v0.0.1
with:
versions: '["3.9", "3.10", "3.11"]'
cache: pip
cache-dependency-path: pyproject.toml
unittest-command: 'scripts/test.sh'
coverage-command: 'scripts/cov.sh'
unittest-requirements: "-e '.[dev]'"
@ -19,16 +21,3 @@ jobs:
typecheck-all-versions: true
lint-command: 'scripts/lint.sh'
lint-requirements: '-Ur requirements/dev.txt'
release:
name: Release
if: ${{ github.ref_type == 'tag' }}
needs: test
uses: daniil-berg/reusable-workflows/.github/workflows/python-release.yaml@v0.2.1
with:
git-ref: ${{ github.ref_name }}
secrets:
release-token: ${{ secrets.TOKEN_GITHUB_CREATE_RELEASE }}
publish-token: ${{ secrets.TOKEN_PYPI_PROJECT }}
permissions:
contents: write

View File

@ -37,15 +37,18 @@ dynamic = [
]
[project.optional-dependencies]
full = [
]
dev = [
"black==23.3.0",
"build==0.10.0",
"coverage[toml]==7.2.3",
"isort==5.12.0",
"mkdocs-material==9.1.6",
"mkdocstrings[python]==0.21.2",
"mypy==1.2.0",
"ruff==0.0.262",
"black",
"build",
"coverage[toml]",
"isort",
"mkdocs-material",
"mkdocstrings[python]",
"mypy",
"ruff",
]
[project.urls]

View File

@ -1 +1 @@
marshmallow>=3.12.0
marshmallow

View File

@ -1,9 +1,9 @@
-r common.txt
black==23.3.0
build==0.10.0
coverage[toml]==7.2.3
isort==5.12.0
mkdocs-material==9.1.6
mkdocstrings[python]==0.21.2
mypy==1.2.0
ruff==0.0.262
black
build
coverage[toml]
isort
mkdocs-material
mkdocstrings[python]
mypy
ruff

View File

@ -16,11 +16,6 @@ from .decorators import post_load
Model = TypeVar("Model")
MANY_SCHEMA_UNSAFE = (
"Changing `many` schema-wide breaks type safety. "
"Use the the `many` parameter of specific methods (like `load`) instead."
)
class GenericSchema(GenericInsightMixin1[Model], Schema):
"""
@ -105,7 +100,6 @@ class GenericSchema(GenericInsightMixin1[Model], Schema):
[`load`][marshmallow_generic.GenericSchema.load]/
[`loads`][marshmallow_generic.GenericSchema.loads].
"""
self._pre_init = True
super().__init__(
only=only,
exclude=exclude,
@ -116,7 +110,6 @@ class GenericSchema(GenericInsightMixin1[Model], Schema):
partial=partial,
unknown=unknown,
)
self._pre_init = False
def __setattr__(self, name: str, value: Any) -> None:
"""
@ -126,7 +119,10 @@ class GenericSchema(GenericInsightMixin1[Model], Schema):
[`object.__setattr__`](https://docs.python.org/3/reference/datamodel.html#object.__setattr__).
"""
if name == "many" and value is not False:
warn(MANY_SCHEMA_UNSAFE, stacklevel=4 if self._pre_init else 2)
warn(
"Changing `many` schema-wide breaks type safety. Use the the "
"`many` parameter of specific methods (like `load`) instead."
)
super().__setattr__(name, value)
@post_load