A call-effect-commit schema for safe data management in Python
Project description
CEfC
A call-effect-commit schema for safe data management Python.
This a metaprogramming framework that enables the safe execution of Python code by tracking data modifications and commiting to them only after functions complete their runs without errors. You can create fast-failing services that can rerun with new inputs from the same uncorrupted state.
The framework also treats exceptions-as-values, meaning that you can check the validity of return arguments if you want, otherwise they are cascaded throughout service calls.
:zap: Quickstart
Install CEfC per pip install cefc. Then create and run the
following code snippet:
from cefc import service
@service
def func(a: list, b: int):
a[0] = 1
a[0] /= b
@service
def outer_func(a: list, b:int):
return func(a, b)
a = [1,2,3]
outer_func(a, b=0)
print(a)
You will see the following output, where a is unaffected by would-be
modifications and there is a final warning about not having handled the
division-by-zero error at any point.
:hammer_and_wrench: Safe types
This is a list of types whose safety is (planned to be) guaranteed when presented as service arguments. Note that the safety of global state is not guaranteed, but globals can be passed as preset arguments too.
- list
- dict
- numpy array or GPU tensor
- object
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cefc-0.1.0.tar.gz.
File metadata
- Download URL: cefc-0.1.0.tar.gz
- Upload date:
- Size: 2.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cf9d3f4e2fb82195efc7c2e90fd618503511da197f6df67a6459f5b570dfc45b
|
|
| MD5 |
a8faef0abc6ad6801f93a484c7a1aabc
|
|
| BLAKE2b-256 |
9a5f541f4972a7c6f6f4784335f4d67eded8444e60b0f2579ce52b89e3eee3e2
|
File details
Details for the file cefc-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cefc-0.1.0-py3-none-any.whl
- Upload date:
- Size: 2.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
099a308052dbbbdc3cafa88dd3f3e9e582fd6b3a7a1f9c005dfb85f14fd1ba0f
|
|
| MD5 |
82f4d52e35d82ebbedd1d21473798e02
|
|
| BLAKE2b-256 |
9456c932948cde5bfc12fef1fe34cf56e39a4a3fa8d3d03d240eac0e4e51d79a
|