{"spdxVersion":"SPDX-2.3","dataLicense":"CC0-1.0","SPDXID":"SPDXRef-DOCUMENT","name":"com.github.KariSpace/pythoncode-tutorials","documentNamespace":"https://spdx.org/spdxdocs/protobom/6091ea58-4897-4b12-ac66-e0393390fadb","comment":"Exact versions could not be resolved for some packages. For more information: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph#dependencies-included.","creationInfo":{"creators":["Tool: protobom-v0.0.0-20251216165153-1f3f3060931e+dirty","Tool: GitHub.com-Dependency-Graph"],"created":"2026-01-01T00:22:01Z"},"packages":[{"name":"bs4","SPDXID":"SPDXRef-pypi-bs4-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/bs4"}]},{"name":"pyzbar","SPDXID":"SPDXRef-pypi-pyzbar-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pyzbar"}]},{"name":"mysql-connector-python","SPDXID":"SPDXRef-pypi-mysql-connector-python-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/mysql-connector-python"}]},{"name":"pymongo","SPDXID":"SPDXRef-pypi-pymongo-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pymongo"}]},{"name":"tabulate","SPDXID":"SPDXRef-pypi-tabulate-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/tabulate"}]},{"name":"colorama","SPDXID":"SPDXRef-pypi-colorama-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/colorama"}]},{"name":"paramiko","SPDXID":"SPDXRef-pypi-paramiko-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/paramiko"}]},{"name":"pycryptodome","SPDXID":"SPDXRef-pypi-pycryptodome-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pycryptodome"}]},{"name":"pypiwin32","SPDXID":"SPDXRef-pypi-pypiwin32-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pypiwin32"}]},{"name":"numpy","SPDXID":"SPDXRef-pypi-numpy-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/numpy"}]},{"name":"opencv-python","SPDXID":"SPDXRef-pypi-opencv-python-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/opencv-python"}]},{"name":"matplotlib","SPDXID":"SPDXRef-pypi-matplotlib-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/matplotlib"}]},{"name":"cryptography","SPDXID":"SPDXRef-pypi-cryptography-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/cryptography"}]},{"name":"pillow","SPDXID":"SPDXRef-pypi-pillow-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pillow"}]},{"name":"keyboard","SPDXID":"SPDXRef-pypi-keyboard-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/keyboard"}]},{"name":"tqdm","SPDXID":"SPDXRef-pypi-tqdm-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/tqdm"}]},{"name":"pikepdf","SPDXID":"SPDXRef-pypi-pikepdf-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pikepdf"}]},{"name":"requests","SPDXID":"SPDXRef-pypi-requests-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/requests"}]},{"name":"shodan","SPDXID":"SPDXRef-pypi-shodan-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/shodan"}]},{"name":"com.github.KariSpace/pythoncode-tutorials","SPDXID":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","versionInfo":"master","downloadLocation":"git+https://github.com/KariSpace/pythoncode-tutorials","filesAnalyzed":false,"licenseDeclared":"MIT","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:github/KariSpace/pythoncode-tutorials@master"}]}],"relationships":[{"spdxElementId":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relatedSpdxElement":"SPDXRef-pypi-opencv-python-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relatedSpdxElement":"SPDXRef-pypi-pillow-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relatedSpdxElement":"SPDXRef-pypi-keyboard-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relatedSpdxElement":"SPDXRef-pypi-pikepdf-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relatedSpdxElement":"SPDXRef-pypi-requests-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relatedSpdxElement":"SPDXRef-pypi-bs4-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relatedSpdxElement":"SPDXRef-pypi-pyzbar-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relatedSpdxElement":"SPDXRef-pypi-pycryptodome-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relatedSpdxElement":"SPDXRef-pypi-pypiwin32-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relatedSpdxElement":"SPDXRef-pypi-tqdm-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relatedSpdxElement":"SPDXRef-pypi-mysql-connector-python-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relatedSpdxElement":"SPDXRef-pypi-pymongo-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relatedSpdxElement":"SPDXRef-pypi-tabulate-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relatedSpdxElement":"SPDXRef-pypi-numpy-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relatedSpdxElement":"SPDXRef-pypi-matplotlib-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relatedSpdxElement":"SPDXRef-pypi-colorama-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relatedSpdxElement":"SPDXRef-pypi-paramiko-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relatedSpdxElement":"SPDXRef-pypi-cryptography-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relatedSpdxElement":"SPDXRef-pypi-shodan-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-DOCUMENT","relatedSpdxElement":"SPDXRef-github-KariSpace-pythoncode-tutorials-master-b71277","relationshipType":"DESCRIBES"}]}