gin:
functions as config
Gin is a system for configuring python code that is still very much in early phases, but very powerful.
Notes
Sometimes you'd like a setting to be manditory. The files below reflect that.
config.gin
simulate.n_samples = 200
simulate.random_func = @random_triangle
random_triangle.minval = 0
random_triangle.maxval = 100
simulate.py
import gin
import random
@gin.configurable
def random_uniform(minval=0, maxval=1):
return random.uniform(minval, maxval)
@gin.configurable
def random_triangle(minval=0, maxval=1):
middle = (maxval - minval)/2
return random.triangular(minval, maxval, middle)
@gin.configurable
def simulate(random_func, n_samples):
return sum(random_func() for i in range(n_samples))
if __name__ == "__main__":
gin.parse_config_file('config.gin')
print(simulate())
Notice how simulate()
is able to run without any parameters
being passed to it.
Feedback? See an issue? Something unclear? Feel free to mention it here.
If you want to be kept up to date, consider signing up for the newsletter.