{ "info": { "author": "Bruno Lange", "author_email": "blangeram@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# artifax\n\nartifax is a Python package to evaluate nodes in a computation graph where\nthe dependencies associated with each node are extracted directly from their\nfunction signatures.\n\nA computation graph can be entirely encoded in a standard python dictionary.\nEach key represents a node or an artifact, that will eventually be computed\nonce all of its dependencies have been calculated. The value associated with\neach key can be either a constant - a string, a number or an instance of a class,\nor a function. In the latter case, the function arguments map to other nodes\nin the computation graph to establish a direct dependency between the nodes.\n\nFor example, the following dictionary:\n\n```python\nartifacts = {\n 'A': 42,\n 'B': 7,\n 'C': lambda: 10,\n 'AB': lambda A, B: A*B,\n 'C-B': lambda B, C: C() - B,\n 'greeting': 'Hello',\n 'message': lambda greeting, A: '{} World! The answer is {}.'.format(greeting, A)\n}\n```\nyields the following computation graph:\n\n\n