| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- [project]
- name = "kmp-proto-manipulator"
- version = "0.1.0"
- description = "Manipulate Generated .kt files from .proto"
- authors = [
- {name = "Tim Camise",email = "tcamise@gopro.com"}
- ]
- readme = "README.md"
- requires-python = ">=3.11"
- [tool.poetry.scripts]
- set-kmp-scopes = "kmp_proto_manipulator.scripts.set_kotlin_proto_scopes:entrypoint"
- [tool.poetry.dependencies]
- python = "^3.11"
- pydantic = "^2"
- pyparsing = "^3"
- [tool.poetry.group.dev.dependencies]
- pydoclint = "^0"
- pydocstyle = { extras = ["toml"], version = "^6" }
- pytest = "^7"
- black = "*"
- pylint = "^2"
- mypy = "*"
- pytest-html = "==4.0.0rc4"
- poethepoet = "^0"
- isort = "^5"
- [build-system]
- requires = ["poetry-core>=2.0.0,<3.0.0"]
- build-backend = "poetry.core.masonry.api"
- [tool.poe.tasks.tests]
- cmd = "pytest tests -vv"
- help = "Run unit tests"
- [tool.poe.tasks._types]
- cmd = "mypy kmp_proto_manipulator"
- help = "Check types"
- # We're only enforcing documentation on public objects
- [tool.poe.tasks._pylint]
- cmd = "pylint --no-docstring-rgx=_|main|parse_arguments|entrypoint kmp_proto_manipulator"
- help = "Run pylint"
- [tool.poe.tasks._isort]
- cmd = "isort kmp_proto_manipulator tests"
- help = "Apply black formatting to source code"
- [tool.poe.tasks.lint]
- sequence = ["_types", "_isort", "_pylint"]
- help = "Lint code"
- [tool.poe.tasks.format]
- cmd = "black kmp_proto_manipulator tests"
- help = "Apply black formatting to source code"
- [tool.poe.tasks._pydocstyle]
- cmd = "pydocstyle --config pyproject.toml -v kmp_proto_manipulator"
- help = "check docstrings style"
- [tool.poe.tasks._doclint]
- cmd = "pydoclint kmp_proto_manipulator"
- help = "validate docstrings"
- [tool.poe.tasks.docstrings]
- sequence = ["_pydocstyle", "_doclint"]
- help = "Analyze docstrings for consistency and errors"
- [tool.poe.tasks._clean_artifacts]
- cmd = "rm -rf **/__pycache__ *.csv *.mp4 *.jpg *.log .mypy_cache .nox"
- help = "Clean testing artifacts and pycache"
- [tool.poe.tasks._clean_tests]
- cmd = "rm -rf .reports && rm -rf .pytest_cache"
- help = "Clean test reports"
- [tool.poe.tasks.clean]
- sequence = ["_clean_artifacts", "_clean_tests"]
- help = "Clean everything"
- [tool.poe.tasks.all]
- sequence = ["format", "lint", "tests", "docstrings"]
- help = "Format, check types, lint, and run unit tests"
- [tool.mypy]
- ignore_missing_imports = true
- warn_redundant_casts = true
- disallow_untyped_calls = false
- disallow_untyped_defs = true
- disallow_incomplete_defs = true
- disallow_untyped_decorators = false
- warn_unused_ignores = true
- warn_unreachable = false
- show_error_context = true
- pretty = true
- [tool.pylint.'MASTER']
- load-plugins = "pylint.extensions.docparams"
- accept-no-param-doc = "yes"
- accept-no-return-doc = "yes"
- default-docstring-type = "google"
- ignore-paths = "kmp_proto_manipulator/models/schemas/"
- [tool.pylint.'MESSAGES CONTROL']
- disable = [
- "unnecessary-lambda",
- "unnecessary-lambda-assignment",
- "too-many-ancestors",
- "no-name-in-module",
- "too-many-nested-blocks",
- "unspecified-encoding",
- "consider-using-with",
- "abstract-method",
- "useless-type-doc",
- "cyclic-import",
- "logging-fstring-interpolation",
- "logging-format-interpolation",
- "duplicate-code",
- "global-statement",
- "too-few-public-methods",
- "too-many-arguments",
- "too-many-instance-attributes",
- "too-many-branches",
- "too-many-locals",
- "too-many-lines",
- "too-many-statements",
- "fixme",
- "protected-access",
- "invalid-name",
- "useless-param-doc",
- ]
- [tool.pylint.'FORMAT']
- max-line-length = 300 # This is handled by black
- [tool.pytest.ini_options]
- log_auto_indent = true
- log_cli = true
- log_cli_level = "ERROR"
- log_cli_format = "%(asctime)s %(levelname)s %(message)s"
- log_cli_date_format = "%H:%M:%S"
- log_file_level = "DEBUG"
- log_file_format = "%(threadName)13s: %(name)40s:%(lineno)5d %(asctime)s.%(msecs)03d %(levelname)-8s | %(message)s"
- log_file_date_format = "%H:%M:%S"
- filterwarnings = "ignore::DeprecationWarning"
- addopts = [
- "-s",
- "--capture=tee-sys",
- "--html=.reports/test_report.html",
- "--self-contained-html",
- ]
- [tool.black]
- line-length = 120
- exclude = ".venv"
- [tool.isort]
- line_length = 120
- [tool.pydocstyle]
- convention = "google"
- add-ignore = "D415, D107, D105, D402"
- [tool.pydoclint]
- style = 'google'
- require-return-section-when-returning-nothing = false
- ignore-underscore-args = true
- should-document-private-class-attributes = false
- check-class-attributes = false
|