func/templates/python
Luke Kingland 9f6a135702
Python Middleware v2 Scaffolding (#2685)
* refactor python http template

* python http scaffolding

* add python to make update-runtimes

* integrate python scaffolding with func run

* python http template

* reorganize python scaffolding

* cancellation stopgap

* documentation and logging cleanup

* Python Middleware v2 - Scaffolding

* base layer cache

* remove wsgi and flask templates

Inbuilt templates should be limited to a base http and cloudevent
integration, with anything beyond this falling to the officially
supported functions samples repository.

* update python cloudevents runtime in makefile

* python cloudevents middleware

* add python .venvs to gitignore

* clean up venvs on make

* add missing dependencies to python http tempklate

* set python cloudevents manifest

* further cleanup of repository impl

* cleanup

* ignore venv when building runtime container

* set listen address on python container

* remove unnecessary python runtime update from makefile

* remove debug statements and improved comments

* enable scaffolding python funcs in s2i builder

* set listen address on all containers built by s2i

* python s2i integration

* regen fs

* cleanup

* enable host builder

* fix manifest inheritance

* regen fs

* bug fixes

* regen docs

* cleanup and linter error fixes

* conditional python host builder test

* misspellings

* disable python E2E

Until the Python middleware is supported by the Pack builder, the E2E
tests will need to be disabled.

* install python for presubmit tests

* use linux for test builder runs

The target platform for a test needs to be a platform which is available
in all test base images.  That's usually linux.  Using current OS would
fail, for example, building python containers on MacOS because the
official Python base image has no darwin layer.

* fix ineffasign

* set python ce template to python 3.9

* regen fs

* windows python tests

* python templates README
2025-04-02 10:44:05 +00:00
..
cloudevents Python Middleware v2 Scaffolding (#2685) 2025-04-02 10:44:05 +00:00
http Python Middleware v2 Scaffolding (#2685) 2025-04-02 10:44:05 +00:00
scaffolding Python Middleware v2 Scaffolding (#2685) 2025-04-02 10:44:05 +00:00
README.md Python Middleware v2 Scaffolding (#2685) 2025-04-02 10:44:05 +00:00

README.md

Python

Python support consists of two templates, "http" and "cloudevents", and scaffolding which is used to connect user Functions to the func-python middleware.

When a user creates a new Python Function, either the "http" (default) or "cloudevents" template is written out as their new Function's initial state.

When a Function is built, such as on deploy, the contents of the scaffolding directory herein is written on-demand, effectively wrapping the user's Function in an app which uses the functions middleware to expose the Function as a service. This "scaffolded" Function is thus able to be containerized and deployed. see knative-extensions/func-python for the middleware, which includes examples.

The core templates are intentionally minimal. Additional templates can be used from templates repositories, such as the officially supported func-templates.

See the README.md in each directory for more information.