summaryrefslogtreecommitdiffhomepage
path: root/HACKING.rst
blob: 24d44763a37f0e7bbf13c759de6b40e920f58a41 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Python version and libraries
============================
* Python 2.6+
  As RHEL 6 adopted python 2.6, features only for 2.7+ should be avoided.

* standard library + widely used library
  Basically widely used == OpenStack adopted
  As usual there are exceptions. gevents. Or python binding library for other
  component.

Coding style guide
==================
* pep8
  As python is used, PEP8 is would be hopefully mandatory for
  http://www.python.org/dev/peps/pep-0008/

* pylint
  Although pylint is useful for finding bugs, but pylint score not very
  important for now because we're still at early development stage.

* Google python style guide is very helpful
  http://google-styleguide.googlecode.com/svn/trunk/pyguide.html

  Guidelines derived from Guido's Recommendations

  =============================   =================   ========
  Type                            Public              Internal
  =============================   =================   ========
  Packages                        lower_with_under
  Modules                         lower_with_under    _lower_with_under
  Classes                         CapWords            _CapWords
  Exceptions                      CapWords
  Functions                       lower_with_under()  _lower_with_under()
  Global/Class Constants          CAPS_WITH_UNDER     _CAPS_WITH_UNDER
  Global/Class Variables          lower_with_under    _lower_with_under
  Instance Variables              lower_with_under    _lower_with_under (protected) or __lower_with_under (private)
  Method Names                    lower_with_under()  _lower_with_under() (protected) or __lower_with_under() (private)
  Function/Method Parameters      lower_with_under
  Local Variables                 lower_with_under
  =============================   =================   ========

* OpenStack Nova style guide
  https://github.com/openstack/nova/blob/master/HACKING.rst

Reference
=========
* Python Essential Reference, 4th Edition [Amazon]
  * Paperback: 717 pages
  * Publisher: Addison-Wesley Professional; 4 edition (July 19, 2009)
  * Language: English
  * ISBN-10: 0672329786
  * ISBN-13: 978-0672329784

* The Python Standard Library by Example (Developer's Library)
  * Paperback: 1344 pages
  * Publisher: Addison-Wesley Professional; 1 edition (June 11, 2011)
  * Language: English
  * ISBN-10: 0321767349
  * ISBN-13: 978-0321767349