revengai 2.13.0__py3-none-any.whl → 2.14.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of revengai might be problematic. Click here for more details.

revengai/__init__.py CHANGED
@@ -13,7 +13,7 @@
13
13
  """ # noqa: E501
14
14
 
15
15
 
16
- __version__ = "v2.13.0"
16
+ __version__ = "v2.14.1"
17
17
 
18
18
  # Define package exports
19
19
  __all__ = [
revengai/api_client.py CHANGED
@@ -90,7 +90,7 @@ class ApiClient:
90
90
  self.default_headers[header_name] = header_value
91
91
  self.cookie = cookie
92
92
  # Set default User-Agent.
93
- self.user_agent = 'OpenAPI-Generator/v2.13.0/python'
93
+ self.user_agent = 'OpenAPI-Generator/v2.14.1/python'
94
94
  self.client_side_validation = configuration.client_side_validation
95
95
 
96
96
  def __enter__(self):
revengai/configuration.py CHANGED
@@ -529,8 +529,8 @@ conf = revengai.Configuration(
529
529
  return "Python SDK Debug Report:\n"\
530
530
  "OS: {env}\n"\
531
531
  "Python Version: {pyversion}\n"\
532
- "Version of the API: v2.13.0\n"\
533
- "SDK Package Version: v2.13.0".\
532
+ "Version of the API: v2.14.1\n"\
533
+ "SDK Package Version: v2.14.1".\
534
534
  format(env=sys.platform, pyversion=sys.version)
535
535
 
536
536
  def get_host_settings(self) -> List[HostSetting]:
@@ -32,8 +32,9 @@ class AnalysisFunctionMatchingRequest(BaseModel):
32
32
  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")
33
33
  page: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=1, description="Page number for paginated results, default is 1 (first page)")
34
34
  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")
35
+ status_only: Optional[StrictBool] = Field(default=False, description="If set to true, only returns the status of the matching operation without the actual results")
35
36
  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")
36
- __properties: ClassVar[List[str]] = ["min_similarity", "filters", "results_per_function", "page", "page_size", "no_cache"]
37
+ __properties: ClassVar[List[str]] = ["min_similarity", "filters", "results_per_function", "page", "page_size", "status_only", "no_cache"]
37
38
 
38
39
  model_config = ConfigDict(
39
40
  populate_by_name=True,
@@ -99,6 +100,7 @@ class AnalysisFunctionMatchingRequest(BaseModel):
99
100
  "results_per_function": obj.get("results_per_function") if obj.get("results_per_function") is not None else 1,
100
101
  "page": obj.get("page") if obj.get("page") is not None else 1,
101
102
  "page_size": obj.get("page_size") if obj.get("page_size") is not None else 0,
103
+ "status_only": obj.get("status_only") if obj.get("status_only") is not None else False,
102
104
  "no_cache": obj.get("no_cache") if obj.get("no_cache") is not None else False
103
105
  })
104
106
  return _obj
@@ -30,8 +30,9 @@ class AutoUnstripRequest(BaseModel):
30
30
  apply: Optional[StrictBool] = Field(default=False, description="Whether to apply the matched function names to the target binary, default is False")
31
31
  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")
32
32
  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")
33
+ status_only: Optional[StrictBool] = Field(default=False, description="If set to true, only returns the status of the auto-unstrip operation without the actual results")
33
34
  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")
34
- __properties: ClassVar[List[str]] = ["min_similarity", "apply", "confidence_threshold", "min_group_size", "no_cache"]
35
+ __properties: ClassVar[List[str]] = ["min_similarity", "apply", "confidence_threshold", "min_group_size", "status_only", "no_cache"]
35
36
 
36
37
  model_config = ConfigDict(
37
38
  populate_by_name=True,
@@ -88,6 +89,7 @@ class AutoUnstripRequest(BaseModel):
88
89
  "apply": obj.get("apply") if obj.get("apply") is not None else False,
89
90
  "confidence_threshold": obj.get("confidence_threshold") if obj.get("confidence_threshold") is not None else 90.0,
90
91
  "min_group_size": obj.get("min_group_size") if obj.get("min_group_size") is not None else 10,
92
+ "status_only": obj.get("status_only") if obj.get("status_only") is not None else False,
91
93
  "no_cache": obj.get("no_cache") if obj.get("no_cache") is not None else False
92
94
  })
93
95
  return _obj
@@ -32,7 +32,7 @@ class FunctionMatchingBatchResponse(BaseModel):
32
32
  error_message: Optional[StrictStr] = None
33
33
  current_page: Optional[StrictInt] = None
34
34
  total_pages: Optional[StrictInt] = None
35
- matches: List[FunctionMatchingResultWithBestMatch]
35
+ matches: Optional[List[FunctionMatchingResultWithBestMatch]] = None
36
36
  __properties: ClassVar[List[str]] = ["progress", "status", "total_time", "error_message", "current_page", "total_pages", "matches"]
37
37
 
38
38
  model_config = ConfigDict(
@@ -106,6 +106,11 @@ class FunctionMatchingBatchResponse(BaseModel):
106
106
  if self.total_pages is None and "total_pages" in self.model_fields_set:
107
107
  _dict['total_pages'] = None
108
108
 
109
+ # set to None if matches (nullable) is None
110
+ # and model_fields_set contains the field
111
+ if self.matches is None and "matches" in self.model_fields_set:
112
+ _dict['matches'] = None
113
+
109
114
  return _dict
110
115
 
111
116
  @classmethod
@@ -34,8 +34,9 @@ class FunctionMatchingRequest(BaseModel):
34
34
  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")
35
35
  page: Optional[Annotated[int, Field(strict=True, ge=1)]] = Field(default=1, description="Page number for paginated results, default is 1 (first page)")
36
36
  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")
37
+ status_only: Optional[StrictBool] = Field(default=False, description="If set to true, only returns the status of the matching operation without the actual results")
37
38
  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")
38
- __properties: ClassVar[List[str]] = ["model_id", "function_ids", "min_similarity", "filters", "results_per_function", "page", "page_size", "no_cache"]
39
+ __properties: ClassVar[List[str]] = ["model_id", "function_ids", "min_similarity", "filters", "results_per_function", "page", "page_size", "status_only", "no_cache"]
39
40
 
40
41
  model_config = ConfigDict(
41
42
  populate_by_name=True,
@@ -103,6 +104,7 @@ class FunctionMatchingRequest(BaseModel):
103
104
  "results_per_function": obj.get("results_per_function") if obj.get("results_per_function") is not None else 1,
104
105
  "page": obj.get("page") if obj.get("page") is not None else 1,
105
106
  "page_size": obj.get("page_size") if obj.get("page_size") is not None else 0,
107
+ "status_only": obj.get("status_only") if obj.get("status_only") is not None else False,
106
108
  "no_cache": obj.get("no_cache") if obj.get("no_cache") is not None else False
107
109
  })
108
110
  return _obj
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: revengai
3
- Version: 2.13.0
3
+ Version: 2.14.1
4
4
  Summary: RevEng.AI API
5
5
  Project-URL: Repository, https://github.com/RevEngAI/sdk-python
6
6
  License-Expression: MIT
@@ -1,7 +1,7 @@
1
- revengai/__init__.py,sha256=816KDAtzt1c5Y4sTYcuy_I3zIVnxgG663qHUayqWwaY,40887
2
- revengai/api_client.py,sha256=o45ERSRTGwOtviRrdsD3HcY8L7yaG6-XsP6YET5UJ90,27670
1
+ revengai/__init__.py,sha256=PmqejqihdDcHISV6CAXPHuJdU9Op-E4Ioc7NeIFBRY8,40887
2
+ revengai/api_client.py,sha256=y5APbZpHDiAcltsZQYklRcmQbZaqBj5lOvidMwQTOoI,27670
3
3
  revengai/api_response.py,sha256=eMxw1mpmJcoGZ3gs9z6jM4oYoZ10Gjk333s9sKxGv7s,652
4
- revengai/configuration.py,sha256=aBRe-UmGRxJ8jK1CLN9ZZX1RsZMcIhnA0rkIptAR_vw,18749
4
+ revengai/configuration.py,sha256=PjxcvRxvhc9H1qy3KZOVWYsK9HSMxIxdLy7ThyQbn2w,18749
5
5
  revengai/exceptions.py,sha256=IvdI9ZIZ9b2lSSKtIKMQDlG-5UPAedrjm3U4xfmGkso,6385
6
6
  revengai/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  revengai/rest.py,sha256=T6Q2dcazhntqm288H33BKC1hf8NVdvmQWgaymlJo158,9376
@@ -35,7 +35,7 @@ revengai/models/analysis_create_request.py,sha256=6hU94Fi47hrxXQ-wX1jRuDrDi1GQym
35
35
  revengai/models/analysis_create_response.py,sha256=aaO3-lJ65iBGe5lnyW8exHb9qByDaWfF2hOVKrWkN-I,2628
36
36
  revengai/models/analysis_detail_response.py,sha256=KPyzlSbu9TU7itVlhGusJVSszrZAkuC8dMg1welYZeM,4170
37
37
  revengai/models/analysis_function_mapping.py,sha256=_8LOSaBOgsFKLeqvoizbU2FSHtekA7aNrM7deIJyM4k,2886
38
- revengai/models/analysis_function_matching_request.py,sha256=w-BJaHtbNOoaWM1RbSaT2P24X8X6RLEtuqfcvO_i43Q,4610
38
+ revengai/models/analysis_function_matching_request.py,sha256=BROfA46VO5-KN9AKkYJGY4TuoZfP4qf87tEem_Xj1cA,4894
39
39
  revengai/models/analysis_functions.py,sha256=N1TKQuw33I9dw-i07kLus36k2bcAXQVm2oc1Ycfrgdw,3067
40
40
  revengai/models/analysis_record.py,sha256=DxnERhF-s5AilH804yKtMAOyXhhjWQsq0ned1ji5t5Q,5516
41
41
  revengai/models/analysis_scope.py,sha256=azpsUux2axe4QKwQ4FbW30HbazYYVFP-e68F9zp33-4,668
@@ -53,7 +53,7 @@ revengai/models/app_api_rest_v2_functions_types_function.py,sha256=t3BttHuPogip0
53
53
  revengai/models/app_services_binary_ann_schema_tag_item.py,sha256=m25sIz8KEsPES0XGjmOZFhmLNLmB-jsakfRUpRfiMks,2977
54
54
  revengai/models/app_services_dynamic_execution_schemas_dynamic_execution_status.py,sha256=9e3LDnw0iNCbowQPFTkNyIqkzsCQyJLZrx6tqRska6o,2562
55
55
  revengai/models/argument.py,sha256=QmWpJiohyzTVC1GLHg1IlgM5QyONnBF6FGK_mOYQL_Y,3148
56
- revengai/models/auto_unstrip_request.py,sha256=pS7ZtnDbYywMrKZVDF3VQpT7oyXmn5dmmwpGCaVxG74,4030
56
+ revengai/models/auto_unstrip_request.py,sha256=DtTrmudKBYGdIEbv6-SWUUGOna4_JmRV8JkI_V_q0jI,4318
57
57
  revengai/models/auto_unstrip_response.py,sha256=g37ANqNsVIM_BCb-kHNDak6E-8fNVUyPOh03YFjm2O8,4737
58
58
  revengai/models/base_response.py,sha256=U1Hwv1TXztjpxHxXGwGk46egAYs49jfzEfr1nTajMjg,4526
59
59
  revengai/models/base_response_analysis_create_response.py,sha256=bwA1vMqKgLUDcElBvuvTH2jo8tvx0mjfbMOnoniswbE,4682
@@ -209,9 +209,9 @@ revengai/models/function_info_output.py,sha256=iIxkZ6_KFSoz0NhbBXyNi7knPvWcIp-hm
209
209
  revengai/models/function_local_variable_response.py,sha256=llv5alvfVXqxE3Cs6vt7qnQNyfwj4PBoxq_Sim65jic,2733
210
210
  revengai/models/function_mapping.py,sha256=EBO_jGfEjK7ihIdx-bWSHAT9EozB_S9JDeCLL0dAQJM,2923
211
211
  revengai/models/function_mapping_full.py,sha256=dax345vnk25zSPVVpAmCFrrOWXzFXW6OnhSs9zVIKpI,11948
212
- revengai/models/function_matching_batch_response.py,sha256=oBglZULIjMvbrlzjymWNKSNERVzftWH7hHBRC3uMoP0,4952
212
+ revengai/models/function_matching_batch_response.py,sha256=GC_Xhssh7nO1RtouaKpdoyMCuYj5AOehVcGVTRQD5Qw,5180
213
213
  revengai/models/function_matching_filters.py,sha256=O5F1PIcPhbumH8z-4KbG7JNoUsx_H3wBZQU9kCZ_boI,3710
214
- revengai/models/function_matching_request.py,sha256=6xIis7eqfUmXLUbZykrBHZW9eKhEAHUOCeXYv-rGKww,4973
214
+ revengai/models/function_matching_request.py,sha256=u8K_4LHhkSASmfM07aACCH41sZVk4T-AQbMwUSQ2bHQ,5257
215
215
  revengai/models/function_matching_result_with_best_match.py,sha256=lPuw9GkqzMvPguZRsct9mUZxdTu4swb8i5qwvge9wZM,4114
216
216
  revengai/models/function_name_history.py,sha256=VnzWZ5rh52qunP6dYwGECaK4TSTd-SgvXuuNB4zjEjE,3495
217
217
  revengai/models/function_param_response.py,sha256=hYsmmzxKwYuCh9y_khNvJSinRpvjDXcpi4fJ7xF-F3k,2697
@@ -319,7 +319,7 @@ revengai/models/vulnerabilities.py,sha256=9t6uoZd3svWyfcZJjmj6zP731Dp47Apb25y8Qt
319
319
  revengai/models/vulnerability.py,sha256=P7rAOAYU5JLLpcRr824-YJgZba5kPb_J9ALV3tSNfLQ,3688
320
320
  revengai/models/vulnerability_type.py,sha256=SyOgfMmELYYc_H84oPkikBpjwngtG5Qw9Q_86a2TPr8,866
321
321
  revengai/models/workspace.py,sha256=chjU62GFvByEmaNd6luMNQVQLP3wlPx1zJgGJ_yyMLA,676
322
- revengai-2.13.0.dist-info/METADATA,sha256=wba-a_L_5wowcO4OwXSZIGeRZeUWoxS5sU5oYT6L3pY,39255
323
- revengai-2.13.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
324
- revengai-2.13.0.dist-info/licenses/LICENSE.md,sha256=z1S-x9w52sZDqbFdJi0kL5-FLP5CR2aQA0kW8m6scaw,1052
325
- revengai-2.13.0.dist-info/RECORD,,
322
+ revengai-2.14.1.dist-info/METADATA,sha256=MKAgmKe3OpY9UlhfRUtk7hbYMpGAFkU80Cbz0McScIw,39255
323
+ revengai-2.14.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
324
+ revengai-2.14.1.dist-info/licenses/LICENSE.md,sha256=z1S-x9w52sZDqbFdJi0kL5-FLP5CR2aQA0kW8m6scaw,1052
325
+ revengai-2.14.1.dist-info/RECORD,,