taranis-models 1.3.2.dev2__py3-none-any.whl → 1.3.2.dev3__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.
- models/assess.py +53 -8
- models/dashboard.py +2 -28
- {taranis_models-1.3.2.dev2.dist-info → taranis_models-1.3.2.dev3.dist-info}/METADATA +2 -1
- {taranis_models-1.3.2.dev2.dist-info → taranis_models-1.3.2.dev3.dist-info}/RECORD +7 -7
- {taranis_models-1.3.2.dev2.dist-info → taranis_models-1.3.2.dev3.dist-info}/WHEEL +0 -0
- {taranis_models-1.3.2.dev2.dist-info → taranis_models-1.3.2.dev3.dist-info}/licenses/LICENSE.md +0 -0
- {taranis_models-1.3.2.dev2.dist-info → taranis_models-1.3.2.dev3.dist-info}/top_level.txt +0 -0
models/assess.py
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
from datetime import datetime
|
|
2
2
|
from functools import cached_property
|
|
3
|
-
from typing import Literal
|
|
3
|
+
from typing import Any, Literal
|
|
4
4
|
|
|
5
|
+
from langcodes import Language
|
|
6
|
+
from langcodes.tag_parser import LanguageTagError
|
|
7
|
+
from pydantic import ValidationInfo, field_validator, model_validator
|
|
5
8
|
|
|
6
9
|
from models.base import TaranisBaseModel
|
|
7
10
|
|
|
@@ -10,18 +13,21 @@ class NewsItem(TaranisBaseModel):
|
|
|
10
13
|
_core_endpoint = "/assess/news-items"
|
|
11
14
|
|
|
12
15
|
osint_source_id: str
|
|
16
|
+
id: str | None = None
|
|
13
17
|
hash: str | None = None
|
|
14
18
|
title: str | None = None
|
|
15
19
|
author: str | None = None
|
|
16
20
|
review: str | None = None
|
|
17
21
|
content: str | None = None
|
|
18
|
-
|
|
22
|
+
link: str | None = None
|
|
19
23
|
source: str | None = None
|
|
20
24
|
published: datetime | None = None
|
|
21
25
|
collected: datetime | None = None
|
|
22
|
-
|
|
26
|
+
updated: datetime | None = None
|
|
27
|
+
attributes: list[str | dict[str, Any]] | None = None
|
|
23
28
|
story_id: str | None = None
|
|
24
29
|
language: str | None = None
|
|
30
|
+
last_change: str | None = None
|
|
25
31
|
|
|
26
32
|
|
|
27
33
|
class StoryTag(TaranisBaseModel):
|
|
@@ -53,8 +59,8 @@ class Story(TaranisBaseModel):
|
|
|
53
59
|
relevance: int | None = None
|
|
54
60
|
comments: str | None = None
|
|
55
61
|
in_reports_count: int | None = None
|
|
56
|
-
tags: list[dict] | None = None
|
|
57
|
-
attributes: list[dict] | None = None
|
|
62
|
+
tags: list[dict[str, Any]] | None = None
|
|
63
|
+
attributes: list[dict[str, Any]] | None = None
|
|
58
64
|
|
|
59
65
|
@cached_property
|
|
60
66
|
def search_field(self) -> str:
|
|
@@ -81,7 +87,7 @@ class FilterLists(TaranisBaseModel):
|
|
|
81
87
|
|
|
82
88
|
tags: list[str] = []
|
|
83
89
|
sources: list[AssessSource] = []
|
|
84
|
-
groups: list[dict] = []
|
|
90
|
+
groups: list[dict[str, Any]] = []
|
|
85
91
|
|
|
86
92
|
|
|
87
93
|
class StoryUpdatePayload(TaranisBaseModel):
|
|
@@ -92,10 +98,49 @@ class StoryUpdatePayload(TaranisBaseModel):
|
|
|
92
98
|
description: str | None = None
|
|
93
99
|
comments: str | None = None
|
|
94
100
|
summary: str | None = None
|
|
95
|
-
tags: list[dict] | None = None
|
|
96
|
-
attributes: list[dict] | None = None
|
|
101
|
+
tags: list[dict[str, Any]] | None = None
|
|
102
|
+
attributes: list[dict[str, Any]] | None = None
|
|
97
103
|
|
|
98
104
|
|
|
99
105
|
class BulkAction(TaranisBaseModel):
|
|
100
106
|
story_ids: list[str] = []
|
|
101
107
|
payload: StoryUpdatePayload | None = None
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
class NewsItemCreate(TaranisBaseModel):
|
|
111
|
+
osint_source_id: str
|
|
112
|
+
title: str | None = None
|
|
113
|
+
author: str | None = None
|
|
114
|
+
review: str | None = None
|
|
115
|
+
content: str | None = None
|
|
116
|
+
link: str | None = None
|
|
117
|
+
source: str | None = None
|
|
118
|
+
published: datetime | None = None
|
|
119
|
+
collected: datetime | None = None
|
|
120
|
+
attributes: list[str | dict[str, Any]] | None = None
|
|
121
|
+
language: str | None = None
|
|
122
|
+
|
|
123
|
+
@field_validator("language", mode="before")
|
|
124
|
+
def normalize_language_code(self, v: str, info: ValidationInfo) -> str:
|
|
125
|
+
if v:
|
|
126
|
+
try:
|
|
127
|
+
return Language.get(v).language or ""
|
|
128
|
+
except (LanguageTagError, ValueError, TypeError):
|
|
129
|
+
return ""
|
|
130
|
+
return ""
|
|
131
|
+
|
|
132
|
+
@model_validator(mode="after")
|
|
133
|
+
def check_required_fields(self) -> "NewsItemCreate":
|
|
134
|
+
if not self.title and not self.content:
|
|
135
|
+
raise ValueError("Either title or content must be provided for NewsItemCreate.")
|
|
136
|
+
return self
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
class StoryCreate(TaranisBaseModel):
|
|
140
|
+
title: str | None = None
|
|
141
|
+
summary: str | None = None
|
|
142
|
+
description: str | None = None
|
|
143
|
+
news_items: list[NewsItemCreate] = []
|
|
144
|
+
tags: list[dict[str, Any]] | None = None
|
|
145
|
+
attributes: list[dict[str, Any]] | None = None
|
|
146
|
+
created: datetime | None = None
|
models/dashboard.py
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
from datetime import datetime
|
|
2
|
-
|
|
3
1
|
from pydantic import Field
|
|
2
|
+
from datetime import datetime
|
|
4
3
|
|
|
5
|
-
from models.assess import StoryTag
|
|
6
4
|
from models.base import TaranisBaseModel
|
|
5
|
+
from models.assess import StoryTag
|
|
7
6
|
|
|
8
7
|
|
|
9
8
|
class Dashboard(TaranisBaseModel):
|
|
@@ -39,28 +38,3 @@ class Cluster(TaranisBaseModel):
|
|
|
39
38
|
|
|
40
39
|
name: str
|
|
41
40
|
size: int | None = None
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
class StoryConflict(TaranisBaseModel):
|
|
45
|
-
_core_endpoint = "connectors/conflicts/story-conflicts"
|
|
46
|
-
_cache_timeout = 5
|
|
47
|
-
_model_name = "story_conflicts"
|
|
48
|
-
_pretty_name = "Story Conflicts"
|
|
49
|
-
|
|
50
|
-
story_id: str
|
|
51
|
-
existing_story: str
|
|
52
|
-
incoming_story: str
|
|
53
|
-
has_proposals: str | None = None
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
class NewsItemConflict(TaranisBaseModel):
|
|
57
|
-
_core_endpoint = "/connectors/conflicts/news-items"
|
|
58
|
-
_cache_timeout = 5
|
|
59
|
-
_model_name = "news_item_conflict"
|
|
60
|
-
_pretty_name = "News Item Conflicts"
|
|
61
|
-
|
|
62
|
-
incoming_story_id: str
|
|
63
|
-
news_item_id: str
|
|
64
|
-
existing_story_id: str
|
|
65
|
-
incoming_story: dict
|
|
66
|
-
misp_address: str | None = None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: taranis-models
|
|
3
|
-
Version: 1.3.2.
|
|
3
|
+
Version: 1.3.2.dev3
|
|
4
4
|
Summary: Taranis AI Models
|
|
5
5
|
Maintainer-email: AIT <benjamin.akhras@ait.ac.at>
|
|
6
6
|
License-Expression: EUPL-1.2
|
|
@@ -17,6 +17,7 @@ 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
|
|
20
21
|
Provides-Extra: dev
|
|
21
22
|
Requires-Dist: ruff; extra == "dev"
|
|
22
23
|
Requires-Dist: pytest; extra == "dev"
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
models/__init__.py,sha256=PvAkuaQRsocjPY5C61q6TQ8ac-EYSXTHfiOuwlIAg0M,576
|
|
2
2
|
models/admin.py,sha256=0itSQNIyGPo0d30lNWzMr19Y-x_2wT_larsjGSo694s,10156
|
|
3
|
-
models/assess.py,sha256=
|
|
3
|
+
models/assess.py,sha256=p3R6d6UpO27O33PTyBM6Ir_k27cMaSrkAYjjeRRPU_U,4545
|
|
4
4
|
models/asset.py,sha256=Zbzkspqlnya7Uj8Ig-pLm41VgmMnPXdPzacovNFXRPU,530
|
|
5
5
|
models/base.py,sha256=CBW_YcrwDSdTe-RbszXCj4yQnHW86fxSai_G7uVuBrE,594
|
|
6
|
-
models/dashboard.py,sha256=
|
|
6
|
+
models/dashboard.py,sha256=7PaB1jaK0c2VM5Deye_-lV0c-Pcg9s4BmQLzjC_V_I0,1083
|
|
7
7
|
models/product.py,sha256=ydsEDEirdZsGVunKiELxZE-3CbkDNHu1ZY4YgnvZzqU,1757
|
|
8
8
|
models/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
9
|
models/report.py,sha256=ruYnCEdf5ilDqbxsTwGGWenYMvhIQLraZYStBzzm7jY,1202
|
|
10
10
|
models/types.py,sha256=1TTXVXcUARzg2sOJJ2BfTCqboN7RQg-kn48FtE6MFaQ,6491
|
|
11
11
|
models/user.py,sha256=W_ojV4WtZz_I3hyPO8rLZvMWCU0u58Mh-HYhXs96P08,1326
|
|
12
|
-
taranis_models-1.3.2.
|
|
13
|
-
taranis_models-1.3.2.
|
|
14
|
-
taranis_models-1.3.2.
|
|
15
|
-
taranis_models-1.3.2.
|
|
16
|
-
taranis_models-1.3.2.
|
|
12
|
+
taranis_models-1.3.2.dev3.dist-info/licenses/LICENSE.md,sha256=b8nnCcy_4Nd_v_okJ6mDKCvi64jkexzbSfIag7TR5mU,13827
|
|
13
|
+
taranis_models-1.3.2.dev3.dist-info/METADATA,sha256=cF9qACXknvTX6ejPxppZ4EiKUPHTYN6NIUoV1ti5Ek8,1477
|
|
14
|
+
taranis_models-1.3.2.dev3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
15
|
+
taranis_models-1.3.2.dev3.dist-info/top_level.txt,sha256=vH5ByFtkqB2bXlXOuK5zaaM_1GFEE9six0KgGIdPaU0,7
|
|
16
|
+
taranis_models-1.3.2.dev3.dist-info/RECORD,,
|
|
File without changes
|
{taranis_models-1.3.2.dev2.dist-info → taranis_models-1.3.2.dev3.dist-info}/licenses/LICENSE.md
RENAMED
|
File without changes
|
|
File without changes
|