crossplane-function-pythonic 0.0.7b0__py3-none-any.whl → 0.0.7.post3__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: crossplane-function-pythonic
3
- Version: 0.0.7b0
3
+ Version: 0.0.7.post3
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
@@ -80,7 +80,6 @@ metadata:
80
80
  spec:
81
81
  package: ghcr.io/fortra/function-pythonic:v0.0.7
82
82
  ```
83
-
84
83
  ## Composed Resource Dependencies
85
84
 
86
85
  function-pythonic automatically handles dependencies between composed resources.
@@ -322,6 +321,85 @@ spec:
322
321
  self.status.composite = 'Hello, World!'
323
322
  ```
324
323
 
324
+ ## Quick Start Development
325
+
326
+ The following example demonstrates how to locally render function-python
327
+ compositions. First, install the `crossplane-function-pythonic` python
328
+ package into the python environment:
329
+ ```shell
330
+ $ pip install crossplane-function-pythonic
331
+ ```
332
+ Then create the following files:
333
+ #### xr.yaml
334
+ ```yaml
335
+ apiVersion: pythonic.fortra.com/v1alpha1
336
+ kind: Hello
337
+ metadata:
338
+ name: world
339
+ spec:
340
+ who: World
341
+ ```
342
+ #### composition.yaml
343
+ ```yaml
344
+ apiVersion: apiextensions.crossplane.io/v1
345
+ kind: Composition
346
+ metadata:
347
+ name: hellos.pythonic.fortra.com
348
+ spec:
349
+ compositeTypeRef:
350
+ apiVersion: pythonic.fortra.com/v1alpha1
351
+ kind: Hello
352
+ mode: Pipeline
353
+ pipeline:
354
+ - step: pythonic
355
+ functionRef:
356
+ name: function-pythonic
357
+ input:
358
+ apiVersion: pythonic.fn.fortra.com/v1alpha1
359
+ kind: Composite
360
+ composite: |
361
+ class Composite(BaseComposite):
362
+ def compose(self):
363
+ self.status.greeting = f"Hello, {self.spec.who}!"
364
+ ```
365
+ #### functions.yaml
366
+ ```yaml
367
+ apiVersion: pkg.crossplane.io/v1beta1
368
+ kind: Function
369
+ metadata:
370
+ name: function-pythonic
371
+ annotations:
372
+ render.crossplane.io/runtime: Development
373
+ spec:
374
+ package: ghcr.io/fortra/function-pythonic:v0.0.7
375
+ ```
376
+ In one terminal session, run function-pythonic:
377
+ ```shell
378
+ $ function-pythonic --insecure --debug
379
+ [2025-08-21 15:32:37.966] grpc._cython.cygrpc [DEBUG ] Using AsyncIOEngine.POLLER as I/O engine
380
+ ```
381
+ In other terminal session, render the Composite:
382
+ ```shell
383
+ $ crossplane render xr.yaml composition.yaml functions.yaml
384
+ ---
385
+ apiVersion: pythonic.fortra.com/v1alpha1
386
+ kind: Hello
387
+ metadata:
388
+ name: world
389
+ status:
390
+ conditions:
391
+ - lastTransitionTime: "2024-01-01T00:00:00Z"
392
+ reason: Available
393
+ status: "True"
394
+ type: Ready
395
+ - lastTransitionTime: "2024-01-01T00:00:00Z"
396
+ message: All resources are composed
397
+ reason: AllComposed
398
+ status: "True"
399
+ type: ResourcesComposed
400
+ greeting: Hello, World!
401
+ ```
402
+
325
403
  ## ConfigMap Packages
326
404
 
327
405
  ConfigMap based python packages are enable using the `--packages` and
@@ -0,0 +1,11 @@
1
+ crossplane/pythonic/__init__.py,sha256=9Oz3mvFO-8GXb75iEfybSHgVr3p8INdqA201tCusuSo,408
2
+ crossplane/pythonic/composite.py,sha256=CK_3ejKZ29zWnAZ94r5ycNduf_cmDeH8-AL5QcJL1Mo,19937
3
+ crossplane/pythonic/function.py,sha256=4kfyR0U6UaAQAhVbFrhFPwOOsHjeNEktuTuswLrm0G4,10535
4
+ crossplane/pythonic/main.py,sha256=8nbPyTzRg2-Vrjp0MKxdp6Fc5uiFjLfIHXVmbG_dGIw,6399
5
+ crossplane/pythonic/packages.py,sha256=5GyUmd6BnDyDnT9Y0-yCW6z8ncuqas28N5slRhJYYpA,6137
6
+ crossplane/pythonic/protobuf.py,sha256=9wvKMXavrHxD1n1TufFQs_6If9m4gRZA36p_pmrlU7I,34633
7
+ crossplane_function_pythonic-0.0.7.post3.dist-info/METADATA,sha256=aTjHx145GiKZHTr0Tmma3PkzkWKLUJYdF1eDN3Uee04,22618
8
+ crossplane_function_pythonic-0.0.7.post3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
9
+ crossplane_function_pythonic-0.0.7.post3.dist-info/entry_points.txt,sha256=jJ4baywFDviB9WyAhyhNYF2VOCb6XtbRSjKf7bnBwhg,68
10
+ crossplane_function_pythonic-0.0.7.post3.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
11
+ crossplane_function_pythonic-0.0.7.post3.dist-info/RECORD,,
@@ -1,11 +0,0 @@
1
- crossplane/pythonic/__init__.py,sha256=9Oz3mvFO-8GXb75iEfybSHgVr3p8INdqA201tCusuSo,408
2
- crossplane/pythonic/composite.py,sha256=CK_3ejKZ29zWnAZ94r5ycNduf_cmDeH8-AL5QcJL1Mo,19937
3
- crossplane/pythonic/function.py,sha256=4kfyR0U6UaAQAhVbFrhFPwOOsHjeNEktuTuswLrm0G4,10535
4
- crossplane/pythonic/main.py,sha256=8nbPyTzRg2-Vrjp0MKxdp6Fc5uiFjLfIHXVmbG_dGIw,6399
5
- crossplane/pythonic/packages.py,sha256=5GyUmd6BnDyDnT9Y0-yCW6z8ncuqas28N5slRhJYYpA,6137
6
- crossplane/pythonic/protobuf.py,sha256=9wvKMXavrHxD1n1TufFQs_6If9m4gRZA36p_pmrlU7I,34633
7
- crossplane_function_pythonic-0.0.7b0.dist-info/METADATA,sha256=QLTM6zFnwP65DCxl7tEtLh2C2CBg84b9PC-CIRY3ccU,20689
8
- crossplane_function_pythonic-0.0.7b0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
9
- crossplane_function_pythonic-0.0.7b0.dist-info/entry_points.txt,sha256=jJ4baywFDviB9WyAhyhNYF2VOCb6XtbRSjKf7bnBwhg,68
10
- crossplane_function_pythonic-0.0.7b0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
11
- crossplane_function_pythonic-0.0.7b0.dist-info/RECORD,,