From 371323a8903460e634b7baa51a7328dff1e933a5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 3 Jul 2026 07:14:07 +0000 Subject: [PATCH] Update SDK to version v3.102.0 - Generated from OpenAPI spec version v3.102.0 - Auto-generated by GitHub Actions --- .sdk-version | 2 +- docs/AnalysisBasicInfoOutputBody.md | 2 +- docs/DataTypesEntry.md | 1 + docs/FunctionDetailsOutputBody.md | 1 + docs/StartMatchingForFunctionsInputBody.md | 1 + revengai/__init__.py | 2 +- revengai/api_client.py | 2 +- revengai/configuration.py | 4 ++-- revengai/models/analysis_basic_info_output_body.py | 2 +- revengai/models/data_types_entry.py | 6 ++++-- revengai/models/function_details_output_body.py | 4 +++- .../models/start_matching_for_functions_input_body.py | 8 +++++--- 12 files changed, 22 insertions(+), 13 deletions(-) diff --git a/.sdk-version b/.sdk-version index da7a7c5..85a92c4 100644 --- a/.sdk-version +++ b/.sdk-version @@ -1 +1 @@ -v3.101.0 +v3.102.0 diff --git a/docs/AnalysisBasicInfoOutputBody.md b/docs/AnalysisBasicInfoOutputBody.md index 70bb2e1..f2015ff 100644 --- a/docs/AnalysisBasicInfoOutputBody.md +++ b/docs/AnalysisBasicInfoOutputBody.md @@ -10,7 +10,7 @@ Name | Type | Description | Notes **binary_id** | **int** | Binary ID | **binary_name** | **str** | Binary filename | **binary_size** | **int** | Binary size in bytes | -**binary_uuid** | **str** | UUID of the binary, omitted when not set | [optional] +**binary_uuid** | **str** | UUID of the binary, omitted when not set | **creation** | **datetime** | When the binary was uploaded | **debug** | **bool** | True when the binary was analysed with debug symbols | **function_count** | **int** | Number of functions in the binary | diff --git a/docs/DataTypesEntry.md b/docs/DataTypesEntry.md index a87ea67..3774cbc 100644 --- a/docs/DataTypesEntry.md +++ b/docs/DataTypesEntry.md @@ -6,6 +6,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **data_types** | [**FunctionInfo**](FunctionInfo.md) | | [optional] +**data_types_version** | **int** | Current version of the function data types. Pass this back on the next write to satisfy the CAS check. | **function_id** | **int** | | ## Example diff --git a/docs/FunctionDetailsOutputBody.md b/docs/FunctionDetailsOutputBody.md index 1f97d61..92875b6 100644 --- a/docs/FunctionDetailsOutputBody.md +++ b/docs/FunctionDetailsOutputBody.md @@ -5,6 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**analysis_id** | **int** | | **binary_id** | **int** | | **creation** | **datetime** | | **debug** | **bool** | | diff --git a/docs/StartMatchingForFunctionsInputBody.md b/docs/StartMatchingForFunctionsInputBody.md index b8eaebd..823bfbd 100644 --- a/docs/StartMatchingForFunctionsInputBody.md +++ b/docs/StartMatchingForFunctionsInputBody.md @@ -9,6 +9,7 @@ Name | Type | Description | Notes **function_ids** | **List[int]** | Source function IDs to match against the rest of the corpus. | **min_similarity** | **float** | Similarity floor as a percentage. Defaults to 90. | [optional] **results_per_function** | **int** | Max matches returned per source function. Defaults to 1. | [optional] +**use_canonical_names** | **bool** | Collapse near-duplicate candidate names into canonical buckets and return per-name confidences (the response 'confidences' array). Adds a canonicalisation step; defaults to false. | [optional] ## Example diff --git a/revengai/__init__.py b/revengai/__init__.py index 3d94479..e43358f 100644 --- a/revengai/__init__.py +++ b/revengai/__init__.py @@ -13,7 +13,7 @@ """ # noqa: E501 -__version__ = "v3.101.0" +__version__ = "v3.102.0" # Define package exports __all__ = [ diff --git a/revengai/api_client.py b/revengai/api_client.py index 68b0163..e6f03e0 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/v3.101.0/python' + self.user_agent = 'OpenAPI-Generator/v3.102.0/python' self.client_side_validation = configuration.client_side_validation def __enter__(self): diff --git a/revengai/configuration.py b/revengai/configuration.py index bff3ca4..9618957 100644 --- a/revengai/configuration.py +++ b/revengai/configuration.py @@ -541,8 +541,8 @@ def to_debug_report(self) -> str: return "Python SDK Debug Report:\n"\ "OS: {env}\n"\ "Python Version: {pyversion}\n"\ - "Version of the API: v3.101.0\n"\ - "SDK Package Version: v3.101.0".\ + "Version of the API: v3.102.0\n"\ + "SDK Package Version: v3.102.0".\ format(env=sys.platform, pyversion=sys.version) def get_host_settings(self) -> List[HostSetting]: diff --git a/revengai/models/analysis_basic_info_output_body.py b/revengai/models/analysis_basic_info_output_body.py index 1c8c38b..b130e01 100644 --- a/revengai/models/analysis_basic_info_output_body.py +++ b/revengai/models/analysis_basic_info_output_body.py @@ -31,7 +31,7 @@ class AnalysisBasicInfoOutputBody(BaseModel): binary_id: StrictInt = Field(description="Binary ID") binary_name: StrictStr = Field(description="Binary filename") binary_size: StrictInt = Field(description="Binary size in bytes") - binary_uuid: Optional[StrictStr] = Field(default=None, description="UUID of the binary, omitted when not set") + binary_uuid: StrictStr = Field(description="UUID of the binary, omitted when not set") creation: datetime = Field(description="When the binary was uploaded") debug: StrictBool = Field(description="True when the binary was analysed with debug symbols") function_count: StrictInt = Field(description="Number of functions in the binary") diff --git a/revengai/models/data_types_entry.py b/revengai/models/data_types_entry.py index aeb1336..ac7cf46 100644 --- a/revengai/models/data_types_entry.py +++ b/revengai/models/data_types_entry.py @@ -16,7 +16,7 @@ import re # noqa: F401 import json -from pydantic import BaseModel, ConfigDict, StrictInt +from pydantic import BaseModel, ConfigDict, Field, StrictInt from typing import Any, ClassVar, Dict, List, Optional from revengai.models.function_info import FunctionInfo from typing import Optional, Set @@ -27,9 +27,10 @@ class DataTypesEntry(BaseModel): DataTypesEntry """ # noqa: E501 data_types: Optional[FunctionInfo] = None + data_types_version: StrictInt = Field(description="Current version of the function data types. Pass this back on the next write to satisfy the CAS check.") function_id: StrictInt additional_properties: Dict[str, Any] = {} - __properties: ClassVar[List[str]] = ["data_types", "function_id"] + __properties: ClassVar[List[str]] = ["data_types", "data_types_version", "function_id"] model_config = ConfigDict( populate_by_name=True, @@ -93,6 +94,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: _obj = cls.model_validate({ "data_types": FunctionInfo.from_dict(obj["data_types"]) if obj.get("data_types") is not None else None, + "data_types_version": obj.get("data_types_version"), "function_id": obj.get("function_id") }) # store additional fields in additional_properties diff --git a/revengai/models/function_details_output_body.py b/revengai/models/function_details_output_body.py index e9f78e3..2a56721 100644 --- a/revengai/models/function_details_output_body.py +++ b/revengai/models/function_details_output_body.py @@ -26,6 +26,7 @@ class FunctionDetailsOutputBody(BaseModel): """ FunctionDetailsOutputBody """ # noqa: E501 + analysis_id: StrictInt binary_id: StrictInt creation: datetime debug: StrictBool @@ -36,7 +37,7 @@ class FunctionDetailsOutputBody(BaseModel): mangled_name: Optional[StrictStr] = None source_function_id: Optional[StrictInt] = None additional_properties: Dict[str, Any] = {} - __properties: ClassVar[List[str]] = ["binary_id", "creation", "debug", "function_id", "function_name", "function_size", "function_vaddr", "mangled_name", "source_function_id"] + __properties: ClassVar[List[str]] = ["analysis_id", "binary_id", "creation", "debug", "function_id", "function_name", "function_size", "function_vaddr", "mangled_name", "source_function_id"] model_config = ConfigDict( populate_by_name=True, @@ -96,6 +97,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: return cls.model_validate(obj) _obj = cls.model_validate({ + "analysis_id": obj.get("analysis_id"), "binary_id": obj.get("binary_id"), "creation": obj.get("creation"), "debug": obj.get("debug"), diff --git a/revengai/models/start_matching_for_functions_input_body.py b/revengai/models/start_matching_for_functions_input_body.py index 9fc1936..20aaaff 100644 --- a/revengai/models/start_matching_for_functions_input_body.py +++ b/revengai/models/start_matching_for_functions_input_body.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.match_filters import MatchFilters @@ -31,8 +31,9 @@ class StartMatchingForFunctionsInputBody(BaseModel): function_ids: Optional[Annotated[List[StrictInt], Field(min_length=1)]] = Field(description="Source function IDs to match against the rest of the corpus.") min_similarity: Optional[Union[Annotated[float, Field(le=100, strict=True, ge=0)], Annotated[int, Field(le=100, strict=True, ge=0)]]] = Field(default=None, description="Similarity floor as a percentage. Defaults to 90.") results_per_function: Optional[Annotated[int, Field(le=30, strict=True, ge=1)]] = Field(default=None, description="Max matches returned per source function. Defaults to 1.") + use_canonical_names: Optional[StrictBool] = Field(default=None, description="Collapse near-duplicate candidate names into canonical buckets and return per-name confidences (the response 'confidences' array). Adds a canonicalisation step; defaults to false.") additional_properties: Dict[str, Any] = {} - __properties: ClassVar[List[str]] = ["filters", "function_ids", "min_similarity", "results_per_function"] + __properties: ClassVar[List[str]] = ["filters", "function_ids", "min_similarity", "results_per_function", "use_canonical_names"] model_config = ConfigDict( populate_by_name=True, @@ -103,7 +104,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: "filters": MatchFilters.from_dict(obj["filters"]) if obj.get("filters") is not None else None, "function_ids": obj.get("function_ids"), "min_similarity": obj.get("min_similarity"), - "results_per_function": obj.get("results_per_function") + "results_per_function": obj.get("results_per_function"), + "use_canonical_names": obj.get("use_canonical_names") }) # store additional fields in additional_properties for _key in obj.keys():