On Mon, Apr 12, 2021 at 11:39 AM M.-A. Lemburg <m...@egenix.com> wrote:
> I don't think that trying to do this programmatically via some > kind of language construct is a good approach. > It's not the only approach, but I argue that it's useful. Two use cases: - IDE's that will nudge the developer towards importing the "right" objects. - Linters and runtime checkers that will issue warnings / errors and minimise the amount of human code auditing or reviewing. > The public API of a library is the one which is documented as > such. Right, except that in practice: 1) Many useful libraries are not documented or properly documented. 2) People don't read the docs (at least not always, and/or not in details). > That's really all there is to it. Documentation is written > explicitly by the author of a package and languages provides > a lot more nuances than using some programmatic mechanism. > > E.g. you may have situations where you have more than one level of > documented APIs, e.g. a public stable one and an experimental > one which is likely to change over time, or a high level one and > a low-level one, where more care has to be applied in using it. > Yes. This can be formalized by having more than one namespace for the Public API. > Or you have APIs which are deprecated but still public and you > know that the APIs will go away in a future version, so you should > probably not start using them in new code and plan for a refactoring > of existing code. > There are already conventions and tools for that, e.g. the @deprecated decorator (https://pypi.org/project/Deprecated/). S. -- Stefane Fermigier - http://fermigier.com/ - http://twitter.com/sfermigier - http://linkedin.com/in/sfermigier Founder & CEO, Abilian - Enterprise Social Software - http://www.abilian.com/ Chairman, National Council for Free & Open Source Software (CNLL) - http://cnll.fr/ Founder & Organiser, PyParis & PyData Paris - http://pyparis.org/ & http://pydata.fr/
_______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/YEELZYXKUGRQ5LWB6Y27BUXZFMSXOWTZ/ Code of Conduct: http://python.org/psf/codeofconduct/