{"spdxVersion":"SPDX-2.3","dataLicense":"CC0-1.0","SPDXID":"SPDXRef-DOCUMENT","name":"com.github.grimmvenom/pythoncode-tutorials","documentNamespace":"https://spdx.org/spdxdocs/protobom/f9926c9f-b7c8-4ad4-809b-2b732eea2831","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-01T03:25:17Z"},"packages":[{"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":"pandas","SPDXID":"SPDXRef-pypi-pandas-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pandas"}]},{"name":"psutil","SPDXID":"SPDXRef-pypi-psutil-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/psutil"}]},{"name":"pyaudio","SPDXID":"SPDXRef-pypi-pyaudio-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pyaudio"}]},{"name":"pydub","SPDXID":"SPDXRef-pypi-pydub-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pydub"}]},{"name":"ffmpeg-python","SPDXID":"SPDXRef-pypi-ffmpeg-python-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/ffmpeg-python"}]},{"name":"playsound","SPDXID":"SPDXRef-pypi-playsound-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/playsound"}]},{"name":"opencv-contrib-python","SPDXID":"SPDXRef-pypi-opencv-contrib-python-3.4.2.16-75c946","versionInfo":"3.4.2.16","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/opencv-contrib-python@3.4.2.16"}]},{"name":"opencv-python","SPDXID":"SPDXRef-pypi-opencv-python-3.4.2.16-75c946","versionInfo":"3.4.2.16","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/opencv-python@3.4.2.16"}]},{"name":"seaborn","SPDXID":"SPDXRef-pypi-seaborn-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/seaborn"}]},{"name":"imblearn","SPDXID":"SPDXRef-pypi-imblearn-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/imblearn"}]},{"name":"tensorflow-hub","SPDXID":"SPDXRef-pypi-tensorflow-hub-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/tensorflow-hub"}]},{"name":"tabulate","SPDXID":"SPDXRef-pypi-tabulate-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/tabulate"}]},{"name":"scikit-image","SPDXID":"SPDXRef-pypi-scikit-image-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/scikit-image"}]},{"name":"netfilterqueue","SPDXID":"SPDXRef-pypi-netfilterqueue-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/netfilterqueue"}]},{"name":"fbchat","SPDXID":"SPDXRef-pypi-fbchat-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/fbchat"}]},{"name":"soundfile","SPDXID":"SPDXRef-pypi-soundfile-0.9.0-75c946","versionInfo":"0.9.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"(c) 2013, Bastian Bechtold, Copyright (c) 1991, 1999 Free Software Foundation, Inc., Copyright (c) 1999-2010, Copyright (c) 2013, Bastian Bechtold, copyright 2015, Bastian Bechtold, Matthias Geier, Copyright Software Artist, copyrighted by the Free Software Foundation","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/soundfile@0.9.0"}]},{"name":"librosa","SPDXID":"SPDXRef-pypi-librosa-0.6.3-75c946","versionInfo":"0.6.3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"ISC","copyrightText":"Copyright (c) 2013 2017, librosa development team.","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/librosa@0.6.3"}]},{"name":"pyaudio","SPDXID":"SPDXRef-pypi-pyaudio-0.2.11-75c946","versionInfo":"0.2.11","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2006 Hubert Pham, copyright 2006, Hubert Pham","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pyaudio@0.2.11"}]},{"name":"requests-html","SPDXID":"SPDXRef-pypi-requests-html-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/requests-html"}]},{"name":"pymongo","SPDXID":"SPDXRef-pypi-pymongo-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pymongo"}]},{"name":"sklearn","SPDXID":"SPDXRef-pypi-sklearn-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/sklearn"}]},{"name":"vadersentiment","SPDXID":"SPDXRef-pypi-vadersentiment-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/vadersentiment"}]},{"name":"pytesseract","SPDXID":"SPDXRef-pypi-pytesseract-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pytesseract"}]},{"name":"unicorn","SPDXID":"SPDXRef-pypi-unicorn-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/unicorn"}]},{"name":"keystone-engine","SPDXID":"SPDXRef-pypi-keystone-engine-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/keystone-engine"}]},{"name":"capstone","SPDXID":"SPDXRef-pypi-capstone-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/capstone"}]},{"name":"python-socketio","SPDXID":"SPDXRef-pypi-python-socketio-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/python-socketio"}]},{"name":"fxcmpy","SPDXID":"SPDXRef-pypi-fxcmpy-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/fxcmpy"}]},{"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":"yahoo-fin","SPDXID":"SPDXRef-pypi-yahoo-fin-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/yahoo-fin"}]},{"name":"camelot-py","SPDXID":"SPDXRef-pypi-camelot-py-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/camelot-py"}]},{"name":"tabula-py","SPDXID":"SPDXRef-pypi-tabula-py-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/tabula-py"}]},{"name":"bs4","SPDXID":"SPDXRef-pypi-bs4-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/bs4"}]},{"name":"pyautogui","SPDXID":"SPDXRef-pypi-pyautogui-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pyautogui"}]},{"name":"python-qbittorrent","SPDXID":"SPDXRef-pypi-python-qbittorrent-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/python-qbittorrent"}]},{"name":"pymupdf","SPDXID":"SPDXRef-pypi-pymupdf-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pymupdf"}]},{"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":"tensorflow-datasets","SPDXID":"SPDXRef-pypi-tensorflow-datasets-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/tensorflow-datasets"}]},{"name":"tensorflow","SPDXID":"SPDXRef-pypi-tensorflow-2.0.3-75c946","versionInfo":"2.0.3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"Apache-2.0","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/tensorflow@2.0.3"}]},{"name":"selenium","SPDXID":"SPDXRef-pypi-selenium-3.141-75c946","versionInfo":"3.141","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/selenium@3.141"}]},{"name":"msedge-selenium-tools","SPDXID":"SPDXRef-pypi-msedge-selenium-tools-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/msedge-selenium-tools"}]},{"name":"wikipedia","SPDXID":"SPDXRef-pypi-wikipedia-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/wikipedia"}]},{"name":"qrcode","SPDXID":"SPDXRef-pypi-qrcode-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/qrcode"}]},{"name":"keras-metrics","SPDXID":"SPDXRef-pypi-keras-metrics-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/keras-metrics"}]},{"name":"keras","SPDXID":"SPDXRef-pypi-keras-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/keras"}]},{"name":"tensorflow","SPDXID":"SPDXRef-pypi-tensorflow-1.15.4-75c946","versionInfo":"1.15.4","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"Apache-2.0","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/tensorflow@1.15.4"}]},{"name":"tensorflow","SPDXID":"SPDXRef-pypi-tensorflow-2.0.0-75c946","versionInfo":"2.0.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"Apache-2.0","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/tensorflow@2.0.0"}]},{"name":"tensorflow","SPDXID":"SPDXRef-pypi-tensorflow-2.4.0-75c946","versionInfo":"2.4.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"Apache-2.0","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/tensorflow@2.4.0"}]},{"name":"stockstats","SPDXID":"SPDXRef-pypi-stockstats-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/stockstats"}]},{"name":"mpl-finance","SPDXID":"SPDXRef-pypi-mpl-finance-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/mpl-finance"}]},{"name":"yfinance","SPDXID":"SPDXRef-pypi-yfinance-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/yfinance"}]},{"name":"pandas-datareader","SPDXID":"SPDXRef-pypi-pandas-datareader-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pandas-datareader"}]},{"name":"selenium","SPDXID":"SPDXRef-pypi-selenium-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/selenium"}]},{"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":"keyboard","SPDXID":"SPDXRef-pypi-keyboard-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/keyboard"}]},{"name":"pygithub","SPDXID":"SPDXRef-pypi-pygithub-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pygithub"}]},{"name":"python-telegram-bot","SPDXID":"SPDXRef-pypi-python-telegram-bot-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/python-telegram-bot"}]},{"name":"faker","SPDXID":"SPDXRef-pypi-faker-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/faker"}]},{"name":"python-whois","SPDXID":"SPDXRef-pypi-python-whois-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/python-whois"}]},{"name":"cryptography","SPDXID":"SPDXRef-pypi-cryptography-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/cryptography"}]},{"name":"google-api-python-client","SPDXID":"SPDXRef-pypi-google-api-python-client-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/google-api-python-client"}]},{"name":"google-auth-httplib2","SPDXID":"SPDXRef-pypi-google-auth-httplib2-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/google-auth-httplib2"}]},{"name":"google-auth-oauthlib","SPDXID":"SPDXRef-pypi-google-auth-oauthlib-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/google-auth-oauthlib"}]},{"name":"transformers","SPDXID":"SPDXRef-pypi-transformers-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/transformers"}]},{"name":"torch","SPDXID":"SPDXRef-pypi-torch-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/torch"}]},{"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":"pillow","SPDXID":"SPDXRef-pypi-pillow-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pillow"}]},{"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":"matplotlib","SPDXID":"SPDXRef-pypi-matplotlib-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/matplotlib"}]},{"name":"scapy","SPDXID":"SPDXRef-pypi-scapy-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/scapy"}]},{"name":"pyzbar","SPDXID":"SPDXRef-pypi-pyzbar-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pyzbar"}]},{"name":"mouse","SPDXID":"SPDXRef-pypi-mouse-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/mouse"}]},{"name":"tensorflow","SPDXID":"SPDXRef-pypi-tensorflow-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/tensorflow"}]},{"name":"plotly","SPDXID":"SPDXRef-pypi-plotly-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/plotly"}]},{"name":"pywin32","SPDXID":"SPDXRef-pypi-pywin32-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pywin32"}]},{"name":"stem","SPDXID":"SPDXRef-pypi-stem-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/stem"}]},{"name":"geopy","SPDXID":"SPDXRef-pypi-geopy-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/geopy"}]},{"name":"gputil","SPDXID":"SPDXRef-pypi-gputil-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/gputil"}]},{"name":"speech-recognition","SPDXID":"SPDXRef-pypi-speech-recognition-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/speech-recognition"}]},{"name":"com.github.grimmvenom/pythoncode-tutorials","SPDXID":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","versionInfo":"master","downloadLocation":"git+https://github.com/grimmvenom/pythoncode-tutorials","filesAnalyzed":false,"licenseDeclared":"MIT","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:github/grimmvenom/pythoncode-tutorials@master"}]}],"relationships":[{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-playsound-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-bs4-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-cryptography-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-imblearn-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-tensorflow-2.0.3-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-pygithub-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-scapy-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-opencv-contrib-python-3.4.2.16-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-requests-html-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-python-socketio-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-colorama-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-qrcode-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-pikepdf-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-paramiko-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-torch-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-psutil-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-seaborn-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-pyaudio-0.2.11-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-sklearn-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-pandas-datareader-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-faker-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-python-whois-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-google-auth-httplib2-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-mouse-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-geopy-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-speech-recognition-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-msedge-selenium-tools-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-tensorflow-2.0.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-mysql-connector-python-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-ffmpeg-python-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-scikit-image-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-netfilterqueue-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-vadersentiment-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-fxcmpy-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-pillow-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-stem-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-numpy-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-yahoo-fin-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-tensorflow-datasets-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-mpl-finance-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-google-api-python-client-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-soundfile-0.9.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-stockstats-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-keyboard-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-matplotlib-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-pydub-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-tensorflow-hub-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-fbchat-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-tensorflow-1.15.4-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-tensorflow-2.4.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-requests-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-pywin32-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-gputil-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-yfinance-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-tqdm-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-pytesseract-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-opencv-python-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-pyautogui-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-python-qbittorrent-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-selenium-3.141-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-tensorflow-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-librosa-0.6.3-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-pymongo-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-unicorn-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-keystone-engine-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-capstone-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-camelot-py-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-pymupdf-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-wikipedia-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-tabulate-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-selenium-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-google-auth-oauthlib-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-shodan-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-pyzbar-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-pandas-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-pyaudio-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-keras-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-python-telegram-bot-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-transformers-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-pypiwin32-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-opencv-python-3.4.2.16-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-tabula-py-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-keras-metrics-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-pycryptodome-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relatedSpdxElement":"SPDXRef-pypi-plotly-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-DOCUMENT","relatedSpdxElement":"SPDXRef-github-grimmvenom-pythoncode-tutorials-master-4275b2","relationshipType":"DESCRIBES"}]}