{"bomFormat":"CycloneDX","specVersion":"1.5","version":1,"serialNumber":"urn:uuid:c5394065-3c7f-424d-bea5-f943f461e5fe","metadata":{"timestamp":"2026-06-26T18:09:26Z","tools":[{"vendor":"Ecosystems","name":"Ecosystems SBOM Generator"}],"component":{"type":"application","name":"talkpython/htmx-python-course"}},"components":[{"type":"library","name":"annotated-types","version":"==0.6.0","purl":"pkg:pypi/annotated-types","properties":[{"name":"filePath","value":"code/ch4_app/ch4_final_video_collector/requirements.txt"}]},{"type":"library","name":"blinker","version":"==1.7.0","purl":"pkg:pypi/blinker","properties":[{"name":"filePath","value":"code/ch4_app/ch4_final_video_collector/requirements.txt"}]},{"type":"library","name":"click","version":"==8.1.7","purl":"pkg:pypi/click","properties":[{"name":"filePath","value":"code/ch4_app/ch4_final_video_collector/requirements.txt"}]},{"type":"library","name":"flask","version":"==3.0.2","purl":"pkg:pypi/flask","properties":[{"name":"filePath","value":"code/ch4_app/ch4_final_video_collector/requirements.txt"}]},{"type":"library","name":"itsdangerous","version":"==2.1.2","purl":"pkg:pypi/itsdangerous","properties":[{"name":"filePath","value":"code/ch4_app/ch4_final_video_collector/requirements.txt"}]},{"type":"library","name":"jinja2","version":"==3.1.3","purl":"pkg:pypi/jinja2","properties":[{"name":"filePath","value":"code/ch4_app/ch4_final_video_collector/requirements.txt"}]},{"type":"library","name":"markupsafe","version":"==2.1.5","purl":"pkg:pypi/markupsafe","properties":[{"name":"filePath","value":"code/ch4_app/ch4_final_video_collector/requirements.txt"}]},{"type":"library","name":"more-itertools","version":"==10.2.0","purl":"pkg:pypi/more-itertools","properties":[{"name":"filePath","value":"code/ch4_app/ch4_final_video_collector/requirements.txt"}]},{"type":"library","name":"pydantic","version":"==2.6.3","purl":"pkg:pypi/pydantic","properties":[{"name":"filePath","value":"code/ch4_app/ch4_final_video_collector/requirements.txt"}]},{"type":"library","name":"pydantic-core","version":"==2.16.3","purl":"pkg:pypi/pydantic-core","properties":[{"name":"filePath","value":"code/ch4_app/ch4_final_video_collector/requirements.txt"}]},{"type":"library","name":"typing-extensions","version":"==4.10.0","purl":"pkg:pypi/typing-extensions","properties":[{"name":"filePath","value":"code/ch4_app/ch4_final_video_collector/requirements.txt"}]},{"type":"library","name":"werkzeug","version":"==3.0.1","purl":"pkg:pypi/werkzeug","properties":[{"name":"filePath","value":"code/ch4_app/ch4_final_video_collector/requirements.txt"}]},{"type":"library","name":"annotated-types","version":"==0.6.0","purl":"pkg:pypi/annotated-types","properties":[{"name":"filePath","value":"code/ch4_app/ch4_starter_video_collector/requirements.txt"}]},{"type":"library","name":"blinker","version":"==1.7.0","purl":"pkg:pypi/blinker","properties":[{"name":"filePath","value":"code/ch4_app/ch4_starter_video_collector/requirements.txt"}]},{"type":"library","name":"click","version":"==8.1.7","purl":"pkg:pypi/click","properties":[{"name":"filePath","value":"code/ch4_app/ch4_starter_video_collector/requirements.txt"}]},{"type":"library","name":"flask","version":"==3.0.2","purl":"pkg:pypi/flask","properties":[{"name":"filePath","value":"code/ch4_app/ch4_starter_video_collector/requirements.txt"}]},{"type":"library","name":"itsdangerous","version":"==2.1.2","purl":"pkg:pypi/itsdangerous","properties":[{"name":"filePath","value":"code/ch4_app/ch4_starter_video_collector/requirements.txt"}]},{"type":"library","name":"jinja2","version":"==3.1.3","purl":"pkg:pypi/jinja2","properties":[{"name":"filePath","value":"code/ch4_app/ch4_starter_video_collector/requirements.txt"}]},{"type":"library","name":"markupsafe","version":"==2.1.5","purl":"pkg:pypi/markupsafe","properties":[{"name":"filePath","value":"code/ch4_app/ch4_starter_video_collector/requirements.txt"}]},{"type":"library","name":"more-itertools","version":"==10.2.0","purl":"pkg:pypi/more-itertools","properties":[{"name":"filePath","value":"code/ch4_app/ch4_starter_video_collector/requirements.txt"}]},{"type":"library","name":"pydantic","version":"==2.6.3","purl":"pkg:pypi/pydantic","properties":[{"name":"filePath","value":"code/ch4_app/ch4_starter_video_collector/requirements.txt"}]},{"type":"library","name":"pydantic-core","version":"==2.16.3","purl":"pkg:pypi/pydantic-core","properties":[{"name":"filePath","value":"code/ch4_app/ch4_starter_video_collector/requirements.txt"}]},{"type":"library","name":"typing-extensions","version":"==4.10.0","purl":"pkg:pypi/typing-extensions","properties":[{"name":"filePath","value":"code/ch4_app/ch4_starter_video_collector/requirements.txt"}]},{"type":"library","name":"werkzeug","version":"==3.0.1","purl":"pkg:pypi/werkzeug","properties":[{"name":"filePath","value":"code/ch4_app/ch4_starter_video_collector/requirements.txt"}]},{"type":"library","name":"annotated-types","version":"==0.6.0","purl":"pkg:pypi/annotated-types","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_final_video_collector/requirements.txt"}]},{"type":"library","name":"blinker","version":"==1.7.0","purl":"pkg:pypi/blinker","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_final_video_collector/requirements.txt"}]},{"type":"library","name":"click","version":"==8.1.7","purl":"pkg:pypi/click","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_final_video_collector/requirements.txt"}]},{"type":"library","name":"flask","version":"==3.0.2","purl":"pkg:pypi/flask","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_final_video_collector/requirements.txt"}]},{"type":"library","name":"itsdangerous","version":"==2.1.2","purl":"pkg:pypi/itsdangerous","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_final_video_collector/requirements.txt"}]},{"type":"library","name":"jinja-partials","version":"==0.2.0","purl":"pkg:pypi/jinja-partials","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_final_video_collector/requirements.txt"}]},{"type":"library","name":"jinja2","version":"==3.1.3","purl":"pkg:pypi/jinja2","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_final_video_collector/requirements.txt"}]},{"type":"library","name":"markupsafe","version":"==2.1.5","purl":"pkg:pypi/markupsafe","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_final_video_collector/requirements.txt"}]},{"type":"library","name":"more-itertools","version":"==10.2.0","purl":"pkg:pypi/more-itertools","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_final_video_collector/requirements.txt"}]},{"type":"library","name":"pydantic","version":"==2.6.3","purl":"pkg:pypi/pydantic","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_final_video_collector/requirements.txt"}]},{"type":"library","name":"pydantic-core","version":"==2.16.3","purl":"pkg:pypi/pydantic-core","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_final_video_collector/requirements.txt"}]},{"type":"library","name":"typing-extensions","version":"==4.10.0","purl":"pkg:pypi/typing-extensions","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_final_video_collector/requirements.txt"}]},{"type":"library","name":"werkzeug","version":"==3.0.1","purl":"pkg:pypi/werkzeug","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_final_video_collector/requirements.txt"}]},{"type":"library","name":"annotated-types","version":"==0.6.0","purl":"pkg:pypi/annotated-types","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_starter_video_collector/requirements.txt"}]},{"type":"library","name":"blinker","version":"==1.7.0","purl":"pkg:pypi/blinker","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_starter_video_collector/requirements.txt"}]},{"type":"library","name":"click","version":"==8.1.7","purl":"pkg:pypi/click","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_starter_video_collector/requirements.txt"}]},{"type":"library","name":"flask","version":"==3.0.2","purl":"pkg:pypi/flask","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_starter_video_collector/requirements.txt"}]},{"type":"library","name":"itsdangerous","version":"==2.1.2","purl":"pkg:pypi/itsdangerous","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_starter_video_collector/requirements.txt"}]},{"type":"library","name":"jinja2","version":"==3.1.3","purl":"pkg:pypi/jinja2","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_starter_video_collector/requirements.txt"}]},{"type":"library","name":"markupsafe","version":"==2.1.5","purl":"pkg:pypi/markupsafe","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_starter_video_collector/requirements.txt"}]},{"type":"library","name":"more-itertools","version":"==10.2.0","purl":"pkg:pypi/more-itertools","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_starter_video_collector/requirements.txt"}]},{"type":"library","name":"pydantic","version":"==2.6.3","purl":"pkg:pypi/pydantic","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_starter_video_collector/requirements.txt"}]},{"type":"library","name":"pydantic-core","version":"==2.16.3","purl":"pkg:pypi/pydantic-core","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_starter_video_collector/requirements.txt"}]},{"type":"library","name":"typing-extensions","version":"==4.10.0","purl":"pkg:pypi/typing-extensions","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_starter_video_collector/requirements.txt"}]},{"type":"library","name":"werkzeug","version":"==3.0.1","purl":"pkg:pypi/werkzeug","properties":[{"name":"filePath","value":"code/ch5_partials/ch5_starter_video_collector/requirements.txt"}]},{"type":"library","name":"annotated-types","version":"==0.6.0","purl":"pkg:pypi/annotated-types","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_final_video_collector/requirements.txt"}]},{"type":"library","name":"blinker","version":"==1.7.0","purl":"pkg:pypi/blinker","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_final_video_collector/requirements.txt"}]},{"type":"library","name":"click","version":"==8.1.7","purl":"pkg:pypi/click","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_final_video_collector/requirements.txt"}]},{"type":"library","name":"flask","version":"==3.0.2","purl":"pkg:pypi/flask","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_final_video_collector/requirements.txt"}]},{"type":"library","name":"itsdangerous","version":"==2.1.2","purl":"pkg:pypi/itsdangerous","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_final_video_collector/requirements.txt"}]},{"type":"library","name":"jinja-partials","version":"==0.2.0","purl":"pkg:pypi/jinja-partials","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_final_video_collector/requirements.txt"}]},{"type":"library","name":"jinja2","version":"==3.1.3","purl":"pkg:pypi/jinja2","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_final_video_collector/requirements.txt"}]},{"type":"library","name":"markupsafe","version":"==2.1.5","purl":"pkg:pypi/markupsafe","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_final_video_collector/requirements.txt"}]},{"type":"library","name":"more-itertools","version":"==10.2.0","purl":"pkg:pypi/more-itertools","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_final_video_collector/requirements.txt"}]},{"type":"library","name":"pydantic","version":"==2.6.3","purl":"pkg:pypi/pydantic","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_final_video_collector/requirements.txt"}]},{"type":"library","name":"pydantic-core","version":"==2.16.3","purl":"pkg:pypi/pydantic-core","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_final_video_collector/requirements.txt"}]},{"type":"library","name":"typing-extensions","version":"==4.10.0","purl":"pkg:pypi/typing-extensions","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_final_video_collector/requirements.txt"}]},{"type":"library","name":"werkzeug","version":"==3.0.1","purl":"pkg:pypi/werkzeug","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_final_video_collector/requirements.txt"}]},{"type":"library","name":"annotated-types","version":"==0.6.0","purl":"pkg:pypi/annotated-types","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_starter_video_collector/requirements.txt"}]},{"type":"library","name":"blinker","version":"==1.7.0","purl":"pkg:pypi/blinker","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_starter_video_collector/requirements.txt"}]},{"type":"library","name":"click","version":"==8.1.7","purl":"pkg:pypi/click","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_starter_video_collector/requirements.txt"}]},{"type":"library","name":"flask","version":"==3.0.2","purl":"pkg:pypi/flask","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_starter_video_collector/requirements.txt"}]},{"type":"library","name":"itsdangerous","version":"==2.1.2","purl":"pkg:pypi/itsdangerous","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_starter_video_collector/requirements.txt"}]},{"type":"library","name":"jinja-partials","version":"==0.2.0","purl":"pkg:pypi/jinja-partials","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_starter_video_collector/requirements.txt"}]},{"type":"library","name":"jinja2","version":"==3.1.3","purl":"pkg:pypi/jinja2","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_starter_video_collector/requirements.txt"}]},{"type":"library","name":"markupsafe","version":"==2.1.5","purl":"pkg:pypi/markupsafe","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_starter_video_collector/requirements.txt"}]},{"type":"library","name":"more-itertools","version":"==10.2.0","purl":"pkg:pypi/more-itertools","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_starter_video_collector/requirements.txt"}]},{"type":"library","name":"pydantic","version":"==2.6.3","purl":"pkg:pypi/pydantic","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_starter_video_collector/requirements.txt"}]},{"type":"library","name":"pydantic-core","version":"==2.16.3","purl":"pkg:pypi/pydantic-core","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_starter_video_collector/requirements.txt"}]},{"type":"library","name":"typing-extensions","version":"==4.10.0","purl":"pkg:pypi/typing-extensions","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_starter_video_collector/requirements.txt"}]},{"type":"library","name":"werkzeug","version":"==3.0.1","purl":"pkg:pypi/werkzeug","properties":[{"name":"filePath","value":"code/ch6_active_search/ch6_starter_video_collector/requirements.txt"}]},{"type":"library","name":"annotated-types","version":"==0.6.0","purl":"pkg:pypi/annotated-types","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_final_video_collector/requirements.txt"}]},{"type":"library","name":"blinker","version":"==1.7.0","purl":"pkg:pypi/blinker","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_final_video_collector/requirements.txt"}]},{"type":"library","name":"click","version":"==8.1.7","purl":"pkg:pypi/click","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_final_video_collector/requirements.txt"}]},{"type":"library","name":"flask","version":"==3.0.2","purl":"pkg:pypi/flask","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_final_video_collector/requirements.txt"}]},{"type":"library","name":"itsdangerous","version":"==2.1.2","purl":"pkg:pypi/itsdangerous","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_final_video_collector/requirements.txt"}]},{"type":"library","name":"jinja-partials","version":"==0.2.0","purl":"pkg:pypi/jinja-partials","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_final_video_collector/requirements.txt"}]},{"type":"library","name":"jinja2","version":"==3.1.3","purl":"pkg:pypi/jinja2","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_final_video_collector/requirements.txt"}]},{"type":"library","name":"markupsafe","version":"==2.1.5","purl":"pkg:pypi/markupsafe","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_final_video_collector/requirements.txt"}]},{"type":"library","name":"more-itertools","version":"==10.2.0","purl":"pkg:pypi/more-itertools","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_final_video_collector/requirements.txt"}]},{"type":"library","name":"pydantic","version":"==2.6.3","purl":"pkg:pypi/pydantic","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_final_video_collector/requirements.txt"}]},{"type":"library","name":"pydantic-core","version":"==2.16.3","purl":"pkg:pypi/pydantic-core","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_final_video_collector/requirements.txt"}]},{"type":"library","name":"typing-extensions","version":"==4.10.0","purl":"pkg:pypi/typing-extensions","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_final_video_collector/requirements.txt"}]},{"type":"library","name":"werkzeug","version":"==3.0.1","purl":"pkg:pypi/werkzeug","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_final_video_collector/requirements.txt"}]},{"type":"library","name":"annotated-types","version":"==0.6.0","purl":"pkg:pypi/annotated-types","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_starter_video_collector/requirements.txt"}]},{"type":"library","name":"blinker","version":"==1.7.0","purl":"pkg:pypi/blinker","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_starter_video_collector/requirements.txt"}]},{"type":"library","name":"click","version":"==8.1.7","purl":"pkg:pypi/click","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_starter_video_collector/requirements.txt"}]},{"type":"library","name":"flask","version":"==3.0.2","purl":"pkg:pypi/flask","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_starter_video_collector/requirements.txt"}]},{"type":"library","name":"itsdangerous","version":"==2.1.2","purl":"pkg:pypi/itsdangerous","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_starter_video_collector/requirements.txt"}]},{"type":"library","name":"jinja-partials","version":"==0.2.0","purl":"pkg:pypi/jinja-partials","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_starter_video_collector/requirements.txt"}]},{"type":"library","name":"jinja2","version":"==3.1.3","purl":"pkg:pypi/jinja2","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_starter_video_collector/requirements.txt"}]},{"type":"library","name":"markupsafe","version":"==2.1.5","purl":"pkg:pypi/markupsafe","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_starter_video_collector/requirements.txt"}]},{"type":"library","name":"more-itertools","version":"==10.2.0","purl":"pkg:pypi/more-itertools","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_starter_video_collector/requirements.txt"}]},{"type":"library","name":"pydantic","version":"==2.6.3","purl":"pkg:pypi/pydantic","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_starter_video_collector/requirements.txt"}]},{"type":"library","name":"pydantic-core","version":"==2.16.3","purl":"pkg:pypi/pydantic-core","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_starter_video_collector/requirements.txt"}]},{"type":"library","name":"typing-extensions","version":"==4.10.0","purl":"pkg:pypi/typing-extensions","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_starter_video_collector/requirements.txt"}]},{"type":"library","name":"werkzeug","version":"==3.0.1","purl":"pkg:pypi/werkzeug","properties":[{"name":"filePath","value":"code/ch7_infinite_scroll/ch7_starter_video_collector/requirements.txt"}]},{"type":"library","name":"annotated-types","version":"==0.6.0","purl":"pkg:pypi/annotated-types","properties":[{"name":"filePath","value":"code/starter_video_collector/requirements.txt"}]},{"type":"library","name":"blinker","version":"==1.7.0","purl":"pkg:pypi/blinker","properties":[{"name":"filePath","value":"code/starter_video_collector/requirements.txt"}]},{"type":"library","name":"click","version":"==8.1.7","purl":"pkg:pypi/click","properties":[{"name":"filePath","value":"code/starter_video_collector/requirements.txt"}]},{"type":"library","name":"flask","version":"==3.0.2","purl":"pkg:pypi/flask","properties":[{"name":"filePath","value":"code/starter_video_collector/requirements.txt"}]},{"type":"library","name":"itsdangerous","version":"==2.1.2","purl":"pkg:pypi/itsdangerous","properties":[{"name":"filePath","value":"code/starter_video_collector/requirements.txt"}]},{"type":"library","name":"jinja2","version":"==3.1.3","purl":"pkg:pypi/jinja2","properties":[{"name":"filePath","value":"code/starter_video_collector/requirements.txt"}]},{"type":"library","name":"markupsafe","version":"==2.1.5","purl":"pkg:pypi/markupsafe","properties":[{"name":"filePath","value":"code/starter_video_collector/requirements.txt"}]},{"type":"library","name":"more-itertools","version":"==10.2.0","purl":"pkg:pypi/more-itertools","properties":[{"name":"filePath","value":"code/starter_video_collector/requirements.txt"}]},{"type":"library","name":"pydantic","version":"==2.6.3","purl":"pkg:pypi/pydantic","properties":[{"name":"filePath","value":"code/starter_video_collector/requirements.txt"}]},{"type":"library","name":"pydantic-core","version":"==2.16.3","purl":"pkg:pypi/pydantic-core","properties":[{"name":"filePath","value":"code/starter_video_collector/requirements.txt"}]},{"type":"library","name":"typing-extensions","version":"==4.10.0","purl":"pkg:pypi/typing-extensions","properties":[{"name":"filePath","value":"code/starter_video_collector/requirements.txt"}]},{"type":"library","name":"werkzeug","version":"==3.0.1","purl":"pkg:pypi/werkzeug","properties":[{"name":"filePath","value":"code/starter_video_collector/requirements.txt"}]},{"type":"library","name":"annotated-types","version":"==0.6.0","purl":"pkg:pypi/annotated-types","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"blinker","version":"==1.7.0","purl":"pkg:pypi/blinker","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"click","version":"==8.1.7","purl":"pkg:pypi/click","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"flask","version":"==3.0.2","purl":"pkg:pypi/flask","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"itsdangerous","version":"==2.1.2","purl":"pkg:pypi/itsdangerous","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"jinja-partials","version":"==0.2.0","purl":"pkg:pypi/jinja-partials","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"jinja2","version":"==3.1.3","purl":"pkg:pypi/jinja2","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"markupsafe","version":"==2.1.5","purl":"pkg:pypi/markupsafe","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"more-itertools","version":"==10.2.0","purl":"pkg:pypi/more-itertools","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"pydantic","version":"==2.6.3","purl":"pkg:pypi/pydantic","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"pydantic-core","version":"==2.16.3","purl":"pkg:pypi/pydantic-core","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"typing-extensions","version":"==4.10.0","purl":"pkg:pypi/typing-extensions","properties":[{"name":"filePath","value":"requirements.txt"}]},{"type":"library","name":"werkzeug","version":"==3.0.1","purl":"pkg:pypi/werkzeug","properties":[{"name":"filePath","value":"requirements.txt"}]}]}