[build-system] requires = ["setuptools>=61.0", "wheel"] build-backend = "setuptools.build_meta" [project] name = "nowyouseeme" version = "1.0.0" description = "Real-Time 6DOF Holodeck Environment with RF-Vision Fusion" readme = "README.md" license = {text = "MIT"} authors = [ {name = "NowYouSeeMe Team", email = "team@nowyouseeme.dev"} ] maintainers = [ {name = "NowYouSeeMe Team", email = "team@nowyouseeme.dev"} ] keywords = ["slam", "computer-vision", "rf-sensing", "holodeck", "6dof", "real-time"] classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Scientific/Engineering :: Image Processing", "Topic :: Software Development :: Libraries :: Python Modules", ] requires-python = ">=3.8" dependencies = [ "opencv-python>=4.5.0", "numpy>=1.21.0", "scipy>=1.7.0", "matplotlib>=3.5.0", "PyQt6>=6.2.0", "PyOpenGL>=3.1.0", "scikit-learn>=1.0.0", "pandas>=1.3.0", "requests>=2.25.0", "websockets>=10.0", "asyncio-mqtt>=0.11.0", "pydantic>=1.9.0", "spdlog>=0.6.0", "eigen>=3.4.0", "boost>=1.76.0", ] [project.optional-dependencies] dev = [ "pytest>=6.0.0", "pytest-cov>=2.12.0", "pytest-mock>=3.6.0", "black>=22.0.0", "isort>=5.10.0", "flake8>=4.0.0", "mypy>=0.950", "pylint>=2.12.0", "bandit>=1.7.0", "pre-commit>=2.19.0", ] docs = [ "sphinx>=4.5.0", "sphinx-rtd-theme>=1.0.0", "myst-parser>=0.17.0", "sphinx-autodoc-typehints>=1.12.0", ] test = [ "pytest>=6.0.0", "pytest-cov>=2.12.0", "pytest-mock>=3.6.0", "pytest-asyncio>=0.18.0", "pytest-benchmark>=3.4.0", ] gpu = [ "torch>=1.12.0", "torchvision>=0.13.0", "cupy-cuda11x>=11.0.0", ] azure = [ "azure-identity>=1.8.0", "azure-mgmt-compute>=27.0.0", "azure-mgmt-resource>=22.0.0", "azure-storage-blob>=12.14.0", "azure-ai-ml>=1.0.0", ] [project.urls] Homepage = "https://github.com/your-org/NowYouSeeMe" Documentation = "https://nowyouseeme.readthedocs.io" Repository = "https://github.com/your-org/NowYouSeeMe" "Bug Tracker" = "https://github.com/your-org/NowYouSeeMe/issues" "Discord Server" = "https://discord.gg/nowyouseeme" "PyPI Package" = "https://pypi.org/project/nowyouseeme/" [project.scripts] nowyouseeme = "src.ui.holodeck_ui:main" nowyouseeme-calibrate = "src.calibration.calibrate_camera:main" nowyouseeme-capture = "src.ingestion.capture:main" [tool.setuptools.packages.find] where = ["src"] [tool.setuptools.package-data] "*" = ["*.json", "*.yaml", "*.yml", "*.txt", "*.md"] [tool.black] line-length = 88 target-version = ['py38', 'py39', 'py310', 'py311'] include = '\.pyi?$' extend-exclude = ''' /( # directories \.eggs | \.git | \.hg | \.mypy_cache | \.tox | \.venv | build | dist )/ ''' [tool.isort] profile = "black" multi_line_output = 3 line_length = 88 known_first_party = ["src"] known_third_party = ["opencv", "numpy", "scipy", "matplotlib", "PyQt6"] [tool.mypy] python_version = "3.8" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = true disallow_incomplete_defs = true check_untyped_defs = true disallow_untyped_decorators = true no_implicit_optional = true warn_redundant_casts = true warn_unused_ignores = true warn_no_return = true warn_unreachable = true strict_equality = true [[tool.mypy.overrides]] module = [ "opencv.*", "PyQt6.*", "PyOpenGL.*", "scipy.*", "matplotlib.*", ] ignore_missing_imports = true [tool.pytest.ini_options] minversion = "6.0" addopts = "-ra -q --strict-markers --strict-config" testpaths = ["tests", "src"] python_files = ["test_*.py", "*_test.py"] python_classes = ["Test*"] python_functions = ["test_*"] markers = [ "slow: marks tests as slow (deselect with '-m \"not slow\"')", "integration: marks tests as integration tests", "unit: marks tests as unit tests", "gpu: marks tests that require GPU", "azure: marks tests that require Azure services", ] [tool.coverage.run] source = ["src"] omit = [ "*/tests/*", "*/test_*", "*/__pycache__/*", "*/migrations/*", "*/venv/*", "*/env/*", ] [tool.coverage.report] exclude_lines = [ "pragma: no cover", "def __repr__", "if self.debug:", "if settings.DEBUG", "raise AssertionError", "raise NotImplementedError", "if 0:", "if __name__ == .__main__.:", "class .*\\bProtocol\\):", "@(abc\\.)?abstractmethod", ] [tool.bandit] exclude_dirs = ["tests", "docs"] skips = ["B101", "B601"] [tool.pylint.messages_control] disable = [ "C0114", # missing-module-docstring "C0115", # missing-class-docstring "C0116", # missing-function-docstring "R0903", # too-few-public-methods "R0913", # too-many-arguments "R0914", # too-many-locals "R0915", # too-many-statements "W0621", # redefined-outer-name "W0622", # redefined-builtin ] [tool.pylint.format] max-line-length = 88 [tool.pylint.design] max-args = 10 max-locals = 20 max-returns = 10 max-statements = 50 max-branches = 15 max-parents = 7 max-attributes = 10 min-public-methods = 1 max-public-methods = 20 [tool.pylint.similarities] min-similarity-lines = 4 ignore-comments = "yes" ignore-docstrings = "yes" ignore-imports = "yes"