This PR adds a decorator that can be used to deprecate any function, and it is used to deprecate str() in podcast, so it closes #112. It not_supported_by_itunes_warning.py could also be adapted to utilize this decorator.
I'll be honest and say that I am not sure that this is the simplest, easiest and most stable solution for a function deprecation, but it is at least cleaner than having to add a warning to the start of all deprecated functions.
Neither #93, #96 nor #97 would be able to use this, so there might be that a more uniform approach would be preferred.
With regards to decorator.py or util.py as the location for the decorator, I am not opinionated. It was only easier for me to have a smaller file to understand the system.
I extracted the deprecation_warning to its own function, now they certainly should be moved away from decorators.py, but I'll wait to see if the change as a whole is in accordance with your preferences first.
This PR adds a decorator that can be used to deprecate any function, and it is used to deprecate str() in podcast, so it closes #112. It not_supported_by_itunes_warning.py could also be adapted to utilize this decorator.
I'll be honest and say that I am not sure that this is the simplest, easiest and most stable solution for a function deprecation, but it is at least cleaner than having to add a warning to the start of all deprecated functions.
Neither #93, #96 nor #97 would be able to use this, so there might be that a more uniform approach would be preferred.
With regards to decorator.py or util.py as the location for the decorator, I am not opinionated. It was only easier for me to have a smaller file to understand the system.