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

Add mypy check, fix types #512

Merged
merged 4 commits into from
Feb 19, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions mypy.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[mypy]
ignore_missing_imports = True
follow_imports = skip
disallow_untyped_defs = True
plugins = pydantic.mypy
namespace_packages = True

[mypy-ossdbtoolsservice.language.completion.*]
ignore_errors = True
18 changes: 12 additions & 6 deletions ossdbtoolsservice/admin/admin_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
GetDatabaseInfoParameters,
GetDatabaseInfoResponse,
)
from ossdbtoolsservice.connection.connection_service import ConnectionService
from ossdbtoolsservice.connection.contracts import ConnectionType
from ossdbtoolsservice.driver import ServerConnection
from ossdbtoolsservice.hosting import RequestContext, Service, ServiceProvider
Expand All @@ -18,10 +19,7 @@
class AdminService(Service):
"""Service for general database administration support"""

def __init__(self):
self._service_provider: ServiceProvider = None

def register(self, service_provider: ServiceProvider):
def register(self, service_provider: ServiceProvider) -> None:
self._service_provider = service_provider

# Register the request handlers with the server
Expand All @@ -38,11 +36,19 @@ def _handle_get_database_info_request(
self, request_context: RequestContext, params: GetDatabaseInfoParameters
) -> None:
# Retrieve the connection from the connection service
connection_service = self._service_provider[constants.CONNECTION_SERVICE_NAME]
connection: ServerConnection = connection_service.get_connection(
connection_service = self.service_provider.get(
constants.CONNECTION_SERVICE_NAME, ConnectionService
)
connection: ServerConnection | None = connection_service.get_connection(
params.owner_uri, ConnectionType.DEFAULT
)

if connection is None:
request_context.send_error(
f"Unable to get connection for owner uri: {params.owner_uri}"
)
return

# Get database owner
owner_result = connection.get_database_owner()
size_result = connection.get_database_size(connection.database_name)
Expand Down
10 changes: 5 additions & 5 deletions ossdbtoolsservice/admin/contracts/get_database_info_request.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@
class GetDatabaseInfoParameters(Serializable):
"""Contract for the parameters to admin/getdatabaseinfo requests"""

options: dict
owner_uri: str
options: dict | None
owner_uri: str | None

def __init__(self):
self.options: dict = None
self.owner_uri: str = None
def __init__(self) -> None:
self.options = None
self.owner_uri = None


class DatabaseInfo:
Expand Down
13 changes: 8 additions & 5 deletions ossdbtoolsservice/capabilities/capabilities_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@


class CapabilitiesService(Service):
"""Defines the capabilities supported by PG Tools
"""Defines the capabilities supported by PG Tools
including language service and DMP support"""

def __init__(self):
self._service_provider: ServiceProvider = None
def __init__(self) -> None:
super().__init__()

def register(self, service_provider: ServiceProvider):
def register(self, service_provider: ServiceProvider) -> None:
self._service_provider = service_provider

self._service_provider.server.set_request_handler(
Expand All @@ -52,7 +52,7 @@ def _handle_dmp_capabilities_request(
:param request_context: Context of the request
:param params: Parameters for the capabilities request
"""
provider: str = self._service_provider.provider
provider: str = self.service_provider.provider
capabilities = SERVER_CAPABILITIES_MAP[provider]

result = CapabilitiesResult(capabilities)
Expand All @@ -78,6 +78,9 @@ def _handle_initialize_request(
document_highlight_provider=False,
hover_provider=False,
completion_provider=CompletionOptions(True, [".", "-", ":", "\\", "[", '"']),
signature_help_provider=None,
document_symbol_provider=False,
workspace_symbol_provider=False,
)
result = InitializeResult(capabilities)

Expand Down
92 changes: 46 additions & 46 deletions ossdbtoolsservice/capabilities/contracts/capabilities_request.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,23 @@


class CapabilitiesRequestParams(Serializable):
host_name: str
host_version: str
host_name: str | None
host_version: str | None

def __init__(self):
def __init__(self) -> None:
self.host_name = None
self.host_version = None


class CategoryValue:
"""Defines a category value for an option"""

display_name: str
name: str
display_name: str | None
name: str | None

def __init__(self, display_name: str = None, name: str = None):
self.display_name: str = display_name
self.name: str = name
def __init__(self, display_name: str | None = None, name: str | None = None) -> None:
self.display_name = display_name
self.name = name


class ServiceOption:
Expand All @@ -41,34 +41,34 @@ class ServiceOption:
VALUE_TYPE_NUMBER: str = "number"
VALUE_TYPE_CATEGORY: str = "category"
VALUE_TYPE_BOOLEAN: str = "boolean"
name: str
display_name: str
description: str
group_name: str
value_type: str
default_value: str
category_values: list[CategoryValue]
name: str | None
display_name: str | None
description: str | None
group_name: str | None
value_type: str | None
default_value: str | None
category_values: list[CategoryValue] | None
is_required: bool

def __init__(
self,
name: str = None,
display_name: str = None,
description: str = None,
group_name: str = None,
value_type: str = None,
default_value: str = None,
category_values: list[CategoryValue] = None,
name: str | None = None,
display_name: str | None = None,
description: str | None = None,
group_name: str | None = None,
value_type: str | None = None,
default_value: str | None = None,
category_values: list[CategoryValue] | None = None,
is_required: bool = False,
):
self.name: str = name
self.display_name: str = display_name
self.description: str = description
self.group_name: str = group_name
self.value_type: str = value_type
self.default_value: str = default_value
self.category_values: list[CategoryValue] = category_values
self.is_required: bool = is_required
) -> None:
self.name = name
self.display_name = display_name
self.description = description
self.group_name = group_name
self.value_type = value_type
self.default_value = default_value
self.category_values = category_values
self.is_required = is_required


class ConnectionOption(ServiceOption):
Expand All @@ -81,22 +81,22 @@ class ConnectionOption(ServiceOption):
SPECIAL_VALUE_PASSWORD_NAME: str = "password"
SPECIAL_VALUE_ACCESS_TOKEN_NAME: str = "azureAccountToken"
SPECIAL_VALUE_APP_NAME: str = "appName"
special_value_type: str
special_value_type: str | None
is_identity: bool

def __init__(
self,
name: str = None,
display_name: str = None,
description: str = None,
group_name: str = None,
value_type: str = None,
default_value: str = None,
category_values: list[CategoryValue] = None,
special_value_type: str = None,
name: str | None = None,
display_name: str | None = None,
description: str | None = None,
group_name: str | None = None,
value_type: str | None = None,
default_value: str | None = None,
category_values: list[CategoryValue] | None = None,
special_value_type: str | None = None,
is_identity: bool = False,
is_required: bool = False,
):
) -> None:
super().__init__(
name,
display_name,
Expand All @@ -107,8 +107,8 @@ def __init__(
category_values,
is_required,
)
self.special_value_type: str = special_value_type
self.is_identity: bool = is_identity
self.special_value_type = special_value_type
self.is_identity = is_identity


class ConnectionProviderOptions:
Expand All @@ -129,7 +129,7 @@ class FeatureMetadataProvider:

def __init__(
self, enabled: bool, feature_name: str, options_metadata: list[ServiceOption]
):
) -> None:
self.enabled = enabled
self.feature_name = feature_name
self.options_metadata = options_metadata
Expand All @@ -151,7 +151,7 @@ def __init__(
provider_display_name: str,
connection_options: ConnectionProviderOptions,
features: list[FeatureMetadataProvider],
):
) -> None:
self.protocol_version: str = protocol_version
self.provider_name: str = provider_name
self.provider_display_name: str = provider_display_name
Expand All @@ -164,7 +164,7 @@ class CapabilitiesResult:

capabilities: DMPServerCapabilities

def __init__(self, capabilities: DMPServerCapabilities):
def __init__(self, capabilities: DMPServerCapabilities) -> None:
self.capabilities: DMPServerCapabilities = capabilities


Expand Down
Loading