import pydantic objects from the `_pydantic_compat` module (#17667)
This PR changes `from pydantic import BaseModel` to `from synapse._pydantic_compat import BaseModel` (as well as `constr`, `conbytes`, `conint`, `confloat`). It allows `check_pydantic_models.py` to mock those pydantic objects only in the synapse module, and not interfere with pydantic objects in external dependencies. This should solve the CI problems for #17144, which breaks because `check_pydantic_models.py` patches pydantic models from [scim2-models](https://scim2-models.readthedocs.io/). /cc @DMRobertson @gotmax23 fixes #17659 ### Pull Request Checklist <!-- Please read https://element-hq.github.io/synapse/latest/development/contributing_guide.html before submitting your pull request --> * [x] Pull request is based on the develop branch * [x] Pull request includes a [changelog file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog). The entry should: - Be a short description of your change which makes sense to users. "Fixed a bug that prevented receiving messages from other servers." instead of "Moved X method from `EventStore` to `EventWorkerStore`.". - Use markdown where necessary, mostly for `code blocks`. - End with either a period (.) or an exclamation mark (!). - Start with a capital letter. - Feel free to credit yourself, by adding a sentence "Contributed by @github_username." or "Contributed by [Your Name]." to the end of the entry. * [x] [Code style](https://element-hq.github.io/synapse/latest/code_style.html) is correct (run the [linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters))
Showing
- changelog.d/17667.misc 5 additions, 0 deletionschangelog.d/17667.misc
- scripts-dev/check_pydantic_models.py 15 additions, 35 deletionsscripts-dev/check_pydantic_models.py
- synapse/_pydantic_compat.py 63 additions, 1 deletionsynapse/_pydantic_compat.py
- synapse/config/_util.py 2 additions, 8 deletionssynapse/config/_util.py
- synapse/config/workers.py 8 additions, 8 deletionssynapse/config/workers.py
- synapse/events/validator.py 2 additions, 8 deletionssynapse/events/validator.py
- synapse/http/servlet.py 7 additions, 9 deletionssynapse/http/servlet.py
- synapse/rest/admin/users.py 1 addition, 6 deletionssynapse/rest/admin/users.py
- synapse/rest/client/account.py 1 addition, 7 deletionssynapse/rest/client/account.py
- synapse/rest/client/devices.py 1 addition, 7 deletionssynapse/rest/client/devices.py
- synapse/rest/client/directory.py 1 addition, 7 deletionssynapse/rest/client/directory.py
- synapse/rest/client/reporting.py 1 addition, 5 deletionssynapse/rest/client/reporting.py
- synapse/rest/key/v2/remote_key_resource.py 1 addition, 7 deletionssynapse/rest/key/v2/remote_key_resource.py
- synapse/storage/background_updates.py 1 addition, 6 deletionssynapse/storage/background_updates.py
- synapse/types/handlers/sliding_sync.py 5 additions, 8 deletionssynapse/types/handlers/sliding_sync.py
- synapse/types/rest/__init__.py 1 addition, 8 deletionssynapse/types/rest/__init__.py
- synapse/types/rest/client/__init__.py 10 additions, 24 deletionssynapse/types/rest/client/__init__.py
- tests/rest/client/test_models.py 1 addition, 7 deletionstests/rest/client/test_models.py
Loading
Please register or sign in to comment