code: def set_input(self, period, array):
          
  
          period = periods.period(period)
          if period.unit == ETERNITY and self.variable.definition_period != ETERNITY:
              error_message = os.linesep.join([
                  'Unable to set a value for variable {0} for ETERNITY.',
                  '{0} is only defined for {1}s. Please adapt your input.',
                  ]).format(
                      self.variable.name,
                      self.variable.definition_period
                  )
              raise PeriodMismatchError(
                  self.variable.name,
                  period,
                  self.variable.definition_period,
                  error_message
                  )
          if self.variable.is_neutralized:
              warning_message = "You cannot set a value for the variable {}, as it has been neutralized. The value you provided ({}) will be ignored.".format(self.variable.name, array)
              return warnings.warn(
                  warning_message,
                  Warning
                  )
          if self.variable.value_type in (float, int) and isinstance(array, str):
              array = eval_expression(array)
          if self.variable.set_input:
              return self.variable.set_input(self, period, array)
          return self._set(period, array)
docs: Set a variable's value (``array``) for a given period (``period``)
  
              :param array: the input value for the variable
              :param period: the period at which the value is setted
  
              Example :
  
              >>> holder.set_input([12, 14], '2018-04')
              >>> holder.get_array('2018-04')
              >>> [12, 14]
  
  
              If a ``set_input`` property has been set for the variable, this method may accept inputs for periods not matching the ``definition_period`` of the variable. To read more about this, check the `documentation <https://openfisca.org/doc/coding-the-legislation/35_periods.html#set-input-automatically-process-variable-inputs-defined-for-periods-not-matching-the-definition-period>`_.