I have a function that I use to retrieve daily data from a home-brew database. Its calling sequence is;
def TempsOneDay( year, month, date ): After using it (and its friends) for a few years, I've come to realize that there are times where it would be advantageous to invoke it with a datetime.date as its single argument. As far as I can tell, there are three ways for me to proceed: 1. Write a similar function that takes a single datetime.date as its argument. 2. Rewrite the existing function so that it takes a single argument, which can be either a tuple of (year,month,date) or a datetime.date argument. 3. Rewrite the existing function so that its first argument can be either an int (for year) or a datetime.date. The existing month and date arguments would be optional, with default=None. But, if the first argument is an int, and either of month or date is None, an error would be raised. The first would be the simplest. However, it is obviously WET rather than DRY. The second isn't too bad, but a change like this would require that I find all places that the function is currently used and insert a pair of parentheses. Touching this much code is risky, as well as being a bunch of work. (Admittedly, I'd only do it once.) The third is really klunky, but wouldn't need to touch anything besides this function. What are others' thoughts? Which of the approaches above looks least undesirable (and why)? Can anybody see a fourth approach? -- Michael F. Stemper This post contains greater than 95% post-consumer bytes by weight. -- https://mail.python.org/mailman/listinfo/python-list