taranis-models 1.3.3.dev4__tar.gz → 1.3.3.dev5__tar.gz

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.
Files changed (37) hide show
  1. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/PKG-INFO +1 -4
  2. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/models/admin.py +21 -0
  3. taranis_models-1.3.3.dev5/models/assess.py +101 -0
  4. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/models/asset.py +1 -1
  5. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/models/product.py +20 -11
  6. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/models/report.py +2 -2
  7. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/models/user.py +2 -1
  8. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/pyproject.toml +0 -3
  9. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/taranis_models.egg-info/PKG-INFO +1 -4
  10. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/taranis_models.egg-info/requires.txt +0 -3
  11. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/typings/models/__init__.pyi +1 -4
  12. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/typings/models/admin.pyi +5 -11
  13. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/typings/models/assess.pyi +4 -9
  14. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/typings/models/asset.pyi +0 -4
  15. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/typings/models/base.pyi +3 -6
  16. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/typings/models/dashboard.pyi +1 -6
  17. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/typings/models/product.pyi +0 -5
  18. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/typings/models/report.pyi +1 -6
  19. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/typings/models/types.pyi +0 -4
  20. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/typings/models/user.pyi +0 -5
  21. taranis_models-1.3.3.dev5/uv.lock +267 -0
  22. taranis_models-1.3.3.dev4/models/assess.py +0 -158
  23. taranis_models-1.3.3.dev4/uv.lock +0 -387
  24. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/.dockerignore +0 -0
  25. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/.gitignore +0 -0
  26. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/.python-version +0 -0
  27. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/LICENSE.md +0 -0
  28. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/README.md +0 -0
  29. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/models/__init__.py +0 -0
  30. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/models/base.py +0 -0
  31. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/models/dashboard.py +0 -0
  32. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/models/py.typed +0 -0
  33. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/models/types.py +0 -0
  34. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/setup.cfg +0 -0
  35. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/taranis_models.egg-info/SOURCES.txt +0 -0
  36. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/taranis_models.egg-info/dependency_links.txt +0 -0
  37. {taranis_models-1.3.3.dev4 → taranis_models-1.3.3.dev5}/taranis_models.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: taranis-models
3
- Version: 1.3.3.dev4
3
+ Version: 1.3.3.dev5
4
4
  Summary: Taranis AI Models
5
5
  Maintainer-email: AIT <benjamin.akhras@ait.ac.at>
6
6
  License-Expression: EUPL-1.2
@@ -17,9 +17,6 @@ License-File: LICENSE.md
17
17
  Requires-Dist: pydantic
18
18
  Requires-Dist: pydantic-settings
19
19
  Requires-Dist: python-dotenv
20
- Requires-Dist: langcodes
21
- Requires-Dist: requests
22
- Requires-Dist: beautifulsoup4
23
20
  Provides-Extra: dev
24
21
  Requires-Dist: ruff; extra == "dev"
25
22
  Requires-Dist: pytest; extra == "dev"
@@ -1,4 +1,5 @@
1
1
  from datetime import datetime
2
+ from functools import cached_property
2
3
  from typing import Any, Literal
3
4
 
4
5
  from pydantic import AnyUrl, Field, SecretStr, field_serializer
@@ -62,6 +63,7 @@ class Address(TaranisBaseModel):
62
63
  class Organization(TaranisBaseModel):
63
64
  _core_endpoint = "/config/organizations"
64
65
  _model_name = "organization"
66
+ _search_fields = ["name", "description"]
65
67
 
66
68
  id: int | None = None
67
69
  name: str = ""
@@ -80,6 +82,7 @@ class Permission(TaranisBaseModel):
80
82
  class ACL(TaranisBaseModel):
81
83
  _core_endpoint = "/config/acls"
82
84
  _model_name = "acl"
85
+ _search_fields = ["name", "description"]
83
86
  _pretty_name = "ACL"
84
87
 
85
88
  id: int | None = None
@@ -105,6 +108,7 @@ class ParameterValue(TaranisBaseModel):
105
108
  class Worker(TaranisBaseModel):
106
109
  _core_endpoint = "/config/worker-types"
107
110
  _model_name = "worker_type"
111
+ _search_fields = ["name", "description"]
108
112
  _pretty_name = "Worker Type"
109
113
 
110
114
  id: str | None = None
@@ -118,6 +122,7 @@ class Worker(TaranisBaseModel):
118
122
  class Role(TaranisBaseModel):
119
123
  _core_endpoint = "/config/roles"
120
124
  _model_name = "role"
125
+ _search_fields = ["name", "description"]
121
126
  _pretty_name = "Role"
122
127
 
123
128
  id: int | None = None
@@ -130,6 +135,7 @@ class Role(TaranisBaseModel):
130
135
  class User(TaranisBaseModel):
131
136
  _core_endpoint = "/config/users"
132
137
  _model_name = "user"
138
+ _search_fields = ["name", "username"]
133
139
 
134
140
  id: int | None = None
135
141
  name: str
@@ -174,6 +180,7 @@ class WordList(TaranisBaseModel):
174
180
  _core_endpoint = "/config/word-lists"
175
181
  _model_name = "word_list"
176
182
  _pretty_name = "Word List"
183
+ _search_fields = ["name", "description"]
177
184
 
178
185
  id: int | None = None
179
186
  name: str
@@ -198,11 +205,19 @@ class OSINTSource(TaranisBaseModel):
198
205
  enabled: bool | None = True
199
206
  status: TaskResult | None = None
200
207
 
208
+ @cached_property
209
+ def search_field(self) -> str:
210
+ search = f"{self.name} {self.description} "
211
+ if self.parameters:
212
+ search += " ".join(self.parameters.values())
213
+ return search
214
+
201
215
 
202
216
  class OSINTSourceGroup(TaranisBaseModel):
203
217
  _core_endpoint = "/config/osint-source-groups"
204
218
  _model_name = "osint_source_group"
205
219
  _pretty_name = "OSINT Source Group"
220
+ _search_fields = ["name", "description"]
206
221
 
207
222
  id: str | None = None
208
223
  name: str
@@ -221,6 +236,7 @@ class ProductType(TaranisBaseModel):
221
236
  _core_endpoint = "/config/product-types"
222
237
  _model_name = "product_type"
223
238
  _pretty_name = "Product Type"
239
+ _search_fields = ["title", "description"]
224
240
 
225
241
  id: int | None = None
226
242
  title: str
@@ -235,6 +251,7 @@ class PublisherPreset(TaranisBaseModel):
235
251
  _core_endpoint = "/config/publisher-presets"
236
252
  _model_name = "publisher_preset"
237
253
  _pretty_name = "Publisher Preset"
254
+ _search_fields = ["name", "description"]
238
255
 
239
256
  id: str | None = None
240
257
  name: str
@@ -268,6 +285,7 @@ class ReportItemType(TaranisBaseModel):
268
285
  _core_endpoint = "/config/report-item-types"
269
286
  _model_name = "report_item_type"
270
287
  _pretty_name = "Report Item Type"
288
+ _search_fields = ["title", "description"]
271
289
 
272
290
  id: int | None = None
273
291
  title: str
@@ -298,6 +316,7 @@ class Attribute(TaranisBaseModel):
298
316
  _core_endpoint = "/config/attributes"
299
317
  _model_name = "attribute"
300
318
  _pretty_name = "Attribute"
319
+ _search_fields = ["name", "description"]
301
320
 
302
321
  id: int | None = None
303
322
  name: str
@@ -311,6 +330,7 @@ class Bot(TaranisBaseModel):
311
330
  _core_endpoint = "/config/bots"
312
331
  _model_name = "bot"
313
332
  _pretty_name = "Bot"
333
+ _search_fields = ["name", "description"]
314
334
 
315
335
  id: str | None = None
316
336
  name: str
@@ -325,6 +345,7 @@ class Connector(TaranisBaseModel):
325
345
  _core_endpoint = "/config/connectors"
326
346
  _model_name = "connector"
327
347
  _pretty_name = "Connector"
348
+ _search_fields = ["name", "description"]
328
349
 
329
350
  id: str | None = None
330
351
  name: str
@@ -0,0 +1,101 @@
1
+ from datetime import datetime
2
+ from functools import cached_property
3
+ from typing import Literal
4
+
5
+
6
+ from models.base import TaranisBaseModel
7
+
8
+
9
+ class NewsItem(TaranisBaseModel):
10
+ _core_endpoint = "/assess/news-items"
11
+
12
+ osint_source_id: str
13
+ hash: str | None = None
14
+ title: str | None = None
15
+ author: str | None = None
16
+ review: str | None = None
17
+ content: str | None = None
18
+ web_url: str | None = None
19
+ source: str | None = None
20
+ published: datetime | None = None
21
+ collected: datetime | None = None
22
+ attributes: list[str | dict] | None = None
23
+ story_id: str | None = None
24
+ language: str | None = None
25
+
26
+
27
+ class StoryTag(TaranisBaseModel):
28
+ name: str
29
+ size: int
30
+ type: str | None = None
31
+
32
+
33
+ class Story(TaranisBaseModel):
34
+ _core_endpoint = "/assess/stories"
35
+ _model_name = "story"
36
+ _pretty_name = "Story"
37
+ _cache_timeout = 30
38
+
39
+ id: str | None = None
40
+ title: str | None = None
41
+ description: str | None = None
42
+ created: datetime | None = None
43
+ updated: datetime | None = None
44
+ last_change: str | None = None
45
+ news_items: list[NewsItem] | None = None
46
+ links: list[str] | None = None
47
+ important: bool | None = None
48
+ read: bool | None = None
49
+ likes: int | None = None
50
+ dislikes: int | None = None
51
+ user_vote: Literal["like", "dislike", "", None] = None
52
+ summary: str | None = None
53
+ relevance: int | None = None
54
+ comments: str | None = None
55
+ in_reports_count: int | None = None
56
+ tags: list[dict] | None = None
57
+ attributes: list[dict] | None = None
58
+
59
+ @cached_property
60
+ def search_field(self) -> str:
61
+ search = ""
62
+ search += f"{self.title.lower() if self.title else ''} {self.description.lower() if self.description else ''} "
63
+ if self.news_items:
64
+ search += " ".join([item.title.lower() for item in self.news_items if item.title])
65
+ search += " ".join([item.content.lower() for item in self.news_items if item.content])
66
+ search += " ".join([item.source.lower() for item in self.news_items if item.source])
67
+ return search
68
+
69
+
70
+ class AssessSource(TaranisBaseModel):
71
+ id: str | None = None
72
+ icon: str | None = None
73
+ name: str
74
+ type: str | None = None
75
+
76
+
77
+ class FilterLists(TaranisBaseModel):
78
+ _core_endpoint = "/assess/filterlists"
79
+ _model_name = "filter_lists"
80
+ _pretty_name = "Filter Lists"
81
+
82
+ tags: list[str] = []
83
+ sources: list[AssessSource] = []
84
+ groups: list[dict] = []
85
+
86
+
87
+ class StoryUpdatePayload(TaranisBaseModel):
88
+ vote: Literal["like", "dislike", ""] | None = None
89
+ important: bool | None = None
90
+ read: bool | None = None
91
+ title: str | None = None
92
+ description: str | None = None
93
+ comments: str | None = None
94
+ summary: str | None = None
95
+ tags: list[dict] | None = None
96
+ attributes: list[dict] | None = None
97
+
98
+
99
+ class BulkAction(TaranisBaseModel):
100
+ story_ids: list[str] = []
101
+ payload: StoryUpdatePayload | None = None
@@ -1,11 +1,11 @@
1
1
  from pydantic import Field
2
-
3
2
  from models.base import TaranisBaseModel
4
3
 
5
4
 
6
5
  class Asset(TaranisBaseModel):
7
6
  _core_endpoint = "/assets"
8
7
  _model_name = "asset"
8
+ _search_fields = ["name"]
9
9
  _pretty_name = "Assets"
10
10
 
11
11
  id: int | None = None
@@ -1,8 +1,5 @@
1
1
  from datetime import datetime
2
- from typing import Self
3
-
4
2
  from pydantic import Field, ValidationInfo, field_validator
5
- from requests import Response
6
3
 
7
4
  from models.base import TaranisBaseModel
8
5
 
@@ -11,17 +8,11 @@ class WorkerProduct(TaranisBaseModel):
11
8
  data: bytes | None = None
12
9
  mime_type: str | None = None
13
10
 
14
- @classmethod
15
- def from_response(cls, response: Response) -> Self:
16
- return cls(
17
- data=response.content,
18
- mime_type=response.headers.get("Content-Type", ""),
19
- )
20
-
21
11
 
22
12
  class Product(TaranisBaseModel):
23
13
  _core_endpoint = "/publish/products"
24
14
  _model_name = "product"
15
+ _search_fields = ["title", "description"]
25
16
  _pretty_name = "Product"
26
17
 
27
18
  id: str | None = None
@@ -36,9 +27,27 @@ class Product(TaranisBaseModel):
36
27
  render_result: str | None = None
37
28
  mime_type: str | None = None
38
29
 
30
+ @field_validator("auto_publish", mode="before")
31
+ @classmethod
32
+ def normalize_auto_publish(cls, value):
33
+ if isinstance(value, str):
34
+ lowered = value.strip().lower()
35
+ if lowered in {"yes", "true", "1", "on"}:
36
+ return True
37
+ if lowered in {"no", "false", "0", "off", ""}:
38
+ return False
39
+ return value
40
+
41
+ @field_validator("default_publisher", mode="before")
42
+ @classmethod
43
+ def empty_default_to_none(cls, value):
44
+ if isinstance(value, str) and not value.strip():
45
+ return None
46
+ return value
47
+
39
48
  @field_validator("default_publisher", mode="after")
40
49
  @classmethod
41
- def require_default_when_autopublish(cls, value: str, info: ValidationInfo):
50
+ def require_default_when_autopublish(cls, value, info: ValidationInfo):
42
51
  auto_publish = info.data.get("auto_publish")
43
52
  if auto_publish and not value:
44
53
  raise ValueError("default_publisher is required when auto_publish is enabled")
@@ -1,6 +1,5 @@
1
+ from typing import ClassVar, Final
1
2
  from datetime import datetime
2
- from typing import ClassVar
3
-
4
3
  from pydantic import Field
5
4
 
6
5
  from models.admin import ReportItemAttribute
@@ -21,6 +20,7 @@ class ReportItemAttributeGroup(TaranisBaseModel):
21
20
  class ReportItem(TaranisBaseModel):
22
21
  _core_endpoint: ClassVar[str] = "/analyze/report-items"
23
22
  _model_name: ClassVar[str] = "report"
23
+ _search_fields: Final[list[str]] = ["title"]
24
24
  _pretty_name: ClassVar[str] = "Report"
25
25
 
26
26
  id: str | None = None
@@ -19,7 +19,7 @@ class ProfileSettings(TaranisBaseModel):
19
19
  dark_theme: bool = False
20
20
  compact_view: bool = False
21
21
  show_charts: bool = False
22
- infinite_scroll: bool = False
22
+ infinite_scroll: bool = True
23
23
  advanced_story_options: bool = False
24
24
  language: str = "en"
25
25
  hotkeys: dict[str, Any] = Field(default_factory=dict)
@@ -32,6 +32,7 @@ class ProfileSettings(TaranisBaseModel):
32
32
  class UserProfile(TaranisBaseModel):
33
33
  _core_endpoint = "/users"
34
34
  _model_name = "user_profile"
35
+ _search_fields = ["name", "username"]
35
36
 
36
37
  id: int | None = None
37
38
  username: str = ""
@@ -18,9 +18,6 @@ dependencies = [
18
18
  "pydantic",
19
19
  "pydantic-settings",
20
20
  "python-dotenv",
21
- "langcodes",
22
- "requests",
23
- "beautifulsoup4",
24
21
  ]
25
22
  dynamic = ["version"]
26
23
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: taranis-models
3
- Version: 1.3.3.dev4
3
+ Version: 1.3.3.dev5
4
4
  Summary: Taranis AI Models
5
5
  Maintainer-email: AIT <benjamin.akhras@ait.ac.at>
6
6
  License-Expression: EUPL-1.2
@@ -17,9 +17,6 @@ License-File: LICENSE.md
17
17
  Requires-Dist: pydantic
18
18
  Requires-Dist: pydantic-settings
19
19
  Requires-Dist: python-dotenv
20
- Requires-Dist: langcodes
21
- Requires-Dist: requests
22
- Requires-Dist: beautifulsoup4
23
20
  Provides-Extra: dev
24
21
  Requires-Dist: ruff; extra == "dev"
25
22
  Requires-Dist: pytest; extra == "dev"
@@ -1,9 +1,6 @@
1
1
  pydantic
2
2
  pydantic-settings
3
3
  python-dotenv
4
- langcodes
5
- requests
6
- beautifulsoup4
7
4
 
8
5
  [dev]
9
6
  ruff
@@ -3,13 +3,10 @@ This type stub file was generated by pyright.
3
3
  """
4
4
 
5
5
  from models.admin import ACL, Address, Job, Organization, Permission, ProductType, ReportItemType, Role, Template, User
6
+ from models.types import TLPLevel, WORKER_CATEGORY, WORKER_TYPES
6
7
  from models.base import TaranisBaseModel
7
8
  from models.dashboard import Dashboard, TrendingCluster
8
- from models.types import WORKER_CATEGORY, WORKER_TYPES, TLPLevel
9
9
 
10
- """
11
- This type stub file was generated by pyright.
12
- """
13
10
  __all__ = [
14
11
  "ACL",
15
12
  "Job",
@@ -2,30 +2,24 @@
2
2
  This type stub file was generated by pyright.
3
3
  """
4
4
 
5
- from datetime import datetime
5
+ from pydantic import AnyUrl
6
6
  from functools import cached_property
7
7
  from typing import Any, Literal
8
-
9
- from pydantic import AnyUrl
10
-
8
+ from datetime import datetime
11
9
  from models.base import TaranisBaseModel
12
10
  from models.types import (
11
+ AttributeType,
13
12
  BOT_TYPES,
14
13
  COLLECTOR_TYPES,
15
14
  CONNECTOR_TYPES,
15
+ ItemType,
16
16
  PRESENTER_TYPES,
17
17
  PUBLISHER_TYPES,
18
+ TLPLevel,
18
19
  WORKER_CATEGORY,
19
20
  WORKER_TYPES,
20
- AttributeType,
21
- ItemType,
22
- TLPLevel,
23
21
  )
24
22
 
25
- """
26
- This type stub file was generated by pyright.
27
- """
28
-
29
23
  class Job(TaranisBaseModel):
30
24
  _core_endpoint = ...
31
25
  _model_name = ...
@@ -3,17 +3,11 @@ This type stub file was generated by pyright.
3
3
  """
4
4
 
5
5
  from datetime import datetime
6
- from functools import cached_property
7
- from typing import Literal
8
-
9
6
  from pydantic import field_validator
10
-
7
+ from typing import Literal
8
+ from functools import cached_property
11
9
  from models.base import TaranisBaseModel
12
10
 
13
- """
14
- This type stub file was generated by pyright.
15
- """
16
-
17
11
  class NewsItem(TaranisBaseModel):
18
12
  _core_endpoint = ...
19
13
  osint_source_id: str
@@ -29,7 +23,8 @@ class NewsItem(TaranisBaseModel):
29
23
  attributes: list[str | dict] | None = ...
30
24
  language: str | None = ...
31
25
  @field_validator("language", mode="before")
32
- def normalize_language_code(cls, v): ...
26
+ def normalize_language_code(cls, v): # -> str | None:
27
+ ...
33
28
 
34
29
  class StoryTag(TaranisBaseModel):
35
30
  name: str
@@ -4,10 +4,6 @@ This type stub file was generated by pyright.
4
4
 
5
5
  from models.base import TaranisBaseModel
6
6
 
7
- """
8
- This type stub file was generated by pyright.
9
- """
10
-
11
7
  class Asset(TaranisBaseModel):
12
8
  _core_endpoint = ...
13
9
  _model_name = ...
@@ -2,13 +2,9 @@
2
2
  This type stub file was generated by pyright.
3
3
  """
4
4
 
5
- from typing import ClassVar, TypeVar
6
-
7
5
  from pydantic import BaseModel
6
+ from typing import ClassVar, TypeVar
8
7
 
9
- """
10
- This type stub file was generated by pyright.
11
- """
12
8
  T = TypeVar("T", bound="TaranisBaseModel")
13
9
 
14
10
  class TaranisBaseModel(BaseModel):
@@ -17,4 +13,5 @@ class TaranisBaseModel(BaseModel):
17
13
  _model_name: ClassVar[str] = ...
18
14
  _pretty_name: ClassVar[str] = ...
19
15
  model_config = ...
20
- def model_dump(self, *args, **kwargs): ...
16
+ def model_dump(self, *args, **kwargs): # -> dict[str, Any]:
17
+ ...
@@ -3,13 +3,8 @@ This type stub file was generated by pyright.
3
3
  """
4
4
 
5
5
  from datetime import datetime
6
-
7
- from models.assess import StoryTag
8
6
  from models.base import TaranisBaseModel
9
-
10
- """
11
- This type stub file was generated by pyright.
12
- """
7
+ from models.assess import StoryTag
13
8
 
14
9
  class Dashboard(TaranisBaseModel):
15
10
  _core_endpoint = ...
@@ -3,13 +3,8 @@ This type stub file was generated by pyright.
3
3
  """
4
4
 
5
5
  from datetime import datetime
6
-
7
6
  from models.base import TaranisBaseModel
8
7
 
9
- """
10
- This type stub file was generated by pyright.
11
- """
12
-
13
8
  class WorkerProduct(TaranisBaseModel):
14
9
  data: bytes | None = ...
15
10
  mime_type: str | None = ...
@@ -2,17 +2,12 @@
2
2
  This type stub file was generated by pyright.
3
3
  """
4
4
 
5
- from datetime import datetime
6
5
  from typing import ClassVar, Final
7
-
6
+ from datetime import datetime
8
7
  from models.admin import ReportItemAttribute
9
8
  from models.assess import Story
10
9
  from models.base import TaranisBaseModel
11
10
 
12
- """
13
- This type stub file was generated by pyright.
14
- """
15
-
16
11
  class ReportItemCpe(TaranisBaseModel):
17
12
  id: int | None = ...
18
13
  value: str
@@ -4,10 +4,6 @@ This type stub file was generated by pyright.
4
4
 
5
5
  from enum import IntEnum, StrEnum
6
6
 
7
- """
8
- This type stub file was generated by pyright.
9
- """
10
-
11
7
  class TLPLevel(StrEnum):
12
8
  CLEAR = ...
13
9
  GREEN = ...
@@ -3,13 +3,8 @@ This type stub file was generated by pyright.
3
3
  """
4
4
 
5
5
  from typing import Any
6
-
7
6
  from models.base import TaranisBaseModel
8
7
 
9
- """
10
- This type stub file was generated by pyright.
11
- """
12
-
13
8
  class ProfileSettingsDashboard(TaranisBaseModel):
14
9
  show_trending_clusters: bool = ...
15
10
  show_charts: bool = ...