See code.
It should be refactored:
dailyWhen = datetime(year = when.year, month = when.month, day = when.day)
monthlyWhen = dailyWhen.replace(day = 1)
yearlyWhen = monthlyWhen.replace(month = 1)
optionId = unicode(optionKey.id()) + u'-'
yearlyName = optionId + unicode(when.year)
monthlyName = yearlyName + '-' + unicode(when.month)
dailyName = monthlyName + '-' + unicode(when.day)
yearlyName = u'rocznie-' + yearlyName
monthlyName = u'miesięcznie-' + monthlyName
dailyName = u'dzienie-' + dailyName
shardNumberString = unicode(shardNumber)
yearlyShardName = yearlyName + '-' + shardNumberString
monthlyShardName = monthlyName + '-' + shardNumberString
dailyShardName = dailyName + '-' + shardNumberString
Refactoring generates almost correctly function (apart that order of parameters is random):
def xxx(optionKey, when, shardNumber):
dailyWhen = datetime(year=when.year, month=when.month, day=when.day)
monthlyWhen = dailyWhen.replace(day=1)
yearlyWhen = monthlyWhen.replace(month=1)
optionId = unicode(optionKey.id()) + u'-'
yearlyName = optionId + unicode(when.year)
monthlyName = yearlyName + '-' + unicode(when.month)
dailyName = monthlyName + '-' + unicode(when.day)
yearlyName = u'rocznie-' + yearlyName
monthlyName = u'miesięcznie-' + monthlyName
dailyName = u'dzienie-' + dailyName
shardNumberString = unicode(shardNumber)
yearlyShardName = yearlyName + '-' + shardNumberString
monthlyShardName = monthlyName + '-' + shardNumberString
dailyShardName = dailyName + '-' + shardNumberString
return dailyName, yearlyName, dailyWhen, yearlyWhen, monthlyWhen, monthlyShardName, monthlyName, yearlyShardName, dailyShardName
And here replace old code with something wrong ('=' should be ',' since list of arguments is returned):
dailyName = yearlyName = dailyWhen = yearlyWhen = monthlyWhen = monthlyShardName = monthlyName = yearlyShardName = dailyShardName = xxx(optionKey, when, shardNumber)