{"spdxVersion":"SPDX-2.3","dataLicense":"CC0-1.0","SPDXID":"SPDXRef-DOCUMENT","name":"com.github.talkpython/100daysofcode-with-python-course","documentNamespace":"https://spdx.org/spdxdocs/protobom/4bb2d68c-80c9-4a28-a73b-02c2012e92f8","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":"2025-12-18T13:26:03Z"},"packages":[{"name":"requests","SPDXID":"SPDXRef-pypi-requests-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/requests"}]},{"name":"flask","SPDXID":"SPDXRef-pypi-flask-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/flask"}]},{"name":"pillow","SPDXID":"SPDXRef-pypi-pillow-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pillow"}]},{"name":"feedparser","SPDXID":"SPDXRef-pypi-feedparser-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/feedparser"}]},{"name":"matplotlib","SPDXID":"SPDXRef-pypi-matplotlib-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/matplotlib"}]},{"name":"jupyter","SPDXID":"SPDXRef-pypi-jupyter-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/jupyter"}]},{"name":"pygithub","SPDXID":"SPDXRef-pypi-pygithub-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pygithub"}]},{"name":"selenium","SPDXID":"SPDXRef-pypi-selenium-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/selenium"}]},{"name":"tweepy","SPDXID":"SPDXRef-pypi-tweepy-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/tweepy"}]},{"name":"wordcloud","SPDXID":"SPDXRef-pypi-wordcloud-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/wordcloud"}]},{"name":"numpy","SPDXID":"SPDXRef-pypi-numpy-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/numpy"}]},{"name":"plotly","SPDXID":"SPDXRef-pypi-plotly-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/plotly"}]},{"name":"ipykernel","SPDXID":"SPDXRef-pypi-ipykernel-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/ipykernel"}]},{"name":"pytest","SPDXID":"SPDXRef-pypi-pytest-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pytest"}]},{"name":"pytest-cov","SPDXID":"SPDXRef-pypi-pytest-cov-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pytest-cov"}]},{"name":"logbook","SPDXID":"SPDXRef-pypi-logbook-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/logbook"}]},{"name":"uplink","SPDXID":"SPDXRef-pypi-uplink-0.9.4-75c946","versionInfo":"0.9.4","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/[email protected]"}]},{"name":"sqlalchemy","SPDXID":"SPDXRef-pypi-sqlalchemy-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/sqlalchemy"}]},{"name":"gooey","SPDXID":"SPDXRef-pypi-gooey-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/gooey"}]},{"name":"uplink","SPDXID":"SPDXRef-pypi-uplink-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/uplink"}]},{"name":"com.github.talkpython/100daysofcode-with-python-course","SPDXID":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","versionInfo":"master","downloadLocation":"git+https://github.com/talkpython/100daysofcode-with-python-course","filesAnalyzed":false,"licenseDeclared":"MIT","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:github/talkpython/100daysofcode-with-python-course@master"}]}],"relationships":[{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-requests-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-flask-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-feedparser-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-jupyter-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-tweepy-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-wordcloud-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-numpy-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-sqlalchemy-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-pillow-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-pytest-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-pytest-cov-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-uplink-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-matplotlib-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-pygithub-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-selenium-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-plotly-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-gooey-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-ipykernel-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-logbook-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relatedSpdxElement":"SPDXRef-pypi-uplink-0.9.4-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-DOCUMENT","relatedSpdxElement":"SPDXRef-github-talkpython-100daysofcode-with-python-course-master-503c4f","relationshipType":"DESCRIBES"}]}