13.11.17 14:29, Antoine Pitrou пише: > On Mon, 13 Nov 2017 22:37:46 +1100 > Chris Angelico <rosuav at gmail.com> wrote: >> On Mon, Nov 13, 2017 at 9:46 PM, Antoine Pitrou <solipsis at pitrou.net> wrote: >>> On Sun, 12 Nov 2017 19:48:28 -0800 >>> Nathaniel Smith <njs at pobox.com> wrote: >>>> On Sun, Nov 12, 2017 at 1:24 AM, Nick Coghlan <ncoghlan at gmail.com> wrote: >>>>> This change will lead to DeprecationWarning being displayed by default for: >>>>> >>>>> * code executed directly at the interactive prompt >>>>> * code executed directly as part of a single-file script >>>> >>>> Technically it's orthogonal, but if you're trying to get better >>>> warnings in the REPL, then you might also want to look at: >>>> >>>> https://bugs.python.org/issue1539925 >>>> https://github.com/ipython/ipython/issues/6611 >>> >>> Depends what you call "better". Personally, I don't want to see >>> warnings each and every time I use a deprecated or questionable >>> construct or API from the REPL. >> >> Isn't that the entire *point* of warnings? When you're working at the >> REPL, you're the one in control of which APIs you use, so you should >> be the one to know about deprecations. > > If I see a warning once every REPL session, I know about the deprecation > already, thank you. I don't need to be taken by the hand like a little > child. Besides, the code I write in the REPL is not meant for durable > use. Hmm, now I see that the simple Nathaniel's solution is not completely correct. If the warning action is 'module', it should be emitted only once if used directly in the REPL, because '__main__' is the same module. But if you use functions foo() and bar(), and both emit the same warning, you should get a warning from every entered command, because after the first warning you know only about the first function.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4