cowrie/pyproject.toml

185 lines
5.3 KiB
TOML

[build-system]
requires = ["setuptools >= 65.63"]
[project]
name = "cowrie"
dynamic = ["version"]
description="Cowrie SSH/Telnet Honeypot."
license.text="BSD-3-Clause"
authors = [ {name = "Michel Oosterhof", email="michel@oosterhof.net"}, ]
maintainers = [ {name = "Michel Oosterhof", email="michel@oosterhof.net"}, ]
keywords=["ssh", "telnet", "honeypot"]
requires-python = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*, !=3.7.*, !=3.8.*, <4"
readme="README.rst"
classifiers=[
"Development Status :: 5 - Production/Stable",
"Environment :: No Input/Output (Daemon)",
"Framework :: Twisted",
"Intended Audience :: Developers",
"Intended Audience :: System Administrators",
"License :: OSI Approved :: BSD License",
"Operating System :: MacOS :: MacOS X",
"Operating System :: POSIX :: Linux",
"Operating System :: POSIX",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Security"
]
dependencies = [
"attrs==24.3.0",
"bcrypt==4.2.1",
"cryptography==44.0.0",
"hyperlink==21.0.0",
"idna==3.10",
"packaging==24.2",
"pyasn1_modules==0.4.1",
"requests==2.32.3",
"service_identity==24.2.0",
"tftpy==0.8.2",
"treq==24.9.1",
"twisted==24.10.0",
]
[project.urls]
homepage = "https://www.cowrie.org/"
documentation = "https://docs.cowrie.org/"
repository = "https://github.com/cowrie/cowrie"
[project.scripts]
fsctl = "cowrie.scripts.fsctl:run"
asciinema = "cowrie.scripts.asciinema:run"
creatfs = "cowrie.scripts.createfs:run"
playlog = "cowrie.scripts.playlog:run"
[project.optional-dependencies]
csirtg = ["csirtgsdk==1.1.5"]
dshield = ["requests"]
elasticsearch = ["pyes"]
mysql = ["mysqlclient"]
mongodb = ["pymongo"]
rethinkdblog = ["rethinkdb"]
s3 = ["botocore"]
slack = ["slackclient"]
influxdb = ["influxdb"]
dev = [
"build==1.2.2.post1",
"coverage==7.6.9",
"mypy-extensions==1.0.0; platform_python_implementation=='CPython'",
"mypy-zope==1.0.9; platform_python_implementation=='CPython'",
"mypy==1.14.0; platform_python_implementation=='CPython'",
"pathspec==0.12.1",
"pipdeptree==2.23.4",
"pre-commit==4.0.1",
"pylint==3.3.2",
"pyre-check==0.9.23",
"pyright==1.1.391",
"pytype==2024.1.24; platform_python_implementation=='CPython' and python_version<'3.11'",
"pyupgrade==3.19.1",
"pyyaml==6.0.2",
"readthedocs-sphinx-search==0.3.2",
"ruff==0.8.2",
"setuptools==75.6.0",
"sphinx-copybutton==0.5.2",
"sphinx_rtd_theme==3.0.2",
"tox==4.23.2",
"types-python-dateutil==2.9.0.20241206",
"types-redis==4.6.0.20241004",
"types-requests==2.32.0.20241016",
"yamllint==1.35.1",
]
[tool.isort]
profile = "black"
known_zope = "zope"
known_twisted = "twisted"
known_first_party = ["cowrie","backend_pool"]
sections=["FUTURE","STDLIB","THIRDPARTY","ZOPE","TWISTED","FIRSTPARTY","LOCALFOLDER"]
[tool.mypy]
namespace_packages = true
plugins = [ "mypy_zope:plugin" ]
disable_error_code = [ "annotation-unchecked" ]
ignore_missing_imports = true
warn_unused_configs = true
no_implicit_optional = true
show_column_numbers = true
show_error_codes = true
strict_optional = true
warn_no_return = true
warn_redundant_casts = true
warn_return_any = true
warn_unreachable = true
disallow_incomplete_defs = true
disallow_any_unimported = true
strict_equality = true
disallow_untyped_decorators = true
disallow_subclassing_any = true
warn_unused_ignores = true
local_partial_types = true
no_implicit_reexport = true
# Getting these passing should be easy
# strict_concatenate = true
# These are too strict for us at the moment
check_untyped_defs = false
disallow_untyped_defs = false
disallow_any_decorated = false
disallow_any_explicit = false
disallow_any_expr = false
disallow_any_generics = false
disallow_untyped_calls = false
[tool.pylint."MESSAGES CONTROL"]
disable = ["R0801", "R0901", "R0902", "R0903", "R0904", "R0912", "R0913", "R0914", "R0915", "C0103", "C0114", "C0115", "C0116", "C0301", "W0201"]
ignored-classes = ["twisted.internet.reactor"]
[tool.pyright]
include = ["src"]
typeCheckingMode = "strict"
reportArgumentType = "none"
reportAssignmentType = "none"
reportAttributeAccessIssue = "none"
reportCallIssue = "information"
reportGeneralTypeIssues = "information"
reportIncompatibleMethodOverride = "information"
reportIncompatibleVariableOverride = "none"
reportMissingImports = "none"
reportMissingModuleSource = "none"
reportOperatorIssue = "information"
reportOptionalCall = "information"
reportOptionalMemberAccess = "none"
reportOptionalOperand = "information"
reportPossiblyUnboundVariable = "information"
reportUnsupportedDunderAll = "information"
[tool.ruff]
line-length = 88
# Enable Pyflakes `E` and `F` codes by default.
lint.select = ["A", "B", "E", "F", "UP", "YTT", "B", "T20", "Q", "RUF", "TC", "TRY", "PYI", "FAST"]
lint.ignore = ["E501", "UP007", "B019", "RUF001", "UP038"]
# Assume Python 3.10.
target-version = "py310"
# Ignore `T201` (print) in all scripts
[tool.ruff.lint.per-file-ignores]
"src/cowrie/scripts/*" = ["T201"]
[tool.setuptools]
package-dir = {"" = "src"}
[tool.setuptools.packages.find]
where = ["src"]