diff --git a/.hatch/requirements-docs.txt b/.hatch/requirements-docs.txt index 95fcbdfd41..cebd1e3c16 100644 --- a/.hatch/requirements-docs.txt +++ b/.hatch/requirements-docs.txt @@ -91,7 +91,7 @@ typing-extensions==4.12.2 # via pydata-sphinx-theme urllib3==2.2.3 # via requests -wheel==0.45.0 +wheel==0.45.1 # via sphinx-togglebutton # The following packages are considered to be unsafe in a requirements file: diff --git a/.hatch/requirements-lint.txt b/.hatch/requirements-lint.txt index 295c694a65..e1ab89f54e 100644 --- a/.hatch/requirements-lint.txt +++ b/.hatch/requirements-lint.txt @@ -1,13 +1,13 @@ # # This file is autogenerated by hatch-pip-compile with Python 3.12 # -# - ansible-dev-tools==24.10.2 -# - ansible==10.6.0 +# - ansible-dev-tools==24.11.0 +# - ansible==11.0.0 # - black==24.10.0 # - mypy==1.13.0 # - pandas-stubs==2.2.3.241009 -# - pydantic==2.9.2 -# - ruff==0.7.4 +# - pydantic==2.10.1 +# - ruff==0.8.0 # - types-appdirs==1.4.3.5 # - types-chevron==0.14.2.20240310 # - types-pytz==2024.2.0.20241003 @@ -17,7 +17,7 @@ annotated-types==0.7.0 # via pydantic -ansible==10.6.0 +ansible==11.0.0 # via hatch.envs.lint ansible-builder==3.1.0 # via @@ -29,7 +29,7 @@ ansible-compat==24.10.0 # ansible-lint # molecule # pytest-ansible -ansible-core==2.17.6 +ansible-core==2.18.0 # via # ansible # ansible-compat @@ -40,7 +40,7 @@ ansible-creator==24.11.0 # via ansible-dev-tools ansible-dev-environment==24.9.0 # via ansible-dev-tools -ansible-dev-tools==24.10.2 +ansible-dev-tools==24.11.0 # via hatch.envs.lint ansible-lint==24.10.0 # via @@ -178,9 +178,9 @@ ptyprocess==0.7.0 # via pexpect pycparser==2.22 # via cffi -pydantic==2.9.2 +pydantic==2.10.1 # via hatch.envs.lint -pydantic-core==2.23.4 +pydantic-core==2.27.1 # via pydantic pygments==2.18.0 # via rich @@ -233,7 +233,7 @@ ruamel-yaml==0.18.6 # via ansible-lint ruamel-yaml-clib==0.2.12 # via ruamel-yaml -ruff==0.7.4 +ruff==0.8.0 # via hatch.envs.lint subprocess-tee==0.4.2 # via diff --git a/.hatch/requirements-test.txt b/.hatch/requirements-test.txt index 643331837b..8c95d7dce0 100644 --- a/.hatch/requirements-test.txt +++ b/.hatch/requirements-test.txt @@ -1,7 +1,7 @@ # # This file is autogenerated by hatch-pip-compile with Python 3.12 # -# [constraints] .hatch/requirements.txt (SHA256: ca6dfe8295dd8d2e6e4ade0fce58d158854ce5df89be8d092b36c34fe2679f3f) +# [constraints] .hatch/requirements.txt (SHA256: 3586aa93da255077aac182009c06aa28b96ec15387beec4148e3bebd2b9f8852) # # - appdirs==1.4.4 # - azure-core==1.32.0 @@ -24,19 +24,19 @@ # - cryptography==43.0.3 # - fqdn==1.5.1 # - psycopg[binary]==3.1.19 -# - pulumi-azure-native==2.72.0 +# - pulumi-azure-native==2.73.1 # - pulumi-azuread==6.0.1 # - pulumi-random==4.16.7 -# - pulumi==3.139.0 -# - pydantic==2.9.2 +# - pulumi==3.141.0 +# - pydantic==2.10.1 # - pyjwt[crypto]==2.10.0 # - pytz==2024.2 # - pyyaml==6.0.2 # - rich==13.9.4 # - simple-acme-dns==3.2.0 -# - typer==0.13.0 +# - typer==0.13.1 # - websocket-client==1.8.0 -# - coverage==7.6.7 +# - coverage==7.6.8 # - freezegun==1.5.1 # - pytest-mock==3.14.0 # - pytest==8.3.3 @@ -180,7 +180,7 @@ click==8.1.7 # via # -c .hatch/requirements.txt # typer -coverage==7.6.7 +coverage==7.6.8 # via hatch.envs.test cryptography==43.0.3 # via @@ -195,7 +195,7 @@ cryptography==43.0.3 # msal # pyjwt # pyopenssl -debugpy==1.8.8 +debugpy==1.8.9 # via # -c .hatch/requirements.txt # pulumi @@ -251,7 +251,7 @@ mdurl==0.1.2 # via # -c .hatch/requirements.txt # markdown-it-py -msal==1.31.0 +msal==1.31.1 # via # -c .hatch/requirements.txt # azure-identity @@ -295,14 +295,14 @@ psycopg-binary==3.1.19 # via # -c .hatch/requirements.txt # psycopg -pulumi==3.139.0 +pulumi==3.141.0 # via # -c .hatch/requirements.txt # hatch.envs.test # pulumi-azure-native # pulumi-azuread # pulumi-random -pulumi-azure-native==2.72.0 +pulumi-azure-native==2.73.1 # via # -c .hatch/requirements.txt # hatch.envs.test @@ -318,11 +318,11 @@ pycparser==2.22 # via # -c .hatch/requirements.txt # cffi -pydantic==2.9.2 +pydantic==2.10.1 # via # -c .hatch/requirements.txt # hatch.envs.test -pydantic-core==2.23.4 +pydantic-core==2.27.1 # via # -c .hatch/requirements.txt # pydantic @@ -403,7 +403,7 @@ six==1.16.0 # azure-core # pulumi # python-dateutil -typer==0.13.0 +typer==0.13.1 # via # -c .hatch/requirements.txt # hatch.envs.test diff --git a/.hatch/requirements.txt b/.hatch/requirements.txt index b0f7aff926..82ad061fc0 100644 --- a/.hatch/requirements.txt +++ b/.hatch/requirements.txt @@ -22,17 +22,17 @@ # - cryptography==43.0.3 # - fqdn==1.5.1 # - psycopg[binary]==3.1.19 -# - pulumi-azure-native==2.72.0 +# - pulumi-azure-native==2.73.1 # - pulumi-azuread==6.0.1 # - pulumi-random==4.16.7 -# - pulumi==3.139.0 -# - pydantic==2.9.2 +# - pulumi==3.141.0 +# - pydantic==2.10.1 # - pyjwt[crypto]==2.10.0 # - pytz==2024.2 # - pyyaml==6.0.2 # - rich==13.9.4 # - simple-acme-dns==3.2.0 -# - typer==0.13.0 +# - typer==0.13.1 # - websocket-client==1.8.0 # @@ -134,7 +134,7 @@ cryptography==43.0.3 # msal # pyjwt # pyopenssl -debugpy==1.8.8 +debugpy==1.8.9 # via pulumi dill==0.3.9 # via pulumi @@ -167,7 +167,7 @@ markdown-it-py==3.0.0 # via rich mdurl==0.1.2 # via markdown-it-py -msal==1.31.0 +msal==1.31.1 # via # azure-identity # msal-extensions @@ -192,13 +192,13 @@ psycopg==3.1.19 # via hatch.envs.default psycopg-binary==3.1.19 # via psycopg -pulumi==3.139.0 +pulumi==3.141.0 # via # hatch.envs.default # pulumi-azure-native # pulumi-azuread # pulumi-random -pulumi-azure-native==2.72.0 +pulumi-azure-native==2.73.1 # via hatch.envs.default pulumi-azuread==6.0.1 # via hatch.envs.default @@ -206,9 +206,9 @@ pulumi-random==4.16.7 # via hatch.envs.default pycparser==2.22 # via cffi -pydantic==2.9.2 +pydantic==2.10.1 # via hatch.envs.default -pydantic-core==2.23.4 +pydantic-core==2.27.1 # via pydantic pygments==2.18.0 # via rich @@ -257,7 +257,7 @@ six==1.16.0 # via # azure-core # pulumi -typer==0.13.0 +typer==0.13.1 # via hatch.envs.default typing-extensions==4.12.2 # via diff --git a/data_safe_haven/console/__init__.py b/data_safe_haven/console/__init__.py index 133a48fc12..f30bda2882 100644 --- a/data_safe_haven/console/__init__.py +++ b/data_safe_haven/console/__init__.py @@ -1,5 +1,5 @@ from .format import tabulate -from .pretty import pretty_print as print # noqa: A001 +from .pretty import pretty_print as print # noqa: A004 from .prompts import confirm __all__ = [ diff --git a/data_safe_haven/external/__init__.py b/data_safe_haven/external/__init__.py index 5e46325958..d26ef75058 100644 --- a/data_safe_haven/external/__init__.py +++ b/data_safe_haven/external/__init__.py @@ -6,10 +6,10 @@ from .interface.pulumi_account import PulumiAccount __all__ = [ - "AzureSdk", "AzureContainerInstance", "AzureIPv4Range", "AzurePostgreSQLDatabase", + "AzureSdk", "GraphApi", "PulumiAccount", ] diff --git a/data_safe_haven/infrastructure/common/__init__.py b/data_safe_haven/infrastructure/common/__init__.py index 6106cac731..85184d6574 100644 --- a/data_safe_haven/infrastructure/common/__init__.py +++ b/data_safe_haven/infrastructure/common/__init__.py @@ -16,6 +16,8 @@ __all__ = [ "DockerHubCredentials", + "SREDnsIpRanges", + "SREIpRanges", "get_address_prefixes_from_subnet", "get_available_ips_from_subnet", "get_id_from_rg", @@ -27,6 +29,4 @@ "get_name_from_subnet", "get_name_from_vnet", "get_subscription_id_from_rg", - "SREDnsIpRanges", - "SREIpRanges", ] diff --git a/data_safe_haven/infrastructure/components/__init__.py b/data_safe_haven/infrastructure/components/__init__.py index 2b3dd67e7a..f4b93b9c3d 100644 --- a/data_safe_haven/infrastructure/components/__init__.py +++ b/data_safe_haven/infrastructure/components/__init__.py @@ -41,11 +41,11 @@ "MicrosoftSQLDatabaseProps", "NFSV3BlobContainerComponent", "NFSV3BlobContainerProps", - "WrappedNFSV3StorageAccount", "PostgresqlDatabaseComponent", "PostgresqlDatabaseProps", "SSLCertificate", "SSLCertificateProps", "VMComponent", "WrappedLogAnalyticsWorkspace", + "WrappedNFSV3StorageAccount", ] diff --git a/data_safe_haven/infrastructure/components/wrapped/__init__.py b/data_safe_haven/infrastructure/components/wrapped/__init__.py index ef6e7374d2..b449f46859 100644 --- a/data_safe_haven/infrastructure/components/wrapped/__init__.py +++ b/data_safe_haven/infrastructure/components/wrapped/__init__.py @@ -2,6 +2,6 @@ from .nfsv3_storage_account import WrappedNFSV3StorageAccount __all__ = [ - "WrappedNFSV3StorageAccount", "WrappedLogAnalyticsWorkspace", + "WrappedNFSV3StorageAccount", ] diff --git a/data_safe_haven/types/__init__.py b/data_safe_haven/types/__init__.py index 728df06c19..bfe1f6898a 100644 --- a/data_safe_haven/types/__init__.py +++ b/data_safe_haven/types/__init__.py @@ -34,14 +34,14 @@ "AzureDnsZoneNames", "AzureLocation", "AzurePremiumFileShareSize", - "AzureServiceTag", "AzureSdkCredentialScope", + "AzureServiceTag", "AzureSubscriptionName", "AzureVmSku", "DatabaseSystem", "EmailAddress", - "EntraApplicationId", "EntraAppPermissionType", + "EntraApplicationId", "EntraGroupName", "EntraSignInAudienceType", "FirewallPriorities", diff --git a/pyproject.toml b/pyproject.toml index 6a1435e4eb..49099b230d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,17 +45,17 @@ dependencies = [ "cryptography==43.0.3", "fqdn==1.5.1", "psycopg[binary]==3.1.19", # needed for installation on older MacOS versions - "pulumi-azure-native==2.72.0", + "pulumi-azure-native==2.73.1", "pulumi-azuread==6.0.1", "pulumi-random==4.16.7", - "pulumi==3.139.0", - "pydantic==2.9.2", + "pulumi==3.141.0", + "pydantic==2.10.1", "pyjwt[crypto]==2.10.0", "pytz==2024.2", "pyyaml==6.0.2", "rich==13.9.4", "simple-acme-dns==3.2.0", - "typer==0.13.0", + "typer==0.13.1", "websocket-client==1.8.0", ] @@ -73,13 +73,13 @@ docs = [ "sphinx==8.1.3", ] lint = [ - "ansible-dev-tools==24.10.2", - "ansible==10.6.0", + "ansible-dev-tools==24.11.0", + "ansible==11.0.0", "black==24.10.0", "mypy==1.13.0", "pandas-stubs==2.2.3.241009", - "pydantic==2.9.2", - "ruff==0.7.4", + "pydantic==2.10.1", + "ruff==0.8.0", "types-appdirs==1.4.3.5", "types-chevron==0.14.2.20240310", "types-pytz==2024.2.0.20241003", @@ -87,7 +87,7 @@ lint = [ "types-requests==2.32.0.20241016", ] test = [ - "coverage==7.6.7", + "coverage==7.6.8", "freezegun==1.5.1", "pytest-mock==3.14.0", "pytest==8.3.3",