Skip to content

Commit ce844fb

Browse files
authored
Merge pull request #5892 from opsmill/pog-ruff-UP007-20250228
Ruff fixes for UP007
2 parents 4c6f526 + e2db3e4 commit ce844fb

File tree

17 files changed

+75
-92
lines changed

17 files changed

+75
-92
lines changed

backend/infrahub/lock.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import uuid
66
from asyncio import Lock as LocalLock
77
from asyncio import sleep
8-
from typing import TYPE_CHECKING, Optional, Union
8+
from typing import TYPE_CHECKING
99

1010
import redis.asyncio as redis
1111
from prometheus_client import Histogram
@@ -47,7 +47,7 @@
4747
class InfrahubMultiLock:
4848
"""Context manager to allow multiple locks to be reserved together"""
4949

50-
def __init__(self, lock_registry: InfrahubLockRegistry, locks: Optional[list[str]] = None) -> None:
50+
def __init__(self, lock_registry: InfrahubLockRegistry, locks: list[str] | None = None) -> None:
5151
self.registry = lock_registry
5252
self.locks = locks or []
5353

@@ -56,9 +56,9 @@ async def __aenter__(self):
5656

5757
async def __aexit__(
5858
self,
59-
exc_type: Optional[type[BaseException]],
60-
exc_value: Optional[BaseException],
61-
traceback: Optional[TracebackType],
59+
exc_type: type[BaseException] | None,
60+
exc_value: BaseException | None,
61+
traceback: TracebackType | None,
6262
):
6363
await self.release()
6464

@@ -84,9 +84,9 @@ async def __aenter__(self):
8484

8585
async def __aexit__(
8686
self,
87-
exc_type: Optional[type[BaseException]],
88-
exc_value: Optional[BaseException],
89-
traceback: Optional[TracebackType],
87+
exc_type: type[BaseException] | None,
88+
exc_value: BaseException | None,
89+
traceback: TracebackType | None,
9090
):
9191
await self.release()
9292

@@ -117,18 +117,18 @@ class InfrahubLock:
117117
def __init__(
118118
self,
119119
name: str,
120-
connection: Optional[Union[redis.Redis, InfrahubServices]] = None,
121-
local: Optional[bool] = None,
120+
connection: redis.Redis | InfrahubServices | None = None,
121+
local: bool | None = None,
122122
in_multi: bool = False,
123123
) -> None:
124124
self.use_local: bool = local
125125
self.local: LocalLock = None
126126
self.remote: GlobalLock = None
127127
self.name: str = name
128-
self.connection: Optional[redis.Redis] = connection
128+
self.connection: redis.Redis | None = connection
129129
self.in_multi: bool = in_multi
130130
self.lock_type: str = "multi" if self.in_multi else "individual"
131-
self.acquire_time: Optional[int] = None
131+
self.acquire_time: int | None = None
132132
self.event = asyncio.Event()
133133

134134
if not self.connection or (self.use_local is None and name.startswith("local.")):
@@ -146,9 +146,9 @@ async def __aenter__(self):
146146

147147
async def __aexit__(
148148
self,
149-
exc_type: Optional[type[BaseException]],
150-
exc_value: Optional[BaseException],
151-
traceback: Optional[TracebackType],
149+
exc_type: type[BaseException] | None,
150+
exc_value: BaseException | None,
151+
traceback: TracebackType | None,
152152
):
153153
await self.release()
154154

@@ -179,7 +179,7 @@ async def locked(self) -> bool:
179179

180180
class InfrahubLockRegistry:
181181
def __init__(
182-
self, token: Optional[str] = None, local_only: bool = False, service: Optional[InfrahubServices] = None
182+
self, token: str | None = None, local_only: bool = False, service: InfrahubServices | None = None
183183
) -> None:
184184
if config.SETTINGS.cache.enable and not local_only:
185185
if config.SETTINGS.cache.driver == config.CacheDriver.Redis:
@@ -201,7 +201,7 @@ def __init__(
201201
self.locks: dict[str, InfrahubLock] = {}
202202

203203
@classmethod
204-
def _generate_name(cls, name: str, namespace: Optional[str] = None, local: Optional[bool] = None) -> str:
204+
def _generate_name(cls, name: str, namespace: str | None = None, local: bool | None = None) -> str:
205205
if namespace is None and local is None:
206206
return name
207207

@@ -221,15 +221,15 @@ def get_existing(
221221
self,
222222
name: str,
223223
namespace: str | None,
224-
local: Optional[bool] = None,
224+
local: bool | None = None,
225225
) -> InfrahubLock | None:
226226
lock_name = self._generate_name(name=name, namespace=namespace, local=local)
227227
if lock_name not in self.locks:
228228
return None
229229
return self.locks[lock_name]
230230

231231
def get(
232-
self, name: str, namespace: Optional[str] = None, local: Optional[bool] = None, in_multi: bool = False
232+
self, name: str, namespace: str | None = None, local: bool | None = None, in_multi: bool = False
233233
) -> InfrahubLock:
234234
lock_name = self._generate_name(name=name, namespace=namespace, local=local)
235235
if lock_name not in self.locks:
@@ -252,7 +252,7 @@ def global_graph_lock(self) -> InfrahubMultiLock:
252252
return InfrahubMultiLock(lock_registry=self, locks=[LOCAL_SCHEMA_LOCK, GLOBAL_GRAPH_LOCK, GLOBAL_SCHEMA_LOCK])
253253

254254

255-
def initialize_lock(local_only: bool = False, service: Optional[InfrahubServices] = None) -> None:
255+
def initialize_lock(local_only: bool = False, service: InfrahubServices | None = None) -> None:
256256
global registry
257257
registry = InfrahubLockRegistry(local_only=local_only, service=service)
258258

backend/infrahub/message_bus/__init__.py

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from __future__ import annotations
22

3-
from typing import Any, Optional, Union
3+
from typing import Any
44

55
from pydantic import BaseModel, Field
66

@@ -11,21 +11,19 @@
1111

1212
class Meta(BaseModel):
1313
request_id: str = ""
14-
correlation_id: Optional[str] = Field(default=None)
15-
reply_to: Optional[str] = Field(default=None)
16-
initiator_id: Optional[str] = Field(
14+
correlation_id: str | None = Field(default=None)
15+
reply_to: str | None = Field(default=None)
16+
initiator_id: str | None = Field(
1717
default=None, description="The worker identity of the initial sender of this message"
1818
)
19-
retry_count: Optional[int] = Field(
20-
default=None, description="Indicates how many times this message has been retried."
21-
)
22-
headers: Optional[dict[str, Any]] = Field(default=None)
23-
validator_execution_id: Optional[str] = Field(
19+
retry_count: int | None = Field(default=None, description="Indicates how many times this message has been retried.")
20+
headers: dict[str, Any] | None = Field(default=None)
21+
validator_execution_id: str | None = Field(
2422
default=None, description="Validator execution ID related to this message"
2523
)
26-
check_execution_id: Optional[str] = Field(default=None, description="Check execution ID related to this message")
24+
check_execution_id: str | None = Field(default=None, description="Check execution ID related to this message")
2725
priority: int = Field(default=3, description="Message Priority")
28-
expiration: Optional[int] = Field(default=None, description="TTL before this message expires in seconds")
26+
expiration: int | None = Field(default=None, description="TTL before this message expires in seconds")
2927

3028
@classmethod
3129
def default(cls) -> Meta:
@@ -89,9 +87,9 @@ class InfrahubResponse(InfrahubMessage):
8987

9088
passed: bool = True
9189
routing_key: str
92-
data: Union[dict, InfrahubResponseData] = Field(default_factory=dict)
90+
data: dict | InfrahubResponseData = Field(default_factory=dict)
9391
errors: list[str] = Field(default_factory=list)
94-
initial_message: Optional[dict] = Field(
92+
initial_message: dict | None = Field(
9593
default=None,
9694
description="Initial message in dict format, the primary goal of this field is to provide additional context when there is an error",
9795
)

backend/infrahub/message_bus/messages/check_generator_run.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
from typing import Optional
2-
31
from pydantic import Field
42

53
from infrahub.generators.models import ProposedChangeGeneratorDefinition
@@ -10,7 +8,7 @@ class CheckGeneratorRun(InfrahubMessage):
108
"""A check that runs a generator."""
119

1210
generator_definition: ProposedChangeGeneratorDefinition = Field(..., description="The Generator definition")
13-
generator_instance: Optional[str] = Field(
11+
generator_instance: str | None = Field(
1412
default=None, description="The id of the generator instance if it previously existed"
1513
)
1614
commit: str = Field(..., description="The commit to target")

backend/infrahub/message_bus/operations/__init__.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
from typing import Optional
2-
31
import ujson
42
from prefect import Flow
53

@@ -38,7 +36,7 @@
3836

3937
async def execute_message(
4038
routing_key: str, message_body: bytes, service: InfrahubServices, skip_flow: bool = False
41-
) -> Optional[MessageTTL]:
39+
) -> MessageTTL | None:
4240
message_data = ujson.loads(message_body)
4341
message = messages.MESSAGE_MAP[routing_key](**message_data)
4442
message.set_log_data(routing_key=routing_key)

backend/infrahub/message_bus/operations/requests/generator_definition.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
from typing import Optional
2-
31
from infrahub_sdk.uuidt import UUIDT
42
from prefect import flow
53
from prefect.logging import get_run_logger
@@ -128,7 +126,7 @@ async def check(message: messages.RequestGeneratorDefinitionCheck, service: Infr
128126
await service.message_bus.send(message=event)
129127

130128

131-
def _run_generator(instance_id: Optional[str], managed_branch: bool, impacted_instances: list[str]) -> bool:
129+
def _run_generator(instance_id: str | None, managed_branch: bool, impacted_instances: list[str]) -> bool:
132130
"""Returns a boolean to indicate if a generator instance needs to be executed
133131
Will return true if:
134132
* The instance_id wasn't set which could be that it's a new object that doesn't have a previous generator instance

backend/infrahub/services/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from __future__ import annotations
22

3-
from typing import TYPE_CHECKING, Awaitable, Callable, Optional
3+
from typing import TYPE_CHECKING, Awaitable, Callable
44

55
from infrahub.components import ComponentType
66
from infrahub.exceptions import InitializationError
@@ -182,7 +182,7 @@ async def shutdown(self) -> None:
182182
await self.scheduler.shutdown()
183183
await self.message_bus.shutdown()
184184

185-
async def send(self, message: InfrahubMessage, delay: Optional[MessageTTL] = None, is_retry: bool = False) -> None:
185+
async def send(self, message: InfrahubMessage, delay: MessageTTL | None = None, is_retry: bool = False) -> None:
186186
routing_key = ROUTING_KEY_MAP.get(type(message))
187187
if not routing_key:
188188
raise ValueError("Unable to determine routing key")

backend/infrahub/services/adapters/cache/__init__.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from __future__ import annotations
22

33
from abc import ABC, abstractmethod
4-
from typing import TYPE_CHECKING, Optional
4+
from typing import TYPE_CHECKING
55

66
if TYPE_CHECKING:
77
from infrahub.message_bus.types import KVTTL
@@ -16,12 +16,12 @@ async def delete(self, key: str) -> None:
1616
raise NotImplementedError()
1717

1818
@abstractmethod
19-
async def get(self, key: str) -> Optional[str]:
19+
async def get(self, key: str) -> str | None:
2020
"""Retrieve a value from the cache."""
2121
raise NotImplementedError()
2222

2323
@abstractmethod
24-
async def get_values(self, keys: list[str]) -> list[Optional[str]]:
24+
async def get_values(self, keys: list[str]) -> list[str | None]:
2525
"""Return a list the values for requested keys."""
2626
raise NotImplementedError()
2727

@@ -31,8 +31,6 @@ async def list_keys(self, filter_pattern: str) -> list[str]:
3131
raise NotImplementedError()
3232

3333
@abstractmethod
34-
async def set(
35-
self, key: str, value: str, expires: Optional[KVTTL] = None, not_exists: bool = False
36-
) -> Optional[bool]:
34+
async def set(self, key: str, value: str, expires: KVTTL | None = None, not_exists: bool = False) -> bool | None:
3735
"""Set a value in the cache."""
3836
raise NotImplementedError()

backend/infrahub/services/adapters/cache/nats.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from __future__ import annotations
22

33
import ssl
4-
from typing import Optional
54

65
import nats
76

@@ -84,7 +83,7 @@ async def delete(self, key: str) -> None:
8483
key = self._tokenize_key_name(key)
8584
await self._get_kv(key).delete(key)
8685

87-
async def get(self, key: str) -> Optional[str]:
86+
async def get(self, key: str) -> str | None:
8887
key = self._tokenize_key_name(key)
8988
try:
9089
entry = await self._get_kv(key).get(key=key)
@@ -94,7 +93,7 @@ async def get(self, key: str) -> Optional[str]:
9493
pass
9594
return None
9695

97-
async def get_values(self, keys: list[str]) -> list[Optional[str]]:
96+
async def get_values(self, keys: list[str]) -> list[str | None]:
9897
return [await self.get(key) for key in keys]
9998

10099
async def _keys(self, kv: nats.js.kv.KeyValue, filter_pattern: str) -> list[str]:
@@ -138,9 +137,9 @@ async def set(
138137
self,
139138
key: str,
140139
value: str,
141-
expires: Optional[KVTTL] = None, # noqa: ARG002
140+
expires: KVTTL | None = None, # noqa: ARG002
142141
not_exists: bool = False,
143-
) -> Optional[bool]:
142+
) -> bool | None:
144143
key = self._tokenize_key_name(key)
145144
if not_exists:
146145
try:

backend/infrahub/services/adapters/cache/redis.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
from typing import Optional
2-
31
import redis.asyncio as redis
42

53
from infrahub import config
@@ -22,13 +20,13 @@ def __init__(self) -> None:
2220
async def delete(self, key: str) -> None:
2321
await self.connection.delete(key)
2422

25-
async def get(self, key: str) -> Optional[str]:
23+
async def get(self, key: str) -> str | None:
2624
value = await self.connection.get(name=key)
2725
if value is not None:
2826
return value.decode()
2927
return None
3028

31-
async def get_values(self, keys: list[str]) -> list[Optional[str]]:
29+
async def get_values(self, keys: list[str]) -> list[str | None]:
3230
values = await self.connection.mget(keys=keys)
3331
return [value.decode() if value is not None else value for value in values]
3432

@@ -44,7 +42,5 @@ async def list_keys(self, filter_pattern: str) -> list[str]:
4442

4543
return [key.decode() for key in keys]
4644

47-
async def set(
48-
self, key: str, value: str, expires: Optional[KVTTL] = None, not_exists: bool = False
49-
) -> Optional[bool]:
45+
async def set(self, key: str, value: str, expires: KVTTL | None = None, not_exists: bool = False) -> bool | None:
5046
return await self.connection.set(name=key, value=value, ex=expires.value if expires else None, nx=not_exists)

backend/infrahub/services/adapters/message_bus/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from __future__ import annotations
22

33
from abc import ABC, abstractmethod
4-
from typing import TYPE_CHECKING, Optional, TypeVar
4+
from typing import TYPE_CHECKING, TypeVar
55

66
from infrahub.message_bus.messages import ROUTING_KEY_MAP
77

@@ -36,7 +36,7 @@ async def shutdown(self) -> None: # noqa: B027 We want a default empty behavior
3636

3737
@abstractmethod
3838
async def publish(
39-
self, message: InfrahubMessage, routing_key: str, delay: Optional[MessageTTL] = None, is_retry: bool = False
39+
self, message: InfrahubMessage, routing_key: str, delay: MessageTTL | None = None, is_retry: bool = False
4040
) -> None:
4141
raise NotImplementedError()
4242

@@ -48,7 +48,7 @@ async def reply(self, message: InfrahubMessage, routing_key: str) -> None:
4848
async def rpc(self, message: InfrahubMessage, response_class: type[ResponseClass]) -> ResponseClass:
4949
raise NotImplementedError()
5050

51-
async def send(self, message: InfrahubMessage, delay: Optional[MessageTTL] = None, is_retry: bool = False) -> None:
51+
async def send(self, message: InfrahubMessage, delay: MessageTTL | None = None, is_retry: bool = False) -> None:
5252
routing_key = ROUTING_KEY_MAP.get(type(message))
5353
if not routing_key:
5454
raise ValueError("Unable to determine routing key")

0 commit comments

Comments
 (0)