regscale-cli 6.19.1.0__py3-none-any.whl → 6.19.2.0__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 regscale-cli might be problematic. Click here for more details.

@@ -32,6 +32,8 @@ T = TypeVar("T", bound="RegScaleModel")
32
32
 
33
33
  logger = logging.getLogger("regscale")
34
34
 
35
+ IS_DISABLE_CACHE = False # flag to disable caching
36
+
35
37
 
36
38
  class RegScaleModel(BaseModel, ABC):
37
39
  """Mixin class for RegScale Models to add functionality to interact with RegScale API"""
@@ -52,8 +54,6 @@ class RegScaleModel(BaseModel, ABC):
52
54
  _exclude_graphql_fields: ClassVar[List[str]] = ["extra_data", "tenantsId"]
53
55
  _original_data: Optional[Dict[str, Any]] = None
54
56
 
55
- # Caching
56
- _disable_cache: bool = False # flag to disable caching
57
57
  _object_cache: ClassVar[Cache] = Cache(maxsize=100000)
58
58
  _parent_cache: ClassVar[Cache] = Cache(maxsize=50000)
59
59
  _lock_registry: ClassVar[ThreadSafeDict] = ThreadSafeDict()
@@ -78,11 +78,12 @@ class RegScaleModel(BaseModel, ABC):
78
78
  :rtype: None
79
79
  """
80
80
  try:
81
+ global IS_DISABLE_CACHE
81
82
  super().__init__(*args, **data)
82
83
  # Capture initial state after initialization
83
84
  self._original_data = self.dict(exclude_unset=True)
84
- self._disable_cache = self._fetch_disabled_cache_setting()
85
- if self._disable_cache:
85
+ IS_DISABLE_CACHE = self._fetch_disabled_cache_setting()
86
+ if IS_DISABLE_CACHE:
86
87
  logger.debug("cache is disabled")
87
88
  except Exception as e:
88
89
  logger.error(f"Error creating {self.__class__.__name__}: {e} {data}", exc_info=True)
@@ -107,8 +108,9 @@ class RegScaleModel(BaseModel, ABC):
107
108
  :return: True if caching is disabled, False otherwise
108
109
  :rtype: bool
109
110
  """
110
- cls._disable_cache = True
111
- return cls._disable_cache
111
+ global IS_DISABLE_CACHE
112
+ IS_DISABLE_CACHE = True
113
+ return IS_DISABLE_CACHE
112
114
 
113
115
  @classmethod
114
116
  def enable_cache(cls) -> bool:
@@ -118,8 +120,9 @@ class RegScaleModel(BaseModel, ABC):
118
120
  :return: True if caching is enabled, False otherwise
119
121
  :rtype: bool
120
122
  """
121
- cls._disable_cache = False
122
- return cls._disable_cache
123
+ global IS_DISABLE_CACHE
124
+ IS_DISABLE_CACHE = False
125
+ return IS_DISABLE_CACHE
123
126
 
124
127
  @classmethod
125
128
  def _get_api_handler(cls) -> APIHandler:
@@ -207,7 +210,7 @@ class RegScaleModel(BaseModel, ABC):
207
210
  :return: The cached object if found, None otherwise
208
211
  :rtype: Optional[T]
209
212
  """
210
- if cls._disable_cache:
213
+ if IS_DISABLE_CACHE:
211
214
  return None
212
215
  with cls._get_lock(cache_key):
213
216
  return cls._object_cache.get(cache_key)
@@ -221,7 +224,7 @@ class RegScaleModel(BaseModel, ABC):
221
224
  :return: None
222
225
  :rtype: None
223
226
  """
224
- if cls._disable_cache:
227
+ if IS_DISABLE_CACHE:
225
228
  return
226
229
  try:
227
230
  if not obj:
@@ -271,7 +274,7 @@ class RegScaleModel(BaseModel, ABC):
271
274
  :return: None
272
275
  :rtype: None
273
276
  """
274
- if cls._disable_cache:
277
+ if IS_DISABLE_CACHE:
275
278
  return
276
279
  parent_id = getattr(obj, cls._parent_id_field, None)
277
280
  parent_module = getattr(obj, "parentModule", getattr(obj, "parent_module", ""))
@@ -296,7 +299,7 @@ class RegScaleModel(BaseModel, ABC):
296
299
  :return: None
297
300
  :rtype: None
298
301
  """
299
- if cls._disable_cache:
302
+ if IS_DISABLE_CACHE:
300
303
  return
301
304
  with cls._get_lock(cache_key):
302
305
  for obj in objects:
@@ -311,8 +314,6 @@ class RegScaleModel(BaseModel, ABC):
311
314
  :return: None
312
315
  :rtype: None
313
316
  """
314
- if cls._disable_cache:
315
- return
316
317
  cls._object_cache.clear()
317
318
 
318
319
  @classmethod
@@ -324,7 +325,7 @@ class RegScaleModel(BaseModel, ABC):
324
325
  :return: None
325
326
  :rtype: None
326
327
  """
327
- if cls._disable_cache:
328
+ if IS_DISABLE_CACHE:
328
329
  return
329
330
  cache_key = cls._get_cache_key(obj)
330
331
  with cls._get_lock(cache_key):
@@ -27,6 +27,7 @@ class PaginatedGraphQLClient:
27
27
  headers: Optional[Dict[str, str]] = None,
28
28
  logging_level: str = logging.CRITICAL,
29
29
  ) -> None:
30
+ from regscale.integrations.variables import ScannerVariables
30
31
  from gql import gql, Client # Optimize import performance
31
32
  from gql.transport.requests import RequestsHTTPTransport
32
33
  from gql.transport.requests import log as requests_logger
@@ -35,7 +36,7 @@ class PaginatedGraphQLClient:
35
36
  self.endpoint = endpoint
36
37
  self.query = gql(query)
37
38
  self.headers = headers or {} # Ensure headers are a dictionary
38
- self.transport = RequestsHTTPTransport(url=endpoint, headers=self.headers)
39
+ self.transport = RequestsHTTPTransport(url=endpoint, headers=self.headers, verify=ScannerVariables.sslVerify)
39
40
  self.client = Client(transport=self.transport)
40
41
  self.job_progress = create_progress_object()
41
42
  requests_logger.setLevel(level=self.log_level)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: regscale-cli
3
- Version: 6.19.1.0
3
+ Version: 6.19.2.0
4
4
  Summary: Command Line Interface (CLI) for bulk processing/loading data into RegScale
5
5
  Home-page: https://github.com/RegScale/regscale-cli
6
6
  Author: Travis Howerton
@@ -22,10 +22,10 @@ Requires-Dist: boto3 ==1.35.10
22
22
  Requires-Dist: botocore ==1.35.10
23
23
  Requires-Dist: bs4
24
24
  Requires-Dist: cacheout
25
- Requires-Dist: click ==8.1.3
25
+ Requires-Dist: click >=8.1.3
26
26
  Requires-Dist: colorama ==0.4.5
27
27
  Requires-Dist: crowdstrike-falconpy ==1.4.5
28
- Requires-Dist: cryptography >=43.0.1
28
+ Requires-Dist: cryptography >=44.0.1
29
29
  Requires-Dist: distro ==1.8.0
30
30
  Requires-Dist: docx ==0.2.4
31
31
  Requires-Dist: filelock ~=3.13.1
@@ -43,16 +43,16 @@ Requires-Dist: markdown
43
43
  Requires-Dist: matplotlib
44
44
  Requires-Dist: msal ~=1.30.0
45
45
  Requires-Dist: nessus-file-reader
46
- Requires-Dist: numpy >=2.0.0
46
+ Requires-Dist: numpy ~=2.0.0
47
47
  Requires-Dist: openpyxl
48
48
  Requires-Dist: packaging ~=23.1
49
49
  Requires-Dist: pandas
50
50
  Requires-Dist: pathlib ~=1.0.1
51
51
  Requires-Dist: pdfplumber ==0.7.6
52
52
  Requires-Dist: pre-commit
53
- Requires-Dist: psutil ==5.9.6
53
+ Requires-Dist: psutil ~=6.1.0
54
54
  Requires-Dist: pyTenable
55
- Requires-Dist: pydantic ~=2.9.2
55
+ Requires-Dist: pydantic ~=2.11.0
56
56
  Requires-Dist: pypandoc
57
57
  Requires-Dist: pypandoc-binary
58
58
  Requires-Dist: pytest
@@ -84,10 +84,10 @@ Requires-Dist: boto3 ==1.35.10 ; extra == 'airflow'
84
84
  Requires-Dist: botocore ==1.35.10 ; extra == 'airflow'
85
85
  Requires-Dist: bs4 ; extra == 'airflow'
86
86
  Requires-Dist: cacheout ; extra == 'airflow'
87
- Requires-Dist: click ==8.1.3 ; extra == 'airflow'
87
+ Requires-Dist: click >=8.1.3 ; extra == 'airflow'
88
88
  Requires-Dist: colorama ==0.4.5 ; extra == 'airflow'
89
89
  Requires-Dist: crowdstrike-falconpy ==1.4.5 ; extra == 'airflow'
90
- Requires-Dist: cryptography >=43.0.1 ; extra == 'airflow'
90
+ Requires-Dist: cryptography >=44.0.1 ; extra == 'airflow'
91
91
  Requires-Dist: distro ==1.8.0 ; extra == 'airflow'
92
92
  Requires-Dist: docx ==0.2.4 ; extra == 'airflow'
93
93
  Requires-Dist: filelock ~=3.13.1 ; extra == 'airflow'
@@ -109,17 +109,17 @@ Requires-Dist: matplotlib ; extra == 'airflow'
109
109
  Requires-Dist: msal ~=1.30.0 ; extra == 'airflow'
110
110
  Requires-Dist: nessus-file-reader ; extra == 'airflow'
111
111
  Requires-Dist: networkx ; extra == 'airflow'
112
- Requires-Dist: numpy >=2.0.0 ; extra == 'airflow'
112
+ Requires-Dist: numpy ~=2.0.0 ; extra == 'airflow'
113
113
  Requires-Dist: openpyxl ; extra == 'airflow'
114
114
  Requires-Dist: packaging ~=23.1 ; extra == 'airflow'
115
115
  Requires-Dist: pandas ; extra == 'airflow'
116
116
  Requires-Dist: pathlib ~=1.0.1 ; extra == 'airflow'
117
117
  Requires-Dist: pdfplumber ==0.7.6 ; extra == 'airflow'
118
118
  Requires-Dist: pre-commit ; extra == 'airflow'
119
- Requires-Dist: psutil ==5.9.6 ; extra == 'airflow'
119
+ Requires-Dist: psutil ~=6.1.0 ; extra == 'airflow'
120
120
  Requires-Dist: psycopg2-binary ; extra == 'airflow'
121
121
  Requires-Dist: pyTenable ; extra == 'airflow'
122
- Requires-Dist: pydantic ~=2.9.2 ; extra == 'airflow'
122
+ Requires-Dist: pydantic ~=2.11.0 ; extra == 'airflow'
123
123
  Requires-Dist: pypandoc ; extra == 'airflow'
124
124
  Requires-Dist: pypandoc-binary ; extra == 'airflow'
125
125
  Requires-Dist: pytest ; extra == 'airflow'
@@ -153,10 +153,10 @@ Requires-Dist: boto3 ==1.35.10 ; extra == 'airflow-azure'
153
153
  Requires-Dist: botocore ==1.35.10 ; extra == 'airflow-azure'
154
154
  Requires-Dist: bs4 ; extra == 'airflow-azure'
155
155
  Requires-Dist: cacheout ; extra == 'airflow-azure'
156
- Requires-Dist: click ==8.1.3 ; extra == 'airflow-azure'
156
+ Requires-Dist: click >=8.1.3 ; extra == 'airflow-azure'
157
157
  Requires-Dist: colorama ==0.4.5 ; extra == 'airflow-azure'
158
158
  Requires-Dist: crowdstrike-falconpy ==1.4.5 ; extra == 'airflow-azure'
159
- Requires-Dist: cryptography >=43.0.1 ; extra == 'airflow-azure'
159
+ Requires-Dist: cryptography >=44.0.1 ; extra == 'airflow-azure'
160
160
  Requires-Dist: distro ==1.8.0 ; extra == 'airflow-azure'
161
161
  Requires-Dist: docx ==0.2.4 ; extra == 'airflow-azure'
162
162
  Requires-Dist: filelock ~=3.13.1 ; extra == 'airflow-azure'
@@ -178,7 +178,7 @@ Requires-Dist: matplotlib ; extra == 'airflow-azure'
178
178
  Requires-Dist: msal ~=1.30.0 ; extra == 'airflow-azure'
179
179
  Requires-Dist: nessus-file-reader ; extra == 'airflow-azure'
180
180
  Requires-Dist: networkx ; extra == 'airflow-azure'
181
- Requires-Dist: numpy >=2.0.0 ; extra == 'airflow-azure'
181
+ Requires-Dist: numpy ~=2.0.0 ; extra == 'airflow-azure'
182
182
  Requires-Dist: openpyxl ; extra == 'airflow-azure'
183
183
  Requires-Dist: packaging ~=23.1 ; extra == 'airflow-azure'
184
184
  Requires-Dist: pandas ; extra == 'airflow-azure'
@@ -186,10 +186,10 @@ Requires-Dist: pathlib ~=1.0.1 ; extra == 'airflow-azure'
186
186
  Requires-Dist: pdfplumber ==0.7.6 ; extra == 'airflow-azure'
187
187
  Requires-Dist: pendulum ==2.1.2 ; extra == 'airflow-azure'
188
188
  Requires-Dist: pre-commit ; extra == 'airflow-azure'
189
- Requires-Dist: psutil ==5.9.6 ; extra == 'airflow-azure'
189
+ Requires-Dist: psutil ~=6.1.0 ; extra == 'airflow-azure'
190
190
  Requires-Dist: psycopg2-binary ; extra == 'airflow-azure'
191
191
  Requires-Dist: pyTenable ; extra == 'airflow-azure'
192
- Requires-Dist: pydantic ~=2.9.2 ; extra == 'airflow-azure'
192
+ Requires-Dist: pydantic ~=2.11.0 ; extra == 'airflow-azure'
193
193
  Requires-Dist: pypandoc ; extra == 'airflow-azure'
194
194
  Requires-Dist: pypandoc-binary ; extra == 'airflow-azure'
195
195
  Requires-Dist: pytest ; extra == 'airflow-azure'
@@ -222,10 +222,10 @@ Requires-Dist: boto3 ==1.35.10 ; extra == 'airflow-sqlserver'
222
222
  Requires-Dist: botocore ==1.35.10 ; extra == 'airflow-sqlserver'
223
223
  Requires-Dist: bs4 ; extra == 'airflow-sqlserver'
224
224
  Requires-Dist: cacheout ; extra == 'airflow-sqlserver'
225
- Requires-Dist: click ==8.1.3 ; extra == 'airflow-sqlserver'
225
+ Requires-Dist: click >=8.1.3 ; extra == 'airflow-sqlserver'
226
226
  Requires-Dist: colorama ==0.4.5 ; extra == 'airflow-sqlserver'
227
227
  Requires-Dist: crowdstrike-falconpy ==1.4.5 ; extra == 'airflow-sqlserver'
228
- Requires-Dist: cryptography >=43.0.1 ; extra == 'airflow-sqlserver'
228
+ Requires-Dist: cryptography >=44.0.1 ; extra == 'airflow-sqlserver'
229
229
  Requires-Dist: distro ==1.8.0 ; extra == 'airflow-sqlserver'
230
230
  Requires-Dist: docx ==0.2.4 ; extra == 'airflow-sqlserver'
231
231
  Requires-Dist: filelock ~=3.13.1 ; extra == 'airflow-sqlserver'
@@ -247,17 +247,17 @@ Requires-Dist: matplotlib ; extra == 'airflow-sqlserver'
247
247
  Requires-Dist: msal ~=1.30.0 ; extra == 'airflow-sqlserver'
248
248
  Requires-Dist: nessus-file-reader ; extra == 'airflow-sqlserver'
249
249
  Requires-Dist: networkx ; extra == 'airflow-sqlserver'
250
- Requires-Dist: numpy >=2.0.0 ; extra == 'airflow-sqlserver'
250
+ Requires-Dist: numpy ~=2.0.0 ; extra == 'airflow-sqlserver'
251
251
  Requires-Dist: openpyxl ; extra == 'airflow-sqlserver'
252
252
  Requires-Dist: packaging ~=23.1 ; extra == 'airflow-sqlserver'
253
253
  Requires-Dist: pandas ; extra == 'airflow-sqlserver'
254
254
  Requires-Dist: pathlib ~=1.0.1 ; extra == 'airflow-sqlserver'
255
255
  Requires-Dist: pdfplumber ==0.7.6 ; extra == 'airflow-sqlserver'
256
256
  Requires-Dist: pre-commit ; extra == 'airflow-sqlserver'
257
- Requires-Dist: psutil ==5.9.6 ; extra == 'airflow-sqlserver'
257
+ Requires-Dist: psutil ~=6.1.0 ; extra == 'airflow-sqlserver'
258
258
  Requires-Dist: psycopg2-binary ; extra == 'airflow-sqlserver'
259
259
  Requires-Dist: pyTenable ; extra == 'airflow-sqlserver'
260
- Requires-Dist: pydantic ~=2.9.2 ; extra == 'airflow-sqlserver'
260
+ Requires-Dist: pydantic ~=2.11.0 ; extra == 'airflow-sqlserver'
261
261
  Requires-Dist: pymssql ; extra == 'airflow-sqlserver'
262
262
  Requires-Dist: pyodbc ; extra == 'airflow-sqlserver'
263
263
  Requires-Dist: pypandoc ; extra == 'airflow-sqlserver'
@@ -292,10 +292,10 @@ Requires-Dist: boto3 ==1.35.10 ; extra == 'all'
292
292
  Requires-Dist: botocore ==1.35.10 ; extra == 'all'
293
293
  Requires-Dist: bs4 ; extra == 'all'
294
294
  Requires-Dist: cacheout ; extra == 'all'
295
- Requires-Dist: click ==8.1.3 ; extra == 'all'
295
+ Requires-Dist: click >=8.1.3 ; extra == 'all'
296
296
  Requires-Dist: colorama ==0.4.5 ; extra == 'all'
297
297
  Requires-Dist: crowdstrike-falconpy ==1.4.5 ; extra == 'all'
298
- Requires-Dist: cryptography >=43.0.1 ; extra == 'all'
298
+ Requires-Dist: cryptography >=44.0.1 ; extra == 'all'
299
299
  Requires-Dist: distro ==1.8.0 ; extra == 'all'
300
300
  Requires-Dist: docx ==0.2.4 ; extra == 'all'
301
301
  Requires-Dist: filelock ~=3.13.1 ; extra == 'all'
@@ -321,17 +321,17 @@ Requires-Dist: matplotlib ; extra == 'all'
321
321
  Requires-Dist: msal ~=1.30.0 ; extra == 'all'
322
322
  Requires-Dist: nessus-file-reader ; extra == 'all'
323
323
  Requires-Dist: networkx ; extra == 'all'
324
- Requires-Dist: numpy >=2.0.0 ; extra == 'all'
324
+ Requires-Dist: numpy ~=2.0.0 ; extra == 'all'
325
325
  Requires-Dist: openpyxl ; extra == 'all'
326
326
  Requires-Dist: packaging ~=23.1 ; extra == 'all'
327
327
  Requires-Dist: pandas ; extra == 'all'
328
328
  Requires-Dist: pathlib ~=1.0.1 ; extra == 'all'
329
329
  Requires-Dist: pdfplumber ==0.7.6 ; extra == 'all'
330
330
  Requires-Dist: pre-commit ; extra == 'all'
331
- Requires-Dist: psutil ==5.9.6 ; extra == 'all'
331
+ Requires-Dist: psutil ~=6.1.0 ; extra == 'all'
332
332
  Requires-Dist: psycopg2-binary ; extra == 'all'
333
333
  Requires-Dist: pyTenable ; extra == 'all'
334
- Requires-Dist: pydantic ~=2.9.2 ; extra == 'all'
334
+ Requires-Dist: pydantic ~=2.11.0 ; extra == 'all'
335
335
  Requires-Dist: pypandoc ; extra == 'all'
336
336
  Requires-Dist: pypandoc-binary ; extra == 'all'
337
337
  Requires-Dist: pytest ; extra == 'all'
@@ -362,10 +362,10 @@ Requires-Dist: boto3 ==1.35.10 ; extra == 'ansible'
362
362
  Requires-Dist: botocore ==1.35.10 ; extra == 'ansible'
363
363
  Requires-Dist: bs4 ; extra == 'ansible'
364
364
  Requires-Dist: cacheout ; extra == 'ansible'
365
- Requires-Dist: click ==8.1.3 ; extra == 'ansible'
365
+ Requires-Dist: click >=8.1.3 ; extra == 'ansible'
366
366
  Requires-Dist: colorama ==0.4.5 ; extra == 'ansible'
367
367
  Requires-Dist: crowdstrike-falconpy ==1.4.5 ; extra == 'ansible'
368
- Requires-Dist: cryptography >=43.0.1 ; extra == 'ansible'
368
+ Requires-Dist: cryptography >=44.0.1 ; extra == 'ansible'
369
369
  Requires-Dist: distro ==1.8.0 ; extra == 'ansible'
370
370
  Requires-Dist: docx ==0.2.4 ; extra == 'ansible'
371
371
  Requires-Dist: filelock ~=3.13.1 ; extra == 'ansible'
@@ -384,16 +384,16 @@ Requires-Dist: markdown ; extra == 'ansible'
384
384
  Requires-Dist: matplotlib ; extra == 'ansible'
385
385
  Requires-Dist: msal ~=1.30.0 ; extra == 'ansible'
386
386
  Requires-Dist: nessus-file-reader ; extra == 'ansible'
387
- Requires-Dist: numpy >=2.0.0 ; extra == 'ansible'
387
+ Requires-Dist: numpy ~=2.0.0 ; extra == 'ansible'
388
388
  Requires-Dist: openpyxl ; extra == 'ansible'
389
389
  Requires-Dist: packaging ~=23.1 ; extra == 'ansible'
390
390
  Requires-Dist: pandas ; extra == 'ansible'
391
391
  Requires-Dist: pathlib ~=1.0.1 ; extra == 'ansible'
392
392
  Requires-Dist: pdfplumber ==0.7.6 ; extra == 'ansible'
393
393
  Requires-Dist: pre-commit ; extra == 'ansible'
394
- Requires-Dist: psutil ==5.9.6 ; extra == 'ansible'
394
+ Requires-Dist: psutil ~=6.1.0 ; extra == 'ansible'
395
395
  Requires-Dist: pyTenable ; extra == 'ansible'
396
- Requires-Dist: pydantic ~=2.9.2 ; extra == 'ansible'
396
+ Requires-Dist: pydantic ~=2.11.0 ; extra == 'ansible'
397
397
  Requires-Dist: pypandoc ; extra == 'ansible'
398
398
  Requires-Dist: pypandoc-binary ; extra == 'ansible'
399
399
  Requires-Dist: pytest ; extra == 'ansible'
@@ -424,11 +424,11 @@ Requires-Dist: boto3 ==1.35.10 ; extra == 'dev'
424
424
  Requires-Dist: botocore ==1.35.10 ; extra == 'dev'
425
425
  Requires-Dist: bs4 ; extra == 'dev'
426
426
  Requires-Dist: cacheout ; extra == 'dev'
427
- Requires-Dist: click ==8.1.3 ; extra == 'dev'
427
+ Requires-Dist: click >=8.1.3 ; extra == 'dev'
428
428
  Requires-Dist: colorama ==0.4.5 ; extra == 'dev'
429
429
  Requires-Dist: coveralls ; extra == 'dev'
430
430
  Requires-Dist: crowdstrike-falconpy ==1.4.5 ; extra == 'dev'
431
- Requires-Dist: cryptography >=43.0.1 ; extra == 'dev'
431
+ Requires-Dist: cryptography >=44.0.1 ; extra == 'dev'
432
432
  Requires-Dist: darglint ; extra == 'dev'
433
433
  Requires-Dist: distro ==1.8.0 ; extra == 'dev'
434
434
  Requires-Dist: docx ==0.2.4 ; extra == 'dev'
@@ -453,7 +453,7 @@ Requires-Dist: moto ; extra == 'dev'
453
453
  Requires-Dist: msal ~=1.30.0 ; extra == 'dev'
454
454
  Requires-Dist: mypy ; extra == 'dev'
455
455
  Requires-Dist: nessus-file-reader ; extra == 'dev'
456
- Requires-Dist: numpy >=2.0.0 ; extra == 'dev'
456
+ Requires-Dist: numpy ~=2.0.0 ; extra == 'dev'
457
457
  Requires-Dist: openpyxl ; extra == 'dev'
458
458
  Requires-Dist: packaging ~=23.1 ; extra == 'dev'
459
459
  Requires-Dist: pandas ; extra == 'dev'
@@ -462,9 +462,9 @@ Requires-Dist: pathlib ~=1.0.1 ; extra == 'dev'
462
462
  Requires-Dist: pdfplumber ==0.7.6 ; extra == 'dev'
463
463
  Requires-Dist: pipenv ; extra == 'dev'
464
464
  Requires-Dist: pre-commit ; extra == 'dev'
465
- Requires-Dist: psutil ==5.9.6 ; extra == 'dev'
465
+ Requires-Dist: psutil ~=6.1.0 ; extra == 'dev'
466
466
  Requires-Dist: pyTenable ; extra == 'dev'
467
- Requires-Dist: pydantic ~=2.9.2 ; extra == 'dev'
467
+ Requires-Dist: pydantic ~=2.11.0 ; extra == 'dev'
468
468
  Requires-Dist: pylint ; extra == 'dev'
469
469
  Requires-Dist: pypandoc ; extra == 'dev'
470
470
  Requires-Dist: pypandoc-binary ; extra == 'dev'
@@ -509,10 +509,10 @@ Requires-Dist: boto3 ==1.35.10 ; extra == 'server'
509
509
  Requires-Dist: botocore ==1.35.10 ; extra == 'server'
510
510
  Requires-Dist: bs4 ; extra == 'server'
511
511
  Requires-Dist: cacheout ; extra == 'server'
512
- Requires-Dist: click ==8.1.3 ; extra == 'server'
512
+ Requires-Dist: click >=8.1.3 ; extra == 'server'
513
513
  Requires-Dist: colorama ==0.4.5 ; extra == 'server'
514
514
  Requires-Dist: crowdstrike-falconpy ==1.4.5 ; extra == 'server'
515
- Requires-Dist: cryptography >=43.0.1 ; extra == 'server'
515
+ Requires-Dist: cryptography >=44.0.1 ; extra == 'server'
516
516
  Requires-Dist: distro ==1.8.0 ; extra == 'server'
517
517
  Requires-Dist: docx ==0.2.4 ; extra == 'server'
518
518
  Requires-Dist: filelock ~=3.13.1 ; extra == 'server'
@@ -536,16 +536,16 @@ Requires-Dist: markdown ; extra == 'server'
536
536
  Requires-Dist: matplotlib ; extra == 'server'
537
537
  Requires-Dist: msal ~=1.30.0 ; extra == 'server'
538
538
  Requires-Dist: nessus-file-reader ; extra == 'server'
539
- Requires-Dist: numpy >=2.0.0 ; extra == 'server'
539
+ Requires-Dist: numpy ~=2.0.0 ; extra == 'server'
540
540
  Requires-Dist: openpyxl ; extra == 'server'
541
541
  Requires-Dist: packaging ~=23.1 ; extra == 'server'
542
542
  Requires-Dist: pandas ; extra == 'server'
543
543
  Requires-Dist: pathlib ~=1.0.1 ; extra == 'server'
544
544
  Requires-Dist: pdfplumber ==0.7.6 ; extra == 'server'
545
545
  Requires-Dist: pre-commit ; extra == 'server'
546
- Requires-Dist: psutil ==5.9.6 ; extra == 'server'
546
+ Requires-Dist: psutil ~=6.1.0 ; extra == 'server'
547
547
  Requires-Dist: pyTenable ; extra == 'server'
548
- Requires-Dist: pydantic ~=2.9.2 ; extra == 'server'
548
+ Requires-Dist: pydantic ~=2.11.0 ; extra == 'server'
549
549
  Requires-Dist: pypandoc ; extra == 'server'
550
550
  Requires-Dist: pypandoc-binary ; extra == 'server'
551
551
  Requires-Dist: pytest ; extra == 'server'
@@ -1,4 +1,4 @@
1
- regscale/__init__.py,sha256=nj8VCAjjre7hxmOERduZFW-KJyVxE8MitYAHu5V7Sic,25
1
+ regscale/__init__.py,sha256=7cK-ZFNSJyEysaKpz05SPSaD9tek3mBV5bw6bApjf1w,25
2
2
  regscale/regscale.py,sha256=t4uLMzy9P_KeKazI9ZTQupTkbgh28uMilLSpmzn7adE,30983
3
3
  regscale/airflow/__init__.py,sha256=yMwN0Bz4JbM0nl5qY_hPegxo_O2ilhTOL9PY5Njhn-s,270
4
4
  regscale/airflow/click_dags.py,sha256=H3SUR5jkvInNMv1gu-VG-Ja_H-kH145CpQYNalWNAbE,4520
@@ -111,7 +111,7 @@ regscale/integrations/api_paginator.py,sha256=73rjaNM9mGv8evHAeoObXEjZPg-bJuGPo6
111
111
  regscale/integrations/api_paginator_example.py,sha256=lEuYI-xEGcjnXuIzbCobCP0YRuukLF0s8S3d382SAH4,12119
112
112
  regscale/integrations/integration_override.py,sha256=PH7t_bf-RCe_it3FJ61tlKX5UghqHuSEQNJWDfCamAg,5480
113
113
  regscale/integrations/jsonl_scanner_integration.py,sha256=fglDgJN9alUvbJzNYKrlIf_25oqQ8kIU0moE3f9tDMQ,56717
114
- regscale/integrations/scanner_integration.py,sha256=fAHnFQ7twysa6ouo_gIVOR7WbbCHQq6-MQm7r-l9fPQ,134699
114
+ regscale/integrations/scanner_integration.py,sha256=yc8jNyffno6EgvoulDbPw3zkVnZ5jUZr5DQwa1Stw24,134738
115
115
  regscale/integrations/variables.py,sha256=A0R76VAeJFj48wHnNgUY-xaD7QKcSmGO9-9cQLlqDJ8,2071
116
116
  regscale/integrations/commercial/__init__.py,sha256=BZcCIUdyW027NjOGkcBOT52RPSLrtUv69UEPIkAmq1M,13319
117
117
  regscale/integrations/commercial/ad.py,sha256=YXSmK8vRf6yi2GnREGa5GrE6GelhFrLj44SY8AO1pK0,15509
@@ -136,12 +136,12 @@ regscale/integrations/commercial/synqly_jira.py,sha256=dmw3m_lKtii2OpVcrmtNJ-ClU
136
136
  regscale/integrations/commercial/veracode.py,sha256=SYJEXRgExwVPTWBcqap2jcsdggp-4TvdETLrSCVEOvo,2919
137
137
  regscale/integrations/commercial/xray.py,sha256=egJO6fCQ8jhSpyu6Gj2xczTtUMEiSAJKDz05dT-YZ6M,2734
138
138
  regscale/integrations/commercial/amazon/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
- regscale/integrations/commercial/amazon/common.py,sha256=8ITptlZjJD720_DGfPqmEXeNF4GbAseq8o0s80E4CyY,3252
139
+ regscale/integrations/commercial/amazon/common.py,sha256=qX0GkUzl0PSwOPTtEH94Qgixi8D5s_Xbo2yMmQhcWnY,3343
140
140
  regscale/integrations/commercial/aqua/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
141
  regscale/integrations/commercial/aqua/aqua.py,sha256=UrtECdLn5Nba758QCMnRxnOtUppnUQjtgkWHljllsHQ,2662
142
142
  regscale/integrations/commercial/aws/__init__.py,sha256=Pii3CMGvIwZnTSenuvDvuybWXBtIRdGyvF02sykzg1A,203
143
143
  regscale/integrations/commercial/aws/cli.py,sha256=Nkyyb1VrX25ouluHsUBPZzvclpg6bd6yLUlk8C51znI,9233
144
- regscale/integrations/commercial/aws/scanner.py,sha256=aO8vmJX7nCp1YWqidNePBd0zN7nRZ9tmWJwR17RPDQA,33515
144
+ regscale/integrations/commercial/aws/scanner.py,sha256=E3antyGd1HG0cMAM6hurKeij6li7mCstKFQTl3XZ_z4,33600
145
145
  regscale/integrations/commercial/aws/inventory/__init__.py,sha256=nBWBRs_lTbp3tfCcnmN855qQpnXtwyJ5miTXlD7Uhcs,4302
146
146
  regscale/integrations/commercial/aws/inventory/base.py,sha256=KL1Ntz0h0WGDu84LQf3y92uLl9a0sl4yIFi6-ZIFAMI,2068
147
147
  regscale/integrations/commercial/aws/inventory/resources/__init__.py,sha256=wP8TMIixWGCn2rBNFW6XzhME-xO8kpxi9edMUJgpso4,523
@@ -204,9 +204,9 @@ regscale/integrations/commercial/stigv2/ckl_parser.py,sha256=RPrDGsKqAbTJMsJd3AY
204
204
  regscale/integrations/commercial/stigv2/click_commands.py,sha256=Tywelob4WwZuriSZV7-qgCeNzWtChMPimeBI2unYEqo,3552
205
205
  regscale/integrations/commercial/stigv2/stig_integration.py,sha256=-UlfL0BBI3jFGotctOJyTCRAU9zIXW6mwU7ySrRXE9U,11573
206
206
  regscale/integrations/commercial/synqly/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
207
- regscale/integrations/commercial/synqly/assets.py,sha256=GcDGe6XvumaAYyo5Af8Ccmg1DzLfgnNFGdsyRdKsiEs,1412
207
+ regscale/integrations/commercial/synqly/assets.py,sha256=vFAd-0YFXM50d1wQJ7067ynWkXPuzJkMvLma-gB0XsE,1780
208
208
  regscale/integrations/commercial/synqly/edr.py,sha256=Z2gwscLvrFLKcodU83qbVn1jF8eFhwdjXm94LA8EwxQ,2444
209
- regscale/integrations/commercial/synqly/ticketing.py,sha256=6UhmDa0l-GYTJAyc93HiaS-maCVQD9UtDcGIjQ9n270,4909
209
+ regscale/integrations/commercial/synqly/ticketing.py,sha256=hibFRidMU6UGH6bFaMHiIVU6y-bhd0f9_-AsFWbt1pM,5644
210
210
  regscale/integrations/commercial/synqly/vulnerabilities.py,sha256=B8GwfKVDdoOIikjZO-4KqDNf-ApXlcJNkwmno0FjDOQ,7842
211
211
  regscale/integrations/commercial/tenablev2/__init__.py,sha256=UpSY_oww83kz9c7amdbptJKwDB1gAOBQDS-Q9WFp588,295
212
212
  regscale/integrations/commercial/tenablev2/authenticate.py,sha256=VPTmxaVCaah2gJYNeU9P1KoQ734ohGQ-wcVy6JfqDTE,1247
@@ -223,7 +223,7 @@ regscale/integrations/commercial/trivy/commands.py,sha256=uzK-15k6ZNdOQ9TxAIF_3w
223
223
  regscale/integrations/commercial/trivy/scanner.py,sha256=rs7amq0IbJPbV40CJI8Mgr5Nn51XFmv4C1VsYjaWqnk,11204
224
224
  regscale/integrations/commercial/wizv2/WizDataMixin.py,sha256=s7F_rVrP9IZa_x_vh3MswR7W_UBHRfd4kHGVsNX4ips,3606
225
225
  regscale/integrations/commercial/wizv2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
226
- regscale/integrations/commercial/wizv2/click.py,sha256=Vx3hqosLCJ9ilhn-K3lK6D_bWFkdmtbqefUkpeUOmlY,12220
226
+ regscale/integrations/commercial/wizv2/click.py,sha256=eHIS9TdbZQ2Iu57uwbj3ep0m5gpI0HaK5W_ReL892Y4,12232
227
227
  regscale/integrations/commercial/wizv2/constants.py,sha256=wS_BcZrtNYm_BMuuDUgsLkdgGBGRXs2OGKHaIyoIhaI,22788
228
228
  regscale/integrations/commercial/wizv2/issue.py,sha256=MbND-Ir4pU4i0OtxsjbRxn_i8Ibll6gt-qYQK2ObstA,13361
229
229
  regscale/integrations/commercial/wizv2/models.py,sha256=hZ6557LJfcp1_NRbMM0V_G1erz1jEFmsuKPn86kXE54,5667
@@ -297,7 +297,7 @@ regscale/models/app_models/__init__.py,sha256=XmrkxwFJx49ofl5ICZniGmmJe8jO4RkKnH
297
297
  regscale/models/app_models/catalog_compare.py,sha256=gLD8ti933nW70FcGlx6gp0Lbdo8cFnKky7JkRFAKfOU,7557
298
298
  regscale/models/app_models/click.py,sha256=Kgf7j-eaSPVKc7HM8WAIGtEiBTzgP8ipa47dM3hA6OI,8222
299
299
  regscale/models/app_models/datetime_encoder.py,sha256=AvKkXWhrd87jTfNnY5Q2gw5IdXkCQDnE_44Lay2ZUAA,518
300
- regscale/models/app_models/import_validater.py,sha256=Qk0q7VuudzuVjt8h7LM5KxWpAA4PQ-4FXkoFlStfCJ8,12603
300
+ regscale/models/app_models/import_validater.py,sha256=IjyUYPg-pZFEsLWrlZUQ2Z41B4MxDsylx7PpCYrZReQ,12708
301
301
  regscale/models/app_models/mapping.py,sha256=BDd7PMgQ24IK4S8FPzHJBpNnCtm1xiU1aoSHDUCwx6Q,11142
302
302
  regscale/models/app_models/pipeline.py,sha256=qzrkQvvW6d8rqbBjMR8wkT2obez0tnKyY_TxtxLh6VE,909
303
303
  regscale/models/integration_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -306,7 +306,7 @@ regscale/models/integration_models/azure_alerts.py,sha256=2etrpvcxa7jVQrc98bJlVG
306
306
  regscale/models/integration_models/base64.py,sha256=sxV6O5qY1_TstJENX5jBPsSdQwmA83-NNhgJFunXiZE,570
307
307
  regscale/models/integration_models/burp.py,sha256=hPQkmmUdC84MBFTE2Di5NvjbGz1ssISSkZdDaVi-ZoQ,16941
308
308
  regscale/models/integration_models/burp_models.py,sha256=UytDTAcCaxyu-knFkm_mEUH6UmWK3OTXKSC9Sc6OjVs,3669
309
- regscale/models/integration_models/cisa_kev_data.json,sha256=cwg8yXKaprwRWSyS7tZz56Zy-8DzwcpVCOilohvHXfg,1164738
309
+ regscale/models/integration_models/cisa_kev_data.json,sha256=_OGFC2vViEBhdYmLNJ1pXiDOJMBbp38EhjiJjrIy8hA,1178280
310
310
  regscale/models/integration_models/defender_data.py,sha256=jsAcjKxiGmumGerj7xSWkFd6r__YpuKDnYX5o7xHDiE,2844
311
311
  regscale/models/integration_models/defenderimport.py,sha256=OFwEH0Xu-HFLIZJZ8hP60Ov3lS8RR7KHEsw4wI8QnoE,5766
312
312
  regscale/models/integration_models/drf.py,sha256=Aq7AdLa_CH97NrnR-CxaFI22JjVN9uCxVN7Z-BBUaNU,18896
@@ -328,11 +328,11 @@ regscale/models/integration_models/amazon_models/inspector_scan.py,sha256=A1uaOv
328
328
  regscale/models/integration_models/ecr_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
329
329
  regscale/models/integration_models/ecr_models/data.py,sha256=l28DCidXar1JygYBQZL9MYenQA9N-Cx3Skf51IOjZcw,1017
330
330
  regscale/models/integration_models/ecr_models/ecr.py,sha256=-s_5mj4BVKImrvfMaOJLT4qc5EqTCbv8qM4uJiH_nKc,9502
331
- regscale/models/integration_models/flat_file_importer/__init__.py,sha256=Mq4V3tRa3OK4PBJMyU-nZrk8vsnk1_ZkmXEJWohou_I,44271
331
+ regscale/models/integration_models/flat_file_importer/__init__.py,sha256=jtZamIzNORcbQNZQvBShPy1UA8qOSt0dnmYmxcRys6U,45021
332
332
  regscale/models/integration_models/sbom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
333
333
  regscale/models/integration_models/sbom/cyclone_dx.py,sha256=0pFR0BWBrF5c8_cC_8mj2MXvNOMHOdHbBYXvTVfFAh8,4058
334
334
  regscale/models/integration_models/synqly_models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
335
- regscale/models/integration_models/synqly_models/capabilities.json,sha256=A3xtvxBnjgrpMYudRG4UuryPyCCutevdfeK_L4q8cTs,259829
335
+ regscale/models/integration_models/synqly_models/capabilities.json,sha256=JkTqEy0fBz1YTij0NmnF5fNkSP9sdz6y_vXKDbCqwPU,273118
336
336
  regscale/models/integration_models/synqly_models/connector_types.py,sha256=8nxptkTexpskySnmL0obNAff_iu_fx6tJ7i1-4hJvao,461
337
337
  regscale/models/integration_models/synqly_models/ocsf_mapper.py,sha256=e2kTOhWSNRnzbgMchMx-7c21pCgSv2DqWnxvajKEKJM,16960
338
338
  regscale/models/integration_models/synqly_models/param.py,sha256=45zgYUV4U9Ia8-CdIb4TlE3vfDMMtbfA1y5LOiznnH8,2645
@@ -409,7 +409,7 @@ regscale/models/regscale_models/questionnaire.py,sha256=yWNeKLx2pc9gyc1SCwcjXfWK
409
409
  regscale/models/regscale_models/questionnaire_instance.py,sha256=Hfa27stfcK1_vjtqj8t-5s3LdxZUlLjKLRm4P5qEHKU,7071
410
410
  regscale/models/regscale_models/rbac.py,sha256=4byeEmr0TxtSyKx7efCX_HGphBzf6s2EFZ1xfTAttPk,4523
411
411
  regscale/models/regscale_models/reference.py,sha256=P_7jT6H-NZIa7TyH3j98N-ZHlB6FsjpZVRZCCpms-D4,3253
412
- regscale/models/regscale_models/regscale_model.py,sha256=S5w67GW3Y6uQjMu5d4doAMVdh1Y1rcxSJ3sojZ7N1xA,66519
412
+ regscale/models/regscale_models/regscale_model.py,sha256=3juRztM7ZebNWTuioqedwXDO4ypS1IuJyNP0egGGarA,66524
413
413
  regscale/models/regscale_models/requirement.py,sha256=-8PnMbuWAZHol5X1w-fzm-moD784Et0oevSVbz6xLhU,767
414
414
  regscale/models/regscale_models/risk.py,sha256=lZFDYPpTt0aEYCrYz5FBKk1Y4y2CKXYU1A8eEKT3zzg,8661
415
415
  regscale/models/regscale_models/sbom.py,sha256=UYS3lBizGqz7A7vNPYBYzpL8PWIaXLl7ZQox_hlJ2ZQ,1722
@@ -446,7 +446,7 @@ regscale/utils/decorators.py,sha256=3QLjZ4_QfUSdJYYMw4nGE7EPdo2P7P3AERZxHHVgXDI,
446
446
  regscale/utils/dict_utils.py,sha256=2iCUMUZP8urkmpzB3BpnaSMrEQtrT9u4HINLSXGiXyI,2468
447
447
  regscale/utils/files.py,sha256=LtOca6DK4yZxBE037fRi1lsJeHmBmXLBkDq_er3Uhmw,2410
448
448
  regscale/utils/fxns.py,sha256=dLmxVkeoYXljAs0JbWaehBqZ2BxrdZ9ilH9FGvWRWx4,914
449
- regscale/utils/graphql_client.py,sha256=nE1jMgedyrN64jXYC_VBoTnKHG8tV0MDVXuIptnQCgc,4471
449
+ regscale/utils/graphql_client.py,sha256=txu_XIYGkZKRvIYIMcjeqKPEp8i6m3mIbG2MeJzJ5h8,4575
450
450
  regscale/utils/lists.py,sha256=CuxSVJNSFQ5TXtzXh5LQqL4yOZhuCmfcKbeQgjeBjok,459
451
451
  regscale/utils/numbers.py,sha256=0LkZvewuKXogk6_oWF90OAoGIuzK1fjWZ4gRCC9_TlQ,301
452
452
  regscale/utils/shell.py,sha256=H9Zzwt3zxyzWmfiH3tVrcIoAcEHtF_pXzM5ERd7PAGc,4176
@@ -502,9 +502,9 @@ tests/regscale/models/test_regscale_model.py,sha256=ZsrEZkC4EtdIsoQuayn1xv2gEGcV
502
502
  tests/regscale/models/test_report.py,sha256=eiSvS_zS0aVeL0HBvtmHVvEzcfF9ZFVn2twj5g8KttY,970
503
503
  tests/regscale/models/test_tenable_integrations.py,sha256=PNJC2Zu6lv1xj7y6e1yOsz5FktSU3PRKb5x3n5YG3w0,4072
504
504
  tests/regscale/models/test_user_model.py,sha256=e9olv28qBApgnvK6hFHOgXjUC-pkaV8aGDirEIWASL4,4427
505
- regscale_cli-6.19.1.0.dist-info/LICENSE,sha256=ytNhYQ9Rmhj_m-EX2pPq9Ld6tH5wrqqDYg-fCf46WDU,1076
506
- regscale_cli-6.19.1.0.dist-info/METADATA,sha256=eMCQ4kKNLhTBf2WOaVp35o_ZK0k7s13eNZ7OBEFNPy4,30913
507
- regscale_cli-6.19.1.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
508
- regscale_cli-6.19.1.0.dist-info/entry_points.txt,sha256=cLOaIP1eRv1yZ2u7BvpE3aB4x3kDrDwkpeisKOu33z8,269
509
- regscale_cli-6.19.1.0.dist-info/top_level.txt,sha256=Uv8VUCAdxRm70bgrD4YNEJUmDhBThad_1aaEFGwRByc,15
510
- regscale_cli-6.19.1.0.dist-info/RECORD,,
505
+ regscale_cli-6.19.2.0.dist-info/LICENSE,sha256=ytNhYQ9Rmhj_m-EX2pPq9Ld6tH5wrqqDYg-fCf46WDU,1076
506
+ regscale_cli-6.19.2.0.dist-info/METADATA,sha256=CsCri1fYmw4yfSbr33azhRPVU85nbezYrelIZIOhKwc,30921
507
+ regscale_cli-6.19.2.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
508
+ regscale_cli-6.19.2.0.dist-info/entry_points.txt,sha256=cLOaIP1eRv1yZ2u7BvpE3aB4x3kDrDwkpeisKOu33z8,269
509
+ regscale_cli-6.19.2.0.dist-info/top_level.txt,sha256=Uv8VUCAdxRm70bgrD4YNEJUmDhBThad_1aaEFGwRByc,15
510
+ regscale_cli-6.19.2.0.dist-info/RECORD,,