ZnTrack’s documentation!#

ZnTrack logo

ZnTrack is zincware’s first developer package and in fact, the first released on PyPi, so we are glad you are here. ZnTrack is built to help you write code that can easily be shared and reproduced.

Example#

Here are two examples of how ZnTrack Nodes can look like. ZnTrack supports function and class based Nodes, as well as the combination of both. For more information, refer to the Getting started section.

Class based Node#

import zntrack

class AddNumbers(zntrack.Node):
   number1 = zntrack.zn.params()
   number2 = zntrack.zn.params()

   result = zntrack.zn.outs()

   def run(self):
      self.result = self.number1 + self.number2

with zntrack.Project() as project:
   node = AddNumbers(number1=10, number2=20)

project.run()

Function based Node#

import zntrack

@zntrack.nodify(outs="number.txt", params={"number1": 10, "number2": 20})
def add_numbers(cfg: zntrack.NodeConfig):
   with open(cfg.outs) as file:
         file.write(str(cfg.params.number1 + cfg.params.number2))

with zntrack.Project() as project:
   node = add_numbers()

project.run()