Path: csiph.com!x330-a1.tempe.blueboxinc.net!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!feeder.news-service.com!newsfeed.xs4all.nl!newsfeed6.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'python,': 0.01; 'subject:ANN': 0.02; 'subject:Python': 0.06; 'supported.': 0.07; 'url:pypi': 0.08; 'clean,': 0.09; 'manipulate': 0.09; 'namespace': 0.09; 'recipe': 0.09; 'release,': 0.09; 'files.': 0.09; 'subject:] ': 0.14; 'def': 0.15; 'argument': 0.15; '###': 0.16; 'concatenated': 0.16; 'cookbook': 0.16; 'subject: \n ': 0.16; 'subject:similar': 0.16; 'file,': 0.21; "doesn't": 0.22; 'received:209.85.212.46': 0.23; 'received:mail- vw0-f46.google.com': 0.23; 'enhancements': 0.23; 'gcc': 0.23; 'command': 0.24; 'variable': 0.24; 'libraries': 0.24; 'specify': 0.24; 'sender:addr:gmail.com': 0.25; 'load': 0.26; 'pass': 0.29; 'message-id:@mail.gmail.com': 0.29; 'subject:[': 0.30; "'build'": 0.30; 'email name:': 0.30; 'hi,': 0.32; 'objects': 0.32; 'to:addr :python-list': 0.33; 'received:209.85.212': 0.34; 'file.': 0.34; 'all.': 0.34; 'automation': 0.34; 'skip:@ 10': 0.34; 'similar': 0.35; 'url:python': 0.36; 'useful': 0.36; 'using': 0.37; 'several': 0.37; 'install': 0.37; 'overview': 0.38; 'some': 0.38; 'received:google.com': 0.38; 'url:org': 0.38; 'received:209.85': 0.38; 'option': 0.39; 'skip:- 10': 0.39; 'user': 0.39; 'to:addr:python.org': 0.39; 'description': 0.39; 'called': 0.40; 'your': 0.61; 'fun!': 0.67; 'materials': 0.68; 'url:0': 0.69; 'details.': 0.71; '***': 0.73; 'introduced.': 0.84; 'subject:tool': 0.84 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:sender:date:x-google-sender-auth:message-id:subject :from:to:content-type; bh=CdN9AazkhATv7Qjf85sW8pkzHAFtqbToUFNK3Kh6RoY=; b=R+HLPgz9hkElhHv7k6AM5zbTMHhiPxVBnwl9gIpSXSomiYehG4TXToss6xifZPKiKy UmSKWd1+yqgBuNA6l+PRX77oIvv0pbDnCgPq/Y4Ph7QsezIwbw6ObcZ5QKr2o40sOKSC 6lmZIOg6WUcIjNZVUPPrCZkDC6GQX+gZy6BjI= MIME-Version: 1.0 Sender: kwatch@gmail.com Date: Thu, 27 Oct 2011 23:00:59 +0900 X-Google-Sender-Auth: moWMxgDIiGVVYEzNs5BDyzQdqp8 Subject: [ANN] pyKook 0.6.0 - task automation tool for Python, similar to Rake or Ant From: Makoto Kuwata To: python-list@python.org Content-Type: text/plain; charset=ISO-8859-1 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 73 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1319724062 news.xs4all.nl 6850 [2001:888:2000:d::a6]:58998 X-Complaints-To: abuse@xs4all.nl Xref: x330-a1.tempe.blueboxinc.net comp.lang.python:15042 Hi, I have released pyKook 0.6.0. http://pypi.python.org/pypi/Kook/0.6.0 http://www.kuwata-lab.com/kook/ http://www.kuwata-lab.com/kook/pykook-users-guide.html In this release, a lot of enhancements are introduced. pyKook Overview --------------- pyKook is a task automation tool for Python, similar to Rake or Ant. (Kookbook.py): kookbook.default = 'build' @recipe(None, ['hello']) def build(c): """build all""" pass @recipe('hello', ['hello.o']) def file_hello(c): """build 'hello' from 'hello.o'""" system(c%'gcc -o $(product) $(ingred)') @recipe('*.o', ['$(1).c', '$(1).h']) def file_o(c): system(c%'gcc -c $(ingred)') Command-line: bash> kk # or pykook $ gcc -c hello.c ### *** hello.o (recipe=file_o) $ gcc -c hello.c ### ** hello (recipe=file_hello) $ gcc -o hello hello.o ### * build (recipe=build) See http://www.kuwata-lab.com/kook/pykook-users-guide.html for details. Enhancements in this release ---------------------------- * 'kookbook' variable is available in your cookbook to specify materials or default product. * Recipe meta-programming support. You can manipulate recipe objects directly. * Load other cookbooks by kookbook.load(). This enables you to split your Kookbook.py into several files. * Support some useful task recipes: clean, sweep, and all. * Namespace is now supported. It is called as 'Category' in Kook. * Concatenation supported. You can concatenate your cookbook and pyKook libraries into a file. Using concatenated file, user doesn't need to install pyKook at all. * Argument description is available. * Private spice option is available. * New command 'pushd()' provided. See http://www.kuwata-lab.com/kook/pykook-CHANGES.txt for details. Have fun! -- regards, makoto kuwata