code: def evaluate(self, instance, step, extra):
          
          defaults = dict(self.defaults)
          if extra:
              defaults.update(extra)
  
          return self.generate(step, defaults)
docs: Evaluate the current definition and fill its attributes.
  
          Uses attributes definition in the following order:
          - values defined when defining the ParameteredAttribute
          - additional values defined when instantiating the containing factory
  
          Args:
              instance (builder.Resolver): The object holding currently computed
                  attributes
              step: a factory.builder.BuildStep
              extra (dict): additional, call-time added kwargs
                  for the step.