contentctl 5.5.2__py3-none-any.whl → 5.5.3__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.
@@ -12,6 +12,7 @@ import pathlib
12
12
  import pprint
13
13
  import uuid
14
14
  from abc import abstractmethod
15
+ from collections import Counter
15
16
  from difflib import get_close_matches
16
17
  from functools import cached_property
17
18
  from typing import List, Optional, Tuple, Union
@@ -708,6 +709,15 @@ class SecurityContentObject_Abstract(BaseModel, abc.ABC):
708
709
  "an error in the contentctl codebase which must be resolved."
709
710
  )
710
711
 
712
+ # Catch all for finding duplicates in mapped content
713
+ if (
714
+ len(duplicates := [name for name, count in Counter(v).items() if count > 1])
715
+ > 0
716
+ ):
717
+ raise ValueError(
718
+ f"Duplicate {cls.__name__} ({duplicates}) found in list: {v}."
719
+ )
720
+
711
721
  mappedObjects: list[Self] = []
712
722
  mistyped_objects: list[SecurityContentObject_Abstract] = []
713
723
  missing_objects: list[str] = []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: contentctl
3
- Version: 5.5.2
3
+ Version: 5.5.3
4
4
  Summary: Splunk Content Control Tool
5
5
  License: Apache 2.0
6
6
  Author: STRT
@@ -33,7 +33,7 @@ contentctl/input/director.py,sha256=Em7ZwYdIapgr7Qd--uX6UxkeSyT1oxwyY0pius2Wbqc,
33
33
  contentctl/input/new_content_questions.py,sha256=z2C4Mg7-EyxtiF2z9m4SnSbi6QO4CUPB3wg__JeMXIQ,4067
34
34
  contentctl/input/yml_reader.py,sha256=L27b14_xXQYypUV1eAzZrfMtwtkzAZx--6nRo3RNZnE,2729
35
35
  contentctl/objects/abstract_security_content_objects/detection_abstract.py,sha256=bvX3iDQvR7BI1KIgKFBbyX7QkijhPANo9GzBCMVwtm8,46905
36
- contentctl/objects/abstract_security_content_objects/security_content_object_abstract.py,sha256=un1tjoZdxKi07dSddPD5MXRN3tea3dj0poKmFrbCu-k,34206
36
+ contentctl/objects/abstract_security_content_objects/security_content_object_abstract.py,sha256=99SVqm5IAUlrcUim-Psc7wPgzQsL37zoBpD7m1nfBwM,34552
37
37
  contentctl/objects/alert_action.py,sha256=iEvdEOT4TrTXT0z4rQ_W5v79hPJpPhFPSzo7TuHDxwA,1376
38
38
  contentctl/objects/annotated_types.py,sha256=xR4EKvdOpNDEt0doGs8XjxCzKK99J2NHZgHFAmt7p2c,424
39
39
  contentctl/objects/atomic.py,sha256=5nl-JhZnymadi8B8ZEJ8l80DnpvjG-OlRxUjVKR6ffY,7341
@@ -164,8 +164,8 @@ contentctl/templates/detections/web/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
164
164
  contentctl/templates/macros/security_content_ctime.yml,sha256=Gg1YNllHVsX_YB716H1SJLWzxXZEfuJlnsgB2fuyoHU,159
165
165
  contentctl/templates/macros/security_content_summariesonly.yml,sha256=9BYUxAl2E4Nwh8K19F3AJS8Ka7ceO6ZDBjFiO3l3LY0,162
166
166
  contentctl/templates/stories/cobalt_strike.yml,sha256=uj8idtDNOAIqpZ9p8usQg6mop1CQkJ5TlB4Q7CJdTIE,3082
167
- contentctl-5.5.2.dist-info/LICENSE.md,sha256=hQWUayRk-pAiOZbZnuy8djmoZkjKBx8MrCFpW-JiOgo,11344
168
- contentctl-5.5.2.dist-info/METADATA,sha256=uEd5lG5USXUlZ89CQMCnSGQ1zIXKT5tGmrK4jCzDaC0,5134
169
- contentctl-5.5.2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
170
- contentctl-5.5.2.dist-info/entry_points.txt,sha256=5bjZ2NkbQfSwK47uOnA77yCtjgXhvgxnmCQiynRF_-U,57
171
- contentctl-5.5.2.dist-info/RECORD,,
167
+ contentctl-5.5.3.dist-info/LICENSE.md,sha256=hQWUayRk-pAiOZbZnuy8djmoZkjKBx8MrCFpW-JiOgo,11344
168
+ contentctl-5.5.3.dist-info/METADATA,sha256=Kq0emL0JnmNsjNxyvNvj4egdTcR6Cu-JxTsIukS8PJs,5134
169
+ contentctl-5.5.3.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
170
+ contentctl-5.5.3.dist-info/entry_points.txt,sha256=5bjZ2NkbQfSwK47uOnA77yCtjgXhvgxnmCQiynRF_-U,57
171
+ contentctl-5.5.3.dist-info/RECORD,,