| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- [tool.poetry]
- name = "open-gopro-tutorials"
- version = "0.4.0"
- description = "Open GoPro Python Tutorials"
- authors = ["Tim Camise <tcamise@gopro.com>"]
- license = "MIT"
- readme = "README.md"
- packages = [{ include = "tutorial_modules" }]
- repository = "https://github.com/gopro/OpenGoPro/tree/main/demos/python/tutorial"
- documentation = "https://gopro.github.io/OpenGoPro/tutorials/"
- classifiers = [
- "Intended Audience :: Developers",
- "Topic :: Communications",
- "License :: OSI Approved :: MIT License",
- "Natural Language :: English",
- "Operating System :: Microsoft :: Windows :: Windows 10",
- "Operating System :: POSIX :: Linux",
- "Operating System :: MacOS :: MacOS X",
- "Programming Language :: Python",
- "Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.10",
- "Programming Language :: Python :: 3.11",
- "Programming Language :: Python :: 3.12",
- ]
- [tool.poetry.dependencies]
- python = ">=3.10,<3.13"
- bleak = "0.22.3"
- requests = "^2"
- rich = "^13"
- pytz = "*"
- tzlocal = "*"
- protobuf = "^3"
- [tool.poetry.group.dev.dependencies]
- mypy-protobuf = "*"
- poethepoet = "^0"
- black = "*"
- isort = "*"
- mypy = "*"
- pytest = "^7"
- pytest-asyncio = "^0"
- pytest-html = "^3"
- pytest-cov = "^4"
- coverage = { extras = ["toml"], version = "^6" }
- pylint = "^3"
- types-requests = "*"
- types-pytz = "*"
- [build-system]
- requires = ["poetry-core"]
- build-backend = "poetry.core.masonry.api"
- [tool.poe.tasks.tests]
- cmd = "pytest tests --cov-fail-under=60"
- help = "Run end-to-end tests. Requires ssid=${SSID} and password=${ssid} args to connect to AP"
- [tool.poe.tasks._types]
- cmd = "mypy tutorial_modules"
- help = "Check types"
- [tool.poe.tasks._pylint]
- cmd = "pylint --no-docstring-rgx=main|_ tutorial_modules"
- help = "Run pylint"
- [tool.poe.tasks._sort_imports]
- cmd = "isort open_gopro tests"
- help = "Sort imports with isort"
- [tool.poe.tasks.format]
- cmd = "black tutorial_modules tests"
- help = "Apply black formatting to source code"
- [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_build]
- cmd = "rm -rf dist"
- help = "Clean module build output"
- [tool.poe.tasks.clean]
- sequence = ["_clean_artifacts", "_clean_tests", "_clean_build"]
- help = "Clean everything"
- [tool.poe.tasks.lint]
- sequence = ["format", "_sort_imports", "_types", "_pylint",]
- help = "Format, check types, lint, and check docstrings"
- [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.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",
- "--cov=tutorial_modules",
- "--cov-report=term",
- "--cov-report=html",
- "--html=.reports/test_report.html",
- "--self-contained-html",
- "--asyncio-mode=auto",
- ]
- [tool.coverage.run]
- data_file = ".reports/coverage/.coverage"
- branch = true
- source = ["tutorial_modules"]
- [tool.coverage.html]
- directory = ".reports/coverage"
- [tool.coverage.report]
- exclude_lines = ["raise NotImplementedError"]
- [tool.pylint.'MASTER']
- load-plugins = "pylint.extensions.docparams"
- accept-no-param-doc = "yes"
- accept-no-return-doc = "yes"
- default-docstring-type = "google"
- ignore = ["tests", "proto"]
- [tool.pylint.'MESSAGES CONTROL']
- disable = [
- "missing-module-docstring",
- "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-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",
- "unsubscriptable-object",
- ]
- [tool.pylint.'FORMAT']
- max-line-length = 300 # Handled by black
- [tool.black]
- line-length = 120
- exclude = ".venv"
- [tool.isort]
- profile = "black"
|