{"spdxVersion":"SPDX-2.3","dataLicense":"CC0-1.0","SPDXID":"SPDXRef-DOCUMENT","name":"com.github.talkpython/htmx-python-course","documentNamespace":"https://spdx.org/spdxdocs/protobom/6181642e-bbae-4a15-9dea-ee90a91e32f5","creationInfo":{"creators":["Tool: protobom-v0.0.0-20251216165153-1f3f3060931e+dirty","Tool: GitHub.com-Dependency-Graph"],"created":"2025-12-22T08:52:12Z"},"packages":[{"name":"typing-inspection","SPDXID":"SPDXRef-pypi-typing-inspection-0.4.2-75c946","versionInfo":"0.4.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) Pydantic Services Inc. 2025","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/typing-inspection@0.4.2"}]},{"name":"uvloop","SPDXID":"SPDXRef-pypi-uvloop-0.22.1-75c946","versionInfo":"0.22.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"Apache-2.0 AND MIT","copyrightText":"(c) (c) L (c), Copyright (c) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, @ :@ Inc., Copyright (c) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, Inc., Copyright (c) 1994 X Consortium, Copyright (c) 1994-2021 Free Software Foundation, Inc., Copyright (c) 1996-1999 by Internet Software Consortium, Copyright (c) 1996-2001, 2003-2015 Free Software Foundation, Inc., Copyright (c) 1996-2015 Free Software Foundation, Inc., Copyright (c) 1996-2021 Free Software Foundation, Inc., Copyright (c) 1997-2021 Free Software Foundation, Inc., Copyright (c) 1999-2021 Free Software Foundation, Inc., Copyright (c) 2001-2021 Free Software Foundation, Inc., Copyright (c) 2002-2021 Free Software Foundation, Inc., Copyright (c) 2003-2021 Free Software Foundation, Inc., Copyright (c) 2004 by Internet Systems Consortium, Inc., Copyright (c) 2004-2005, 2007-2008, 2011-2015 Free Software Foundation, Inc., Copyright (c) 2004-2005, 2007-2009, 2011-2015 Free Software Foundation, Inc., Copyright (c) 2004-2005, 2007, 2009, 2011-2015 Free Software Foundation, Inc., Copyright (c) 2004-2015 Free Software Foundation, Inc., Copyright (c) 2004-2021 Free Software Foundation, Inc., Copyright (c) 2004, 2011-2015 Free Software Foundation, Inc., Copyright (c) 2006-2008 Diego Petteno, Copyright (c) 2006-2008 xine project, Copyright (c) 2006-2021 Free Software Foundation, Inc., Copyright (c) 2008 Steven G. Johnson \u003cstevenj@alum.mit.edu\u003e, Copyright (c) 2009-2021 Free Software Foundation, Inc., Copyright (c) 2010-2015 Free Software Foundation, Inc., Copyright (c) 2010-2021 Free Software Foundation, Inc., Copyright (c) 2011 Daniel Richard G. \u003cskunk@iSKUNK.ORG\u003e, Copyright (c) 2011 Free Software Foundation, Inc., Copyright (c) 2011-2021 Free Software Foundation, Inc., Copyright (c) 2013, Ben Noordhuis \u003cinfo@bnoordhuis.nl\u003e, Copyright (c) 2014 Free Software Foundation, Inc., Copyright (c) 2014, Ben Noordhuis \u003cinfo@bnoordhuis.nl\u003e, Copyright (c) 2015 Saul Ibarra Corretge \u003csaghul@gmail.com\u003e, Copyright (c) 2015-present libuv project contributors, Copyright (c) 2015-present MagicStack Inc. http://magic.io, Copyright (c) 2015, Ben Noordhuis \u003cinfo@bnoordhuis.nl\u003e, Copyright (c) 2016-present the uvloop authors and contributors, Copyright (c) 2021 Free Software Foundation, Inc., Copyright (c) 2021 libuv project, Copyright 1992-2022 Free Software Foundation, Inc., Copyright 2002 Niels Provos \u003cprovos@citi.umich.edu\u003e, copyright 2016-present, MagicStack, Inc, Copyright 2017 - Refael Ackermann Distributed, Copyright Bert Belder, Copyright Fedor Indutny, Copyright Joyent, Inc. and other Node contributors, Copyright libuv contributors, Copyright libuv project and contributors, Copyright libuv project and other Node contributors, Copyright libuv project contributors, copyright Niels Provos. Two, copyright the Internet Systems Consortium, Inc., Copyright The libuv project and contributors, Copyright the libuv project contributors","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/uvloop@0.22.1"}]},{"name":"pydantic-core","SPDXID":"SPDXRef-pypi-pydantic-core-2.41.5-75c946","versionInfo":"2.41.5","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pydantic-core@2.41.5"}]},{"name":"pydantic","SPDXID":"SPDXRef-pypi-pydantic-2.12.5-75c946","versionInfo":"2.12.5","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2017","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pydantic@2.12.5"}]},{"name":"blinker","SPDXID":"SPDXRef-pypi-blinker-1.9.0-75c946","versionInfo":"1.9.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"copyright 2010 Jason Kirtland, Copyright 2010 Jason Kirtland","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/blinker@1.9.0"}]},{"name":"werkzeug","SPDXID":"SPDXRef-pypi-werkzeug-3.1.4-75c946","versionInfo":"3.1.4","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-3-Clause","copyrightText":"copyright 2007 Pallets, Copyright 2007 Pallets","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/werkzeug@3.1.4"}]},{"name":"click","SPDXID":"SPDXRef-pypi-click-8.3.1-75c946","versionInfo":"8.3.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-3-Clause","copyrightText":"Copyright 2001-2006 Gregory P. Ward, Copyright 2002-2006 Python Software Foundation, copyright 2014 Pallets, Copyright 2014 Pallets","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/click@8.3.1"}]},{"name":"jinja2","SPDXID":"SPDXRef-pypi-jinja2-3.1.6-75c946","versionInfo":"3.1.6","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"(c) Copyright 2008 by http://domain.invalid/\u003e, copyright 2007 Pallets, Copyright 2007 Pallets","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/jinja2@3.1.6"}]},{"name":"itsdangerous","SPDXID":"SPDXRef-pypi-itsdangerous-2.2.0-75c946","versionInfo":"2.2.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"copyright 2011 Pallets, Copyright 2011 Pallets","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/itsdangerous@2.2.0"}]},{"name":"markupsafe","SPDXID":"SPDXRef-pypi-markupsafe-3.0.3-75c946","versionInfo":"3.0.3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-3-Clause","copyrightText":"copyright 2010 Pallets, Copyright 2010 Pallets","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/markupsafe@3.0.3"}]},{"name":"typing-extensions","SPDXID":"SPDXRef-pypi-typing-extensions-4.15.0-75c946","versionInfo":"4.15.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"Python-2.0 AND Python-2.0 AND BSD-3-Clause AND Python-2.0 AND BSD-3-Clause AND 0BSD","copyrightText":"Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, The Netherlands, Copyright (c) 1995-2001 Corporation for National Research Initiatives, Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Python Software Foundation","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/typing-extensions@4.15.0"}]},{"name":"more-itertools","SPDXID":"SPDXRef-pypi-more-itertools-10.8.0-75c946","versionInfo":"10.8.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2012 Erik Rose, copyright 2012, Erik Rose","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/more-itertools@10.8.0"}]},{"name":"flask","SPDXID":"SPDXRef-pypi-flask-3.1.2-75c946","versionInfo":"3.1.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-3-Clause","copyrightText":"(c) Copyright 2010 by http://domain.invalid/\u003e, Copyright (c) 2015 CERN., copyright 2010 Pallets, Copyright 2010 Pallets","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/flask@3.1.2"}]},{"name":"annotated-types","SPDXID":"SPDXRef-pypi-annotated-types-0.7.0-75c946","versionInfo":"0.7.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2022 the contributors","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/annotated-types@0.7.0"}]},{"name":"jinja-partials","SPDXID":"SPDXRef-pypi-jinja-partials-0.3.0-75c946","versionInfo":"0.3.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/jinja-partials@0.3.0"}]},{"name":"pydantic-core","SPDXID":"SPDXRef-pypi-pydantic-core-2.41.4-75c946","versionInfo":"2.41.4","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pydantic-core@2.41.4"}]},{"name":"pydantic","SPDXID":"SPDXRef-pypi-pydantic-2.12.3-75c946","versionInfo":"2.12.3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2017","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pydantic@2.12.3"}]},{"name":"click","SPDXID":"SPDXRef-pypi-click-8.3.0-75c946","versionInfo":"8.3.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-3-Clause","copyrightText":"Copyright 2001-2006 Gregory P. Ward, Copyright 2002-2006 Python Software Foundation, copyright 2014 Pallets, Copyright 2014 Pallets","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/click@8.3.0"}]},{"name":"werkzeug","SPDXID":"SPDXRef-pypi-werkzeug-3.1.3-75c946","versionInfo":"3.1.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@3.1.3"}]},{"name":"com.github.talkpython/htmx-python-course","SPDXID":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","versionInfo":"main","downloadLocation":"git+https://github.com/talkpython/htmx-python-course","filesAnalyzed":false,"licenseDeclared":"MIT","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:github/talkpython/htmx-python-course@main"}]}],"relationships":[{"spdxElementId":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relatedSpdxElement":"SPDXRef-pypi-pydantic-core-2.41.4-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relatedSpdxElement":"SPDXRef-pypi-werkzeug-3.1.3-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relatedSpdxElement":"SPDXRef-pypi-blinker-1.9.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relatedSpdxElement":"SPDXRef-pypi-click-8.3.1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relatedSpdxElement":"SPDXRef-pypi-jinja2-3.1.6-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relatedSpdxElement":"SPDXRef-pypi-typing-extensions-4.15.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relatedSpdxElement":"SPDXRef-pypi-more-itertools-10.8.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relatedSpdxElement":"SPDXRef-pypi-click-8.3.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relatedSpdxElement":"SPDXRef-pypi-pydantic-2.12.5-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relatedSpdxElement":"SPDXRef-pypi-werkzeug-3.1.4-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relatedSpdxElement":"SPDXRef-pypi-annotated-types-0.7.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relatedSpdxElement":"SPDXRef-pypi-jinja-partials-0.3.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relatedSpdxElement":"SPDXRef-pypi-pydantic-2.12.3-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relatedSpdxElement":"SPDXRef-pypi-uvloop-0.22.1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relatedSpdxElement":"SPDXRef-pypi-typing-inspection-0.4.2-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relatedSpdxElement":"SPDXRef-pypi-pydantic-core-2.41.5-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relatedSpdxElement":"SPDXRef-pypi-itsdangerous-2.2.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relatedSpdxElement":"SPDXRef-pypi-markupsafe-3.0.3-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relatedSpdxElement":"SPDXRef-pypi-flask-3.1.2-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-DOCUMENT","relatedSpdxElement":"SPDXRef-github-talkpython-htmx-python-course-main-91e3d0","relationshipType":"DESCRIBES"}]}