Python
From Sigmon
Contents |
Tab Complete interpreter (simple)
http://www.razorvine.net/blog/user/irmen/article/2004-11-22/17
export PYTHONSTARTUP=$HOME/.pystartup" >> ~/.pythonrc
# ~/.pythonrc
# enable syntax completion
try:
import readline
except ImportError:
print "Module readline not available."
else:
import rlcompleter
readline.parse_and_bind("tab: complete")
Tab Complete interpreter (fancy)
http://www.razorvine.net/blog/user/irmen/article/2004-11-22/17
echo "export PYTHONSTARTUP=$HOME/.pystartup" >> ~/.bashrc
~/.pystartup
# Add auto-completion and a stored history file of commands to your Python
# interactive interpreter. Requires Python 2.0+, readline. Autocomplete is
# bound to the Esc key by default (you can change it - see readline docs).
#
# Store the file in ~/.pystartup, and set an environment variable to point
# to it, e.g. "export PYTHONSTARTUP=/max/home/itamar/.pystartup" in bash.
#
# Note that PYTHONSTARTUP does *not* expand "~", so you have to put in the
# full path to your home directory.
import atexit
import os
import readline
import rlcompleter
historyPath = os.path.expanduser("~/.pyhistory")
historyTmp = os.path.expanduser("~/.pyhisttmp.py")
endMarkerStr= "# # # histDUMP # # #"
saveMacro= "import readline; readline.write_history_file('"+historyTmp+"'); \
print '####>>>>>>>>>>'; print ''.join(filter(lambda lineP: \
not lineP.strip().endswith('"+endMarkerStr+"'), \
open('"+historyTmp+"').readlines())[:])+'####<<<<<<<<<<'"+endMarkerStr
readline.parse_and_bind('tab: complete')
readline.parse_and_bind('\C-w: "'+saveMacro+'"')
def save_history(historyPath=historyPath, endMarkerStr=endMarkerStr):
import readline
readline.write_history_file(historyPath)
# Now filter out those line containing the saveMacro
lines= filter(lambda lineP, endMarkerStr=endMarkerStr:
not lineP.strip().endswith(endMarkerStr), open(historyPath).readlines())
open(historyPath, 'w+').write(''.join(lines))
if os.path.exists(historyPath):
readline.read_history_file(historyPath)
atexit.register(save_history)
del os, atexit, readline, rlcompleter, save_history, historyPath
del historyTmp, endMarkerStr, saveMacro
Packaging
Packaging into python module
[root@nfs python-nodetraq]$ cat setup.py from distutils.core import setup setup(name='nodetraq', version='1.0', py_modules=['nodetraq'], )
Setup & Install
[root@nfs python-nodetraq]$ python setup.py install running install running build running build_py running install_lib creating /usr/lib/python2.3/site-packages/.svn creating /usr/lib/python2.3/site-packages/.svn/prop-base creating /usr/lib/python2.3/site-packages/.svn/tmp creating /usr/lib/python2.3/site-packages/.svn/tmp/prop-base creating /usr/lib/python2.3/site-packages/.svn/tmp/text-base creating /usr/lib/python2.3/site-packages/.svn/tmp/props copying build/lib/.svn/entries -> /usr/lib/python2.3/site-packages/.svn copying build/lib/.svn/format -> /usr/lib/python2.3/site-packages/.svn creating /usr/lib/python2.3/site-packages/.svn/text-base copying build/lib/.svn/text-base/nodetraq.py.svn-base -> /usr/lib/python2.3/site-packages/.svn/text-base creating /usr/lib/python2.3/site-packages/.svn/props copying build/lib/nodetraq.py -> /usr/lib/python2.3/site-packages byte-compiling /usr/lib/python2.3/site-packages/nodetraq.py to nodetraq.pyc
Packaging into rpm
[root@nfs python-nodetraq]$ python setup.py bdist_rpm ..... snip ..... oving build/bdist.linux-x86_64/rpm/SRPMS/nodetraq-1.0-1.src.rpm -> dist moving build/bdist.linux-x86_64/rpm/RPMS/noarch/nodetraq-1.0-1.noarch.rpm -> dist