In order to better compare outputs with pip dep tree, we should have a new --json-pdt option that mimics the pipdeptree --json-tree output.
[
{
"key": "aboutcode-toolkit",
"package_name": "aboutcode-toolkit",
"installed_version": "7.0.2",
"required_version": "7.0.2",
"dependencies": [
{
"key": "attrs",
"package_name": "attrs",
"installed_version": "21.4.0",
"required_version": "Any",
"dependencies": []
},
{
"key": "boolean.py",
"package_name": "boolean.py",
"installed_version": "4.0",
"required_version": ">=3.5",
"dependencies": []
},
{
"key": "certifi",
"package_name": "certifi",
"installed_version": "2022.5.18.1",
"required_version": "Any",
"dependencies": []
},
{
"key": "click",
"package_name": "click",
"installed_version": "8.0.4",
"required_version": "Any",
"dependencies": []
},
{
"key": "jinja2",
"package_name": "jinja2",
"installed_version": "3.0.3",
"required_version": "Any",
"dependencies": [
{
"key": "markupsafe",
"package_name": "MarkupSafe",
"installed_version": "2.0.1",
"required_version": ">=2.0",
"dependencies": []
}
]
},
{
"key": "license-expression",
"package_name": "license-expression",
"installed_version": "30.0.0",
"required_version": ">=0.94",
"dependencies": [
{
"key": "boolean.py",
"package_name": "boolean.py",
"installed_version": "4.0",
"required_version": ">=4.0",
"dependencies": []
}
]
},
{
"key": "openpyxl",
"package_name": "openpyxl",
"installed_version": "3.0.10",
"required_version": "Any",
"dependencies": [
{
"key": "et-xmlfile",
"package_name": "et-xmlfile",
"installed_version": "1.1.0",
"required_version": "Any",
"dependencies": []
}
]
},
{
"key": "packageurl-python",
"package_name": "packageurl-python",
"installed_version": "0.9.9",
"required_version": ">=0.9.0",
"dependencies": []
},
{
"key": "saneyaml",
"package_name": "saneyaml",
"installed_version": "0.5.2",
"required_version": "Any",
"dependencies": [
{
"key": "pyyaml",
"package_name": "PyYAML",
"installed_version": "6.0",
"required_version": "Any",
"dependencies": []
}
]
}
]
},
{
"key": "black",
"package_name": "black",
"installed_version": "22.3.0",
"required_version": "22.3.0",
"dependencies": [
{
"key": "click",
"package_name": "click",
"installed_version": "8.0.4",
"required_version": ">=8.0.0",
"dependencies": []
},
{
"key": "mypy-extensions",
"package_name": "mypy-extensions",
"installed_version": "0.4.3",
"required_version": ">=0.4.3",
"dependencies": []
},
{
"key": "pathspec",
"package_name": "pathspec",
"installed_version": "0.9.0",
"required_version": ">=0.9.0",
"dependencies": []
},
{
"key": "platformdirs",
"package_name": "platformdirs",
"installed_version": "2.4.0",
"required_version": ">=2",
"dependencies": []
},
{
"key": "tomli",
"package_name": "tomli",
"installed_version": "1.2.3",
"required_version": ">=1.1.0",
"dependencies": []
},
{
"key": "typing-extensions",
"package_name": "typing-extensions",
"installed_version": "4.1.1",
"required_version": ">=3.10.0.0",
"dependencies": []
}
]
},
{
"key": "flask",
"package_name": "Flask",
"installed_version": "2.1.2",
"required_version": "2.1.2",
"dependencies": [
{
"key": "click",
"package_name": "click",
"installed_version": "8.0.4",
"required_version": ">=8.0",
"dependencies": []
},
{
"key": "importlib-metadata",
"package_name": "importlib-metadata",
"installed_version": "4.8.3",
"required_version": ">=3.6.0",
"dependencies": [
{
"key": "zipp",
"package_name": "zipp",
"installed_version": "3.6.0",
"required_version": ">=0.5",
"dependencies": []
}
]
},
{
"key": "itsdangerous",
"package_name": "itsdangerous",
"installed_version": "2.1.2",
"required_version": ">=2.0",
"dependencies": []
},
{
"key": "jinja2",
"package_name": "Jinja2",
"installed_version": "3.0.3",
"required_version": ">=3.0",
"dependencies": [
{
"key": "markupsafe",
"package_name": "MarkupSafe",
"installed_version": "2.0.1",
"required_version": ">=2.0",
"dependencies": []
}
]
},
{
"key": "werkzeug",
"package_name": "Werkzeug",
"installed_version": "2.1.2",
"required_version": ">=2.0",
"dependencies": []
}
]
},
{
"key": "isort",
"package_name": "isort",
"installed_version": "5.10.1",
"required_version": "5.10.1",
"dependencies": []
},
{
"key": "pipdeptree",
"package_name": "pipdeptree",
"installed_version": "2.2.1",
"required_version": "2.2.1",
"dependencies": [
{
"key": "pip",
"package_name": "pip",
"installed_version": "22.1.2",
"required_version": ">=6.0.0",
"dependencies": []
}
]
},
{
"key": "pycodestyle",
"package_name": "pycodestyle",
"installed_version": "2.8.0",
"required_version": "2.8.0",
"dependencies": []
},
{
"key": "pytest-xdist",
"package_name": "pytest-xdist",
"installed_version": "2.5.0",
"required_version": "2.5.0",
"dependencies": [
{
"key": "execnet",
"package_name": "execnet",
"installed_version": "1.9.0",
"required_version": ">=1.1",
"dependencies": []
},
{
"key": "pytest",
"package_name": "pytest",
"installed_version": "7.0.1",
"required_version": ">=6.2.0",
"dependencies": [
{
"key": "attrs",
"package_name": "attrs",
"installed_version": "21.4.0",
"required_version": ">=19.2.0",
"dependencies": []
},
{
"key": "iniconfig",
"package_name": "iniconfig",
"installed_version": "1.1.1",
"required_version": "Any",
"dependencies": []
},
{
"key": "packaging",
"package_name": "packaging",
"installed_version": "21.3",
"required_version": "Any",
"dependencies": [
{
"key": "pyparsing",
"package_name": "pyparsing",
"installed_version": "3.0.9",
"required_version": ">=2.0.2,!=3.0.5",
"dependencies": []
}
]
},
{
"key": "pluggy",
"package_name": "pluggy",
"installed_version": "1.0.0",
"required_version": ">=0.12,<2.0",
"dependencies": []
},
{
"key": "py",
"package_name": "py",
"installed_version": "1.11.0",
"required_version": ">=1.8.2",
"dependencies": []
},
{
"key": "tomli",
"package_name": "tomli",
"installed_version": "1.2.3",
"required_version": ">=1.0.0",
"dependencies": []
}
]
},
{
"key": "pytest-forked",
"package_name": "pytest-forked",
"installed_version": "1.4.0",
"required_version": "Any",
"dependencies": [
{
"key": "py",
"package_name": "py",
"installed_version": "1.11.0",
"required_version": "Any",
"dependencies": []
},
{
"key": "pytest",
"package_name": "pytest",
"installed_version": "7.0.1",
"required_version": ">=3.10",
"dependencies": [
{
"key": "attrs",
"package_name": "attrs",
"installed_version": "21.4.0",
"required_version": ">=19.2.0",
"dependencies": []
},
{
"key": "iniconfig",
"package_name": "iniconfig",
"installed_version": "1.1.1",
"required_version": "Any",
"dependencies": []
},
{
"key": "packaging",
"package_name": "packaging",
"installed_version": "21.3",
"required_version": "Any",
"dependencies": [
{
"key": "pyparsing",
"package_name": "pyparsing",
"installed_version": "3.0.9",
"required_version": ">=2.0.2,!=3.0.5",
"dependencies": []
}
]
},
{
"key": "pluggy",
"package_name": "pluggy",
"installed_version": "1.0.0",
"required_version": ">=0.12,<2.0",
"dependencies": []
},
{
"key": "py",
"package_name": "py",
"installed_version": "1.11.0",
"required_version": ">=1.8.2",
"dependencies": []
},
{
"key": "tomli",
"package_name": "tomli",
"installed_version": "1.2.3",
"required_version": ">=1.0.0",
"dependencies": []
}
]
}
]
}
]
},
{
"key": "python-inspector",
"package_name": "python-inspector",
"installed_version": "0.1.dev225+g1047a8a.d20220706",
"required_version": "0.1.dev225+g1047a8a.d20220706",
"dependencies": [
{
"key": "attrs",
"package_name": "attrs",
"installed_version": "21.4.0",
"required_version": ">=18.1,!=20.1.0",
"dependencies": []
},
{
"key": "click",
"package_name": "click",
"installed_version": "8.0.4",
"required_version": ">=6.7,!=7.0",
"dependencies": []
},
{
"key": "colorama",
"package_name": "colorama",
"installed_version": "0.4.4",
"required_version": ">=0.3.9",
"dependencies": []
},
{
"key": "commoncode",
"package_name": "commoncode",
"installed_version": "30.2.0",
"required_version": ">=30.0.0",
"dependencies": [
{
"key": "attrs",
"package_name": "attrs",
"installed_version": "21.4.0",
"required_version": ">=18.1,!=20.1.0",
"dependencies": []
},
{
"key": "beautifulsoup4",
"package_name": "Beautifulsoup4",
"installed_version": "4.11.1",
"required_version": ">=4.0.0",
"dependencies": [
{
"key": "soupsieve",
"package_name": "soupsieve",
"installed_version": "2.3.2.post1",
"required_version": ">1.2",
"dependencies": []
}
]
},
{
"key": "click",
"package_name": "click",
"installed_version": "8.0.4",
"required_version": ">=6.7,!=7.0",
"dependencies": []
},
{
"key": "intbitset",
"package_name": "intbitset",
"installed_version": "3.0.1",
"required_version": ">=2.3.0",
"dependencies": []
},
{
"key": "requests",
"package_name": "requests",
"installed_version": "2.27.1",
"required_version": ">=2.7.0",
"dependencies": [
{
"key": "certifi",
"package_name": "certifi",
"installed_version": "2022.5.18.1",
"required_version": ">=2017.4.17",
"dependencies": []
},
{
"key": "charset-normalizer",
"package_name": "charset-normalizer",
"installed_version": "2.0.12",
"required_version": "~=2.0.0",
"dependencies": []
},
{
"key": "idna",
"package_name": "idna",
"installed_version": "3.3",
"required_version": ">=2.5,<4",
"dependencies": []
},
{
"key": "urllib3",
"package_name": "urllib3",
"installed_version": "1.26.9",
"required_version": ">=1.21.1,<1.27",
"dependencies": []
}
]
},
{
"key": "saneyaml",
"package_name": "saneyaml",
"installed_version": "0.5.2",
"required_version": ">=0.5.2",
"dependencies": [
{
"key": "pyyaml",
"package_name": "PyYAML",
"installed_version": "6.0",
"required_version": "Any",
"dependencies": []
}
]
},
{
"key": "text-unidecode",
"package_name": "text-unidecode",
"installed_version": "1.3",
"required_version": ">=1.0",
"dependencies": []
}
]
},
{
"key": "dparse2",
"package_name": "dparse2",
"installed_version": "0.6.1",
"required_version": ">=0.6.1",
"dependencies": [
{
"key": "packaging",
"package_name": "packaging",
"installed_version": "21.3",
"required_version": "Any",
"dependencies": [
{
"key": "pyparsing",
"package_name": "pyparsing",
"installed_version": "3.0.9",
"required_version": ">=2.0.2,!=3.0.5",
"dependencies": []
}
]
},
{
"key": "pyyaml",
"package_name": "pyyaml",
"installed_version": "6.0",
"required_version": "Any",
"dependencies": []
},
{
"key": "toml",
"package_name": "toml",
"installed_version": "0.10.2",
"required_version": "Any",
"dependencies": []
}
]
},
{
"key": "importlib-metadata",
"package_name": "importlib-metadata",
"installed_version": "4.8.3",
"required_version": "Any",
"dependencies": [
{
"key": "zipp",
"package_name": "zipp",
"installed_version": "3.6.0",
"required_version": ">=0.5",
"dependencies": []
}
]
},
{
"key": "packageurl-python",
"package_name": "packageurl-python",
"installed_version": "0.9.9",
"required_version": ">=0.9.0",
"dependencies": []
},
{
"key": "pip-requirements-parser",
"package_name": "pip-requirements-parser",
"installed_version": "31.2.0",
"required_version": ">=31.2.0",
"dependencies": [
{
"key": "packaging",
"package_name": "packaging",
"installed_version": "21.3",
"required_version": "Any",
"dependencies": [
{
"key": "pyparsing",
"package_name": "pyparsing",
"installed_version": "3.0.9",
"required_version": ">=2.0.2,!=3.0.5",
"dependencies": []
}
]
}
]
},
{
"key": "pkginfo2",
"package_name": "pkginfo2",
"installed_version": "30.0.0",
"required_version": ">=30.0.0",
"dependencies": []
},
{
"key": "requests",
"package_name": "requests",
"installed_version": "2.27.1",
"required_version": ">=2.7.0",
"dependencies": [
{
"key": "certifi",
"package_name": "certifi",
"installed_version": "2022.5.18.1",
"required_version": ">=2017.4.17",
"dependencies": []
},
{
"key": "charset-normalizer",
"package_name": "charset-normalizer",
"installed_version": "2.0.12",
"required_version": "~=2.0.0",
"dependencies": []
},
{
"key": "idna",
"package_name": "idna",
"installed_version": "3.3",
"required_version": ">=2.5,<4",
"dependencies": []
},
{
"key": "urllib3",
"package_name": "urllib3",
"installed_version": "1.26.9",
"required_version": ">=1.21.1,<1.27",
"dependencies": []
}
]
},
{
"key": "resolvelib",
"package_name": "resolvelib",
"installed_version": "0.8.1",
"required_version": "Any",
"dependencies": []
},
{
"key": "saneyaml",
"package_name": "saneyaml",
"installed_version": "0.5.2",
"required_version": ">=0.5.2",
"dependencies": [
{
"key": "pyyaml",
"package_name": "PyYAML",
"installed_version": "6.0",
"required_version": "Any",
"dependencies": []
}
]
},
{
"key": "tinynetrc",
"package_name": "tinynetrc",
"installed_version": "1.3.1",
"required_version": "Any",
"dependencies": []
},
{
"key": "toml",
"package_name": "toml",
"installed_version": "0.10.2",
"required_version": ">=0.10.0",
"dependencies": []
}
]
},
{
"key": "setuptools",
"package_name": "setuptools",
"installed_version": "62.3.4",
"required_version": "62.3.4",
"dependencies": []
},
{
"key": "twine",
"package_name": "twine",
"installed_version": "3.8.0",
"required_version": "3.8.0",
"dependencies": [
{
"key": "colorama",
"package_name": "colorama",
"installed_version": "0.4.4",
"required_version": ">=0.4.3",
"dependencies": []
},
{
"key": "importlib-metadata",
"package_name": "importlib-metadata",
"installed_version": "4.8.3",
"required_version": ">=3.6",
"dependencies": [
{
"key": "zipp",
"package_name": "zipp",
"installed_version": "3.6.0",
"required_version": ">=0.5",
"dependencies": []
}
]
},
{
"key": "keyring",
"package_name": "keyring",
"installed_version": "23.4.1",
"required_version": ">=15.1",
"dependencies": [
{
"key": "importlib-metadata",
"package_name": "importlib-metadata",
"installed_version": "4.8.3",
"required_version": ">=3.6",
"dependencies": [
{
"key": "zipp",
"package_name": "zipp",
"installed_version": "3.6.0",
"required_version": ">=0.5",
"dependencies": []
}
]
},
{
"key": "jeepney",
"package_name": "jeepney",
"installed_version": "0.7.1",
"required_version": ">=0.4.2",
"dependencies": []
},
{
"key": "secretstorage",
"package_name": "SecretStorage",
"installed_version": "3.3.2",
"required_version": ">=3.2",
"dependencies": [
{
"key": "cryptography",
"package_name": "cryptography",
"installed_version": "37.0.2",
"required_version": ">=2.0",
"dependencies": [
{
"key": "cffi",
"package_name": "cffi",
"installed_version": "1.15.0",
"required_version": ">=1.12",
"dependencies": [
{
"key": "pycparser",
"package_name": "pycparser",
"installed_version": "2.21",
"required_version": "Any",
"dependencies": []
}
]
}
]
},
{
"key": "jeepney",
"package_name": "jeepney",
"installed_version": "0.7.1",
"required_version": ">=0.6",
"dependencies": []
}
]
}
]
},
{
"key": "pkginfo",
"package_name": "pkginfo",
"installed_version": "1.8.3",
"required_version": ">=1.8.1",
"dependencies": []
},
{
"key": "readme-renderer",
"package_name": "readme-renderer",
"installed_version": "34.0",
"required_version": ">=21.0",
"dependencies": [
{
"key": "bleach",
"package_name": "bleach",
"installed_version": "4.1.0",
"required_version": ">=2.1.0",
"dependencies": [
{
"key": "packaging",
"package_name": "packaging",
"installed_version": "21.3",
"required_version": "Any",
"dependencies": [
{
"key": "pyparsing",
"package_name": "pyparsing",
"installed_version": "3.0.9",
"required_version": ">=2.0.2,!=3.0.5",
"dependencies": []
}
]
},
{
"key": "six",
"package_name": "six",
"installed_version": "1.16.0",
"required_version": ">=1.9.0",
"dependencies": []
},
{
"key": "webencodings",
"package_name": "webencodings",
"installed_version": "0.5.1",
"required_version": "Any",
"dependencies": []
}
]
},
{
"key": "docutils",
"package_name": "docutils",
"installed_version": "0.18.1",
"required_version": ">=0.13.1",
"dependencies": []
},
{
"key": "pygments",
"package_name": "Pygments",
"installed_version": "2.12.0",
"required_version": ">=2.5.1",
"dependencies": []
}
]
},
{
"key": "requests",
"package_name": "requests",
"installed_version": "2.27.1",
"required_version": ">=2.20",
"dependencies": [
{
"key": "certifi",
"package_name": "certifi",
"installed_version": "2022.5.18.1",
"required_version": ">=2017.4.17",
"dependencies": []
},
{
"key": "charset-normalizer",
"package_name": "charset-normalizer",
"installed_version": "2.0.12",
"required_version": "~=2.0.0",
"dependencies": []
},
{
"key": "idna",
"package_name": "idna",
"installed_version": "3.3",
"required_version": ">=2.5,<4",
"dependencies": []
},
{
"key": "urllib3",
"package_name": "urllib3",
"installed_version": "1.26.9",
"required_version": ">=1.21.1,<1.27",
"dependencies": []
}
]
},
{
"key": "requests-toolbelt",
"package_name": "requests-toolbelt",
"installed_version": "0.9.1",
"required_version": ">=0.8.0,!=0.9.0",
"dependencies": [
{
"key": "requests",
"package_name": "requests",
"installed_version": "2.27.1",
"required_version": ">=2.0.1,<3.0.0",
"dependencies": [
{
"key": "certifi",
"package_name": "certifi",
"installed_version": "2022.5.18.1",
"required_version": ">=2017.4.17",
"dependencies": []
},
{
"key": "charset-normalizer",
"package_name": "charset-normalizer",
"installed_version": "2.0.12",
"required_version": "~=2.0.0",
"dependencies": []
},
{
"key": "idna",
"package_name": "idna",
"installed_version": "3.3",
"required_version": ">=2.5,<4",
"dependencies": []
},
{
"key": "urllib3",
"package_name": "urllib3",
"installed_version": "1.26.9",
"required_version": ">=1.21.1,<1.27",
"dependencies": []
}
]
}
]
},
{
"key": "rfc3986",
"package_name": "rfc3986",
"installed_version": "1.5.0",
"required_version": ">=1.4.0",
"dependencies": []
},
{
"key": "tqdm",
"package_name": "tqdm",
"installed_version": "4.64.0",
"required_version": ">=4.14",
"dependencies": []
},
{
"key": "urllib3",
"package_name": "urllib3",
"installed_version": "1.26.9",
"required_version": ">=1.26.0",
"dependencies": []
}
]
},
{
"key": "wheel",
"package_name": "wheel",
"installed_version": "0.37.1",
"required_version": "0.37.1",
"dependencies": []
}
]
In order to better compare outputs with pip dep tree, we should have a new --json-pdt option that mimics the
pipdeptree --json-treeoutput.