Skip to content

Conversation

@pganssle
Copy link
Member

@pganssle pganssle commented Nov 12, 2017

Per my comments in pandas-dev/pandas#18141, I think that it is not particularly expensive to preserve some of the private interface, with an explicit deprecation warning.

The main question I have here is whether we should use DeprecationWarning, which is not visible by default in Python 2.7+, or if we should use something more visible, like our own custom warning class that is visible, or possibly make some sort of context manager that temporarily enables DeprecationWarning.

Kinda unfortunate that DeprecationWarning was disabled by default, since that encourages libraries to do shit like what I just described, but it is what it is.

@pganssle pganssle added this to the 2.7.0 milestone Nov 12, 2017
@jbrockmendel
Copy link
Contributor

Is FutureWarning a viable alternative?

@pganssle
Copy link
Member Author

@jbrockmendel FutureWarning is intended for when the semantics of something change. I think you'd use it in a case like Python 2 integer division behavior vs. Python 3 integer division behavior. Or presumably if we thought it mattered, we could raise a FutureWarning when two time zones of the same type compare equal but tz1 is not tz2, to say that semantically equal time zones of the same type will have a different semantic relationship to one another in the future. This PR deprecates an old (private) interface, so DeprecationWarning is more appropriate.

In any case, avoiding DeprecationWarning just so it's visible isn't much different from just defining a DeprecatedPrivateInterfaceWarning and raising that. The question is really whether we want to circumvent the default behavior of hiding deprecation warnings or not.

@pganssle pganssle merged commit 616eb6d into dateutil:master Nov 13, 2017
@pganssle pganssle mentioned this pull request Mar 11, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants