{"spdxVersion":"SPDX-2.3","dataLicense":"CC0-1.0","SPDXID":"SPDXRef-DOCUMENT","name":"com.github.talkpython/vscode-python-course","documentNamespace":"https://spdx.org/spdxdocs/protobom/1a977d9b-99f8-49bd-a362-311448193f9d","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-20260409125808-b30cb6032525+dirty","Tool: GitHub.com-Dependency-Graph"],"created":"2026-04-10T15:45:51Z"},"packages":[{"name":"pytest","SPDXID":"SPDXRef-pypi-pytest-8.0.0-75c946","versionInfo":"8.0.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2004 Holger Krekel and others, Copyright (c) 2014, Gregory Boissinot, copyright 2015, holger krekel and pytest-dev team, Copyright Holger Krekel and others, 2004, Copyright Holger Krekel and others, 2004. Distributed","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pytest@8.0.0"}]},{"name":"iniconfig","SPDXID":"SPDXRef-pypi-iniconfig-2.0.0-75c946","versionInfo":"2.0.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"(c) Ronny Pfannschmidt, Holger Krekel","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/iniconfig@2.0.0"}]},{"name":"packaging","SPDXID":"SPDXRef-pypi-packaging-23.2-75c946","versionInfo":"23.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"Apache-2.0 AND BSD-2-Clause","copyrightText":"Copyright (c) Donald Stufft and individual contributors, copyright 2014 s","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/packaging@23.2"}]},{"name":"pytest-mock","SPDXID":"SPDXRef-pypi-pytest-mock-3.12.0-75c946","versionInfo":"3.12.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2016 Bruno Oliveira, copyright 2022, Bruno Oliveira","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pytest-mock@3.12.0"}]},{"name":"pluggy","SPDXID":"SPDXRef-pypi-pluggy-1.4.0-75c946","versionInfo":"1.4.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2015 holger krekel (rather uses bitbucket/hpk42), copyright 2016, Holger Krekel","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pluggy@1.4.0"}]},{"name":"email-validator","SPDXID":"SPDXRef-pypi-email-validator-2.1.0.post1-75c946","versionInfo":"2.1.0.post1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"CC0-1.0","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/email-validator@2.1.0.post1"}]},{"name":"jinja2","SPDXID":"SPDXRef-pypi-jinja2-3.1.3-75c946","versionInfo":"3.1.3","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.3"}]},{"name":"python-dotenv","SPDXID":"SPDXRef-pypi-python-dotenv-1.0.1-75c946","versionInfo":"1.0.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"Copyright (c) 2014, Saurabh Kumar","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/python-dotenv@1.0.1"}]},{"name":"pydantic-extra-types","SPDXID":"SPDXRef-pypi-pydantic-extra-types-2.5.0-75c946","versionInfo":"2.5.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2023 Samuel Colvin and other contributors","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pydantic-extra-types@2.5.0"}]},{"name":"annotated-types","SPDXID":"SPDXRef-pypi-annotated-types-0.6.0-75c946","versionInfo":"0.6.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.6.0"}]},{"name":"python-multipart","SPDXID":"SPDXRef-pypi-python-multipart-0.0.7-75c946","versionInfo":"0.0.7","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"Apache-2.0","copyrightText":"Copyright (c) 2012-2013, Andrew Dunham, Copyright 2012, Andrew Dunham","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/python-multipart@0.0.7"}]},{"name":"certifi","SPDXID":"SPDXRef-pypi-certifi-2024.2.2-75c946","versionInfo":"2024.2.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MPL-2.0","copyrightText":"(c) 1999 Entrust.net Limited, (c) 1999 Entrust.net Limited Label Entrust.net Premium 2048 Secure Server CA Serial, (c) 2006 Entrust, Inc., (c) 2006 Entrust, Inc. Label Entrust Root Certification, (c) 2009 Entrust, Inc. - for, (c) 2012 Entrust, Inc. - for, (c) 2015 Entrust, Inc. - for","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/certifi@2024.2.2"}]},{"name":"colorama","SPDXID":"SPDXRef-pypi-colorama-0.4.6-75c946","versionInfo":"0.4.6","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"Copyright (c) 2010 Jonathan Hartley, Copyright Jonathan Hartley \u0026 Arnon Yaari, 2013-2020, Copyright Jonathan Hartley 2013","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/colorama@0.4.6"}]},{"name":"idna","SPDXID":"SPDXRef-pypi-idna-3.6-75c946","versionInfo":"3.6","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-3-Clause","copyrightText":"(c) 2019 Unicode(r), Inc., Copyright (c) 2013-2023, Kim Davies and contributors","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/idna@3.6"}]},{"name":"pyyaml","SPDXID":"SPDXRef-pypi-pyyaml-6.0.1-75c946","versionInfo":"6.0.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2006-2016 Kirill Simonov, Copyright (c) 2017-2021 Ingy dot Net","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pyyaml@6.0.1"}]},{"name":"httptools","SPDXID":"SPDXRef-pypi-httptools-0.6.1-75c946","versionInfo":"0.6.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"(c) . (c), Copyright (c) 2015 MagicStack Inc. http://magic.io, Copyright Fedor Indutny, Copyright Fedor Indutny, 2018, Copyright Joyent, Inc. and other Node contributors","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/httptools@0.6.1"}]},{"name":"httpx","SPDXID":"SPDXRef-pypi-httpx-0.26.0-75c946","versionInfo":"0.26.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"Copyright (c) 2019, Encode OSS Ltd (https://www.encode.io/)","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/httpx@0.26.0"}]},{"name":"orjson","SPDXID":"SPDXRef-pypi-orjson-3.9.13-75c946","versionInfo":"3.9.13","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"Apache-2.0 AND MIT","copyrightText":"(c) ! (c) C, (c) (c) A, (c) | (c) SS, (c) $? (c) Y, (c) Th (c), (c) u (c) P, (c) x (c) O, (c), None Ok, Copyright (c) 1991-2022 Unicode, Inc., Copyright (c) 2014 2017, Kang Seonghoon and contributors, Copyright (c) 2014 Alex Crichton, Copyright (c) 2014 The Rust Project, Copyright (c) 2014-2016 Milo Yip, 2020 Ryohei Machida, Copyright (c) 2014-2016 Milo Yip, 2020 Ryohei Machida (https://github.com/Kogia-sima), Copyright (c) 2014-2020 The Rust Project, Copyright (c) 2014, Kang Seonghoon, Copyright (c) 2015-2017 winapi-rs, Copyright (c) 2016 Amanieu d'Antras, Copyright (c) 2017 Nikolai Vazquez, Copyright (c) 2017 The bytecount, Copyright (c) 2017 winapi-rs, Copyright (c) 2017-2018 Sergio Benitez, Copyright (c) 2017-present PyO3 Project and Contributors. https://github.com/PyO3, Copyright (c) 2018 Josh Stone, Copyright (c) 2018 The Servo Project, Copyright (c) 2018 Tom Kaitchuck, Copyright (c) 2018-2024 The rust-random Project, Copyright (c) 2020 Maciej Hirsz \u003chello@maciej.codes\u003e, Copyright (c) 2020 YaoYuan \u003cibireme@gmail.com\u003e, Copyright (c) 2021 Parker Timmerman, Copyright (c) 2021 Stephen M. Coakley, Copyright (c) 2023-present PyO3 Project and Contributors. https://github.com/PyO3, Copyright (c) Ulrik Sverdrup, Copyright (c) WHATWG, COPYRIGHT (https://github.com/hsivonen/encoding_rs/blob/master/COPYRIGHT), Copyright 2012-2014 The Rust Project, Copyright 2012-2016 The Rust Project, Copyright 2013-2014 The Rust Project, Copyright 2015 The Rust Project, copyright 2018 - 2024, Copyright 2018 The Fuchsia Authors, Copyright 2018 Ulf Adams, Copyright 2019 The Fuchsia Authors, Copyright 2020 Maciej Hirsz \u003chello@maciej.codes\u003e, Copyright 2022 The Fuchsia Authors, Copyright 2023 The Fuchsia Authors, Copyright 2023-2024 liuq19, ijl, Copyright 2023-2024 liuq19, ijl adapted from sonic-rs, copyright Alexander Huszagh, copyright Mozilla Foundation, Copyright Mozilla Foundation, Ok (c) Err (c), Portions copyright (c) 2015, John Nagle, Th (c) Tha","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/orjson@3.9.13"}]},{"name":"itsdangerous","SPDXID":"SPDXRef-pypi-itsdangerous-2.1.2-75c946","versionInfo":"2.1.2","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.1.2"}]},{"name":"anyio","SPDXID":"SPDXRef-pypi-anyio-4.2.0-75c946","versionInfo":"4.2.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Alex Gronholm copyright 2018, Copyright (c) 2018 Alex Gronholm","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/anyio@4.2.0"}]},{"name":"dnspython","SPDXID":"SPDXRef-pypi-dnspython-2.5.0-75c946","versionInfo":"2.5.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"ISC","copyrightText":"(c) 2009 Dennis Kaarsemaker \u003cdennis@kaarsemaker.net\u003e, Copyright (c) 2000, 2001 Internet Software Consortium, Copyright (c) 2001-2007, 2009-2011 Nominum, Inc., Copyright (c) 2001-2017 Nominum, Inc., Copyright (c) 2003-2007, 2009-2011 Nominum, Inc., Copyright (c) 2003-2007, 2009, 2011 Nominum, Inc., Copyright (c) 2003-2017 Nominum, Inc., Copyright (c) 2004-2007, 2009-2011 Nominum, Inc., Copyright (c) 2004-2007, 2009-2011, 2016 Nominum, Inc., Copyright (c) 2004-2017 Nominum, Inc., Copyright (c) 2005-2007, 2009-2011 Nominum, Inc., Copyright (c) 2006-2017 Nominum, Inc., Copyright (c) 2006, 2007, 2009-2011 Nominum, Inc., Copyright (c) 2009-2011 Nominum, Inc., Copyright (c) 2009-2017 Nominum, Inc., Copyright (c) 2010, 2011 Nominum, Inc., Copyright (c) 2011 Nominum, Inc., Copyright (c) 2012-2017 Nominum, Inc., Copyright (c) 2014 Red Hat, Inc., Copyright (c) 2015 Red Hat, Inc., Copyright (c) 2016 Coresec Systems AB, Copyright (c) 2016 Nominum, Inc., Copyright (c) Dnspython Contributors, Copyright (c) Google Inc.","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/dnspython@2.5.0"}]},{"name":"markupsafe","SPDXID":"SPDXRef-pypi-markupsafe-2.1.5-75c946","versionInfo":"2.1.5","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/markupsafe@2.1.5"}]},{"name":"pydantic-core","SPDXID":"SPDXRef-pypi-pydantic-core-2.16.2-75c946","versionInfo":"2.16.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2022 Samuel Colvin","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pydantic-core@2.16.2"}]},{"name":"h11","SPDXID":"SPDXRef-pypi-h11-0.14.0-75c946","versionInfo":"0.14.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2006-2008 Scipy Developers, Copyright (c) 2006, Jonathan E. Taylor, Copyright (c) 2009-2012 Statsmodels Developers, Copyright (c) 2016 Nathaniel J. Smith \u003cnjs@pobox.com\u003e and other contributors, Copyright 2007, 2008 Chris Wanstrath chris@ozmm.org, copyright 2016, Nathaniel J. Smith","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/h11@0.14.0"}]},{"name":"watchfiles","SPDXID":"SPDXRef-pypi-watchfiles-0.21.0-75c946","versionInfo":"0.21.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2017, 2018, 2019, 2020, 2021, 2022 Samuel Colvin","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/watchfiles@0.21.0"}]},{"name":"pydantic-settings","SPDXID":"SPDXRef-pypi-pydantic-settings-2.1.0-75c946","versionInfo":"2.1.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2022 Samuel Colvin and other contributors","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pydantic-settings@2.1.0"}]},{"name":"typing-extensions","SPDXID":"SPDXRef-pypi-typing-extensions-4.9.0-75c946","versionInfo":"4.9.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"Python-2.0.1","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.9.0"}]},{"name":"uvloop","SPDXID":"SPDXRef-pypi-uvloop-0.19.0-75c946","versionInfo":"0.19.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"Apache-2.0 AND MIT","copyrightText":"(c) (c) L, Copyright (c) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, 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) 2011, 2018 Ben Noordhuis \u003cinfo@bnoordhuis.nl\u003e, 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, Copyright Bert Belder, Copyright Fedor Indutny, Copyright Joyent, Inc. and other Node 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.19.0"}]},{"name":"sniffio","SPDXID":"SPDXRef-pypi-sniffio-1.3.0-75c946","versionInfo":"1.3.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"Apache-2.0","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/sniffio@1.3.0"}]},{"name":"ujson","SPDXID":"SPDXRef-pypi-ujson-5.9.0-75c946","versionInfo":"5.9.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"Copyright (c) 1988-1993 The Regents of the University of California, Copyright (c) 1994 Sun Microsystems, Inc., Copyright (c) 2007 Nick Galbreath nickg at modp dot com, Copyright (c) 2014, Electronic Arts Inc., Copyright 2005, 2006, 2007 Nick Galbreath nickg at modp dot com, Copyright 2006-2008 the V8 project authors, Copyright 2006-2011, the V8 project authors, Copyright 2008 the V8 project authors, Copyright 2010 the V8 project authors, Copyright 2011 the V8 project authors, Copyright 2011, the V8 project authors, Copyright 2012 the V8 project authors, copyrighted by the Regents of the University of California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState Corporation","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/ujson@5.9.0"}]},{"name":"uvicorn","SPDXID":"SPDXRef-pypi-uvicorn-0.27.0.post1-75c946","versionInfo":"0.27.0.post1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"Copyright (c) 2017-present, Encode OSS Ltd (https://www.encode.io/), Copyright (c) Django Software Foundation and individual contributors","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/uvicorn@0.27.0.post1"}]},{"name":"tinydb","SPDXID":"SPDXRef-pypi-tinydb-4.8.0-75c946","versionInfo":"4.8.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2013 Markus Siemens \u003cmarkus@m-siemens.de\u003e","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/tinydb@4.8.0"}]},{"name":"websockets","SPDXID":"SPDXRef-pypi-websockets-12.0-75c946","versionInfo":"12.0","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"Copyright (c) Aymeric Augustin and contributors","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/websockets@12.0"}]},{"name":"httpcore","SPDXID":"SPDXRef-pypi-httpcore-1.0.2-75c946","versionInfo":"1.0.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"Copyright (c) 2020, Encode OSS Ltd (https://www.encode.io/)","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/httpcore@1.0.2"}]},{"name":"pydantic","SPDXID":"SPDXRef-pypi-pydantic-2.6.1-75c946","versionInfo":"2.6.1","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"Copyright (c) 2017","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/pydantic@2.6.1"}]},{"name":"click","SPDXID":"SPDXRef-pypi-click-8.1.7-75c946","versionInfo":"8.1.7","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.1.7"}]},{"name":"starlette","SPDXID":"SPDXRef-pypi-starlette-0.36.3-75c946","versionInfo":"0.36.3","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"BSD-2-Clause AND BSD-3-Clause","copyrightText":"Copyright (c) 2018, Encode OSS Ltd (https://www.encode.io/)","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/starlette@0.36.3"}]},{"name":"fastapi","SPDXID":"SPDXRef-pypi-fastapi-0.109.2-75c946","versionInfo":"0.109.2","downloadLocation":"NOASSERTION","filesAnalyzed":false,"licenseConcluded":"MIT","copyrightText":"(c) a href https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers, Copyright (c) 2016-2023 Martin Donath \u003cmartin.donath@squidfunk.com\u003e, Copyright (c) 2018 Sebastian Ramirez","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/fastapi@0.109.2"}]},{"name":"fastapi","SPDXID":"SPDXRef-pypi-fastapi-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/fastapi"}]},{"name":"tinydb","SPDXID":"SPDXRef-pypi-tinydb-75c946","downloadLocation":"NOASSERTION","filesAnalyzed":false,"externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:pypi/tinydb"}]},{"name":"com.github.talkpython/vscode-python-course","SPDXID":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","versionInfo":"main","downloadLocation":"git+https://github.com/talkpython/vscode-python-course","filesAnalyzed":false,"licenseDeclared":"MIT","externalRefs":[{"referenceCategory":"PACKAGE-MANAGER","referenceType":"purl","referenceLocator":"pkg:github/talkpython/vscode-python-course@main"}]}],"relationships":[{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-h11-0.14.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-pytest-mock-3.12.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-pydantic-extra-types-2.5.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-idna-3.6-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-dnspython-2.5.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-sniffio-1.3.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-uvicorn-0.27.0.post1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-tinydb-4.8.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-pytest-8.0.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-iniconfig-2.0.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-python-multipart-0.0.7-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-pydantic-core-2.16.2-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-websockets-12.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-httpcore-1.0.2-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-email-validator-2.1.0.post1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-pyyaml-6.0.1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-httpx-0.26.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-orjson-3.9.13-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-pydantic-2.6.1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-click-8.1.7-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-tinydb-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-watchfiles-0.21.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-jinja2-3.1.3-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-python-dotenv-1.0.1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-colorama-0.4.6-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-itsdangerous-2.1.2-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-markupsafe-2.1.5-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-fastapi-0.109.2-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-pluggy-1.4.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-annotated-types-0.6.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-anyio-4.2.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-ujson-5.9.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-certifi-2024.2.2-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-httptools-0.6.1-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-pydantic-settings-2.1.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-typing-extensions-4.9.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-starlette-0.36.3-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-packaging-23.2-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-uvloop-0.19.0-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relatedSpdxElement":"SPDXRef-pypi-fastapi-75c946","relationshipType":"DEPENDS_ON"},{"spdxElementId":"SPDXRef-DOCUMENT","relatedSpdxElement":"SPDXRef-github-talkpython-vscode-python-course-main-a58ea1","relationshipType":"DESCRIBES"}]}
