{"spdxVersion":"SPDX-2.3","dataLicense":"CC0-1.0","SPDXID":"SPDXRef-DOCUMENT","name":"com.github.46696519/python-tutorial","documentNamespace":"https://spdx.org/spdxdocs/protobom/ff4f1d66-6d78-4876-89ef-ef0e2276d396","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-20260420101536-ffffc1bf4105+dirty","Tool: GitHub.com-Dependency-Graph"],"created":"2026-04-26T21:20:14Z"},"packages":[{"name":"scipy","SPDXID":"SPDXRef-pypi-scipy-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/scipy"}]},{"name":"matplotlib","SPDXID":"SPDXRef-pypi-matplotlib-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/matplotlib"}]},{"name":"scikit-learn","SPDXID":"SPDXRef-pypi-scikit-learn-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/scikit-learn"}]},{"name":"numpy","SPDXID":"SPDXRef-pypi-numpy-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/numpy"}]},{"name":"pandas","SPDXID":"SPDXRef-pypi-pandas-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pandas"}]},{"name":"markupsafe","SPDXID":"SPDXRef-pypi-markupsafe-1.1.1-75c946","versionInfo":"1.1.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"copyright 2010 Pallets, Copyright 2010 Pallets, copyright 2010 Pallets Team","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/markupsafe@1.1.1"}]},{"name":"jinja2","SPDXID":"SPDXRef-pypi-jinja2-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/jinja2"}]},{"name":"python-dotenv","SPDXID":"SPDXRef-pypi-python-dotenv-0.19.0-75c946","versionInfo":"0.19.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"Copyright (c) 2013, Jacob Kaplan-Moss, Copyright (c) 2013, Ted Tieken, Copyright (c) 2014, Saurabh Kumar","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/python-dotenv@0.19.0"}]},{"name":"flask","SPDXID":"SPDXRef-pypi-flask-1.1.2-75c946","versionInfo":"1.1.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"(c) Copyright 2010 by \u003ca href http://domain.invalid/'\u003e, (c) Copyright 2010 by http://domain.invalid/'\u003e, Copyright (c) 2010 by the Pallets team, Copyright (c) 2010 by the Pallets team., Copyright (c) 2015 CERN., copyright 2010 Pallets, Copyright 2010 Pallets","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/flask@1.1.2"}]},{"name":"werkzeug","SPDXID":"SPDXRef-pypi-werkzeug-2.2.3-75c946","versionInfo":"2.2.3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"copyright 2007 Pallets, Copyright 2007 Pallets","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/werkzeug@2.2.3"}]},{"name":"flask-login","SPDXID":"SPDXRef-pypi-flask-login-0.5.0-75c946","versionInfo":"0.5.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2010 by Armin Ronacher., copyright (c) 2011 by Matthew Frazier., Copyright (c) 2011 Matthew Frazier, Copyright 2007-2010 by the Sphinx team, Copyright 2010 by Armin Ronacher. :license Flask Design License, copyright u'2011, Matthew Frazier","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/flask-login@0.5.0"}]},{"name":"sqlalchemy","SPDXID":"SPDXRef-pypi-sqlalchemy-1.3.6-75c946","versionInfo":"1.3.6","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"(c) .filter(C.bs.any(B.id 1)), SELECT c.id AS, (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc., (c) copyright.html' Copyright 2007-2019, the SQLAlchemy authors and contributors., (c) JS Foundation and other contributors, (c), True, False, Copyright (c) 2005-2019 Michael Bayer and contributors., Copyright (c) 2005-2019 the SQLAlchemy authors and contributors, Copyright (c) 2006-2019 the SQLAlchemy authors and contributors, copyright (c) 2007 Fisch Asset Management AG http://www.fam.ch, Copyright (c) 2007 Jason Kirtland jek@discorporate.us, Copyright (c) 2007-2019 the SQLAlchemy authors and contributors, Copyright (c) 2009-2019 the SQLAlchemy authors and contributors, Copyright (c) 2010 Gaetan de Menten gdementen@gmail.com, Copyright (c) 2010-2011 Gaetan de Menten gdementen@gmail.com, Copyright (c) 2010-2019 the SQLAlchemy authors and contributors, Copyright (c) 2012-2019 the SQLAlchemy authors and contributors, Copyright (c) 2013-2019 the SQLAlchemy authors and contributors, Copyright (c) Microsoft, Copyright (c) Microsoft Corporation', Microsoft SQL Azure, Copyright 2005-2019 SQLAlchemy, Copyright 2007-2019 by the Sphinx team, Copyright 2007-2019, the SQLAlchemy authors and contributors., Copyright jQuery Foundation and other contributors, Copyright JS Foundation and other contributors, Copyright SQLAlchemy 1.3 Documentation, copyright u'2007-2019, the SQLAlchemy authors and contributors, Copyright.html / rel top title SQLAlchemy 1.3 Documentation, sql-server-2012-large-text-binary-types-render-as-varchar-nvarchar-varbinary' SQL Server 2012","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/sqlalchemy@1.3.6"}]},{"name":"flask-sqlalchemy","SPDXID":"SPDXRef-pypi-flask-sqlalchemy-2.4.0-75c946","versionInfo":"2.4.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"copyright 2010 Pallets, Copyright 2010 Pallets","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/flask-sqlalchemy@2.4.0"}]},{"name":"click","SPDXID":"SPDXRef-pypi-click-7.1.2-75c946","versionInfo":"7.1.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-3-Clause","copyrightText":"Copyright 2001-2006 Gregory P. Ward, Copyright 2001-2006 Gregory P. Ward., Copyright 2002-2006 Python Software Foundation, Copyright 2002-2006 Python Software Foundation., copyright 2014 Pallets, Copyright 2014 Pallets","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/click@7.1.2"}]},{"name":"com.github.46696519/python-tutorial","SPDXID":"SPDXRef-github-46696519-python-tutorial-master-3f82f0","versionInfo":"master","downloadLocation":"git+https://github.com/46696519/python-tutorial","filesAnalyzed":false,"licenseDeclared":"Apache-2.0","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:github/46696519/python-tutorial@master"}]}],"relationships":[{"spdxElementId":"SPDXRef-github-46696519-python-tutorial-master-3f82f0","relatedSpdxElement":"SPDXRef-pypi-jinja2-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-46696519-python-tutorial-master-3f82f0","relatedSpdxElement":"SPDXRef-pypi-python-dotenv-0.19.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-46696519-python-tutorial-master-3f82f0","relatedSpdxElement":"SPDXRef-pypi-flask-1.1.2-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-46696519-python-tutorial-master-3f82f0","relatedSpdxElement":"SPDXRef-pypi-flask-sqlalchemy-2.4.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-46696519-python-tutorial-master-3f82f0","relatedSpdxElement":"SPDXRef-pypi-scipy-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-46696519-python-tutorial-master-3f82f0","relatedSpdxElement":"SPDXRef-pypi-pandas-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-46696519-python-tutorial-master-3f82f0","relatedSpdxElement":"SPDXRef-pypi-markupsafe-1.1.1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-46696519-python-tutorial-master-3f82f0","relatedSpdxElement":"SPDXRef-pypi-werkzeug-2.2.3-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-46696519-python-tutorial-master-3f82f0","relatedSpdxElement":"SPDXRef-pypi-flask-login-0.5.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-46696519-python-tutorial-master-3f82f0","relatedSpdxElement":"SPDXRef-pypi-sqlalchemy-1.3.6-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-46696519-python-tutorial-master-3f82f0","relatedSpdxElement":"SPDXRef-pypi-click-7.1.2-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-46696519-python-tutorial-master-3f82f0","relatedSpdxElement":"SPDXRef-pypi-matplotlib-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-46696519-python-tutorial-master-3f82f0","relatedSpdxElement":"SPDXRef-pypi-scikit-learn-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-46696519-python-tutorial-master-3f82f0","relatedSpdxElement":"SPDXRef-pypi-numpy-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-DOCUMENT","relatedSpdxElement":"SPDXRef-github-46696519-python-tutorial-master-3f82f0","relationshipType":"DESCRIBES"}]}