<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html><body style='font-size: 10pt; font-family: Verdana,Geneva,sans-serif'>
<p>On 2015-09-30 01:08, Dougal Matthews wrote:</p>
<blockquote type="cite" style="padding-left:5px; border-left:#1010ff 2px solid; margin-left:5px">
<div dir="ltr">Hi,<br />
<div><br />What is the standard practice for defining public API's for OpenStack<br />libraries? As I am working on refactoring and updating tripleo-common I have<br />to grep through the projects I know that use it to make sure I don't break<br />anything.<br /><br />Personally I would choose to have a policy of "If it is documented, it is<br />public" because that is very clear and it still allows us to do internal<br />refactoring.<br /><br />Otherwise we could use __all__ to define what is public in each file, or<br />assume everything that doesn't start with an underscore is public.</div>
<div> </div>
</div>
</blockquote>
<p>The last is the accepted Python convention: https://docs.python.org/2/tutorial/classes.html#private-variables-and-class-local-references  and is in common use in other OpenStack libraries.  It also integrates properly with things like automatic api docs from sphinx.  I'd be -1 on pretty much any other approach.</p>
<div> </div>
</body></html>