The Python SDK for composition functions
Go to file
Joel Diaz b336926f62 fix hatch build
without this change, running 'hatch build' in my environment (Ubuntu LTS
22.04) fails with:

  File
"/home/jo.diaz/.local/share/hatch/env/virtual/function-sdk-python/wwDZoZBv/function-sdk-python-build/lib/python3.11/site-packages/hatchling/builders/wheel.py",
line 231, in default_only_include
    return self.default_file_selection_options.only_include
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File
"/home/jo.diaz/.pyenv/versions/3.11.6/lib/python3.11/functools.py", line
1001, in __get__
    val = self.func(instance)
          ^^^^^^^^^^^^^^^^^^^
  File
"/home/jo.diaz/.local/share/hatch/env/virtual/function-sdk-python/wwDZoZBv/function-sdk-python-build/lib/python3.11/site-packages/hatchling/builders/wheel.py",
line 219, in default_file_selection_options
    raise ValueError(message)
ValueError: Unable to determine which files to ship inside the wheel
using the following heuristics:
https://hatch.pypa.io/latest/plugins/builder/wheel/#default-file-selection

At least one file selection option must be defined in the
`tool.hatch.build.targets.wheel` table, see:
https://hatch.pypa.io/latest/config/build/

As an example, if you intend to ship a directory named `foo` that
resides within a `src` directory located at the root of your project,
you can define the following:

[tool.hatch.build.targets.wheel]
packages = ["src/foo"]

with the change, the build succeeds

Signed-off-by: Joel Diaz <jo.diaz@celonis.com>
2023-12-20 16:15:08 -05:00
.github Update actions/setup-python action to v5 2023-12-06 12:27:19 +00:00
crossplane/function Merge pull request #16 from negz/grandmaster-flash 2023-11-21 19:10:08 -08:00
tests Add license headers 2023-11-21 19:06:10 -08:00
.gitignore Initial commit 2023-11-20 15:00:23 -08:00
LICENSE Initial commit 2023-11-20 15:00:23 -08:00
README.md Use a single lint command 2023-11-19 18:00:36 -08:00
pyproject.toml fix hatch build 2023-12-20 16:15:08 -05:00
renovate.json Add renovate.json 2023-11-21 02:22:01 +00:00

README.md

function-sdk-python

CI GitHub release (latest SemVer)

The Python SDK for writing composition functions.

This SDK is currently a beta. We try to avoid breaking changes, but it will not have a stable API until it reaches v1.0.0. It follows the same contributing guidelines as Crossplane.

To learn how to use this SDK:

The RunFunctionRequest and RunFunctionResponse types provided by this SDK are generated from a proto3 protocol buffer schema. Their fields behave similarly to built-in Python types like lists and dictionaries, but there are some differences. Read the generated code documentation to familiarize yourself with the the differences.

Contributing

This project follows the Crossplane contributing guidelines, where applicable to Python. It is linted, tested, and built using Hatch.

Some useful commands:

# Generate gRPC stubs.
hatch run generate:protoc

# Lint the code.
hatch run lint:check

# Run unit tests.
hatch run test:unit

# Build an sdist and wheel.
hatch build