fix: remove unused imports and un-suppress F401

closes #2996
This commit is contained in:
Willi Ballenthin
2026-05-07 12:40:42 +02:00
committed by Willi Ballenthin
parent 309231f261
commit b505ba7621
53 changed files with 0 additions and 98 deletions
-3
View File
@@ -81,9 +81,6 @@ lint.ignore = [
"B904", # Raise exceptions within except clause using raise from "B904", # Raise exceptions within except clause using raise from
"UP028", # Replace yield over for loop with yield from "UP028", # Replace yield over for loop with yield from
"C409", # Unnecessary list comprehension passed to tuple() "C409", # Unnecessary list comprehension passed to tuple()
# TODO(mike-hunhoff): address circular dependencies
# https://github.com/mandiant/capa/issues/2996
"F401", # Unused imports
] ]
[lint.per-file-ignores] [lint.per-file-ignores]
-1
View File
@@ -17,7 +17,6 @@ import itertools
import collections import collections
from dataclasses import dataclass from dataclasses import dataclass
import capa.perf
import capa.engine import capa.engine
import capa.helpers import capa.helpers
import capa.features.freeze as frz import capa.features.freeze as frz
-1
View File
@@ -18,7 +18,6 @@ import itertools
import collections import collections
from dataclasses import dataclass from dataclasses import dataclass
import capa.perf
import capa.engine import capa.engine
import capa.helpers import capa.helpers
import capa.features.freeze as frz import capa.features.freeze as frz
@@ -15,7 +15,6 @@
import logging import logging
from typing import Iterator from typing import Iterator
import capa.features.extractors.elf
import capa.features.extractors.common import capa.features.extractors.common
import capa.features.extractors.binexport2.file import capa.features.extractors.binexport2.file
import capa.features.extractors.binexport2.insn import capa.features.extractors.binexport2.insn
@@ -19,7 +19,6 @@ from typing import Iterator
import pefile import pefile
from elftools.elf.elffile import ELFFile from elftools.elf.elffile import ELFFile
import capa.features.common
import capa.features.extractors.common import capa.features.extractors.common
import capa.features.extractors.pefile import capa.features.extractors.pefile
import capa.features.extractors.elffile import capa.features.extractors.elffile
@@ -18,7 +18,6 @@ from collections import defaultdict
from dataclasses import dataclass from dataclasses import dataclass
import capa.features.extractors.helpers import capa.features.extractors.helpers
import capa.features.extractors.binexport2.helpers
from capa.features.common import ARCH_I386, ARCH_AMD64, ARCH_AARCH64 from capa.features.common import ARCH_I386, ARCH_AMD64, ARCH_AARCH64
from capa.features.extractors.binexport2.binexport2_pb2 import BinExport2 from capa.features.extractors.binexport2.binexport2_pb2 import BinExport2
@@ -16,7 +16,6 @@ from typing import Iterator
import binaryninja as binja import binaryninja as binja
import capa.features.extractors.elf
import capa.features.extractors.binja.file import capa.features.extractors.binja.file
import capa.features.extractors.binja.insn import capa.features.extractors.binja.insn
import capa.features.extractors.binja.global_ import capa.features.extractors.binja.global_
-2
View File
@@ -16,9 +16,7 @@ from typing import Iterator
from binaryninja import Segment, BinaryView, SymbolType, SymbolBinding from binaryninja import Segment, BinaryView, SymbolType, SymbolBinding
import capa.features.extractors.common
import capa.features.extractors.helpers import capa.features.extractors.helpers
import capa.features.extractors.strings
from capa.features.file import Export, Import, Section, FunctionName from capa.features.file import Export, Import, Section, FunctionName
from capa.features.common import ( from capa.features.common import (
FORMAT_PE, FORMAT_PE,
-1
View File
@@ -21,7 +21,6 @@ from typing import Iterator
import pefile import pefile
import capa.features
import capa.features.extractors.elf import capa.features.extractors.elf
import capa.features.extractors.pefile import capa.features.extractors.pefile
import capa.features.extractors.strings import capa.features.extractors.strings
@@ -21,7 +21,6 @@ from pathlib import Path
import dnfile import dnfile
from dncil.cil.opcode import OpCodes from dncil.cil.opcode import OpCodes
import capa.features.extractors
import capa.features.extractors.dotnetfile import capa.features.extractors.dotnetfile
import capa.features.extractors.dnfile.file import capa.features.extractors.dnfile.file
import capa.features.extractors.dnfile.insn import capa.features.extractors.dnfile.insn
-1
View File
@@ -18,7 +18,6 @@ from typing import Iterator
from ghidra.program.model.symbol import SourceType, SymbolType from ghidra.program.model.symbol import SourceType, SymbolType
import capa.features.extractors.common
import capa.features.extractors.helpers import capa.features.extractors.helpers
import capa.features.extractors.strings import capa.features.extractors.strings
import capa.features.extractors.ghidra.helpers import capa.features.extractors.ghidra.helpers
@@ -17,7 +17,6 @@ from typing import Iterator
import idaapi import idaapi
import capa.ida.helpers import capa.ida.helpers
import capa.features.extractors.elf
import capa.features.extractors.ida.file import capa.features.extractors.ida.file
import capa.features.extractors.ida.insn import capa.features.extractors.ida.insn
import capa.features.extractors.ida.global_ import capa.features.extractors.ida.global_
-1
View File
@@ -23,7 +23,6 @@ import ida_entry
import ida_loader import ida_loader
import capa.ida.helpers import capa.ida.helpers
import capa.features.extractors.common
import capa.features.extractors.helpers import capa.features.extractors.helpers
import capa.features.extractors.strings import capa.features.extractors.strings
import capa.features.extractors.ida.helpers import capa.features.extractors.ida.helpers
-3
View File
@@ -18,11 +18,8 @@ from pathlib import Path
import pefile import pefile
import capa.features.common
import capa.features.extractors
import capa.features.extractors.common import capa.features.extractors.common
import capa.features.extractors.helpers import capa.features.extractors.helpers
import capa.features.extractors.strings
from capa.features.file import Export, Import, Section from capa.features.file import Export, Import, Section
from capa.features.common import OS, ARCH_I386, FORMAT_PE, ARCH_AMD64, OS_WINDOWS, Arch, Format, Characteristic from capa.features.common import OS, ARCH_I386, FORMAT_PE, ARCH_AMD64, OS_WINDOWS, Arch, Format, Characteristic
from capa.features.address import NO_ADDRESS, FileOffsetAddress, AbsoluteVirtualAddress from capa.features.address import NO_ADDRESS, FileOffsetAddress, AbsoluteVirtualAddress
-2
View File
@@ -19,10 +19,8 @@ import vivisect
import viv_utils import viv_utils
import viv_utils.flirt import viv_utils.flirt
import capa.features.insn
import capa.features.extractors.common import capa.features.extractors.common
import capa.features.extractors.helpers import capa.features.extractors.helpers
import capa.features.extractors.strings
from capa.features.file import Export, Import, Section, FunctionName from capa.features.file import Export, Import, Section, FunctionName
from capa.features.common import Feature, Characteristic from capa.features.common import Feature, Characteristic
from capa.features.address import Address, FileOffsetAddress, AbsoluteVirtualAddress from capa.features.address import Address, FileOffsetAddress, AbsoluteVirtualAddress
@@ -16,7 +16,6 @@ import logging
from typing import Iterator from typing import Iterator
from pathlib import Path from pathlib import Path
import capa.helpers
import capa.features.extractors.vmray.call import capa.features.extractors.vmray.call
import capa.features.extractors.vmray.file import capa.features.extractors.vmray.file
import capa.features.extractors.vmray.global_ import capa.features.extractors.vmray.global_
-5
View File
@@ -24,13 +24,8 @@ from typing import Union, Literal, TypeAlias
from pydantic import Field, BaseModel, ConfigDict from pydantic import Field, BaseModel, ConfigDict
import capa.helpers
import capa.version import capa.version
import capa.features.file
import capa.features.insn
import capa.features.common
import capa.features.address import capa.features.address
import capa.features.basicblock
import capa.features.extractors.null as null import capa.features.extractors.null as null
from capa.helpers import assert_never from capa.helpers import assert_never
from capa.features.freeze.features import Feature, feature_from_capa from capa.features.freeze.features import Feature, feature_from_capa
-2
View File
@@ -17,9 +17,7 @@ import datetime
import contextlib import contextlib
from pathlib import Path from pathlib import Path
import capa
import capa.version import capa.version
import capa.features.common
import capa.features.freeze import capa.features.freeze
import capa.render.result_document as rdoc import capa.render.result_document as rdoc
import capa.features.extractors.elf import capa.features.extractors.elf
-1
View File
@@ -30,7 +30,6 @@ from ghidra.util.exception import CancelledException
from ghidra.program.flatapi import FlatProgramAPI from ghidra.program.flatapi import FlatProgramAPI
from ghidra.program.model.symbol import Namespace, SourceType, SymbolType from ghidra.program.model.symbol import Namespace, SourceType, SymbolType
import capa
import capa.main import capa.main
import capa.rules import capa.rules
import capa.version import capa.version
-1
View File
@@ -25,7 +25,6 @@ import ida_kernwin
import ida_settings import ida_settings
import capa.rules import capa.rules
import capa.engine
import capa.loader import capa.loader
import capa.version import capa.version
import capa.ida.helpers import capa.ida.helpers
-2
View File
@@ -22,12 +22,10 @@ from pathlib import Path
from rich.console import Console from rich.console import Console
import capa.rules import capa.rules
import capa.helpers
import capa.version import capa.version
import capa.features.common import capa.features.common
import capa.features.freeze as frz import capa.features.freeze as frz
import capa.features.address import capa.features.address
import capa.features.extractors
import capa.render.result_document as rdoc import capa.render.result_document as rdoc
import capa.features.extractors.common import capa.features.extractors.common
from capa.rules import RuleSet from capa.rules import RuleSet
-2
View File
@@ -30,9 +30,7 @@ from pefile import PEFormatError
from rich.logging import RichHandler from rich.logging import RichHandler
from elftools.common.exceptions import ELFError from elftools.common.exceptions import ELFError
import capa.perf
import capa.rules import capa.rules
import capa.engine
import capa.loader import capa.loader
import capa.helpers import capa.helpers
import capa.version import capa.version
-1
View File
@@ -16,7 +16,6 @@
import collections import collections
import urllib.parse import urllib.parse
import rich
import rich.table import rich.table
from rich.console import Console from rich.console import Console
-1
View File
@@ -34,7 +34,6 @@ import yaml.parser
import capa.perf import capa.perf
import capa.engine as ceng import capa.engine as ceng
import capa.features
import capa.optimizer import capa.optimizer
import capa.features.com import capa.features.com
import capa.features.file import capa.features.file
-1
View File
@@ -23,7 +23,6 @@ from pathlib import Path
from dataclasses import dataclass from dataclasses import dataclass
import capa.rules import capa.rules
import capa.helpers
import capa.version import capa.version
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
-3
View File
@@ -70,11 +70,8 @@ import multiprocessing
import multiprocessing.pool import multiprocessing.pool
from pathlib import Path from pathlib import Path
import capa
import capa.main import capa.main
import capa.rules
import capa.loader import capa.loader
import capa.render.json
import capa.capabilities.common import capa.capabilities.common
import capa.render.result_document as rd import capa.render.result_document as rd
-2
View File
@@ -21,9 +21,7 @@ from pathlib import Path
import capa.main import capa.main
import capa.rules import capa.rules
import capa.engine
import capa.loader import capa.loader
import capa.features
import capa.render.json import capa.render.json
import capa.render.utils as rutils import capa.render.utils as rutils
import capa.render.default import capa.render.default
-3
View File
@@ -46,9 +46,6 @@ from pathlib import Path
import capa.main import capa.main
import capa.rules import capa.rules
import capa.engine
import capa.features
import capa.features.insn
logger = logging.getLogger("capa2yara") logger = logging.getLogger("capa2yara")
@@ -38,12 +38,8 @@ import logging
import argparse import argparse
import capa.main import capa.main
import capa.rules
import capa.loader import capa.loader
import capa.exceptions
import capa.render.proto import capa.render.proto
import capa.render.verbose
import capa.features.freeze
import capa.capabilities.common import capa.capabilities.common
import capa.render.result_document as rd import capa.render.result_document as rd
from capa.loader import FORMAT_BINEXPORT2, BACKEND_BINEXPORT2 from capa.loader import FORMAT_BINEXPORT2, BACKEND_BINEXPORT2
-1
View File
@@ -17,7 +17,6 @@ import logging
import argparse import argparse
from pathlib import Path from pathlib import Path
import capa.main
import capa.rules import capa.rules
from capa.features.common import Feature from capa.features.common import Feature
-5
View File
@@ -64,11 +64,6 @@ import viv_utils
import viv_utils.flirt import viv_utils.flirt
import capa.main import capa.main
import capa.rules
import capa.engine
import capa.helpers
import capa.features
import capa.features.freeze
from capa.loader import BACKEND_VIV from capa.loader import BACKEND_VIV
logger = logging.getLogger("capa.match-function-id") logger = logging.getLogger("capa.match-function-id")
-6
View File
@@ -57,13 +57,7 @@ from rich.console import Console
import capa.main import capa.main
import capa.perf import capa.perf
import capa.rules
import capa.engine
import capa.loader
import capa.helpers import capa.helpers
import capa.features
import capa.features.common
import capa.features.freeze
import capa.capabilities.common import capa.capabilities.common
logger = logging.getLogger("capa.profile") logger = logging.getLogger("capa.profile")
-2
View File
@@ -44,10 +44,8 @@ import argparse
from pathlib import Path from pathlib import Path
import capa.main import capa.main
import capa.render.json
import capa.render.proto import capa.render.proto
import capa.render.proto.capa_pb2 import capa.render.proto.capa_pb2
import capa.render.result_document
logger = logging.getLogger("capa.proto-to-results-json") logger = logging.getLogger("capa.proto-to-results-json")
-2
View File
@@ -65,10 +65,8 @@ import colorama
import capa.main import capa.main
import capa.rules import capa.rules
import capa.loader import capa.loader
import capa.exceptions
import capa.render.utils as rutils import capa.render.utils as rutils
import capa.render.verbose import capa.render.verbose
import capa.features.freeze
import capa.capabilities.common import capa.capabilities.common
import capa.render.result_document as rd import capa.render.result_document as rd
from capa.features.freeze import Address from capa.features.freeze import Address
-5
View File
@@ -76,12 +76,7 @@ import logging
import argparse import argparse
import capa.main import capa.main
import capa.rules
import capa.engine
import capa.loader
import capa.helpers import capa.helpers
import capa.features
import capa.exceptions
import capa.render.verbose as v import capa.render.verbose as v
import capa.features.freeze import capa.features.freeze
import capa.features.address import capa.features.address
-2
View File
@@ -25,8 +25,6 @@ from rich.table import Table
import capa.main import capa.main
import capa.rules import capa.rules
import capa.helpers import capa.helpers
import capa.features
import capa.exceptions
import capa.render.verbose as v import capa.render.verbose as v
import capa.features.common import capa.features.common
import capa.features.freeze import capa.features.freeze
-3
View File
@@ -20,7 +20,6 @@ from functools import lru_cache
import pytest import pytest
import capa.loader
import capa.features.file import capa.features.file
import capa.features.insn import capa.features.insn
import capa.features.common import capa.features.common
@@ -101,7 +100,6 @@ def xfail(condition, reason: str = ""):
# need to limit cache size so GitHub Actions doesn't run out of memory, see #545 # need to limit cache size so GitHub Actions doesn't run out of memory, see #545
@lru_cache(maxsize=1) @lru_cache(maxsize=1)
def get_viv_extractor(path: Path): def get_viv_extractor(path: Path):
import capa.main
import capa.loader import capa.loader
import capa.features.extractors.viv.extractor import capa.features.extractors.viv.extractor
@@ -311,7 +309,6 @@ def get_ghidra_extractor(path: Path):
import capa.loader import capa.loader
import capa.features.extractors.ghidra.context import capa.features.extractors.ghidra.context
import capa.features.extractors.ghidra.extractor
if path in GHIDRA_CACHE: if path in GHIDRA_CACHE:
extractor, program, flat_api, monitor = GHIDRA_CACHE[path] extractor, program, flat_api, monitor = GHIDRA_CACHE[path]
-1
View File
@@ -833,7 +833,6 @@ def test_arm_add_two_operand_does_not_crash():
], ],
"operand_indices": [0, 1], "operand_indices": [0, 1],
}) })
from capa.features.insn import Number
features = list(extract_insn_number_features(fh, bbh, ih)) features = list(extract_insn_number_features(fh, bbh, ih))
values = {f.value for f, _ in features} values = {f.value for f, _ in features}
-1
View File
@@ -20,7 +20,6 @@ import fixtures
import capa.features.file import capa.features.file
import capa.features.insn import capa.features.insn
import capa.features.common import capa.features.common
import capa.features.basicblock
from capa.features.common import ( from capa.features.common import (
OS, OS,
OS_LINUX, OS_LINUX,
-2
View File
@@ -19,8 +19,6 @@ import pytest
import fixtures import fixtures
import capa.main import capa.main
import capa.features.file
import capa.features.common
logger = logging.getLogger(__file__) logger = logging.getLogger(__file__)
-2
View File
@@ -15,11 +15,9 @@
import fixtures import fixtures
import capa.main
import capa.features.file import capa.features.file
import capa.features.insn import capa.features.insn
import capa.features.common import capa.features.common
import capa.features.basicblock
DYNAMIC_CAPE_FEATURE_PRESENCE_TESTS = sorted( DYNAMIC_CAPE_FEATURE_PRESENCE_TESTS = sorted(
[ [
-1
View File
@@ -15,7 +15,6 @@
import fixtures import fixtures
import capa.main
import capa.features.file import capa.features.file
import capa.features.insn import capa.features.insn
import capa.features.common import capa.features.common
@@ -38,7 +38,6 @@ from functools import lru_cache
import pytest import pytest
import fixtures import fixtures
import capa.main
import capa.rules import capa.rules
import capa.capabilities.dynamic import capa.capabilities.dynamic
from capa.features.extractors.base_extractor import ThreadFilter, DynamicFeatureExtractor from capa.features.extractors.base_extractor import ThreadFilter, DynamicFeatureExtractor
-1
View File
@@ -19,7 +19,6 @@ import fixtures
import capa.main import capa.main
import capa.rules import capa.rules
import capa.features.file
import capa.features.insn import capa.features.insn
import capa.features.common import capa.features.common
import capa.features.freeze import capa.features.freeze
-2
View File
@@ -19,7 +19,6 @@ import pytest
import capa.main import capa.main
import capa.rules import capa.rules
import capa.helpers
import capa.features.file import capa.features.file
import capa.features.insn import capa.features.insn
import capa.features.common import capa.features.common
@@ -27,7 +26,6 @@ import capa.features.freeze
import capa.features.basicblock import capa.features.basicblock
import capa.features.extractors.null import capa.features.extractors.null
import capa.features.freeze.features import capa.features.freeze.features
import capa.features.extractors.base_extractor
from capa.features.address import Address, AbsoluteVirtualAddress from capa.features.address import Address, AbsoluteVirtualAddress
from capa.features.extractors.base_extractor import ( from capa.features.extractors.base_extractor import (
BBHandle, BBHandle,
-2
View File
@@ -21,8 +21,6 @@ import fixtures
import capa.main import capa.main
import capa.rules import capa.rules
import capa.engine
import capa.features
def test_main(z9324d_extractor): def test_main(z9324d_extractor):
-2
View File
@@ -18,9 +18,7 @@ from typing import Any
import pytest import pytest
import capa.rules import capa.rules
import capa.render
import capa.render.proto import capa.render.proto
import capa.render.utils
import capa.features.freeze import capa.features.freeze
import capa.features.address import capa.features.address
import capa.render.proto.capa_pb2 as capa_pb2 import capa.render.proto.capa_pb2 as capa_pb2
-1
View File
@@ -27,7 +27,6 @@ import capa.features.common
import capa.features.freeze import capa.features.freeze
import capa.render.vverbose import capa.render.vverbose
import capa.features.address import capa.features.address
import capa.features.basicblock
import capa.render.result_document import capa.render.result_document
import capa.render.result_document as rd import capa.render.result_document as rd
import capa.features.freeze.features import capa.features.freeze.features
-1
View File
@@ -18,7 +18,6 @@ import textwrap
import pytest import pytest
import fixtures import fixtures
import capa
import capa.rules import capa.rules
import capa.engine as ceng import capa.engine as ceng
import capa.features.file import capa.features.file
-1
View File
@@ -19,7 +19,6 @@ import pytest
import capa.rules import capa.rules
import capa.engine import capa.engine
import capa.rules.cache
import capa.features.common import capa.features.common
import capa.features.address import capa.features.address
from capa.engine import Or from capa.engine import Or
-1
View File
@@ -266,7 +266,6 @@ def test_missing_static_dynamic_scope_no_crash_when_scopes_absent():
import lint as lint_module import lint as lint_module
import capa.engine import capa.engine
import capa.features.common
scopes = capa.rules.Scopes(static=capa.rules.Scope.FUNCTION, dynamic=capa.rules.Scope.PROCESS) scopes = capa.rules.Scopes(static=capa.rules.Scope.FUNCTION, dynamic=capa.rules.Scope.PROCESS)
statement = capa.engine.And([]) statement = capa.engine.And([])
-1
View File
@@ -15,7 +15,6 @@
import fixtures import fixtures
import capa.main
import capa.features.file import capa.features.file
import capa.features.insn import capa.features.insn
import capa.features.common import capa.features.common
-2
View File
@@ -13,11 +13,9 @@
# limitations under the License. # limitations under the License.
import os
import sys import sys
import logging import logging
import urllib.parse import urllib.parse
from glob import glob
from pathlib import Path from pathlib import Path
import pygments import pygments