|
19 | 19 | from avito.auth import AuthSettings |
20 | 20 | from avito.auth.models import ClientCredentialsRequest, RefreshTokenRequest |
21 | 21 | from avito.auth.provider import AlternateTokenClient, TokenClient |
| 22 | +from avito.autoteka.models import MonitoringEventsQuery |
22 | 23 | from avito.client import AvitoClient |
23 | 24 | from avito.core.swagger_discovery import DiscoveredSwaggerBinding |
24 | 25 | from avito.core.swagger_names import swagger_field_aliases |
|
33 | 34 | SwaggerSchemaPathError, |
34 | 35 | resolve_body_path, |
35 | 36 | ) |
| 37 | +from avito.jobs.models import ApplicationIdsQuery, ResumeSearchQuery, VacanciesQuery |
| 38 | +from avito.messenger.models import UploadImageFile |
| 39 | +from avito.ratings.models import ReviewsQuery |
| 40 | +from avito.realty.models import RealtyInterval |
36 | 41 | from avito.testing.fake_transport import FakeTransport, JsonValue, RecordedRequest |
37 | 42 |
|
38 | 43 | SdkValue = object |
@@ -354,8 +359,6 @@ def _value_for_argument( |
354 | 359 | if argument_name == "query": |
355 | 360 | return self._query_value(annotation) |
356 | 361 | if argument_name == "files" or "UploadImageFile" in annotation: |
357 | | - from avito.messenger.models import UploadImageFile |
358 | | - |
359 | 362 | return [ |
360 | 363 | UploadImageFile( |
361 | 364 | field_name="image", |
@@ -404,24 +407,14 @@ def _value_for_expression( |
404 | 407 |
|
405 | 408 | def _query_value(self, annotation: str) -> object: |
406 | 409 | if "MonitoringEventsQuery" in annotation: |
407 | | - from avito.autoteka.models import MonitoringEventsQuery |
408 | | - |
409 | 410 | return MonitoringEventsQuery(limit=2) |
410 | 411 | if "ApplicationIdsQuery" in annotation: |
411 | | - from avito.jobs.models import ApplicationIdsQuery |
412 | | - |
413 | 412 | return ApplicationIdsQuery(updated_at_from="2026-04-01T00:00:00+00:00") |
414 | 413 | if "ResumeSearchQuery" in annotation: |
415 | | - from avito.jobs.models import ResumeSearchQuery |
416 | | - |
417 | 414 | return ResumeSearchQuery(query="python") |
418 | 415 | if "VacanciesQuery" in annotation: |
419 | | - from avito.jobs.models import VacanciesQuery |
420 | | - |
421 | 416 | return VacanciesQuery(query="python") |
422 | 417 | if "ReviewsQuery" in annotation: |
423 | | - from avito.ratings.models import ReviewsQuery |
424 | | - |
425 | 418 | return ReviewsQuery(offset=0, limit=10) |
426 | 419 | return self._value_for_name("query") |
427 | 420 |
|
@@ -583,8 +576,6 @@ def _should_supply_optional_argument( |
583 | 576 |
|
584 | 577 | def _value_for_name(self, name: str) -> object: |
585 | 578 | if name == "intervals": |
586 | | - from avito.realty.models import RealtyInterval |
587 | | - |
588 | 579 | return [RealtyInterval(date="2026-05-01", available=True)] |
589 | 580 | if name == "blocked_dates": |
590 | 581 | return ["2026-05-01"] |
@@ -689,15 +680,15 @@ def _extract_path_values(self, template: str, path: str) -> Mapping[str, str]: |
689 | 680 | return match.groupdict() if match is not None else {} |
690 | 681 |
|
691 | 682 | def _path_pattern(self, template: str) -> re.Pattern[str]: |
692 | | - pattern = "^" |
| 683 | + pattern_parts = ["^"] |
693 | 684 | position = 0 |
694 | 685 | for match in _PATH_PARAMETER_RE.finditer(template): |
695 | | - pattern += re.escape(template[position : match.start()]) |
696 | | - pattern += f"(?P<{match.group(1)}>[^/]+)" |
| 686 | + pattern_parts.append(re.escape(template[position : match.start()])) |
| 687 | + pattern_parts.append(f"(?P<{match.group(1)}>[^/]+)") |
697 | 688 | position = match.end() |
698 | | - pattern += re.escape(template[position:]) |
699 | | - pattern += "$" |
700 | | - return re.compile(pattern) |
| 689 | + pattern_parts.append(re.escape(template[position:])) |
| 690 | + pattern_parts.append("$") |
| 691 | + return re.compile("".join(pattern_parts)) |
701 | 692 |
|
702 | 693 | def _normalize_swagger_path(self, path: str) -> str: |
703 | 694 | if path != "/": |
|
0 commit comments