From de68cad220d3ec544dc3d63c59557468b433f100 Mon Sep 17 00:00:00 2001 From: Daniel Saxton Date: Sun, 31 Jan 2021 17:13:27 -0600 Subject: [PATCH] Annotate types as optional --- src/prefect_server/api/agents.py | 10 +- src/prefect_server/api/artifacts.py | 4 +- src/prefect_server/api/cloud_hooks.py | 10 +- src/prefect_server/api/flow_groups.py | 6 +- src/prefect_server/api/flows.py | 34 +++---- src/prefect_server/api/messages.py | 4 +- src/prefect_server/api/projects.py | 6 +- src/prefect_server/api/runs.py | 30 +++--- src/prefect_server/api/states.py | 4 +- src/prefect_server/api/tenants.py | 4 +- src/prefect_server/database/hasura.py | 36 +++---- src/prefect_server/database/models.py | 104 ++++++++++----------- src/prefect_server/database/orm.py | 22 ++--- src/prefect_server/graphql/runs.py | 4 +- src/prefect_server/utilities/events.py | 6 +- src/prefect_server/utilities/exceptions.py | 2 +- src/prefect_server/utilities/graphql.py | 12 ++- src/prefect_server/utilities/logging.py | 4 +- 18 files changed, 161 insertions(+), 141 deletions(-) diff --git a/src/prefect_server/api/agents.py b/src/prefect_server/api/agents.py index 1bf081d1..e1c731d6 100644 --- a/src/prefect_server/api/agents.py +++ b/src/prefect_server/api/agents.py @@ -1,4 +1,4 @@ -from typing import List +from typing import List, Optional import pendulum @@ -11,9 +11,9 @@ async def register_agent( tenant_id: str, labels: List[str], - agent_config_id: str = None, - name: str = None, - type: str = None, + agent_config_id: Optional[str] = None, + name: Optional[str] = None, + type: Optional[str] = None, ) -> str: """ Register a new agent @@ -142,7 +142,7 @@ async def delete_agent_config(agent_config_id: str) -> bool: @register_api("agents.update_agent_config") async def update_agent_config( - agent_config_id: str, name: str = None, settings: dict = None + agent_config_id: str, name: Optional[str] = None, settings: Optional[dict] = None ) -> str: """ Update an agent config diff --git a/src/prefect_server/api/artifacts.py b/src/prefect_server/api/artifacts.py index 18459675..44a23801 100644 --- a/src/prefect_server/api/artifacts.py +++ b/src/prefect_server/api/artifacts.py @@ -1,3 +1,5 @@ +from typing import Optional + from prefect import models from prefect.utilities.plugins import register_api @@ -7,7 +9,7 @@ async def create_task_run_artifact( task_run_id: str, kind: str, data: dict, - tenant_id: str = None, + tenant_id: Optional[str] = None, ) -> str: """ Create a task run artifact. diff --git a/src/prefect_server/api/cloud_hooks.py b/src/prefect_server/api/cloud_hooks.py index f7b63889..002eafc7 100644 --- a/src/prefect_server/api/cloud_hooks.py +++ b/src/prefect_server/api/cloud_hooks.py @@ -1,7 +1,7 @@ import asyncio import json import uuid -from typing import List +from typing import List, Optional import httpx from box import Box @@ -31,8 +31,8 @@ async def create_cloud_hook( tenant_id: str, type: str, states: List[str], - config: dict = None, - version_group_id: str = None, + config: Optional[dict] = None, + version_group_id: Optional[str] = None, name=None, ) -> str: """ @@ -372,8 +372,8 @@ async def _call_prefect_message(event: events.FlowRunStateChange): @register_api("cloud_hooks.test_cloud_hook") async def test_cloud_hook( cloud_hook_id: str, - flow_run_id: str = None, - state: prefect.engine.state.State = None, + flow_run_id: Optional[str] = None, + state: Optional[prefect.engine.state.State] = None, ): """ Sends a test payload to a hook diff --git a/src/prefect_server/api/flow_groups.py b/src/prefect_server/api/flow_groups.py index d5f7356e..33dfde0a 100644 --- a/src/prefect_server/api/flow_groups.py +++ b/src/prefect_server/api/flow_groups.py @@ -1,5 +1,5 @@ import pendulum -from typing import List, Dict, Any +from typing import List, Dict, Any, Optional from prefect import api, models from prefect.serialization.schedule import ClockSchema @@ -69,7 +69,7 @@ async def set_flow_group_default_parameters( @register_api("flow_groups.set_flow_group_schedule") async def set_flow_group_schedule( - flow_group_id: str, clocks: List[dict], timezone: str = None + flow_group_id: str, clocks: List[dict], timezone: Optional[str] = None ) -> bool: """ Sets a schedule for a flow group @@ -175,7 +175,7 @@ async def set_flow_group_labels(flow_group_id: str, labels: List[str] = None) -> @register_api("flow_groups.set_flow_group_description") async def set_flow_group_description( - flow_group_id: str, description: str = None + flow_group_id: str, description: Optional[str] = None ) -> bool: """ Sets description for a flow group. diff --git a/src/prefect_server/api/flows.py b/src/prefect_server/api/flows.py index 2f20f316..93e116af 100644 --- a/src/prefect_server/api/flows.py +++ b/src/prefect_server/api/flows.py @@ -2,7 +2,7 @@ import hashlib import json import uuid -from typing import Any, Dict, List +from typing import Any, Dict, List, Optional import pendulum from packaging import version as module_version @@ -40,15 +40,15 @@ class ScheduleSchema(Model): class TaskSchema(Model): id: str = Field(default_factory=lambda: str(uuid.uuid4())) - name: str = None + name: Optional[str] = None slug: str - type: str = None + type: Optional[str] = None auto_generated: bool = False tags: List[str] = Field(default_factory=list) max_retries: int = 0 - retry_delay: datetime.timedelta = None - cache_key: str = None - trigger: str = None + retry_delay: Optional[datetime.timedelta] = None + cache_key: Optional[str] = None + trigger: Optional[str] = None mapped: bool = False is_reference_task: bool = False is_root_task: bool = False @@ -66,7 +66,7 @@ class EdgeSchema(Model): upstream_task: str downstream_task: str mapped: bool = False - key: str = None + key: Optional[str] = None @validator("upstream_task", pre=True) def _validate_upstream_task(cls, v): @@ -84,22 +84,22 @@ def _validate_downstream_task(cls, v): class ParameterSchema(Model): - name: str = None + name: Optional[str] = None slug: str required: bool = False default: Any = None class FlowSchema(Model): - name: str = None + name: Optional[str] = None tasks: List[TaskSchema] = Field(default_factory=list) edges: List[EdgeSchema] = Field(default_factory=list) parameters: List[ParameterSchema] = Field(default_factory=list) - environment: Dict[str, Any] = None - run_config: Dict[str, Any] = None - __version__: str = None - storage: Dict[str, Any] = None - schedule: ScheduleSchema = None + environment: Optional[Dict[str, Any]] = None + run_config: Optional[Dict[str, Any]] = None + __version__: Optional[str] = None + storage: Optional[Dict[str, Any]] = None + schedule: Optional[ScheduleSchema] = None reference_tasks: List[str] = Field(default_factory=list) @validator("reference_tasks", pre=True) @@ -117,10 +117,10 @@ def _validate_reference_tasks(cls, v): async def create_flow( serialized_flow: dict, project_id: str, - version_group_id: str = None, + version_group_id: Optional[str] = None, set_schedule_active: bool = True, - description: str = None, - idempotency_key: str = None, + description: Optional[str] = None, + idempotency_key: Optional[str] = None, ) -> str: """ Add a flow to the database. diff --git a/src/prefect_server/api/messages.py b/src/prefect_server/api/messages.py index d4031783..94dbdcb7 100644 --- a/src/prefect_server/api/messages.py +++ b/src/prefect_server/api/messages.py @@ -1,3 +1,5 @@ +from typing import Optional + from prefect import models from prefect.utilities.plugins import register_api @@ -6,7 +8,7 @@ @register_api("messages.create_message") async def create_message( - type: str, content: dict, tenant_id: str, text: str = None + type: str, content: dict, tenant_id: str, text: Optional[str] = None ) -> str: if type not in PREFECT_MESSAGE_TYPES: raise ValueError("Invalid message type.") diff --git a/src/prefect_server/api/projects.py b/src/prefect_server/api/projects.py index 6b44f308..f0442619 100644 --- a/src/prefect_server/api/projects.py +++ b/src/prefect_server/api/projects.py @@ -1,9 +1,13 @@ +from typing import Optional + from prefect import models from prefect.utilities.plugins import register_api @register_api("projects.create_project") -async def create_project(tenant_id: str, name: str, description: str = None) -> str: +async def create_project( + tenant_id: str, name: str, description: Optional[str] = None +) -> str: """ Creates a project, returning its id diff --git a/src/prefect_server/api/runs.py b/src/prefect_server/api/runs.py index 066c1d72..e262111a 100644 --- a/src/prefect_server/api/runs.py +++ b/src/prefect_server/api/runs.py @@ -1,5 +1,5 @@ import datetime -from typing import Any, Iterable, List +from typing import Any, Iterable, List, Optional import pendulum @@ -20,15 +20,15 @@ @register_api("runs.create_flow_run") async def create_flow_run( - flow_id: str = None, - parameters: dict = None, - context: dict = None, + flow_id: Optional[str] = None, + parameters: Optional[dict] = None, + context: Optional[dict] = None, scheduled_start_time: datetime.datetime = None, - flow_run_name: str = None, - version_group_id: str = None, - idempotency_key: str = None, + flow_run_name: Optional[str] = None, + version_group_id: Optional[str] = None, + idempotency_key: Optional[str] = None, labels: List[str] = None, - run_config: dict = None, + run_config: Optional[dict] = None, ) -> Any: """ Creates a new flow run for an existing flow. @@ -116,14 +116,14 @@ async def set_task_run_name(task_run_id: str, name: str) -> bool: @register_api("runs._create_flow_run") async def _create_flow_run( - flow_id: str = None, - parameters: dict = None, - context: dict = None, + flow_id: Optional[str] = None, + parameters: Optional[dict] = None, + context: Optional[dict] = None, scheduled_start_time: datetime.datetime = None, - flow_run_name: str = None, - version_group_id: str = None, + flow_run_name: Optional[str] = None, + version_group_id: Optional[str] = None, labels: List[str] = None, - run_config: dict = None, + run_config: Optional[dict] = None, ) -> Any: """ Creates a new flow run for an existing flow. @@ -451,7 +451,7 @@ async def get_runs_in_queue( tenant_id: str, before: datetime = None, labels: Iterable[str] = None, - agent_id: str = None, + agent_id: Optional[str] = None, ) -> List[str]: if tenant_id is None: diff --git a/src/prefect_server/api/states.py b/src/prefect_server/api/states.py index 310808fb..5510bdca 100644 --- a/src/prefect_server/api/states.py +++ b/src/prefect_server/api/states.py @@ -4,6 +4,8 @@ import asyncio import uuid +from typing import Optional + import pendulum import prefect @@ -20,7 +22,7 @@ @register_api("states.set_flow_run_state") async def set_flow_run_state( - flow_run_id: str, state: State, version: int = None, agent_id: str = None + flow_run_id: str, state: State, version: int = None, agent_id: Optional[str] = None ) -> models.FlowRunState: """ Updates a flow run state. diff --git a/src/prefect_server/api/tenants.py b/src/prefect_server/api/tenants.py index 1f49da50..dd608a99 100644 --- a/src/prefect_server/api/tenants.py +++ b/src/prefect_server/api/tenants.py @@ -1,5 +1,7 @@ import slugify +from typing import Optional + from prefect import models from prefect.utilities.plugins import register_api @@ -10,7 +12,7 @@ def verify_slug(slug: str) -> None: @register_api("tenants.create_tenant") -async def create_tenant(name: str, slug: str = None) -> str: +async def create_tenant(name: str, slug: Optional[str] = None) -> str: """ Create a new tenant. diff --git a/src/prefect_server/database/hasura.py b/src/prefect_server/database/hasura.py index 62ac9c88..9e3068e9 100644 --- a/src/prefect_server/database/hasura.py +++ b/src/prefect_server/database/hasura.py @@ -1,5 +1,5 @@ import asyncio -from typing import Any, Dict, Iterable, List, Union +from typing import Any, Dict, Iterable, List, Optional, Union from box import Box @@ -46,14 +46,14 @@ def get_value(self) -> dict: class HasuraClient(GraphQLClient): - def __init__(self, url: str = None, headers=None) -> None: + def __init__(self, url: Optional[str] = None, headers=None) -> None: super().__init__(url=url or config.hasura.graphql_url, headers=headers) async def execute( self, query: Union[str, Dict[str, Any]], - variables: Dict[str, Any] = None, - headers: dict = None, + variables: Optional[Dict[str, Any]] = None, + headers: Optional[dict] = None, raise_on_error: bool = True, as_box: bool = True, ) -> dict: @@ -119,7 +119,7 @@ async def execute( async def execute_mutations_in_transaction( self, mutations: List[dict], - headers: dict = None, + headers: Optional[dict] = None, raise_on_error: bool = True, as_box: bool = True, ) -> Box: @@ -171,11 +171,11 @@ async def insert( self, graphql_type: str, objects: List[dict], - on_conflict: dict = None, - alias: str = None, + on_conflict: Optional[dict] = None, + alias: Optional[str] = None, selection_set: GQLObjectTypes = "affected_rows", run_mutation: bool = True, - insert_mutation_name: str = None, + insert_mutation_name: Optional[str] = None, ) -> Box: """ Runs an `insert` mutation against the provided Hasura type, evaluating the provided @@ -243,11 +243,11 @@ async def delete( self, graphql_type: str, where: GQLObjectTypes = None, - id: str = None, - alias: str = None, + id: Optional[str] = None, + alias: Optional[str] = None, selection_set: GQLObjectTypes = "affected_rows", run_mutation: bool = True, - delete_mutation_name: str = None, + delete_mutation_name: Optional[str] = None, ) -> Box: """ Runs an `delete` mutation against the provided Hasura type and `where` clause, @@ -305,17 +305,17 @@ async def update( self, graphql_type: str, where: GQLObjectTypes = None, - id: str = None, + id: Optional[str] = None, set: GQLObjectTypes = None, increment: GQLObjectTypes = None, - append: dict = None, - prepend: dict = None, - delete_key: dict = None, - delete_elem: dict = None, + append: Optional[dict] = None, + prepend: Optional[dict] = None, + delete_key: Optional[dict] = None, + delete_elem: Optional[dict] = None, selection_set: GQLObjectTypes = "affected_rows", - alias: str = None, + alias: Optional[str] = None, run_mutation: bool = True, - update_mutation_name: str = None, + update_mutation_name: Optional[str] = None, ) -> Box: """ Runs an `update` mutation against the provided Hasura type and `where` clause, applying diff --git a/src/prefect_server/database/models.py b/src/prefect_server/database/models.py index dfe8bcf2..cec00a3f 100644 --- a/src/prefect_server/database/models.py +++ b/src/prefect_server/database/models.py @@ -1,5 +1,5 @@ import datetime -from typing import Any, Dict, List +from typing import Any, Dict, List, Optional import pendulum import pydantic @@ -18,8 +18,8 @@ class Tenant(HasuraModel): id: UUIDString = None created: datetime.datetime = None updated: datetime.datetime = None - name: str = None - slug: str = None + name: Optional[str] = None + slug: Optional[str] = None info: Dict[str, Any] = None settings: Dict[str, Any] = None @@ -34,8 +34,8 @@ class Project(HasuraModel): created: datetime.datetime = None updated: datetime.datetime = None tenant_id: UUIDString = None - name: str = None - description: str = None + name: Optional[str] = None + description: Optional[str] = None # relationships tenant: Tenant = None @@ -55,10 +55,10 @@ class Flow(HasuraModel): schedule: Dict[str, Any] = None is_schedule_active: bool = None version: int = None - version_group_id: str = None - core_version: str = None - name: str = None - description: str = None + version_group_id: Optional[str] = None + core_version: Optional[str] = None + name: Optional[str] = None + description: Optional[str] = None serialized_flow: Dict[str, Any] = None environment: Dict[str, Any] = None run_config: Dict[str, Any] = None @@ -85,17 +85,17 @@ class Task(HasuraModel): updated: datetime.datetime = None tenant_id: UUIDString = None flow_id: UUIDString = None - name: str = None - slug: str = None - description: str = None - type: str = None + name: Optional[str] = None + slug: Optional[str] = None + description: Optional[str] = None + type: Optional[str] = None max_retries: int = None retry_delay: datetime.timedelta = None - trigger: str = None + trigger: Optional[str] = None tags: List[str] = None mapped: bool = None auto_generated: bool = None - cache_key: str = None + cache_key: Optional[str] = None is_root_task: bool = None is_terminal_task: bool = None is_reference_task: bool = None @@ -112,7 +112,7 @@ class Edge(HasuraModel): flow_id: UUIDString = None upstream_task_id: UUIDString = None downstream_task_id: UUIDString = None - key: str = None + key: Optional[str] = None mapped: bool = None @@ -135,15 +135,15 @@ class FlowRun(HasuraModel): start_time: datetime.datetime = None end_time: datetime.datetime = None auto_scheduled: bool = None - name: str = None + name: Optional[str] = None times_resurrected: int = None - idempotency_key: str = None + idempotency_key: Optional[str] = None agent_id: UUIDString = None # state fields - state: str = None + state: Optional[str] = None state_timestamp: datetime.datetime = None - state_message: str = None + state_message: Optional[str] = None state_result: Any = None state_start_time: datetime.datetime = None serialized_state: Dict[str, Any] = None @@ -171,13 +171,13 @@ class TaskRun(HasuraModel): heartbeat: datetime.datetime = None start_time: datetime.datetime = None end_time: datetime.datetime = None - cache_key: str = None - name: str = None + cache_key: Optional[str] = None + name: Optional[str] = None # state fields - state: str = None + state: Optional[str] = None state_timestamp: datetime.datetime = None - state_message: str = None + state_message: Optional[str] = None state_result: Any = None state_start_time: datetime.datetime = None serialized_state: Dict[str, Any] = None @@ -199,10 +199,10 @@ class FlowRunState(HasuraModel): tenant_id: UUIDString = None flow_run_id: UUIDString = None timestamp: datetime.datetime = None - message: str = None - result: str = None + message: Optional[str] = None + result: Optional[str] = None start_time: datetime.datetime = None - state: str = None + state: Optional[str] = None version: int = None serialized_state: Dict[str, Any] = None @@ -238,10 +238,10 @@ class TaskRunState(HasuraModel): tenant_id: UUIDString = None task_run_id: UUIDString = None timestamp: datetime.datetime = None - message: str = None - result: str = None + message: Optional[str] = None + result: Optional[str] = None start_time: datetime.datetime = None - state: str = None + state: Optional[str] = None version: int = None serialized_state: Dict[str, Any] = None @@ -278,9 +278,9 @@ class Log(HasuraModel): flow_run_id: UUIDString = None task_run_id: UUIDString = None timestamp: datetime.datetime = None - name: str = None - level: str = None - message: str = None + name: Optional[str] = None + level: Optional[str] = None + message: Optional[str] = None info: Dict[str, Any] = None @@ -292,11 +292,11 @@ class CloudHook(HasuraModel): created: datetime.datetime = None updated: datetime.datetime = None tenant_id: UUIDString = None - version_group_id: str = None + version_group_id: Optional[str] = None states: List[str] = None - type: str = None - name: str = None - config: dict = None + type: Optional[str] = None + name: Optional[str] = None + config: Optional[dict] = None active: bool = None @@ -307,12 +307,12 @@ class FlowGroup(HasuraModel): id: UUIDString = None created: datetime.datetime = None updated: datetime.datetime = None - description: str = None + description: Optional[str] = None tenant_id: UUIDString = None - name: str = None - settings: dict = None - default_parameters: dict = None - schedule: dict = None + name: Optional[str] = None + settings: Optional[dict] = None + default_parameters: Optional[dict] = None + schedule: Optional[dict] = None labels: List[str] = None run_config: Dict[str, Any] = None @@ -330,9 +330,9 @@ class Message(HasuraModel): tenant_id: UUIDString = None user_id: UUIDString = None read: bool = None - type: str = None - text: str = None - content: dict = None + type: Optional[str] = None + text: Optional[str] = None + content: Optional[dict] = None @plugins.register_model("AgentConfig") @@ -343,8 +343,8 @@ class AgentConfig(HasuraModel): created: datetime.datetime = None updated: datetime.datetime = None tenant_id: UUIDString = None - name: str = None - settings: dict = None + name: Optional[str] = None + settings: Optional[dict] = None @plugins.register_model("Agent") @@ -355,9 +355,9 @@ class Agent(HasuraModel): created: datetime.datetime = None tenant_id: UUIDString = None agent_config_id: UUIDString = None - name: str = None - type: str = None - core_version: str = None + name: Optional[str] = None + type: Optional[str] = None + core_version: Optional[str] = None labels: List[str] = None last_queried: datetime.datetime = None @@ -370,8 +370,8 @@ class TaskRunArtifact(HasuraModel): created: datetime.datetime = None tenant_id: UUIDString = None task_run_id: UUIDString = None - kind: str = None - data: dict = None + kind: Optional[str] = None + data: Optional[dict] = None # process forward references for all Pydantic models (meaning string class names) diff --git a/src/prefect_server/database/orm.py b/src/prefect_server/database/orm.py index 89e43b31..152fe09c 100644 --- a/src/prefect_server/database/orm.py +++ b/src/prefect_server/database/orm.py @@ -1,7 +1,7 @@ import datetime import json import uuid -from typing import List, Union, cast, Any +from typing import List, Optional, Union, cast, Any import pendulum import psycopg2 @@ -186,7 +186,7 @@ async def insert( self, on_conflict: GQLObjectTypes = None, selection_set: GQLObjectTypes = None, - alias: str = None, + alias: Optional[str] = None, run_mutation: bool = True, ) -> dict: """ @@ -233,7 +233,7 @@ async def insert( async def delete( self, selection_set: GQLObjectTypes = None, - alias: str = None, + alias: Optional[str] = None, run_mutation: bool = True, ) -> dict: """ @@ -277,7 +277,7 @@ async def insert_many( objects: List[Union[dict, "HasuraModel"]], on_conflict: GQLObjectTypes = None, selection_set: GQLObjectTypes = None, - alias: str = None, + alias: Optional[str] = None, run_mutation: bool = True, ) -> dict: """ @@ -363,7 +363,7 @@ class ModelQuery: - where (dict): a Hasura where claus """ - def __init__(self, model: HasuraModel, where: dict = None): + def __init__(self, model: HasuraModel, where: Optional[dict] = None): self.model = model self.where = where @@ -371,12 +371,12 @@ async def update( self, set: GQLObjectTypes = None, increment: GQLObjectTypes = None, - append: dict = None, - prepend: dict = None, - delete_key: dict = None, - delete_elem: dict = None, + append: Optional[dict] = None, + prepend: Optional[dict] = None, + delete_key: Optional[dict] = None, + delete_elem: Optional[dict] = None, selection_set: GQLObjectTypes = None, - alias: str = None, + alias: Optional[str] = None, run_mutation: bool = True, ) -> dict: """ @@ -422,7 +422,7 @@ async def update( async def delete( self, selection_set: GQLObjectTypes = None, - alias: str = None, + alias: Optional[str] = None, run_mutation: bool = True, ) -> dict: """ diff --git a/src/prefect_server/graphql/runs.py b/src/prefect_server/graphql/runs.py index 36eb87aa..7b4f41e5 100644 --- a/src/prefect_server/graphql/runs.py +++ b/src/prefect_server/graphql/runs.py @@ -1,5 +1,5 @@ import asyncio -from typing import Any, List +from typing import Any, List, Optional from graphql import GraphQLResolveInfo @@ -96,7 +96,7 @@ async def resolve_mapped_children( @mutation.field("create_flow_run") async def resolve_create_flow_run( - obj: Any, info: GraphQLResolveInfo, input: dict = None + obj: Any, info: GraphQLResolveInfo, input: Optional[dict] = None ) -> dict: input = input or {} diff --git a/src/prefect_server/utilities/events.py b/src/prefect_server/utilities/events.py index be63e7ce..08b4f905 100644 --- a/src/prefect_server/utilities/events.py +++ b/src/prefect_server/utilities/events.py @@ -1,6 +1,8 @@ import datetime import uuid +from typing import Optional + import pendulum from pydantic import BaseModel, validator @@ -9,9 +11,9 @@ class Event(BaseModel): - id: str = None + id: Optional[str] = None timestamp: datetime.datetime = None - type: str = None + type: Optional[str] = None @validator("timestamp", pre=True, always=True) def set_timestamp(cls, v): diff --git a/src/prefect_server/utilities/exceptions.py b/src/prefect_server/utilities/exceptions.py index 1f881955..a9411e4b 100644 --- a/src/prefect_server/utilities/exceptions.py +++ b/src/prefect_server/utilities/exceptions.py @@ -25,7 +25,7 @@ class ApolloError(GraphQLError): # the ApolloError's default message message: Optional[str] = None - def __init__(self, message: str = None, *args, **kwargs): + def __init__(self, message: Optional[str] = None, *args, **kwargs): if message is None: message = self.message diff --git a/src/prefect_server/utilities/graphql.py b/src/prefect_server/utilities/graphql.py index cdef75fa..738b8eaa 100644 --- a/src/prefect_server/utilities/graphql.py +++ b/src/prefect_server/utilities/graphql.py @@ -1,6 +1,6 @@ import json import textwrap -from typing import Any, Dict, Union +from typing import Any, Dict, Optional, Union import ariadne from box import Box @@ -23,8 +23,8 @@ def __init__(self, url, headers=None): async def execute( self, query: Union[str, Dict[str, Any]], - variables: Dict[str, Any] = None, - headers: dict = None, + variables: Optional[Dict[str, Any]] = None, + headers: Optional[dict] = None, raise_on_error: bool = True, as_box=True, ) -> dict: @@ -86,7 +86,11 @@ async def execute( return result def log_query_debug_info( - self, query: str, variables: dict, errors: str = None, headers: dict = None + self, + query: str, + variables: dict, + errors: Optional[str] = None, + headers: Optional[dict] = None, ) -> None: """ Creates a nicely-formatted representation of a query, variables, and any errors. diff --git a/src/prefect_server/utilities/logging.py b/src/prefect_server/utilities/logging.py index 53d69b20..35a53a46 100644 --- a/src/prefect_server/utilities/logging.py +++ b/src/prefect_server/utilities/logging.py @@ -1,5 +1,7 @@ import logging +from typing import Optional + import json_log_formatter from prefect_server.configuration import config @@ -39,7 +41,7 @@ def configure_logging() -> logging.Logger: prefect_logger = configure_logging() -def get_logger(name: str = None) -> logging.Logger: +def get_logger(name: Optional[str] = None) -> logging.Logger: """ Returns a "prefect-server" logger.