From 8881d7c09f52b91ede275d6e2562bbe03aa3ad5a Mon Sep 17 00:00:00 2001 From: Adam Lewis <23342526+Adam-D-Lewis@users.noreply.github.com> Date: Mon, 6 May 2024 15:57:03 -0500 Subject: [PATCH] merge develop --- pyproject.toml | 18 +++++++------ .../stages/kubernetes_ingress/__init__.py | 27 +++++-------------- src/nebari/schema.py | 5 +++- 3 files changed, 21 insertions(+), 29 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 173161178..2196d467f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -136,21 +136,23 @@ module = [ ignore_missing_imports = true [tool.ruff] +extend-exclude = [ + "src/_nebari/template", + "home", + "__pycache__" +] + +[tool.ruff.lint] select = [ - "E", - "F", - "PTH", + "E", # E: pycodestyle rules + "F", # F: pyflakes rules + "PTH", # PTH: flake8-use-pathlib rules ] ignore = [ "E501", # Line too long "F821", # Undefined name "PTH123", # open() should be replaced by Path.open() ] -extend-exclude = [ - "src/_nebari/template", - "home", - "__pycache__" -] [tool.coverage.run] branch = true diff --git a/src/_nebari/stages/kubernetes_ingress/__init__.py b/src/_nebari/stages/kubernetes_ingress/__init__.py index 79e18db26..efe4502fe 100644 --- a/src/_nebari/stages/kubernetes_ingress/__init__.py +++ b/src/_nebari/stages/kubernetes_ingress/__init__.py @@ -1,11 +1,10 @@ from __future__ import annotations -import enum import logging import socket import sys import time -from typing import Any, Dict, List, Optional, Type, Union +from typing import Any, Dict, List, Literal, Optional, Type, Union from pydantic import Field @@ -116,35 +115,23 @@ def _attempt_dns_lookup( sys.exit(1) -@schema.yaml_object(schema.yaml) -class CertificateEnum(str, enum.Enum): - letsencrypt = "lets-encrypt" - selfsigned = "self-signed" - existing = "existing" - disabled = "disabled" - - @classmethod - def to_yaml(cls, representer, node): - return representer.represent_str(node.value) - - class SelfSignedCertificate(schema.Base): - type: str = Field(..., const=CertificateEnum.selfsigned) + type: Literal["self-signed"] = Field("self-signed", validate_default=True) class LetsEncryptCertificate(schema.Base): - type: str = CertificateEnum.letsencrypt - acme_email: str = None + type: Literal["lets-encrypt"] = Field("lets-encrypt", validate_default=True) + acme_email: str acme_server: str = "https://acme-v02.api.letsencrypt.org/directory" class ExistingCertificate(schema.Base): - type: str = CertificateEnum.existing - secret_name: str = None + type: Literal["existing"] = Field("existing", validate_default=True) + secret_name: str class DisabledCertificate(schema.Base): - type: str = CertificateEnum.disabled + type: Literal["disabled"] = Field("disabled", validate_default=True) Certificate = Union[ diff --git a/src/nebari/schema.py b/src/nebari/schema.py index 70b9589e6..4101e7b4a 100644 --- a/src/nebari/schema.py +++ b/src/nebari/schema.py @@ -25,7 +25,10 @@ class Base(pydantic.BaseModel): model_config = ConfigDict( - extra="forbid", validate_assignment=True, populate_by_name=True + extra="forbid", + validate_assignment=True, + populate_by_name=True, + validate_default=True, )