Skip to content

Commit a894e41

Browse files
committed
Update generate_strings
1 parent b5ef629 commit a894e41

5 files changed

Lines changed: 14 additions & 13 deletions

File tree

‎regexsolver/__init__.py‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
ForbiddenError,
77
InternalServerError,
88
InvalidJsonError,
9+
InvalidNumberOfStringsToGenerate,
910
InvalidTokenError,
1011
MissingOrMalformedTokenError,
1112
NotFoundError,
@@ -14,7 +15,6 @@
1415
TimeoutExceededError,
1516
TimeoutTooLargeError,
1617
TooManyRequestsError,
17-
TooManyStringsToGenerateError,
1818
TooManyTermsError,
1919
UnauthorizedError,
2020
)
@@ -40,7 +40,7 @@
4040
"TimeoutExceededError",
4141
"TimeoutTooLargeError",
4242
"TooManyRequestsError",
43-
"TooManyStringsToGenerateError",
43+
"InvalidNumberOfStringsToGenerate",
4444
"TooManyTermsError",
4545
"UnauthorizedError",
4646
"BigInteger",

‎regexsolver/clients/asynchronous.py‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@
1010
ForbiddenError,
1111
InternalServerError,
1212
InvalidJsonError,
13+
InvalidNumberOfStringsToGenerate,
1314
InvalidTokenError,
1415
MissingOrMalformedTokenError,
1516
NotFoundError,
1617
QuotaExceededError,
1718
TimeoutExceededError,
1819
TimeoutTooLargeError,
1920
TooManyRequestsError,
20-
TooManyStringsToGenerateError,
2121
TooManyTermsError,
2222
UnauthorizedError,
2323
)
@@ -155,8 +155,8 @@ async def _execute_with_retry(self, api_method, **kwargs):
155155
raise TimeoutExceededError(
156156
error_msg, status_code=e.status, body=e.body
157157
) from None
158-
elif error_code == "TooManyStringsToGenerate":
159-
raise TooManyStringsToGenerateError(
158+
elif error_code == "InvalidNumberOfStringsToGenerate":
159+
raise InvalidNumberOfStringsToGenerate(
160160
error_msg, status_code=e.status, body=e.body
161161
) from None
162162
raise BadRequestError(

‎regexsolver/exceptions.py‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ class TimeoutExceededError(BadRequestError):
5656
pass
5757

5858

59-
class TooManyStringsToGenerateError(BadRequestError):
60-
"""Raised when the requested number of strings to generate exceeds the maximum allowed."""
59+
class InvalidNumberOfStringsToGenerate(BadRequestError):
60+
"""Raised when the requested number of strings to generate is below the minimum or exceeds the maximum allowed."""
6161

6262
pass
6363

‎regexsolver/generated/models/generate_strings_request.py‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
from pydantic import BaseModel, ConfigDict, Field, StrictInt
2121
from typing import Any, ClassVar, Dict, List, Optional
22+
from typing_extensions import Annotated
2223
from regexsolver.generated.models.request_options import RequestOptions
2324
from regexsolver.generated.models.term import Term
2425
from typing import Optional, Set
@@ -29,7 +30,7 @@ class GenerateStringsRequest(BaseModel):
2930
Request to generate up to 'count' distinct strings matched by 'term', skipping the first 'offset' strings.
3031
""" # noqa: E501
3132
term: Term = Field(description="Source term to generate strings from.")
32-
count: StrictInt = Field(description="Maximum number of unique strings to return.")
33+
count: Annotated[int, Field(le=100, strict=True, ge=1)] = Field(description="Maximum number of unique strings to return.")
3334
offset: StrictInt = Field(description="Number of matched strings to skip before starting to collect the results. Used for pagination.")
3435
options: Optional[RequestOptions] = None
3536
__properties: ClassVar[List[str]] = ["term", "count", "offset", "options"]

‎tests/test_async_client.py‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@
1010
Infinite,
1111
Integer,
1212
InvalidJsonError,
13+
InvalidNumberOfStringsToGenerate,
1314
InvalidTokenError,
1415
MissingOrMalformedTokenError,
1516
NotFoundError,
1617
QuotaExceededError,
1718
Term,
1819
TimeoutExceededError,
1920
TimeoutTooLargeError,
20-
TooManyStringsToGenerateError,
2121
TooManyTermsError,
2222
UnauthorizedError,
2323
)
@@ -160,10 +160,10 @@ async def test_error_handling_timeout_exceeded(async_client):
160160
@pytest.mark.asyncio
161161
async def test_error_handling_too_many_strings_to_generate(async_client):
162162
error_400 = ApiException(status=400)
163-
error_400.body = '{"success": false, "error": "Too many strings", "errorCode": "TooManyStringsToGenerate"}'
163+
error_400.body = '{"success": false, "error": "Too many strings", "errorCode": "InvalidNumberOfStringsToGenerate"}'
164164
async_client._generate_api.strings.side_effect = error_400
165-
with pytest.raises(TooManyStringsToGenerateError):
166-
await async_client.generate_strings(Term.regex("abc"), 1000)
165+
with pytest.raises(InvalidNumberOfStringsToGenerate):
166+
await async_client.generate_strings(Term.regex("abc"), 100, 0)
167167

168168

169169
@pytest.mark.asyncio
@@ -375,5 +375,5 @@ async def test_generate_strings(async_client):
375375
mock_response = MagicMock()
376376
mock_response.data.value = ["", "a", "aa"]
377377
async_client._generate_api.strings.return_value = mock_response
378-
result = await async_client.generate_strings(term, 3)
378+
result = await async_client.generate_strings(term, 3, 0)
379379
assert result == ["", "a", "aa"]

0 commit comments

Comments
 (0)