# Copyright (C) 2023 Mandiant, Inc. All Rights Reserved.
# Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
# You may obtain a copy of the License at: [package root]/LICENSE.txt
# Unless required by applicable law or agreed to in writing, software distributed under the License
#  is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and limitations under the License.

[build-system]
requires = ["setuptools", "setuptools-scm"]
build-backend = "setuptools.build_meta"

[project]
name = "flare-capa"
authors = [
    {name = "Willi Ballenthin", email = "william.ballenthin@mandiant.com"},
    {name = "Moritz Raabe", email = "moritz.raabe@mandiant.com"},
    {name = "Mike Hunhoff", email = "michael.hunhoff@mandiant.com"},
]
description = "The FLARE team's open-source tool to identify capabilities in executable files."
readme = {file = "README.md", content-type = "text/markdown"}
license = {file = "LICENSE.txt"}
requires-python = ">=3.8"
keywords = ["malware analysis", "reverse engineering", "capability detection", "software behaviors", "capa", "FLARE"]
classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Intended Audience :: Developers",
    "Intended Audience :: Information Technology",
    "License :: OSI Approved :: Apache Software License",
    "Natural Language :: English",
    "Programming Language :: Python :: 3",
    "Topic :: Security",
]
dependencies = [
    "tqdm==4.66.1",
    "pyyaml==6.0.1",
    "tabulate==0.9.0",
    "colorama==0.4.6",
    "termcolor==2.3.0",
    "wcwidth==0.2.8",
    "ida-settings==2.1.0",
    "viv-utils[flirt]==0.7.9",
    "halo==0.0.31",
    "networkx==3.1",
    "ruamel.yaml==0.17.35",
    "vivisect==1.1.1",
    "pefile==2023.2.7",
    "pyelftools==0.30",
    "dnfile==0.14.1",
    "dncil==1.0.2",
    "pydantic==2.1.1",
    "protobuf==4.23.4",
]
dynamic = ["version"]

[tool.setuptools.dynamic]
version = {attr = "capa.version.__version__"}

[tool.setuptools]
packages = ["capa"]

[project.optional-dependencies]
dev = [
    "pre-commit==3.5.0",
    "pytest==7.4.2",
    "pytest-sugar==0.9.7",
    "pytest-instafail==0.5.0",
    "pytest-cov==4.1.0",
    "flake8==6.1.0",
    "flake8-bugbear==23.9.16",
    "flake8-encodings==0.5.0.post1",
    "flake8-comprehensions==3.14.0",
    "flake8-logging-format==0.9.0",
    "flake8-no-implicit-concat==0.3.4",
    "flake8-print==5.0.0",
    "flake8-todos==0.3.0",
    "flake8-simplify==0.21.0",
    "flake8-use-pathlib==0.3.0",
    "flake8-copyright==0.2.4",
    "ruff==0.0.291",
    "black==23.9.1",
    "isort==5.11.4",
    "mypy==1.6.0",
    "psutil==5.9.2",
    "stix2==3.0.1",
    "requests==2.31.0",
    "mypy-protobuf==3.5.0",
    # type stubs for mypy
    "types-backports==0.1.3",
    "types-colorama==0.4.15.11",
    "types-PyYAML==6.0.8",
    "types-tabulate==0.9.0.3",
    "types-termcolor==1.1.4",
    "types-psutil==5.8.23",
    "types_requests==2.31.0.2",
    "types-protobuf==4.23.0.3",
]
build = [
    "pyinstaller==6.1.0",
    "setuptools==68.0.0",
    "build==1.0.3"
]

[project.urls]
Homepage = "https://github.com/mandiant/capa"
Repository = "https://github.com/mandiant/capa.git"
Documentation = "https://github.com/mandiant/capa/tree/master/doc"
Rules = "https://github.com/mandiant/capa-rules"
"Rules Documentation" = "https://github.com/mandiant/capa-rules/tree/master/doc"

[project.scripts]
capa = "capa.main:main"
