Skip to content

Commit 5e38b45

Browse files
authored
[client] Sort imports with isort; add pre-commit hooks (OpenCTI-Platform#168)
* [client] Add black-compatible isort config * https://pycqa.github.io/isort/ * https://black.readthedocs.io/en/stable/compatible_configs.html#isort * [client] Sort all imports with isort * [client] Add isort to pre-commit hooks
1 parent 146db34 commit 5e38b45

25 files changed

+114
-103
lines changed

.isort.cfg

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[settings]
2+
multi_line_output = 3
3+
include_trailing_comma = True
4+
force_grid_wrap = 0
5+
use_parentheses = True
6+
ensure_newline_before_comments = True
7+
line_length = 88

.pre-commit-config.yaml

+14-9
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
1-
repos:
2-
- repo: https://github.com/psf/black
3-
rev: 20.8b1
4-
hooks:
5-
- id: black
6-
- repo: https://github.com/pre-commit/pre-commit-hooks
7-
rev: v3.3.0
8-
hooks:
9-
- id: check-yaml
1+
---
2+
repos:
3+
- repo: https://github.com/PyCQA/isort
4+
rev: 5.8.0
5+
hooks:
6+
- id: isort
7+
- repo: https://github.com/psf/black
8+
rev: 20.8b1
9+
hooks:
10+
- id: black
11+
- repo: https://github.com/pre-commit/pre-commit-hooks
12+
rev: v3.3.0
13+
hooks:
14+
- id: check-yaml

examples/add_external_reference_to_report.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# coding: utf-8
22

33
from dateutil.parser import parse
4+
45
from pycti import OpenCTIApiClient
56

67
# Variables

examples/cmd_line_tag_latest_indicators_of_threat.py

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import argparse
33

44
from dateutil.parser import parse
5+
56
from pycti import OpenCTIApiClient
67

78
# Variables

examples/create_campaign_attributed-to_intrusion_set.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# coding: utf-8
22

33
from dateutil.parser import parse
4+
45
from pycti import OpenCTIApiClient
56

67
# Variables

examples/create_indicator_of_campaign.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# coding: utf-8
22

33
from dateutil.parser import parse
4+
45
from pycti import OpenCTIApiClient
56

67
# Variables

examples/create_intrusion_set.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# coding: utf-8
22

33
import datetime
4+
45
from pycti import OpenCTIApiClient
56

67
# Variables

examples/create_report_with_author.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# coding: utf-8
22

33
from dateutil.parser import parse
4+
45
from pycti import OpenCTIApiClient
56

67
# Variables

examples/export_incident_stix2.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# coding: utf-8
22

33
import json
4+
45
from pycti import OpenCTIApiClient
56

67
# Variables

examples/export_incidents_stix2.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# coding: utf-8
22

33
import json
4+
45
from pycti import OpenCTIApiClient
56

67
# Variables

examples/export_intrusion_set_stix2.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# coding: utf-8
22

33
import json
4+
45
from pycti import OpenCTIApiClient
56

67
# Variables

examples/export_report_stix2.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# coding: utf-8
22

33
import json
4+
45
from pycti import OpenCTIApiClient
56

67
# Variables

examples/upload_file_to_intrusion_set.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# coding: utf-8
22

33
import datetime
4+
45
from pycti import OpenCTIApiClient
56

67
# Variables

pycti/__init__.py

+25-33
Original file line numberDiff line numberDiff line change
@@ -2,55 +2,47 @@
22
from .api.opencti_api_client import OpenCTIApiClient
33
from .api.opencti_api_connector import OpenCTIApiConnector
44
from .api.opencti_api_work import OpenCTIApiWork
5-
6-
from .connector.opencti_connector import ConnectorType
7-
from .connector.opencti_connector import OpenCTIConnector
5+
from .connector.opencti_connector import ConnectorType, OpenCTIConnector
86
from .connector.opencti_connector_helper import (
97
OpenCTIConnectorHelper,
108
get_config_variable,
119
)
12-
13-
from .entities.opencti_label import Label
14-
from .entities.opencti_marking_definition import MarkingDefinition
10+
from .entities.opencti_attack_pattern import AttackPattern
11+
from .entities.opencti_campaign import Campaign
12+
from .entities.opencti_course_of_action import CourseOfAction
1513
from .entities.opencti_external_reference import ExternalReference
14+
from .entities.opencti_identity import Identity
15+
from .entities.opencti_incident import Incident
16+
from .entities.opencti_indicator import Indicator
17+
from .entities.opencti_infrastructure import Infrastructure
18+
from .entities.opencti_intrusion_set import IntrusionSet
1619
from .entities.opencti_kill_chain_phase import KillChainPhase
17-
from .entities.opencti_stix_object_or_stix_relationship import (
18-
StixObjectOrStixRelationship,
19-
)
20-
from .entities.opencti_stix_domain_object import StixDomainObject
21-
from .entities.opencti_stix_cyber_observable import StixCyberObservable
20+
from .entities.opencti_label import Label
21+
from .entities.opencti_location import Location
22+
from .entities.opencti_malware import Malware
23+
from .entities.opencti_marking_definition import MarkingDefinition
24+
from .entities.opencti_note import Note
25+
from .entities.opencti_observed_data import ObservedData
26+
from .entities.opencti_opinion import Opinion
27+
from .entities.opencti_report import Report
2228
from .entities.opencti_stix_core_relationship import StixCoreRelationship
23-
from .entities.opencti_stix_sighting_relationship import StixSightingRelationship
29+
from .entities.opencti_stix_cyber_observable import StixCyberObservable
2430
from .entities.opencti_stix_cyber_observable_relationship import (
2531
StixCyberObservableRelationship,
2632
)
27-
from .entities.opencti_identity import Identity
28-
from .entities.opencti_location import Location
33+
from .entities.opencti_stix_domain_object import StixDomainObject
34+
from .entities.opencti_stix_object_or_stix_relationship import (
35+
StixObjectOrStixRelationship,
36+
)
37+
from .entities.opencti_stix_sighting_relationship import StixSightingRelationship
2938
from .entities.opencti_threat_actor import ThreatActor
30-
from .entities.opencti_intrusion_set import IntrusionSet
31-
from .entities.opencti_infrastructure import Infrastructure
32-
from .entities.opencti_campaign import Campaign
33-
from .entities.opencti_incident import Incident
34-
from .entities.opencti_malware import Malware
3539
from .entities.opencti_tool import Tool
3640
from .entities.opencti_vulnerability import Vulnerability
37-
from .entities.opencti_attack_pattern import AttackPattern
38-
from .entities.opencti_course_of_action import CourseOfAction
39-
from .entities.opencti_report import Report
40-
from .entities.opencti_note import Note
41-
from .entities.opencti_observed_data import ObservedData
42-
from .entities.opencti_opinion import Opinion
43-
from .entities.opencti_indicator import Indicator
44-
41+
from .utils.constants import StixCyberObservableTypes
4542
from .utils.opencti_stix2 import OpenCTIStix2
4643
from .utils.opencti_stix2_splitter import OpenCTIStix2Splitter
4744
from .utils.opencti_stix2_update import OpenCTIStix2Update
48-
from .utils.opencti_stix2_utils import (
49-
OpenCTIStix2Utils,
50-
SimpleObservable,
51-
StixIncident,
52-
)
53-
from .utils.constants import StixCyberObservableTypes
45+
from .utils.opencti_stix2_utils import OpenCTIStix2Utils, SimpleObservable, StixIncident
5446

5547
__all__ = [
5648
"OpenCTIApiClient",

pycti/api/opencti_api_client.py

+28-29
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,49 @@
11
# coding: utf-8
22

3+
import datetime
34
import io
4-
import magic
5-
import requests
6-
import urllib3
75
import json
86
import logging
9-
import datetime
10-
117
from typing import Union
128

9+
import magic
10+
import requests
11+
import urllib3
12+
1313
from pycti.api.opencti_api_connector import OpenCTIApiConnector
1414
from pycti.api.opencti_api_work import OpenCTIApiWork
15-
from pycti.utils.opencti_stix2 import OpenCTIStix2
16-
17-
from pycti.entities.opencti_label import Label
18-
from pycti.entities.opencti_marking_definition import MarkingDefinition
15+
from pycti.entities.opencti_attack_pattern import AttackPattern
16+
from pycti.entities.opencti_campaign import Campaign
17+
from pycti.entities.opencti_course_of_action import CourseOfAction
1918
from pycti.entities.opencti_external_reference import ExternalReference
19+
from pycti.entities.opencti_identity import Identity
20+
from pycti.entities.opencti_incident import Incident
21+
from pycti.entities.opencti_indicator import Indicator
22+
from pycti.entities.opencti_infrastructure import Infrastructure
23+
from pycti.entities.opencti_intrusion_set import IntrusionSet
2024
from pycti.entities.opencti_kill_chain_phase import KillChainPhase
21-
from pycti.entities.opencti_stix_object_or_stix_relationship import (
22-
StixObjectOrStixRelationship,
23-
)
24-
from pycti.entities.opencti_stix_domain_object import StixDomainObject
25-
from pycti.entities.opencti_stix_cyber_observable import StixCyberObservable
25+
from pycti.entities.opencti_label import Label
26+
from pycti.entities.opencti_location import Location
27+
from pycti.entities.opencti_malware import Malware
28+
from pycti.entities.opencti_marking_definition import MarkingDefinition
29+
from pycti.entities.opencti_note import Note
30+
from pycti.entities.opencti_observed_data import ObservedData
31+
from pycti.entities.opencti_opinion import Opinion
32+
from pycti.entities.opencti_report import Report
2633
from pycti.entities.opencti_stix_core_relationship import StixCoreRelationship
27-
from pycti.entities.opencti_stix_sighting_relationship import StixSightingRelationship
34+
from pycti.entities.opencti_stix_cyber_observable import StixCyberObservable
2835
from pycti.entities.opencti_stix_cyber_observable_relationship import (
2936
StixCyberObservableRelationship,
3037
)
31-
from pycti.entities.opencti_identity import Identity
32-
from pycti.entities.opencti_location import Location
38+
from pycti.entities.opencti_stix_domain_object import StixDomainObject
39+
from pycti.entities.opencti_stix_object_or_stix_relationship import (
40+
StixObjectOrStixRelationship,
41+
)
42+
from pycti.entities.opencti_stix_sighting_relationship import StixSightingRelationship
3343
from pycti.entities.opencti_threat_actor import ThreatActor
34-
from pycti.entities.opencti_intrusion_set import IntrusionSet
35-
from pycti.entities.opencti_infrastructure import Infrastructure
36-
from pycti.entities.opencti_campaign import Campaign
37-
from pycti.entities.opencti_incident import Incident
38-
from pycti.entities.opencti_malware import Malware
3944
from pycti.entities.opencti_tool import Tool
4045
from pycti.entities.opencti_vulnerability import Vulnerability
41-
from pycti.entities.opencti_attack_pattern import AttackPattern
42-
from pycti.entities.opencti_course_of_action import CourseOfAction
43-
from pycti.entities.opencti_report import Report
44-
from pycti.entities.opencti_note import Note
45-
from pycti.entities.opencti_observed_data import ObservedData
46-
from pycti.entities.opencti_opinion import Opinion
47-
from pycti.entities.opencti_indicator import Indicator
46+
from pycti.utils.opencti_stix2 import OpenCTIStix2
4847

4948
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
5049

pycti/api/opencti_api_connector.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import json
22
import logging
3-
4-
from typing import Dict, Any
3+
from typing import Any, Dict
54

65
from pycti.connector.opencti_connector import OpenCTIConnector
76

pycti/connector/opencti_connector_helper.py

+11-11
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1+
import base64
12
import datetime
2-
import threading
3-
import queue
4-
import uuid
5-
import requests
6-
7-
import pika
8-
import logging
93
import json
10-
import time
11-
import base64
4+
import logging
125
import os
6+
import queue
137
import ssl
8+
import threading
9+
import time
10+
import uuid
11+
from typing import Callable, Dict, List, Optional, Union
1412

15-
from typing import Callable, Dict, Optional, Union, List
13+
import pika
14+
import requests
15+
from pika.exceptions import NackError, UnroutableError
1616
from sseclient import SSEClient
17-
from pika.exceptions import UnroutableError, NackError
17+
1818
from pycti.api.opencti_api_client import OpenCTIApiClient
1919
from pycti.connector.opencti_connector import OpenCTIConnector
2020
from pycti.utils.opencti_stix2_splitter import OpenCTIStix2Splitter

pycti/entities/opencti_identity.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# coding: utf-8
22

33
import json
4+
45
from pycti.utils.constants import IdentityTypes
56

67

pycti/entities/opencti_stix_domain_object.py

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import json
44
import os
5+
56
import magic
67

78

pycti/entities/opencti_threat_actor.py

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# coding: utf-8
22

33
import json
4-
54
from typing import Union
65

76

pycti/utils/opencti_stix2.py

+4-8
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,19 @@
11
# coding: utf-8
22

3-
import os
4-
import json
5-
import uuid
63
import base64
74
import datetime
5+
import json
6+
import os
7+
import uuid
88
from typing import List
99

1010
import datefinder
1111
import dateutil.parser
1212
import pytz
1313

14+
from pycti.utils.constants import IdentityTypes, LocationTypes, StixCyberObservableTypes
1415
from pycti.utils.opencti_stix2_splitter import OpenCTIStix2Splitter
1516
from pycti.utils.opencti_stix2_update import OpenCTIStix2Update
16-
from pycti.utils.constants import (
17-
IdentityTypes,
18-
LocationTypes,
19-
StixCyberObservableTypes,
20-
)
2117

2218
datefinder.ValueError = ValueError, OverflowError
2319
utc = pytz.UTC

pycti/utils/opencti_stix2_update.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# coding: utf-8
22

3-
from pycti.utils.constants import (
4-
StixCyberObservableTypes,
5-
)
3+
from pycti.utils.constants import StixCyberObservableTypes
64

75

86
class OpenCTIStix2Update:

0 commit comments

Comments
 (0)