Skip to content

Commit ac4c244

Browse files
Merge pull request #2260 from VWS-Python/supports-float
Use SupportsFloat to allow ints for some fields
2 parents c37c192 + 2080240 commit ac4c244

File tree

4 files changed

+11
-10
lines changed

4 files changed

+11
-10
lines changed

src/mock_vws/_flask_server/vws.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import uuid
1313
from enum import StrEnum, auto
1414
from http import HTTPMethod, HTTPStatus
15+
from typing import SupportsFloat
1516

1617
import requests
1718
from flask import Flask, Response, request
@@ -66,7 +67,7 @@ class VWSSettings(BaseSettings):
6667
"""Settings for the VWS Flask app."""
6768

6869
target_manager_base_url: str
69-
processing_time_seconds: float = 2
70+
processing_time_seconds: SupportsFloat = 2
7071
vws_host: str = ""
7172
duplicates_image_matcher: _ImageMatcherChoice = (
7273
_ImageMatcherChoice.STRUCTURAL_SIMILARITY

src/mock_vws/_requests_mock_server/decorators.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import re
66
from contextlib import ContextDecorator
7-
from typing import Literal, Self
7+
from typing import Literal, Self, SupportsFloat
88
from urllib.parse import urljoin, urlparse
99

1010
import requests
@@ -39,7 +39,7 @@ def __init__(
3939
base_vwq_url: str = "https://cloudreco.vuforia.com",
4040
duplicate_match_checker: ImageMatcher = _STRUCTURAL_SIMILARITY_MATCHER,
4141
query_match_checker: ImageMatcher = _STRUCTURAL_SIMILARITY_MATCHER,
42-
processing_time_seconds: float = 2,
42+
processing_time_seconds: SupportsFloat = 2,
4343
target_tracking_rater: TargetTrackingRater = _BRISQUE_TRACKING_RATER,
4444
*,
4545
real_http: bool = False,

src/mock_vws/_requests_mock_server/mock_web_services_api.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import uuid
1313
from collections.abc import Callable
1414
from http import HTTPMethod, HTTPStatus
15-
from typing import TYPE_CHECKING
15+
from typing import TYPE_CHECKING, SupportsFloat
1616
from zoneinfo import ZoneInfo
1717

1818
from mock_vws._constants import ResultCodes, TargetStatuses
@@ -103,7 +103,7 @@ def __init__(
103103
self,
104104
*,
105105
target_manager: TargetManager,
106-
processing_time_seconds: float,
106+
processing_time_seconds: SupportsFloat,
107107
duplicate_match_checker: ImageMatcher,
108108
target_tracking_rater: TargetTrackingRater,
109109
) -> None:

src/mock_vws/target.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import statistics
99
import uuid
1010
from dataclasses import dataclass, field
11-
from typing import Self, TypedDict
11+
from typing import Self, SupportsFloat, TypedDict
1212
from zoneinfo import ZoneInfo
1313

1414
from PIL import Image, ImageStat
@@ -29,7 +29,7 @@ class TargetDict(TypedDict):
2929
width: float
3030
image_base64: str
3131
active_flag: bool
32-
processing_time_seconds: int | float
32+
processing_time_seconds: SupportsFloat
3333
application_metadata: str | None
3434
target_id: str
3535
last_modified_date: str
@@ -64,7 +64,7 @@ class Target:
6464
application_metadata: str | None
6565
image_value: bytes
6666
name: str
67-
processing_time_seconds: float
67+
processing_time_seconds: SupportsFloat
6868
width: float
6969
target_tracking_rater: TargetTrackingRater = field(compare=False)
7070
current_month_recos: int = 0
@@ -112,7 +112,7 @@ def status(self) -> str:
112112
target is for detection.
113113
"""
114114
processing_time = datetime.timedelta(
115-
seconds=self.processing_time_seconds,
115+
seconds=float(self.processing_time_seconds),
116116
)
117117

118118
timezone = self.upload_date.tzinfo
@@ -137,7 +137,7 @@ def tracking_rating(self) -> int:
137137
pre_rating_time = datetime.timedelta(
138138
# That this is half of the total processing time is unrealistic.
139139
# In VWS it is not a constant percentage.
140-
seconds=self.processing_time_seconds / 2,
140+
seconds=float(self.processing_time_seconds) / 2,
141141
)
142142

143143
timezone = self.upload_date.tzinfo

0 commit comments

Comments
 (0)