This repository was archived by the owner on Dec 10, 2025. It is now read-only.
v0.1.0
Enable generating Crossplane Usages based on the dependencies between Composed Resources.
BREAKING CHANGE
In order to track dependencies, primitive values obtained from protobuf messages, such as strings and numbers, are no longer the primitive value itself, but are now instances of the crossplane.pythonic.protobuf.Value class. When assigned to other protobuf fields, this is handled transparently. When these primitive values are used in pure python, the Value needs to be coerced into the raw primitive value.
For example, take the following Composite which contains an integer count value used in a loop in the Composition:
apiVersion: example.pythonic.com/v1alpha1
kind: Count
metadata:
name: pythonic
spec:
count: 4In v0.0.11, this count could be processed like so:
- step: render-templates
functionRef:
name: function-pythonic
input:
apiVersion: pythonic.fn.fortra.com/v1alpha1
kind: Composite
composite: |
class Composite(BaseComposite):
def compose(self):
for ix in range(self.spec.count):
# Create some resource...
In v0.1.0, self.spec.count needs to be coerced to an integer, like so:
- step: render-templates
functionRef:
name: function-pythonic
input:
apiVersion: pythonic.fn.fortra.com/v1alpha1
kind: Composite
composite: |
class Composite(BaseComposite):
def compose(self):
for ix in range(int(self.spec.count)):
# Create some resource...