From 59e767e501201cc0ade36923155a4086f05b8232 Mon Sep 17 00:00:00 2001 From: checktheroads Date: Sun, 13 Dec 2020 01:48:20 -0700 Subject: [PATCH] clean up data models [skip ci] --- hyperglass/execution/drivers/_common.py | 6 +++--- hyperglass/execution/main.py | 4 ++-- hyperglass/models/api/cert_import.py | 4 ++-- hyperglass/{parsing/models => models/parsing}/__init__.py | 0 hyperglass/{parsing/models => models/parsing}/frr.py | 6 ++++-- .../models => models/parsing}/frr_bgp_community.json | 0 .../{parsing/models => models/parsing}/frr_bgp_route.json | 0 hyperglass/{parsing/models => models/parsing}/juniper.py | 6 ++++-- hyperglass/{parsing/models => models/parsing}/serialized.py | 4 +++- hyperglass/parsing/juniper.py | 2 +- 10 files changed, 19 insertions(+), 13 deletions(-) rename hyperglass/{parsing/models => models/parsing}/__init__.py (100%) rename hyperglass/{parsing/models => models/parsing}/frr.py (96%) rename hyperglass/{parsing/models => models/parsing}/frr_bgp_community.json (100%) rename hyperglass/{parsing/models => models/parsing}/frr_bgp_route.json (100%) rename hyperglass/{parsing/models => models/parsing}/juniper.py (98%) rename hyperglass/{parsing/models => models/parsing}/serialized.py (98%) diff --git a/hyperglass/execution/drivers/_common.py b/hyperglass/execution/drivers/_common.py index c37739a..14b425a 100644 --- a/hyperglass/execution/drivers/_common.py +++ b/hyperglass/execution/drivers/_common.py @@ -1,7 +1,7 @@ """Base Connection Class.""" # Standard Library -from typing import Iterable +from typing import Dict, Union, Sequence # Project from hyperglass.log import log @@ -27,8 +27,8 @@ class Connection: self.query = self._query.queries() async def parsed_response( # noqa: C901 ("too complex") - self, output: Iterable - ) -> str: + self, output: Sequence[str] + ) -> Union[str, Sequence[Dict]]: """Send output through common parsers.""" log.debug("Pre-parsed responses:\n{}", output) diff --git a/hyperglass/execution/main.py b/hyperglass/execution/main.py index 922f1d7..c1596d7 100644 --- a/hyperglass/execution/main.py +++ b/hyperglass/execution/main.py @@ -8,7 +8,7 @@ hyperglass-frr API calls, returns the output back to the front end. # Standard Library import signal -from typing import Any, Dict, Union, Callable +from typing import Any, Dict, Union, Callable, Sequence # Project from hyperglass.log import log @@ -36,7 +36,7 @@ def handle_timeout(**exc_args: Any) -> Callable: return handler -async def execute(query: Query) -> Union[str, Dict]: +async def execute(query: Query) -> Union[str, Sequence[Dict]]: """Initiate query validation and execution.""" output = params.messages.general diff --git a/hyperglass/models/api/cert_import.py b/hyperglass/models/api/cert_import.py index 739f08e..7558411 100644 --- a/hyperglass/models/api/cert_import.py +++ b/hyperglass/models/api/cert_import.py @@ -5,8 +5,8 @@ from typing import Union # Third Party from pydantic import BaseModel, StrictStr -# Project -from hyperglass.models.fields import StrictBytes +# Local +from ..fields import StrictBytes class EncodedRequest(BaseModel): diff --git a/hyperglass/parsing/models/__init__.py b/hyperglass/models/parsing/__init__.py similarity index 100% rename from hyperglass/parsing/models/__init__.py rename to hyperglass/models/parsing/__init__.py diff --git a/hyperglass/parsing/models/frr.py b/hyperglass/models/parsing/frr.py similarity index 96% rename from hyperglass/parsing/models/frr.py rename to hyperglass/models/parsing/frr.py index f74fb50..e9bdd21 100644 --- a/hyperglass/parsing/models/frr.py +++ b/hyperglass/models/parsing/frr.py @@ -9,8 +9,10 @@ from pydantic import StrictInt, StrictStr, StrictBool, constr, root_validator # Project from hyperglass.log import log -from hyperglass.models import HyperglassModel -from hyperglass.parsing.models.serialized import ParsedRoutes + +# Local +from ..main import HyperglassModel +from .serialized import ParsedRoutes FRRPeerType = constr(regex=r"(internal|external)") diff --git a/hyperglass/parsing/models/frr_bgp_community.json b/hyperglass/models/parsing/frr_bgp_community.json similarity index 100% rename from hyperglass/parsing/models/frr_bgp_community.json rename to hyperglass/models/parsing/frr_bgp_community.json diff --git a/hyperglass/parsing/models/frr_bgp_route.json b/hyperglass/models/parsing/frr_bgp_route.json similarity index 100% rename from hyperglass/parsing/models/frr_bgp_route.json rename to hyperglass/models/parsing/frr_bgp_route.json diff --git a/hyperglass/parsing/models/juniper.py b/hyperglass/models/parsing/juniper.py similarity index 98% rename from hyperglass/parsing/models/juniper.py rename to hyperglass/models/parsing/juniper.py index 849642e..e519fd6 100644 --- a/hyperglass/parsing/models/juniper.py +++ b/hyperglass/models/parsing/juniper.py @@ -8,8 +8,10 @@ from pydantic import StrictInt, StrictStr, StrictBool, validator, root_validator # Project from hyperglass.log import log -from hyperglass.models import HyperglassModel -from hyperglass.parsing.models.serialized import ParsedRoutes + +# Local +from ..main import HyperglassModel +from .serialized import ParsedRoutes RPKI_STATE_MAP = { "invalid": 0, diff --git a/hyperglass/parsing/models/serialized.py b/hyperglass/models/parsing/serialized.py similarity index 98% rename from hyperglass/parsing/models/serialized.py rename to hyperglass/models/parsing/serialized.py index c502d82..3ae62a4 100644 --- a/hyperglass/parsing/models/serialized.py +++ b/hyperglass/models/parsing/serialized.py @@ -8,10 +8,12 @@ from typing import List from pydantic import StrictInt, StrictStr, StrictBool, constr, validator # Project -from hyperglass.models import HyperglassModel from hyperglass.configuration import params from hyperglass.external.rpki import rpki_state +# Local +from ..main import HyperglassModel + WinningWeight = constr(regex=r"(low|high)") diff --git a/hyperglass/parsing/juniper.py b/hyperglass/parsing/juniper.py index 899c1de..bcb3c46 100644 --- a/hyperglass/parsing/juniper.py +++ b/hyperglass/parsing/juniper.py @@ -11,7 +11,7 @@ from pydantic import ValidationError from hyperglass.log import log from hyperglass.exceptions import ParsingError, ResponseEmpty from hyperglass.configuration import params -from hyperglass.parsing.models.juniper import JuniperRoute +from hyperglass.models.parsing.juniper import JuniperRoute def parse_juniper(output: Iterable) -> Dict: # noqa: C901