diff --git a/.sdk-version b/.sdk-version index cee6f27..9f94b80 100644 --- a/.sdk-version +++ b/.sdk-version @@ -1 +1 @@ -v2.11.7 +v2.12.0 diff --git a/docs/AnalysisFunctionMatchingRequest.md b/docs/AnalysisFunctionMatchingRequest.md index d4935f0..7a71905 100644 --- a/docs/AnalysisFunctionMatchingRequest.md +++ b/docs/AnalysisFunctionMatchingRequest.md @@ -10,6 +10,7 @@ Name | Type | Description | Notes **results_per_function** | **int** | Maximum number of matches to return per function, default is 1, max is 10 | [optional] [default to 1] **page** | **int** | Page number for paginated results, default is 1 (first page) | [optional] [default to 1] **page_size** | **int** | Number of functions to return per page, default is 0 (all functions), max is 1000 | [optional] [default to 0] +**no_cache** | **bool** | If set to true, forces the system to bypass any cached results and perform a fresh computation | [optional] [default to False] ## Example diff --git a/docs/AutoUnstripRequest.md b/docs/AutoUnstripRequest.md index 4cd5f43..c717dd8 100644 --- a/docs/AutoUnstripRequest.md +++ b/docs/AutoUnstripRequest.md @@ -9,6 +9,7 @@ Name | Type | Description | Notes **apply** | **bool** | Whether to apply the matched function names to the target binary, default is False | [optional] [default to False] **confidence_threshold** | **float** | Confidence threshold for applying function names as a percentage, default is 90 | [optional] [default to 90.0] **min_group_size** | **int** | Minimum number of matching functions required to consider for a match, default is 10 | [optional] [default to 10] +**no_cache** | **bool** | If set to true, forces the system to bypass any cached results and perform a fresh computation | [optional] [default to False] ## Example diff --git a/docs/FunctionMatchingRequest.md b/docs/FunctionMatchingRequest.md index c4fa97f..17b54c4 100644 --- a/docs/FunctionMatchingRequest.md +++ b/docs/FunctionMatchingRequest.md @@ -12,6 +12,7 @@ Name | Type | Description | Notes **results_per_function** | **int** | Maximum number of matches to return per function, default is 1, max is 50 | [optional] [default to 1] **page** | **int** | Page number for paginated results, default is 1 (first page) | [optional] [default to 1] **page_size** | **int** | Number of functions to return per page, default is 0 (all functions), max is 1000 | [optional] [default to 0] +**no_cache** | **bool** | If set to true, forces the system to bypass any cached results and perform a fresh computation | [optional] [default to False] ## Example diff --git a/revengai/__init__.py b/revengai/__init__.py index 47d6541..a4e03a4 100644 --- a/revengai/__init__.py +++ b/revengai/__init__.py @@ -13,7 +13,7 @@ """ # noqa: E501 -__version__ = "v2.11.7" +__version__ = "v2.12.0" # Define package exports __all__ = [ diff --git a/revengai/api_client.py b/revengai/api_client.py index 5b3a063..e55c513 100644 --- a/revengai/api_client.py +++ b/revengai/api_client.py @@ -90,7 +90,7 @@ def __init__( self.default_headers[header_name] = header_value self.cookie = cookie # Set default User-Agent. - self.user_agent = 'OpenAPI-Generator/v2.11.7/python' + self.user_agent = 'OpenAPI-Generator/v2.12.0/python' self.client_side_validation = configuration.client_side_validation def __enter__(self): diff --git a/revengai/configuration.py b/revengai/configuration.py index 456892c..6ee88af 100644 --- a/revengai/configuration.py +++ b/revengai/configuration.py @@ -529,8 +529,8 @@ def to_debug_report(self) -> str: return "Python SDK Debug Report:\n"\ "OS: {env}\n"\ "Python Version: {pyversion}\n"\ - "Version of the API: v2.11.7\n"\ - "SDK Package Version: v2.11.7".\ + "Version of the API: v2.12.0\n"\ + "SDK Package Version: v2.12.0".\ format(env=sys.platform, pyversion=sys.version) def get_host_settings(self) -> List[HostSetting]: diff --git a/revengai/models/analysis_function_matching_request.py b/revengai/models/analysis_function_matching_request.py index 8154393..486ee06 100644 --- a/revengai/models/analysis_function_matching_request.py +++ b/revengai/models/analysis_function_matching_request.py @@ -16,7 +16,7 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field +from pydantic import BaseModel, ConfigDict, Field, StrictBool from typing import Any, ClassVar, Dict, List, Optional, Union from typing_extensions import Annotated from revengai.models.function_matching_filters import FunctionMatchingFilters @@ -32,7 +32,8 @@ class AnalysisFunctionMatchingRequest(BaseModel): results_per_function: Optional[Annotated[int, Field(le=10, strict=True, ge=1)]] = Field(default=1, description="Maximum number of matches to return per function, default is 1, max is 10") page: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=1, description="Page number for paginated results, default is 1 (first page)") page_size: Optional[Annotated[int, Field(le=1000, strict=True, ge=0)]] = Field(default=0, description="Number of functions to return per page, default is 0 (all functions), max is 1000") - __properties: ClassVar[List[str]] = ["min_similarity", "filters", "results_per_function", "page", "page_size"] + no_cache: Optional[StrictBool] = Field(default=False, description="If set to true, forces the system to bypass any cached results and perform a fresh computation") + __properties: ClassVar[List[str]] = ["min_similarity", "filters", "results_per_function", "page", "page_size", "no_cache"] model_config = ConfigDict( populate_by_name=True, @@ -97,7 +98,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "filters": FunctionMatchingFilters.from_dict(obj["filters"]) if obj.get("filters") is not None else None, "results_per_function": obj.get("results_per_function") if obj.get("results_per_function") is not None else 1, "page": obj.get("page") if obj.get("page") is not None else 1, - "page_size": obj.get("page_size") if obj.get("page_size") is not None else 0 + "page_size": obj.get("page_size") if obj.get("page_size") is not None else 0, + "no_cache": obj.get("no_cache") if obj.get("no_cache") is not None else False }) return _obj diff --git a/revengai/models/auto_unstrip_request.py b/revengai/models/auto_unstrip_request.py index 473f3c4..375ebeb 100644 --- a/revengai/models/auto_unstrip_request.py +++ b/revengai/models/auto_unstrip_request.py @@ -30,7 +30,8 @@ class AutoUnstripRequest(BaseModel): apply: Optional[StrictBool] = Field(default=False, description="Whether to apply the matched function names to the target binary, default is False") confidence_threshold: Optional[Union[Annotated[float, Field(le=100.0, strict=True, ge=0.0)], Annotated[int, Field(le=100, strict=True, ge=0)]]] = Field(default=90.0, description="Confidence threshold for applying function names as a percentage, default is 90") min_group_size: Optional[Annotated[int, Field(le=20, strict=True, ge=1)]] = Field(default=10, description="Minimum number of matching functions required to consider for a match, default is 10") - __properties: ClassVar[List[str]] = ["min_similarity", "apply", "confidence_threshold", "min_group_size"] + no_cache: Optional[StrictBool] = Field(default=False, description="If set to true, forces the system to bypass any cached results and perform a fresh computation") + __properties: ClassVar[List[str]] = ["min_similarity", "apply", "confidence_threshold", "min_group_size", "no_cache"] model_config = ConfigDict( populate_by_name=True, @@ -86,7 +87,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "min_similarity": obj.get("min_similarity") if obj.get("min_similarity") is not None else 90.0, "apply": obj.get("apply") if obj.get("apply") is not None else False, "confidence_threshold": obj.get("confidence_threshold") if obj.get("confidence_threshold") is not None else 90.0, - "min_group_size": obj.get("min_group_size") if obj.get("min_group_size") is not None else 10 + "min_group_size": obj.get("min_group_size") if obj.get("min_group_size") is not None else 10, + "no_cache": obj.get("no_cache") if obj.get("no_cache") is not None else False }) return _obj diff --git a/revengai/models/function_matching_request.py b/revengai/models/function_matching_request.py index dc59908..66678a4 100644 --- a/revengai/models/function_matching_request.py +++ b/revengai/models/function_matching_request.py @@ -16,7 +16,7 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, Field, StrictInt +from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt from typing import Any, ClassVar, Dict, List, Optional, Union from typing_extensions import Annotated from revengai.models.function_matching_filters import FunctionMatchingFilters @@ -34,7 +34,8 @@ class FunctionMatchingRequest(BaseModel): results_per_function: Optional[Annotated[int, Field(le=50, strict=True, ge=1)]] = Field(default=1, description="Maximum number of matches to return per function, default is 1, max is 50") page: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=1, description="Page number for paginated results, default is 1 (first page)") page_size: Optional[Annotated[int, Field(le=1000, strict=True, ge=0)]] = Field(default=0, description="Number of functions to return per page, default is 0 (all functions), max is 1000") - __properties: ClassVar[List[str]] = ["model_id", "function_ids", "min_similarity", "filters", "results_per_function", "page", "page_size"] + no_cache: Optional[StrictBool] = Field(default=False, description="If set to true, forces the system to bypass any cached results and perform a fresh computation") + __properties: ClassVar[List[str]] = ["model_id", "function_ids", "min_similarity", "filters", "results_per_function", "page", "page_size", "no_cache"] model_config = ConfigDict( populate_by_name=True, @@ -101,7 +102,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "filters": FunctionMatchingFilters.from_dict(obj["filters"]) if obj.get("filters") is not None else None, "results_per_function": obj.get("results_per_function") if obj.get("results_per_function") is not None else 1, "page": obj.get("page") if obj.get("page") is not None else 1, - "page_size": obj.get("page_size") if obj.get("page_size") is not None else 0 + "page_size": obj.get("page_size") if obj.get("page_size") is not None else 0, + "no_cache": obj.get("no_cache") if obj.get("no_cache") is not None else False }) return _obj diff --git a/test/test_analysis_function_matching_request.py b/test/test_analysis_function_matching_request.py index ccc6169..93ca8fd 100644 --- a/test/test_analysis_function_matching_request.py +++ b/test/test_analysis_function_matching_request.py @@ -50,7 +50,8 @@ def make_instance(self, include_optional) -> AnalysisFunctionMatchingRequest: ], ), results_per_function = 1.0, page = 1.0, - page_size = 0.0 + page_size = 0.0, + no_cache = True ) else: return AnalysisFunctionMatchingRequest( diff --git a/test/test_auto_unstrip_request.py b/test/test_auto_unstrip_request.py index a4a1b0d..c23ab97 100644 --- a/test/test_auto_unstrip_request.py +++ b/test/test_auto_unstrip_request.py @@ -37,7 +37,8 @@ def make_instance(self, include_optional) -> AutoUnstripRequest: min_similarity = 0.0, apply = True, confidence_threshold = 0.0, - min_group_size = 1.0 + min_group_size = 1.0, + no_cache = True ) else: return AutoUnstripRequest( diff --git a/test/test_function_matching_request.py b/test/test_function_matching_request.py index 0513e8a..9809054 100644 --- a/test/test_function_matching_request.py +++ b/test/test_function_matching_request.py @@ -54,7 +54,8 @@ def make_instance(self, include_optional) -> FunctionMatchingRequest: ], ), results_per_function = 1.0, page = 1.0, - page_size = 0.0 + page_size = 0.0, + no_cache = True ) else: return FunctionMatchingRequest(