• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1[build-system]
2requires = [ "setuptools>=62.0.0" ]
3build-backend = "setuptools.build_meta"
4
5[project]
6name = "scapy"
7dynamic = [ "version", "readme" ]
8authors = [
9    { name="Philippe BIONDI" },
10]
11maintainers = [
12    { name="Pierre LALET" },
13    { name="Gabriel POTTER" },
14    { name="Guillaume VALADON" },
15    { name="Nils WEISS" },
16]
17license = { text="GPL-2.0-only" }
18requires-python = ">=3.7, <4"
19description = "Scapy: interactive packet manipulation tool"
20keywords = [ "network" ]
21classifiers = [
22    "Development Status :: 5 - Production/Stable",
23    "Environment :: Console",
24    "Intended Audience :: Developers",
25    "Intended Audience :: Information Technology",
26    "Intended Audience :: Science/Research",
27    "Intended Audience :: System Administrators",
28    "Intended Audience :: Telecommunications Industry",
29    "License :: OSI Approved :: GNU General Public License v2 (GPLv2)",
30    "Programming Language :: Python :: 3",
31    "Programming Language :: Python :: 3 :: Only",
32    "Programming Language :: Python :: 3.7",
33    "Programming Language :: Python :: 3.8",
34    "Programming Language :: Python :: 3.9",
35    "Programming Language :: Python :: 3.10",
36    "Programming Language :: Python :: 3.11",
37    "Programming Language :: Python :: 3.12",
38    "Programming Language :: Python :: 3.13",
39    "Topic :: Security",
40    "Topic :: System :: Networking",
41    "Topic :: System :: Networking :: Monitoring",
42]
43
44[project.urls]
45Homepage = "https://scapy.net"
46Download = "https://github.com/secdev/scapy/tarball/master"
47Documentation = "https://scapy.readthedocs.io"
48"Source Code" = "https://github.com/secdev/scapy"
49Changelog = "https://github.com/secdev/scapy/releases"
50
51[project.scripts]
52scapy = "scapy.main:interact"
53
54[project.optional-dependencies]
55cli = [ "ipython" ]
56all = [
57    "ipython",
58    "pyx",
59    "cryptography>=2.0",
60    "matplotlib",
61]
62doc = [
63    "sphinx>=7.0.0",
64    "sphinx_rtd_theme>=1.3.0",
65    "tox>=3.0.0",
66]
67
68# setuptools specific
69
70[tool.setuptools.package-data]
71"scapy" = ["py.typed"]
72
73[tool.setuptools.packages.find]
74include = [
75    "scapy*",
76]
77exclude = [
78    "test*",
79    "doc*",
80]
81
82[tool.setuptools.dynamic]
83version = { attr="scapy.VERSION" }
84
85# coverage
86
87[tool.coverage.run]
88concurrency = [ "thread", "multiprocessing" ]
89source = [ "scapy" ]
90omit = [
91    # Scapy tools
92    "scapy/tools/",
93    # Scapy external modules
94    "scapy/libs/ethertypes.py",
95    "scapy/libs/manuf.py",
96    "scapy/libs/winpcapy.py",
97]
98