[build-system] requires = [ "hatchling==1.32.0" ] build-backend = "hatchling.build" [project] name = "socketsecurity" version = "2.8.2" requires-python = ">= 3.11" license = {"file" = "LICENSE"} dependencies = [ "requests==2.34.2", "mdutils==1.8.1", "prettytable==3.18.0", "GitPython==3.1.59", "packaging==26.3", "python-dotenv==1.2.3", "socketdev==3.5.0", "beautifulsoup4==4.15.0", "markdown==3.10.3", "brotli==1.2.0; platform_python_implementation == 'CPython'", "brotlicffi==1.2.0.1; platform_python_implementation != 'CPython'", ] readme = "README.md" description = "Socket Security CLI for CI/CD" keywords = ["socketsecurity", "socket.dev", "sca", "oss", "security"] authors = [ {name = "Douglas Coburn", email = "douglas@socket.dev"} ] maintainers = [ {name = "Douglas Coburn", email = "douglas@socket.dev"} ] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", ] [project.optional-dependencies] test = [ "pytest==9.1.1", "pytest-cov==7.1.0", "pytest-mock==3.15.1", "pytest-asyncio==1.4.0", "pytest-watch==4.2.0" ] dev = [ "ruff==0.16.4", "twine==7.0.0", # for building "uv==0.12.5", # for dependency management "pre-commit==4.6.2", "hatch==1.18.0" ] [project.scripts] socketcli = "socketsecurity.socketcli:cli" socketclidev = "socketsecurity.socketcli:cli" [project.urls] Homepage = "https://socket.dev" [tool.coverage.run] source = ["socketsecurity"] branch = true include = [ "socketsecurity/**/*.py", "socketsecurity/**/__init__.py" ] [tool.coverage.report] exclude_lines = [ "pragma: no cover", "def __repr__", "if __name__ == .__main__.:", "raise NotImplementedError", "if TYPE_CHECKING:", ] show_missing = true skip_empty = true [tool.ruff] # Exclude a variety of commonly ignored directories. exclude = [ ".bzr", ".direnv", ".eggs", ".git", ".git-rewrite", ".hg", ".ipynb_checkpoints", ".mypy_cache", ".nox", ".pants.d", ".pyenv", ".pytest_cache", ".pytype", ".ruff_cache", ".svn", ".tox", ".venv", ".vscode", "__pypackages__", "_build", "buck-out", "build", "dist", "node_modules", "site-packages", "venv", ] [tool.ruff.lint] # Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default. # Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or # McCabe complexity (`C901`) by default. select = [ "E4", "E7", "E9", "F", # Current rules "I", # isort "F401", # Unused imports "F403", # Star imports "F405", # Star imports undefined "F821", # Undefined names ] # Allow fix for all enabled rules (when `--fix`) is provided. fixable = ["ALL"] unfixable = [] # Allow unused variables when underscore-prefixed. dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" [tool.ruff.lint.isort] known-first-party = ["socketsecurity"] [tool.ruff.format] # Like Black, use double quotes for strings. quote-style = "double" # Like Black, indent with spaces, rather than tabs. indent-style = "space" # Like Black, respect magic trailing commas. skip-magic-trailing-comma = false # Like Black, automatically detect the appropriate line ending. line-ending = "auto" # Enable auto-formatting of code examples in docstrings. Markdown, # reStructuredText code/literal blocks and doctests are all supported. # # This is currently disabled by default, but it is planned for this # to be opt-out in the future. docstring-code-format = false # Set the line length limit used when formatting code snippets in # docstrings. # # This only has an effect when the `docstring-code-format` setting is # enabled. docstring-code-line-length = "dynamic" [tool.hatch.build.targets.wheel] include = ["socketsecurity", "LICENSE"] [dependency-groups] dev = [ "pre-commit>=4.3.0", ]