74 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
=====================================================
 | 
						|
Coding Style for the Py lib and friendly applications 
 | 
						|
=====================================================
 | 
						|
 | 
						|
.. contents::
 | 
						|
.. sectnum::
 | 
						|
 | 
						|
Honour PEP 8: Style Guide for Python Code
 | 
						|
----------------------------------------- 
 | 
						|
 | 
						|
First of all, if you haven't already read it, read the `PEP 8
 | 
						|
Style Guide for Python Code`_ which, if in doubt, serves as
 | 
						|
the default coding-style for the py lib. 
 | 
						|
 | 
						|
Documentation and Testing 
 | 
						|
-------------------------
 | 
						|
 | 
						|
- generally we want to drive and interweave coding of
 | 
						|
  documentation, tests and real code as much as possible. 
 | 
						|
  Without good documentation others may never know about
 | 
						|
  your latest and greatest feature. 
 | 
						|
 | 
						|
naming 
 | 
						|
------
 | 
						|
 | 
						|
- directories, modules and namespaces are always **lowercase**
 | 
						|
 | 
						|
- classes and especially Exceptions are most often **CamelCase**
 | 
						|
 | 
						|
- types, i.e. very widely usable classes like the ``py.path`` 
 | 
						|
  family are all lower case. 
 | 
						|
 | 
						|
- never use plural names in directory and file names
 | 
						|
 | 
						|
- functions/methods are lowercase and ``_`` - separated if
 | 
						|
  you really need to separate at all
 | 
						|
 | 
						|
- it's appreciated if you manage to name files in a directory
 | 
						|
  so that tab-completion on the shell level is as easy as possible. 
 | 
						|
 | 
						|
 | 
						|
committing
 | 
						|
----------
 | 
						|
 | 
						|
- adding features requires adding appropriate tests. 
 | 
						|
 | 
						|
- bug fixes should be encoded in a test before being fixed. 
 | 
						|
 | 
						|
- write telling log messages because several people
 | 
						|
  will read your diffs, and we plan to have a search facility 
 | 
						|
  over the py lib's subversion repository. 
 | 
						|
 | 
						|
- if you add ``.txt`` or ``.py`` files to the repository then 
 | 
						|
  please make sure you have ``svn:eol-style`` set to native. 
 | 
						|
  which allows checkin/checkout in native line-ending format.
 | 
						|
 | 
						|
Miscellaneous 
 | 
						|
-------------
 | 
						|
 | 
						|
- Tests are the insurance that your code will be maintained 
 | 
						|
  further and survives major releases. 
 | 
						|
 | 
						|
- Try to put the tests close to the tested code, don't
 | 
						|
  overload directories with names. 
 | 
						|
 | 
						|
- If you think of exporting new py lib APIs, discuss it first on the 
 | 
						|
  `py-dev mailing list`_ and possibly write a chapter in our
 | 
						|
  `future_` book. Communication is considered a key here to make 
 | 
						|
  sure that the py lib develops in a consistent way. 
 | 
						|
 | 
						|
.. _`PEP 8 Style Guide for Python Code`: http://www.python.org/peps/pep-0008.html
 | 
						|
.. _`py-dev mailing list`: http://codespeak.net/mailman/listinfo/py-dev 
 | 
						|
.. _`future`: future.html
 |