[build-system] build-backend = "poetry.core.masonry.api" requires = ["poetry-core"] [tool.poetry] authors = ["Matt Love "] classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Information Technology", "Operating System :: POSIX :: Linux", "Programming Language :: JavaScript", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Topic :: Internet", "Topic :: System :: Networking", ] description = "hyperglass is the modern network looking glass that tries to make the internet better." documentation = "https://hyperglass.dev" homepage = "https://hyperglass.dev" keywords = ["looking glass", "network automation", "isp", "bgp", "routing"] license = "BSD-3-Clause-Clear" name = "hyperglass" readme = "README.md" repository = "https://github.com/thatmattlove/hyperglass" version = "2.0.0-dev" [tool.poetry.scripts] hyperglass = "hyperglass.console:run" [tool.poetry.dependencies] Pillow = "^8.3.2" PyJWT = "^2.0.1" PyYAML = "^5.4.1" aiofiles = "^0.7.0" distro = "^1.5.0" fastapi = "^0.73.0" favicons = ">=0.1.0,<1.0" gunicorn = "^20.1.0" httpx = "^0.20.0" loguru = "^0.5.3" netmiko = "^3.4.0" paramiko = "^2.12.0" psutil = "^5.7.2" py-cpuinfo = "^8.0.0" pydantic = {extras = ["dotenv"], version = "^1.9.0"} python = ">=3.8.1,<4.0" redis = "^3.5.3" rich = "^10.11.0" typer = "^0.4.0" typing-extensions = "^3.7.4" uvicorn = {extras = ["standard"], version = "^0.15.0"} uvloop = "^0.16.0" xmltodict = "^0.12.0" [tool.poetry.group.dev.dependencies] bandit = "^1.7.4" black = "^22.12.0" flake8 = "^6.0.0" flake8-bandit = "^4.1.1" flake8-black = "^0.3.5" flake8-breakpoint = "^1.1.0" flake8-bugbear = "^22.12.6" flake8-builtins = "^2.0.1" flake8-comprehensions = "^3.10.1" flake8-deprecated = "^2.0.1" flake8-docstrings = "^1.6.0" flake8-isort = "^5.0.3" flake8-plugin-utils = "^1.3.2" flake8-polyfill = "^1.0.2" flake8-print = "^5.0.0" isort = "^5.10.1" pep8-naming = "^0.13.2" pre-commit = "^1.21.0" pytest = "^7.2.0" pytest-dependency = "^0.5.1" stackprinter = "^0.2.10" taskipy = "^1.10.3" [tool.black] line-length = 100 [tool.isort] balanced_wrapping = true force_single_line = false import_heading_firstparty = "Project" import_heading_localfolder = "Local" import_heading_stdlib = "Standard Library" import_heading_thirdparty = "Third Party" include_trailing_comma = true indent = ' ' known_third_party = ["starlette", "fastapi", "inquirer"] length_sort = true line_length = 100 multi_line_output = 3 skip_glob = "hyperglass/api/examples/*.py" [tool.pyright] exclude = ["**/node_modules", "**/ui", "**/__pycache__"] include = ["hyperglass"] pythonVersion = "3.8" reportMissingImports = true reportMissingTypeStubs = true [tool.taskipy.tasks] check = {cmd = "task lint && task ui-lint", help = "Run all lint checks"} format = {cmd = "black hyperglass", help = "Run Black"} lint = {cmd = "flake8 hyperglass", help = "Run Flake8"} sort = {cmd = "isort hyperglass", help = "Run iSort"} start = {cmd = "python3 -m hyperglass.main", help = "Start hyperglass"} start-asgi = {cmd = "uvicorn hyperglass.api:app", help = "Start hyperglass via Uvicorn"} test = {cmd = "pytest hyperglass --ignore hyperglass/plugins/external", help = "Run hyperglass tests"} ui-build = {cmd = "python3 -m hyperglass.console build-ui", help = "Run a UI Build"} ui-dev = {cmd = "yarn --cwd ./hyperglass/ui/ dev", help = "Start the Next.JS dev server"} ui-format = {cmd = "yarn --cwd ./hyperglass/ui/ format", help = "Run Prettier"} ui-lint = {cmd = "yarn --cwd ./hyperglass/ui/ lint", help = "Run ESLint"} ui-typecheck = {cmd = "yarn --cwd ./hyperglass/ui/ typecheck", help = "Run TypeScript Check"} upgrade = {cmd = "python3 version.py", help = "Upgrade hyperglass version"} yarn = {cmd = "yarn --cwd ./hyperglass/ui/", help = "Run a yarn command from the UI directory"}