Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

⬆️ upgrades pydantic==1.9.0 repo-wide #2752

Merged
merged 12 commits into from
Jan 21, 2022
8 changes: 7 additions & 1 deletion .github/workflows/ci-testing-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2118,6 +2118,12 @@ jobs:
run: ./ci/github/system-testing/public-api.bash install
- name: test
run: ./ci/github/system-testing/public-api.bash test
- name: upload failed tests logs
if: failure()
uses: actions/upload-artifact@v2
with:
name: ${{ github.job }}_docker_logs
path: ./test_failures
- name: cleanup
if: always()
run: ./ci/github/system-testing/public-api.bash clean_up
Expand Down Expand Up @@ -2177,7 +2183,7 @@ jobs:
uses: actions/upload-artifact@v2
with:
name: ${{ github.job }}_docker_logs
path: ./tests/swarm-deploy/test_failures
path: ./test_failures
- name: cleanup
if: always()
run: ./ci/github/system-testing/swarm-deploy.bash clean_up
Expand Down
2 changes: 1 addition & 1 deletion ci/helpers/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ multidict==5.2.0
# via
# aiohttp
# yarl
pydantic==1.8.2
pydantic==1.9.0
# via fastapi
pyjwt==2.3.0
# via -r requirements.in
Expand Down
2 changes: 1 addition & 1 deletion packages/dask-task-models-library/requirements/_base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ partd==1.2.0
# via dask
psutil==5.8.0
# via distributed
pydantic==1.8.2
pydantic==1.9.0
# via
# -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../requirements/constraints.txt
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
StrictInt,
StrictStr,
)
from typing_extensions import Annotated
from pydantic.types import constr


class PortSchema(BaseModel):
Expand Down Expand Up @@ -74,7 +74,7 @@ class Config:
}


PortKey = Annotated[str, Field(regex=PROPERTY_KEY_RE)]
PortKey = constr(regex=PROPERTY_KEY_RE)
PortValue = Union[StrictBool, StrictInt, StrictFloat, StrictStr, FileUrl, None]


Expand Down
2 changes: 1 addition & 1 deletion packages/models-library/requirements/_base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ idna==2.10
# via
# -r requirements/_base.in
# email-validator
pydantic==1.8.2
pydantic==1.9.0
# via
# -c requirements/../../../requirements/constraints.txt
# -r requirements/_base.in
Expand Down
44 changes: 0 additions & 44 deletions packages/models-library/src/models_library/rest_pagination.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,50 +14,6 @@
DEFAULT_NUMBER_OF_ITEMS_PER_PAGE = 20


def monkey_patch_pydantic_url_regex() -> None:
# waiting for PR https://github.com/samuelcolvin/pydantic/pull/2512 to be released into
# pydantic main codebase
import pydantic

if pydantic.VERSION > "1.8.2":
raise RuntimeError(
(
"Please check that PR https://github.com/samuelcolvin/pydantic/pull/2512 "
"was merged AND added in this version."
"If already present in this version, remove this monkey_patch"
)
)

import re
from typing import Pattern

from pydantic import networks

def url_regex() -> Pattern[str]:
_url_regex_cache = networks._url_regex_cache # pylint: disable=protected-access
if _url_regex_cache is None:
_url_regex_cache = re.compile(
r"(?:(?P<scheme>[a-z][a-z0-9+\-.]+)://)?" # scheme https://tools.ietf.org/html/rfc3986#appendix-A
r"(?:(?P<user>[^\s:/]*)(?::(?P<password>[^\s/]*))?@)?" # user info
r"(?:"
r"(?P<ipv4>(?:\d{1,3}\.){3}\d{1,3})(?=$|[/:#?])|" # ipv4
r"(?P<ipv6>\[[A-F0-9]*:[A-F0-9:]+\])(?=$|[/:#?])|" # ipv6
r"(?P<domain>[^\s/:?#]+)" # domain, validation occurs later
r")?"
r"(?::(?P<port>\d+))?" # port
r"(?P<path>/[^\s?#]*)?" # path
r"(?:\?(?P<query>[^\s#]+))?" # query
r"(?:#(?P<fragment>\S+))?", # fragment
re.IGNORECASE,
)
return _url_regex_cache

networks.url_regex = url_regex


monkey_patch_pydantic_url_regex()


class PageMetaInfoLimitOffset(BaseModel):
limit: PositiveInt = DEFAULT_NUMBER_OF_ITEMS_PER_PAGE
total: NonNegativeInt
Expand Down
2 changes: 1 addition & 1 deletion packages/models-library/src/models_library/utils/misc.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Any, Dict, List, Type, Union

from pydantic import BaseModel
from pydantic.main import SchemaExtraCallable
from pydantic.config import SchemaExtraCallable


def extract_examples(model_cls: Type[BaseModel]) -> List[Dict[str, Any]]:
Expand Down
8 changes: 4 additions & 4 deletions packages/models-library/tests/test_basic_regex.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

import pytest
from models_library.basic_regex import DATE_RE, UUID_RE, VERSION_RE
from pkg_resources import parse_version
from packaging.version import Version

INVALID = object()
VALID = object()
Expand Down Expand Up @@ -97,6 +97,6 @@ def test_DATE_RE(date_str, expected):

def test_pep404_compare_versions():
# A reminder from https://setuptools.readthedocs.io/en/latest/userguide/distribution.html#specifying-your-project-s-version
assert parse_version("1.9.a.dev") == parse_version("1.9a0dev")
assert parse_version("2.1-rc2") < parse_version("2.1")
assert parse_version("0.6a9dev-r41475") < parse_version("0.6a9")
assert Version("1.9.a.dev") == Version("1.9a0dev")
assert Version("2.1-rc2") < Version("2.1")
assert Version("0.6a9dev") < Version("0.6a9")
2 changes: 1 addition & 1 deletion packages/service-integration/requirements/_base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ pluggy==1.0.0
# via pytest
py==1.11.0
# via pytest
pydantic==1.8.2
pydantic==1.9.0
# via
# -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../requirements/constraints.txt
Expand Down
2 changes: 1 addition & 1 deletion packages/service-integration/requirements/_tools.txt
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ prance==0.21.8.0
# via datamodel-code-generator
pre-commit==2.15.0
# via -r requirements/../../../requirements/devenv.txt
pydantic==1.8.2
pydantic==1.9.0
# via
# -c requirements/../../../requirements/constraints.txt
# -c requirements/_base.txt
Expand Down
2 changes: 1 addition & 1 deletion packages/service-library/requirements/_base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ aiodebug==1.1.2
# via -r requirements/_base.in
aiofiles==0.8.0
# via -r requirements/_base.in
pydantic==1.8.2
pydantic==1.9.0
# via
# -c requirements/../../../requirements/constraints.txt
# -r requirements/_base.in
Expand Down
2 changes: 1 addition & 1 deletion packages/service-library/requirements/_fastapi.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ opentracing==2.4.0
# via
# fastapi-contrib
# jaeger-client
pydantic==1.8.2
pydantic==1.9.0
# via
# -c requirements/./../../../requirements/constraints.txt
# -c requirements/./_base.in
Expand Down
2 changes: 1 addition & 1 deletion packages/settings-library/requirements/_base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#
click==8.0.3
# via typer
pydantic==1.8.2
pydantic==1.9.0
# via
# -c requirements/../../../requirements/constraints.txt
# -r requirements/_base.in
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from functools import cached_property

from pydantic.networks import HttpUrl
from pydantic.networks import AnyHttpUrl
from settings_library.base import BaseCustomSettings
from settings_library.utils_service import MixinServiceSettings

Expand All @@ -14,7 +14,7 @@ class PrometheusSettings(BaseCustomSettings, MixinServiceSettings):

@cached_property
def base_url(self) -> str:
return HttpUrl.build(
return AnyHttpUrl.build(
scheme="http",
host=self.PROMETHEUS_HOST,
port=f"{self.PROMETHEUS_PORT}",
Expand Down
2 changes: 1 addition & 1 deletion packages/simcore-sdk/requirements/_base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ psycopg2-binary==2.9.2
# via
# aiopg
# sqlalchemy
pydantic==1.8.2
pydantic==1.9.0
# via
# -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/postgres-database/requirements/../../../requirements/constraints.txt
Expand Down
6 changes: 5 additions & 1 deletion requirements/constraints.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,14 @@ minio==7.0.4
#



# Keeps all docker compose to the same version. TODO: remove when all synced
docker-compose==1.29.1


# tomli<2.0.0,>=0.2.6 (from black==21.12b0->-r requirements/../../../requirements/devenv.txt (line 19))
tomli<2.0.0


# constraint since https://github.com/MagicStack/uvloop/releases/tag/v0.15.0: drops support for 3.5/3.6 Feb.2021
uvloop<0.15.0 ; python_version < '3.7'

Expand Down
2 changes: 1 addition & 1 deletion services/api-server/requirements/_base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ psycopg2-binary==2.9.1
# sqlalchemy
pycparser==2.20
# via cffi
pydantic==1.8.2
pydantic==1.9.0
# via
# -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/postgres-database/requirements/../../../requirements/constraints.txt
Expand Down
5 changes: 4 additions & 1 deletion services/api-server/requirements/_test.txt
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,10 @@ toml==0.10.2
# pylint
# pytest
tomli==1.2.2
# via coverage
# via
# -c requirements/../../../packages/postgres-database/requirements/../../../requirements/constraints.txt
# -c requirements/../../../requirements/constraints.txt
# coverage
typing-extensions==3.10.0.2
# via
# -c requirements/_base.txt
Expand Down
1 change: 1 addition & 0 deletions services/api-server/requirements/_tools.txt
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ toml==0.10.2
# pre-commit
tomli==1.2.2
# via
# -c requirements/../../../requirements/constraints.txt
# -c requirements/_test.txt
# black
# pep517
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@
from typing import Optional

from models_library.basic_types import BootModeEnum, LogLevel
from pydantic import Field, SecretStr
from pydantic import AnyHttpUrl, Field, SecretStr
from pydantic.class_validators import validator
from pydantic.networks import HttpUrl
from settings_library.base import BaseCustomSettings
from settings_library.postgres import PostgresSettings
from settings_library.tracing import TracingSettings
Expand All @@ -16,7 +15,7 @@
class _UrlMixin:
def _build_url(self, prefix: str) -> str:
prefix = prefix.upper()
return HttpUrl.build(
return AnyHttpUrl.build(
scheme="http",
host=getattr(self, f"{prefix}_HOST"),
port=f"{getattr(self, f'{prefix}_PORT')}",
Expand Down
2 changes: 1 addition & 1 deletion services/catalog/requirements/_base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ psycopg2-binary==2.8.6
# via
# aiopg
# sqlalchemy
pydantic==1.8.2
pydantic==1.9.0
# via
# -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/postgres-database/requirements/../../../requirements/constraints.txt
Expand Down
2 changes: 1 addition & 1 deletion services/dask-sidecar/requirements/_base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ ptyprocess==0.7.0
# via terminado
pycparser==2.20
# via cffi
pydantic==1.8.2
pydantic==1.9.0
# via
# -c requirements/../../../packages/dask-task-models-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/dask-task-models-library/requirements/../../../requirements/constraints.txt
Expand Down
2 changes: 1 addition & 1 deletion services/dask-sidecar/requirements/_packages.txt
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ psutil==5.8.0
# via
# -c requirements/_base.txt
# distributed
pydantic==1.8.2
pydantic==1.9.0
# via
# -c requirements/../../../packages/dask-task-models-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/dask-task-models-library/requirements/../../../requirements/constraints.txt
Expand Down
2 changes: 1 addition & 1 deletion services/datcore-adapter/requirements/_base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ pyasn1==0.4.8
# via
# python-jose
# rsa
pydantic==1.8.2
pydantic==1.9.0
# via
# -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/service-library/requirements/../../../requirements/constraints.txt
Expand Down
2 changes: 1 addition & 1 deletion services/director-v2/requirements/_base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ psycopg2-binary==2.9.2
# via
# aiopg
# sqlalchemy
pydantic==1.8.2
pydantic==1.9.0
# via
# -c requirements/../../../packages/dask-task-models-library/requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/dask-task-models-library/requirements/../../../requirements/constraints.txt
Expand Down
2 changes: 1 addition & 1 deletion services/director-v2/requirements/_test.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#
# pip-compile --output-file=requirements/_test.txt --strip-extras requirements/_test.in
#
aio_pika==6.8.0
aio-pika==6.8.0
# via
# -c requirements/_base.txt
# -r requirements/_test.in
Expand Down
2 changes: 1 addition & 1 deletion services/dynamic-sidecar/requirements/_base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ psycopg2-binary==2.9.1
# sqlalchemy
pycparser==2.20
# via cffi
pydantic==1.8.2
pydantic==1.9.0
# via
# -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/postgres-database/requirements/../../../requirements/constraints.txt
Expand Down
2 changes: 1 addition & 1 deletion services/storage/requirements/_base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ psycopg2-binary==2.9.1
# via
# aiopg
# sqlalchemy
pydantic==1.8.2
pydantic==1.9.0
# via
# -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/postgres-database/requirements/../../../requirements/constraints.txt
Expand Down
2 changes: 1 addition & 1 deletion services/web/server/requirements/_base.txt
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ psycopg2-binary==2.9.1
# sqlalchemy
pycparser==2.20
# via cffi
pydantic==1.8.2
pydantic==1.9.0
# via
# -c requirements/../../../../packages/models-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../../packages/postgres-database/requirements/../../../requirements/constraints.txt
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
from typing import Any, Dict

from aiohttp import web
from models_library.rest_pagination import monkey_patch_pydantic_url_regex
from servicelib.aiohttp.application import create_safe_application

from ._constants import APP_SETTINGS_KEY
Expand Down Expand Up @@ -43,9 +42,6 @@
from .users import setup_users
from .version_control import setup_version_control

monkey_patch_pydantic_url_regex()


log = logging.getLogger(__name__)


Expand Down
2 changes: 1 addition & 1 deletion tests/environment-setup/requirements/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ pluggy==1.0.0
# via pytest
py==1.11.0
# via pytest
pydantic==1.8.2
pydantic==1.9.0
# via
# -c requirements/../../../packages/service-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/service-library/requirements/_base.in
Expand Down
2 changes: 1 addition & 1 deletion tests/swarm-deploy/requirements/_test.txt
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ psycopg2-binary==2.9.2
# sqlalchemy
py==1.11.0
# via pytest
pydantic==1.8.2
pydantic==1.9.0
# via
# -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt
# -c requirements/../../../packages/service-library/requirements/../../../requirements/constraints.txt
Expand Down