2012년 7월 17일 화요일

python + unbutu notification

http://developer.ubuntu.com/resources/technologies/notification/2/#icon-summary-body-python


#!/usr/bin/python
################################################################################
##3456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789
##      10        20        30        40        50        60        70        80
##
## Info:
##    Example of how to use libnotify correctly and at the same time comply to
##    the new jaunty notification spec (read: visual guidelines)
##
## Run:
##    chmod +x icon-summary-body.py
##    ./icon-summary-body.py
##
## Copyright 2009 Canonical Ltd.
##
## Author:
##    Mirco "MacSlow" Mueller <mirco.mueller@canonical.com>
##
## This program is free software: you can redistribute it and/or modify it
## under the terms of the GNU General Public License version 3, as published
## by the Free Software Foundation.
##
## This program is distributed in the hope that it will be useful, but
## WITHOUT ANY WARRANTY; without even the implied warranties of
## MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR
## PURPOSE.  See the GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License along
## with this program.  If not, see <http://www.gnu.org/licenses/>.
##
################################################################################
import sys
import pynotify
# even in Python this is globally nasty <img src="http://developer.ubuntu.com/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley"> , do something nicer in your own code
capabilities = {'actions':             False,
        'body':                False,
        'body-hyperlinks':     False,
        'body-images':         False,
        'body-markup':         False,
        'icon-multi':          False,
        'icon-static':         False,
        'sound':               False,
        'image/svg+xml':       False,
        'private-synchronous': False,
        'append':              False,
        'private-icon-only':   False}
def initCaps ():
    caps = pynotify.get_server_caps ()
    if caps is None:
            print "Failed to receive server caps."
        sys.exit (1)
    for cap in caps:
        capabilities[cap] = True
def printCaps ():
    info = pynotify.get_server_info ()
    print "Name:          " + info["name"]
    print "Vendor:        " + info["vendor"]
    print "Version:       " + info["version"]
    print "Spec. Version: " + info["spec-version"]
    caps = pynotify.get_server_caps ()
    if caps is None:
            print "Failed to receive server caps."
        sys.exit (1)
    print "Supported capabilities/hints:"
    if capabilities['actions']:
        print "\tactions"
    if capabilities['body']:
        print "\tbody"
    if capabilities['body-hyperlinks']:
        print "\tbody-hyperlinks"
    if capabilities['body-images']:
        print "\tbody-images"
    if capabilities['body-markup']:
        print "\tbody-markup"
    if capabilities['icon-multi']:
        print "\ticon-multi"
    if capabilities['icon-static']:
        print "\ticon-static"
    if capabilities['sound']:
        print "\tsound"
    if capabilities['image/svg+xml']:
        print "\timage/svg+xml"
    if capabilities['private-synchronous']:
        print "\tprivate-synchronous"
    if capabilities['append']:
        print "\tappend"
    if capabilities['private-icon-only']:
        print "\tprivate-icon-only"
    print "Notes:"
    if info["name"] == "notify-osd":
        print "\tx- and y-coordinates hints are ignored"
        print "\texpire-timeout is ignored"
        print "\tbody-markup is accepted but filtered"
    else:
        print "\tnone"
if __name__ == '__main__':
    if not pynotify.init ("icon-summary-body"):
        sys.exit (1)
    # call this so we can savely use capabilities dictionary later
    initCaps ()
    # show what's supported
    printCaps ()
    # try the icon-summary-body case
    n = pynotify.Notification ("Cole Raby",
                   "Hey pal, what's up with the party "
                   "next weekend? Will you join me "
                   "and Anna?",
                   "notification-message-im")
    n.show ()

pip package

http://stackoverflow.com/questions/4155914/how-to-create-a-python-2-x-package-simple-case

python args

http://www.saltycrane.com/blog/2008/01/how-to-use-args-and-kwargs-in-python/


  • *args
    • def test_var_args_call(arg1, arg2, arg3):
    • print "arg1:", arg1
    • print "arg2:", arg2
    • print "arg3:", arg3

    • args = ("two", 3)
    • test_var_args_call(1, *args)



  • **args
    • def test_var_args_call(arg1, arg2, arg3):
          print "arg1:", arg1
          print "arg2:", arg2
          print "arg3:", arg3
      
      kwargs = {"arg3": 3, "arg2": "two"}
      test_var_args_call(1, **kwargs)

python gtk 3.0 메뉴얼

http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html#

2012년 7월 13일 금요일

python file


  1. 파일 읽기
 with open('/tmp/workfile', 'r') as f:
...     read_data = f.read()
>>> f.closed