{"id":19144181,"url":"https://github.com/crossplane/function-template-python","last_synced_at":"2025-06-27T18:10:49.847Z","repository":{"id":208544932,"uuid":"721836323","full_name":"crossplane/function-template-python","owner":"crossplane","description":"A template for writing a composition function in Python","archived":false,"fork":false,"pushed_at":"2025-06-26T07:43:48.000Z","size":200,"stargazers_count":16,"open_issues_count":8,"forks_count":10,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-06-26T08:38:46.449Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/crossplane.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-11-21T21:48:35.000Z","updated_at":"2025-06-15T13:16:20.000Z","dependencies_parsed_at":"2024-01-25T01:39:47.646Z","dependency_job_id":"1a7415c3-0cf2-422e-9450-3bee21a0434a","html_url":"https://github.com/crossplane/function-template-python","commit_stats":null,"previous_names":["crossplane/function-template-python"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/crossplane/function-template-python","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crossplane%2Ffunction-template-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crossplane%2Ffunction-template-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crossplane%2Ffunction-template-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crossplane%2Ffunction-template-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/crossplane","download_url":"https://codeload.github.com/crossplane/function-template-python/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/crossplane%2Ffunction-template-python/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262308095,"owners_count":23291097,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T07:34:02.220Z","updated_at":"2025-06-27T18:10:49.818Z","avatar_url":"https://github.com/crossplane.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# function-template-python\n\n[![CI](https://github.com/crossplane/function-template-python/actions/workflows/ci.yml/badge.svg)](https://github.com/crossplane/function-template-go/actions/workflows/ci.yml)\n\nA template for writing a [composition function][functions] in [Python][python].\n\nTo learn how to use this template:\n\n* [Follow the guide to writing a composition function in Python][function guide]\n* [Learn about how composition functions work][functions]\n* [Read the function-sdk-python package documentation][package docs]\n\nIf you just want to jump in and get started:\n\n1. Replace `function-template-python` with your function's name in\n   `package/crossplane.yaml`.\n1. Add your logic to `RunFunction` in `function/fn.py`\n1. Add tests for your logic in `test/test_fn.py`\n1. Update this file, `README.md`, to be about your function!\n\nThis template uses [Python][python], [Docker][docker], and the [Crossplane\nCLI][cli] to build functions.\n\n```shell\n# Run the code in development mode, for crossplane beta render\nhatch run development\n\n# Lint and format the code - see pyproject.toml\nhatch fmt\n\n# Run unit tests - see tests/test_fn.py\nhatch test\n\n# Build the function's runtime image - see Dockerfile\n$ docker build . --tag=runtime\n\n# Build a function package - see package/crossplane.yaml\n$ crossplane xpkg build -f package --embed-runtime-image=runtime\n```\n\n[functions]: https://docs.crossplane.io/latest/concepts/composition-functions\n[function guide]: https://docs.crossplane.io/knowledge-base/guides/write-a-composition-function-in-python\n[package docs]: https://crossplane.github.io/function-sdk-python\n[python]: https://python.org\n[docker]: https://www.docker.com\n[cli]: https://docs.crossplane.io/latest/cli\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrossplane%2Ffunction-template-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcrossplane%2Ffunction-template-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcrossplane%2Ffunction-template-python/lists"}