crossplane-function-pythonic 0.1.4__tar.gz → 0.1.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/PKG-INFO +10 -10
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/README.md +3 -3
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/crossplane/pythonic/composite.py +26 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/crossplane/pythonic/function.py +7 -3
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/crossplane/pythonic/protobuf.py +1 -1
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/.dev/functions.yaml +1 -1
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/aks-cluster/cluster-function-pythonic.yaml +1 -1
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/aks-cluster/functions.yaml +1 -1
- {crossplane_function_pythonic-0.1.4/examples/import-existing-vpc → crossplane_function_pythonic-0.1.5/examples/eks-cluster}/functions.yaml +1 -1
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/filing-system/function.yaml +1 -1
- {crossplane_function_pythonic-0.1.4/examples/function-go-templating/context → crossplane_function_pythonic-0.1.5/examples/function-go-templating/conditions}/functions.yaml +1 -1
- {crossplane_function_pythonic-0.1.4/examples/function-go-templating/conditions → crossplane_function_pythonic-0.1.5/examples/function-go-templating/context}/functions.yaml +1 -1
- {crossplane_function_pythonic-0.1.4/examples/function-go-templating/functions/fromYaml → crossplane_function_pythonic-0.1.5/examples/function-go-templating/extra-resources}/functions.yaml +1 -1
- {crossplane_function_pythonic-0.1.4/examples/function-go-templating/functions/getComposedResource → crossplane_function_pythonic-0.1.5/examples/function-go-templating/functions/fromYaml}/functions.yaml +1 -1
- {crossplane_function_pythonic-0.1.4/examples/function-go-templating/functions/getCompositeResource → crossplane_function_pythonic-0.1.5/examples/function-go-templating/functions/getComposedResource}/functions.yaml +1 -1
- {crossplane_function_pythonic-0.1.4/examples/function-go-templating/extra-resources → crossplane_function_pythonic-0.1.5/examples/function-go-templating/functions/getCompositeResource}/functions.yaml +1 -1
- crossplane_function_pythonic-0.1.5/examples/function-go-templating/functions/getResourceCondition/functions.yaml +9 -0
- crossplane_function_pythonic-0.1.5/examples/function-go-templating/functions/include/functions.yaml +9 -0
- crossplane_function_pythonic-0.1.5/examples/function-go-templating/functions/toYaml/functions.yaml +9 -0
- crossplane_function_pythonic-0.1.5/examples/function-go-templating/inline/functions.yaml +9 -0
- crossplane_function_pythonic-0.1.5/examples/function-go-templating/recursive/functions.yaml +9 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/get-started-app/functions.yaml +1 -1
- {crossplane_function_pythonic-0.1.4/examples/single-purpose → crossplane_function_pythonic-0.1.5/examples/helm-copy-secret}/functions.yaml +1 -1
- {crossplane_function_pythonic-0.1.4/examples/eks-cluster → crossplane_function_pythonic-0.1.5/examples/import-existing-vpc}/functions.yaml +1 -1
- {crossplane_function_pythonic-0.1.4/examples/helm-copy-secret → crossplane_function_pythonic-0.1.5/examples/single-purpose}/functions.yaml +1 -1
- crossplane_function_pythonic-0.1.5/examples/usages-extra/functions.yaml +9 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/pyproject.toml +7 -7
- crossplane_function_pythonic-0.1.4/examples/function-go-templating/functions/getResourceCondition/functions.yaml +0 -9
- crossplane_function_pythonic-0.1.4/examples/function-go-templating/functions/include/functions.yaml +0 -9
- crossplane_function_pythonic-0.1.4/examples/function-go-templating/functions/toYaml/functions.yaml +0 -9
- crossplane_function_pythonic-0.1.4/examples/function-go-templating/inline/functions.yaml +0 -9
- crossplane_function_pythonic-0.1.4/examples/function-go-templating/recursive/functions.yaml +0 -9
- crossplane_function_pythonic-0.1.4/examples/usages-extra/functions.yaml +0 -9
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/.gitignore +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/LICENSE +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/crossplane/pythonic/__init__.py +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/crossplane/pythonic/main.py +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/crossplane/pythonic/packages.py +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/aks-cluster/README.md +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/aks-cluster/aks/kubernetescluster.py +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/aks-cluster/aks/resourcegroup.py +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/aks-cluster/composition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/aks-cluster/definition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/aks-cluster/install.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/aks-cluster/kustomization.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/aks-cluster/providers.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/aks-cluster/render.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/aks-cluster/xr.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/eks-cluster/composition-v2.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/eks-cluster/composition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/eks-cluster/definition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/eks-cluster/render-v2.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/eks-cluster/render.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/eks-cluster/xr.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/filing-system/README.md +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/filing-system/composition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/filing-system/definition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/filing-system/kustomization.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/filing-system/runtime.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/filing-system/vcluster.py +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/filing-system/vcluster.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/conditions/composition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/conditions/render.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/conditions/xr.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/conditions/xrd.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/context/composition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/context/environmentConfigs.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/context/render.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/context/xr.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/context/xrd.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/extra-resources/composition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/extra-resources/extraResources.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/extra-resources/render.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/extra-resources/xr.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/fromYaml/composition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/fromYaml/render.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/fromYaml/xr.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/getComposedResource/composition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/getComposedResource/observed.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/getComposedResource/render.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/getComposedResource/xr.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/getCompositeResource/composition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/getCompositeResource/render.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/getCompositeResource/xr.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/getResourceCondition/composition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/getResourceCondition/observed.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/getResourceCondition/render.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/getResourceCondition/xr.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/include/composition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/include/render.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/include/xr.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/toYaml/composition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/toYaml/render.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/functions/toYaml/xr.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/inline/composition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/inline/render.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/inline/xr.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/recursive/composition-real.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/recursive/composition-wrapper.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/recursive/render.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/function-go-templating/recursive/xr.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/get-started-app/composition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/get-started-app/definition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/get-started-app/render.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/get-started-app/xr.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/helm-copy-secret/composition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/helm-copy-secret/kustomization.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/helm-copy-secret/render.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/helm-copy-secret/run-function.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/helm-copy-secret/vcluster.py +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/helm-copy-secret/xr.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/helm-copy-secret/xrd.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/import-existing-vpc/README.md +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/import-existing-vpc/composition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/import-existing-vpc/definition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/import-existing-vpc/observed.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/import-existing-vpc/provider-ec2.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/import-existing-vpc/render.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/import-existing-vpc/xr.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/single-purpose/render.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/single-purpose/xr.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/usages-extra/composition.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/usages-extra/extraResources.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/usages-extra/observedResources.yaml +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/usages-extra/render.sh +0 -0
- {crossplane_function_pythonic-0.1.4 → crossplane_function_pythonic-0.1.5}/examples/usages-extra/xr.yaml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: crossplane-function-pythonic
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.5
|
|
4
4
|
Summary: A Python centric Crossplane Function
|
|
5
5
|
Project-URL: Documentation, https://github.com/fortra/function-pythonic#readme
|
|
6
6
|
Project-URL: Issues, https://github.com/fortra/function-pythonic/issues
|
|
@@ -10,16 +10,16 @@ License-Expression: Apache-2.0
|
|
|
10
10
|
License-File: LICENSE
|
|
11
11
|
Classifier: Development Status :: 4 - Beta
|
|
12
12
|
Classifier: Programming Language :: Python
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
14
13
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
14
|
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
-
|
|
17
|
-
Requires-
|
|
18
|
-
Requires-Dist:
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
16
|
+
Requires-Python: <3.15,>=3.12
|
|
17
|
+
Requires-Dist: crossplane-function-sdk-python==0.10.0
|
|
18
|
+
Requires-Dist: pyyaml==6.0.3
|
|
19
19
|
Provides-Extra: packages
|
|
20
|
-
Requires-Dist: kopf==1.
|
|
20
|
+
Requires-Dist: kopf==1.39.0; extra == 'packages'
|
|
21
21
|
Provides-Extra: pip-install
|
|
22
|
-
Requires-Dist: pip==25.
|
|
22
|
+
Requires-Dist: pip==25.3; extra == 'pip-install'
|
|
23
23
|
Description-Content-Type: text/markdown
|
|
24
24
|
|
|
25
25
|
# function-pythonic
|
|
@@ -81,7 +81,7 @@ kind: Function
|
|
|
81
81
|
metadata:
|
|
82
82
|
name: function-pythonic
|
|
83
83
|
spec:
|
|
84
|
-
package:
|
|
84
|
+
package: xpkg.upbound.io/crossplane-contrib/function-pythonic:v0.1.5
|
|
85
85
|
```
|
|
86
86
|
## Composed Resource Dependencies
|
|
87
87
|
|
|
@@ -409,7 +409,7 @@ metadata:
|
|
|
409
409
|
annotations:
|
|
410
410
|
render.crossplane.io/runtime: Development
|
|
411
411
|
spec:
|
|
412
|
-
package:
|
|
412
|
+
package: xpkg.upbound.io/crossplane-contrib/function-pythonic:v0.1.5
|
|
413
413
|
```
|
|
414
414
|
In one terminal session, run function-pythonic:
|
|
415
415
|
```shell
|
|
@@ -511,7 +511,7 @@ kind: Function
|
|
|
511
511
|
metadata:
|
|
512
512
|
name: function-pythonic
|
|
513
513
|
spec:
|
|
514
|
-
package:
|
|
514
|
+
package: xpkg.upbound.io/crossplane-contrib/function-pythonic:v0.1.5
|
|
515
515
|
runtimeConfigRef:
|
|
516
516
|
name: function-pythonic
|
|
517
517
|
---
|
|
@@ -57,7 +57,7 @@ kind: Function
|
|
|
57
57
|
metadata:
|
|
58
58
|
name: function-pythonic
|
|
59
59
|
spec:
|
|
60
|
-
package:
|
|
60
|
+
package: xpkg.upbound.io/crossplane-contrib/function-pythonic:v0.1.5
|
|
61
61
|
```
|
|
62
62
|
## Composed Resource Dependencies
|
|
63
63
|
|
|
@@ -385,7 +385,7 @@ metadata:
|
|
|
385
385
|
annotations:
|
|
386
386
|
render.crossplane.io/runtime: Development
|
|
387
387
|
spec:
|
|
388
|
-
package:
|
|
388
|
+
package: xpkg.upbound.io/crossplane-contrib/function-pythonic:v0.1.5
|
|
389
389
|
```
|
|
390
390
|
In one terminal session, run function-pythonic:
|
|
391
391
|
```shell
|
|
@@ -487,7 +487,7 @@ kind: Function
|
|
|
487
487
|
metadata:
|
|
488
488
|
name: function-pythonic
|
|
489
489
|
spec:
|
|
490
|
-
package:
|
|
490
|
+
package: xpkg.upbound.io/crossplane-contrib/function-pythonic:v0.1.5
|
|
491
491
|
runtimeConfigRef:
|
|
492
492
|
name: function-pythonic
|
|
493
493
|
---
|
|
@@ -449,6 +449,32 @@ class Conditions:
|
|
|
449
449
|
def __getitem__(self, type):
|
|
450
450
|
return Condition(self, type)
|
|
451
451
|
|
|
452
|
+
def __bool__(self):
|
|
453
|
+
if self._response is not None:
|
|
454
|
+
if self._response.conditions:
|
|
455
|
+
return True
|
|
456
|
+
if self._observed.resource.status.conditions:
|
|
457
|
+
return True
|
|
458
|
+
return False
|
|
459
|
+
|
|
460
|
+
def __len__(self):
|
|
461
|
+
return len(self._types())
|
|
462
|
+
|
|
463
|
+
def __iter__(self):
|
|
464
|
+
for type in self._types():
|
|
465
|
+
yield self[type]
|
|
466
|
+
|
|
467
|
+
def _types(self):
|
|
468
|
+
types = set()
|
|
469
|
+
if self._response is not None:
|
|
470
|
+
for condition in self._response.conditions:
|
|
471
|
+
if condition.type:
|
|
472
|
+
types.add(str(condition.type))
|
|
473
|
+
for condition in self._observed.resource.status.conditions:
|
|
474
|
+
if condition.type:
|
|
475
|
+
types.add(str(condition.type))
|
|
476
|
+
return sorted(types)
|
|
477
|
+
|
|
452
478
|
|
|
453
479
|
class Condition(protobuf.ProtobufValue):
|
|
454
480
|
def __init__(self, conditions, type):
|
|
@@ -24,10 +24,14 @@ class FunctionRunner(grpcv1.FunctionRunnerService):
|
|
|
24
24
|
self.clazzes = {}
|
|
25
25
|
|
|
26
26
|
def invalidate_module(self, module):
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
ix = len(module)
|
|
28
|
+
while ix > 0:
|
|
29
|
+
module = module[:ix]
|
|
30
|
+
if module in sys.modules:
|
|
31
|
+
del sys.modules[module]
|
|
32
|
+
ix = module.rfind('.')
|
|
30
33
|
importlib.invalidate_caches()
|
|
34
|
+
self.clazzes.clear()
|
|
31
35
|
|
|
32
36
|
async def RunFunction(
|
|
33
37
|
self, request: fnv1.RunFunctionRequest, _: grpc.aio.ServicerContext
|
|
@@ -81,7 +81,7 @@ class Message:
|
|
|
81
81
|
value = getattr(self._message, key)
|
|
82
82
|
if value is _Unknown and field.has_default_value:
|
|
83
83
|
value = field.default_value
|
|
84
|
-
if field.
|
|
84
|
+
if field.is_repeated:
|
|
85
85
|
if field.type == field.TYPE_MESSAGE and field.message_type.GetOptions().map_entry:
|
|
86
86
|
value = MapMessage(self, key, field.message_type.fields_by_name['value'], value, self._readOnly)
|
|
87
87
|
else:
|
|
@@ -3,7 +3,7 @@ kind: Function
|
|
|
3
3
|
metadata:
|
|
4
4
|
name: function-pythonic
|
|
5
5
|
spec:
|
|
6
|
-
package:
|
|
6
|
+
package: xpkg.upbound.io/crossplane-contrib/function-pythonic:v0.1.5
|
|
7
7
|
runtimeConfigRef:
|
|
8
8
|
apiVersion: pkg.crossplane.io/v1beta1
|
|
9
9
|
kind: DeploymentRuntimeConfig
|
|
@@ -15,7 +15,7 @@ metadata:
|
|
|
15
15
|
# This tells crossplane beta render to connect to the function locally.
|
|
16
16
|
render.crossplane.io/runtime: Development
|
|
17
17
|
spec:
|
|
18
|
-
package:
|
|
18
|
+
package: xpkg.upbound.io/crossplane-contrib/function-pythonic:v0.1.5
|
|
19
19
|
---
|
|
20
20
|
apiVersion: pkg.crossplane.io/v1beta1
|
|
21
21
|
kind: Function
|
|
@@ -15,7 +15,7 @@ metadata:
|
|
|
15
15
|
# This tells crossplane beta render to connect to the function locally.
|
|
16
16
|
render.crossplane.io/runtime: Development
|
|
17
17
|
spec:
|
|
18
|
-
package:
|
|
18
|
+
package: xpkg.upbound.io/crossplane-contrib/function-pythonic:v0.1.5
|
|
19
19
|
---
|
|
20
20
|
apiVersion: pkg.crossplane.io/v1beta1
|
|
21
21
|
kind: Function
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
apiVersion: pkg.crossplane.io/v1beta1
|
|
2
|
+
kind: Function
|
|
3
|
+
metadata:
|
|
4
|
+
name: function-pythonic
|
|
5
|
+
annotations:
|
|
6
|
+
# This tells crossplane beta render to connect to the function locally.
|
|
7
|
+
render.crossplane.io/runtime: Development
|
|
8
|
+
spec:
|
|
9
|
+
package: xpkg.upbound.io/crossplane-contrib/function-pythonic:v0.1.5
|
crossplane_function_pythonic-0.1.5/examples/function-go-templating/functions/include/functions.yaml
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
apiVersion: pkg.crossplane.io/v1beta1
|
|
2
|
+
kind: Function
|
|
3
|
+
metadata:
|
|
4
|
+
name: function-pythonic
|
|
5
|
+
annotations:
|
|
6
|
+
# This tells crossplane beta render to connect to the function locally.
|
|
7
|
+
render.crossplane.io/runtime: Development
|
|
8
|
+
spec:
|
|
9
|
+
package: xpkg.upbound.io/crossplane-contrib/function-pythonic:v0.1.5
|
crossplane_function_pythonic-0.1.5/examples/function-go-templating/functions/toYaml/functions.yaml
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
apiVersion: pkg.crossplane.io/v1beta1
|
|
2
|
+
kind: Function
|
|
3
|
+
metadata:
|
|
4
|
+
name: function-pythonic
|
|
5
|
+
annotations:
|
|
6
|
+
# This tells crossplane beta render to connect to the function locally.
|
|
7
|
+
render.crossplane.io/runtime: Development
|
|
8
|
+
spec:
|
|
9
|
+
package: xpkg.upbound.io/crossplane-contrib/function-pythonic:v0.1.5
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
apiVersion: pkg.crossplane.io/v1beta1
|
|
2
|
+
kind: Function
|
|
3
|
+
metadata:
|
|
4
|
+
name: function-pythonic
|
|
5
|
+
annotations:
|
|
6
|
+
# This tells crossplane beta render to connect to the function locally.
|
|
7
|
+
render.crossplane.io/runtime: Development
|
|
8
|
+
spec:
|
|
9
|
+
package: xpkg.upbound.io/crossplane-contrib/function-pythonic:v0.1.5
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
apiVersion: pkg.crossplane.io/v1beta1
|
|
2
|
+
kind: Function
|
|
3
|
+
metadata:
|
|
4
|
+
name: function-pythonic
|
|
5
|
+
annotations:
|
|
6
|
+
# This tells crossplane beta render to connect to the function locally.
|
|
7
|
+
render.crossplane.io/runtime: Development
|
|
8
|
+
spec:
|
|
9
|
+
package: xpkg.upbound.io/crossplane-contrib/function-pythonic:v0.1.5
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
apiVersion: pkg.crossplane.io/v1beta1
|
|
2
|
+
kind: Function
|
|
3
|
+
metadata:
|
|
4
|
+
name: function-pythonic
|
|
5
|
+
annotations:
|
|
6
|
+
# This tells crossplane beta render to connect to the function locally.
|
|
7
|
+
render.crossplane.io/runtime: Development
|
|
8
|
+
spec:
|
|
9
|
+
package: xpkg.upbound.io/crossplane-contrib/function-pythonic:v0.1.5
|
|
@@ -2,28 +2,28 @@
|
|
|
2
2
|
name = "crossplane-function-pythonic"
|
|
3
3
|
description = 'A Python centric Crossplane Function'
|
|
4
4
|
readme = "README.md"
|
|
5
|
-
requires-python = ">=3.
|
|
5
|
+
requires-python = ">=3.12,<3.15"
|
|
6
6
|
license = "Apache-2.0"
|
|
7
7
|
keywords = []
|
|
8
8
|
authors = [{ name = "Patrick J McNerthney", email = "pat@mcnerthney.com" }]
|
|
9
9
|
classifiers = [
|
|
10
10
|
"Development Status :: 4 - Beta",
|
|
11
11
|
"Programming Language :: Python",
|
|
12
|
-
"Programming Language :: Python :: 3.11",
|
|
13
12
|
"Programming Language :: Python :: 3.12",
|
|
14
13
|
"Programming Language :: Python :: 3.13",
|
|
14
|
+
"Programming Language :: Python :: 3.14",
|
|
15
15
|
]
|
|
16
16
|
|
|
17
17
|
dynamic = ["version"]
|
|
18
18
|
|
|
19
19
|
dependencies = [
|
|
20
|
-
"crossplane-function-sdk-python==0.
|
|
21
|
-
"pyyaml==6.0.
|
|
20
|
+
"crossplane-function-sdk-python==0.10.0",
|
|
21
|
+
"pyyaml==6.0.3",
|
|
22
22
|
]
|
|
23
23
|
|
|
24
24
|
[project.optional-dependencies]
|
|
25
|
-
packages = ["kopf==1.
|
|
26
|
-
pip-install = ["pip==25.
|
|
25
|
+
packages = ["kopf==1.39.0"]
|
|
26
|
+
pip-install = ["pip==25.3"]
|
|
27
27
|
|
|
28
28
|
[project.urls]
|
|
29
29
|
Documentation = "https://github.com/fortra/function-pythonic#readme"
|
|
@@ -75,7 +75,7 @@ check = "ruff check crossplane tests && ruff format --diff crossplane tests"
|
|
|
75
75
|
type = "virtual"
|
|
76
76
|
path = ".venv-test"
|
|
77
77
|
dependencies = [
|
|
78
|
-
"grpcio-tools==1.
|
|
78
|
+
"grpcio-tools==1.76.0",
|
|
79
79
|
"pytest==8.4.1",
|
|
80
80
|
"pytest-asyncio==1.1.0",
|
|
81
81
|
"pytest-cov==6.2.1",
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
apiVersion: pkg.crossplane.io/v1beta1
|
|
2
|
-
kind: Function
|
|
3
|
-
metadata:
|
|
4
|
-
name: function-pythonic
|
|
5
|
-
annotations:
|
|
6
|
-
# This tells crossplane beta render to connect to the function locally.
|
|
7
|
-
render.crossplane.io/runtime: Development
|
|
8
|
-
spec:
|
|
9
|
-
package: ghcr.io/fortra/function-pythonic:v0.1.3
|
crossplane_function_pythonic-0.1.4/examples/function-go-templating/functions/include/functions.yaml
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
apiVersion: pkg.crossplane.io/v1beta1
|
|
2
|
-
kind: Function
|
|
3
|
-
metadata:
|
|
4
|
-
name: function-pythonic
|
|
5
|
-
annotations:
|
|
6
|
-
# This tells crossplane beta render to connect to the function locally.
|
|
7
|
-
render.crossplane.io/runtime: Development
|
|
8
|
-
spec:
|
|
9
|
-
package: ghcr.io/fortra/function-pythonic:v0.1.3
|
crossplane_function_pythonic-0.1.4/examples/function-go-templating/functions/toYaml/functions.yaml
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
apiVersion: pkg.crossplane.io/v1beta1
|
|
2
|
-
kind: Function
|
|
3
|
-
metadata:
|
|
4
|
-
name: function-pythonic
|
|
5
|
-
annotations:
|
|
6
|
-
# This tells crossplane beta render to connect to the function locally.
|
|
7
|
-
render.crossplane.io/runtime: Development
|
|
8
|
-
spec:
|
|
9
|
-
package: ghcr.io/fortra/function-pythonic:v0.1.3
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
apiVersion: pkg.crossplane.io/v1beta1
|
|
2
|
-
kind: Function
|
|
3
|
-
metadata:
|
|
4
|
-
name: function-pythonic
|
|
5
|
-
annotations:
|
|
6
|
-
# This tells crossplane beta render to connect to the function locally.
|
|
7
|
-
render.crossplane.io/runtime: Development
|
|
8
|
-
spec:
|
|
9
|
-
package: ghcr.io/fortra/function-pythonic:v0.1.3
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
apiVersion: pkg.crossplane.io/v1beta1
|
|
2
|
-
kind: Function
|
|
3
|
-
metadata:
|
|
4
|
-
name: function-pythonic
|
|
5
|
-
annotations:
|
|
6
|
-
# This tells crossplane beta render to connect to the function locally.
|
|
7
|
-
render.crossplane.io/runtime: Development
|
|
8
|
-
spec:
|
|
9
|
-
package: ghcr.io/fortra/function-pythonic:v0.1.3
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
apiVersion: pkg.crossplane.io/v1beta1
|
|
2
|
-
kind: Function
|
|
3
|
-
metadata:
|
|
4
|
-
name: function-pythonic
|
|
5
|
-
annotations:
|
|
6
|
-
# This tells crossplane beta render to connect to the function locally.
|
|
7
|
-
render.crossplane.io/runtime: Development
|
|
8
|
-
spec:
|
|
9
|
-
package: ghcr.io/fortra/function-pythonic:v0.1.3
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|