Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Isaac To Newsgroups: comp.lang.python.announce Subject: ANN: calf 0.3.1 Date: Sat, 9 Nov 2019 15:17:54 +0800 Lines: 30 Approved: python-announce-list@python.org Message-ID: <157328804168.21236.python-announce-list@python.org> Reply-To: python-list@python.org Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" X-Trace: news.uni-berlin.de lAgj4Ka4GyBBaUX04pwh5QZClbuBtcpMyrOpo3nyMuug== X-Spam-Status: OK 0.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'default': 0.04; 'url- ip:151.101.0.223/32': 0.04; 'url-ip:151.101.128.223/32': 0.04; 'url-ip:151.101.192.223/32': 0.04; 'url-ip:151.101.64.223/32': 0.04; 'url:project': 0.05; 'url:pypi': 0.05; 'function.': 0.09; 'numpy': 0.09; 'subject:ANN': 0.09; 'python': 0.12; '=====': 0.16; 'annotations': 0.16; 'anyway.': 0.16; 'configured': 0.16; 'docstring': 0.16; 'frontend': 0.16; 'left,': 0.16; 'parameters.': 0.16; 'parser': 0.16; 'parsing': 0.16; 'style,': 0.16; 'type)': 0.16; 'all,': 0.17; 'url-ip:151.101.0/24': 0.17; 'url- ip:151.101.128/24': 0.17; 'url-ip:151.101.192/24': 0.17; 'url- ip:151.101.64/24': 0.17; 'values': 0.17; 'words,': 0.20; 'cases.': 0.25; 'interfaces': 0.25; 'slightly': 0.25; 'code,': 0.26; 'url- ip:151.101/16': 0.27; 'url-ip:151/8': 0.27; 'message- id:@mail.gmail.com': 0.28; 'announce': 0.28; 'command': 0.28; 'package': 0.29; 'ideas': 0.29; 'received:google.com': 0.30; 'from:addr:gmail.com': 0.32; "i'm": 0.32; 'argument': 0.33; 'configure': 0.33; 'but': 0.34; 'code': 0.34; 'url:3': 0.34; 'creating': 0.35; 'subject:: ': 0.35; 'function': 0.37; 'rather': 0.37; 'focused': 0.37; 'user': 0.38; 'least': 0.39; 'proto:https': 0.40; 'charset:utf-8': 0.40; 'range': 0.61; 'under': 0.61; 'line': 0.62; 'comfortable': 0.62; 'customize': 0.62; 'your': 0.62; 'call': 0.68; 'design': 0.69; 'lets': 0.70; 'treat': 0.70; 'easy': 0.73; 'remove': 0.74; 'wide': 0.74; 'fact,': 0.79; 'interface.': 0.84; 'sphinx,': 0.84; 'swap': 0.84; 'google,': 0.93; 'to:addr :python-announce': 0.97 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=nQb+njwav96mtCsYJq6Et4VDl5eqRtwvcWoxl0pyoCI=; b=FeSlfrwWkbm8+ydPxggS1FM4ISbwaA5q7oG5/TIm7UgbDtzr4oVG+BCo1OntcXJP64 1xYQE4tCDbUZvL3G2DFnH4MTwoLJ3vE0sbseEQEWzMLFMZAWGuaYOaxM3z8Y6FubfonL PqYFUHU5K7FyxRw0TZN/YyHifeuZk49bFoJkV40ZgvbovzCwWgDYy8JYzK3oJ9UKoulI hWW8kpzIRPhaI+yOhinM6/dy9ZBUeNEjR3h3vS1fLHVhQ38AeXDVG3cbuPGxjBZuIIqR n03p0EJczOMfo7oveFwj+GQJLBouGgoUPD4wjsZ/iYvXOLl6Epdw+MJcAYGzZPm3BrPG yNIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=nQb+njwav96mtCsYJq6Et4VDl5eqRtwvcWoxl0pyoCI=; b=RdPZub3VpUbPIMNq5aLCXgednekGHQeZ85AAbQzU9v4XXKG+PeMpJy4EiMIhGPpE4+ pZlto4ckmORI7mbvLSkp7RPEopYE5QkwdO2uf0tjwD+bqjOizTwC7AGC/Lk62JcSogaS DIC6XxKDhvlv94ttOexPx6GRqnTstqDBJ0PEZ47ufRLW9cnHdyYOl6v8E5kPkfNL1rUi 7Svm8+V7hwJXGOR2fus2ieyKVvrkO4hqS3QH2ySW7c0kkhb2YXqy83HQQHv8NvXG+JXy 7jpW+dsIsRKTrEKpvMnWNuYIjGD9l+zJcSw3DNXHWCJgZMpO4v2Z3U42ubUEhl34dVVp RqBQ== X-Gm-Message-State: APjAAAUmvmHr3xPoQdr3aPUbPDSp64Pji7tURZFQ7anc3Nvm8NobYRV5 oGGNITXFlZ2M9a8PN2rrHV1rdHW+59AOQcJIEtrCLqzE X-Google-Smtp-Source: APXvYqwrIOi9LCWJ2+tZha0bSvHMPZtmopijrrnnDa68WundHW9MAMogVbNadDGl++N6yx6yjI6uN2TRQpHDfWXMBTo= X-Received: by 2002:aca:d90a:: with SMTP id q10mr14134534oig.129.1573283886189; Fri, 08 Nov 2019 23:18:06 -0800 (PST) X-MailFrom: isaac.to@gmail.com X-Mailman-Rule-Hits: emergency X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved Message-ID-Hash: JHUTIESG4TYVB6CLVPSX7DINH45UX6US X-Message-ID-Hash: JHUTIESG4TYVB6CLVPSX7DINH45UX6US X-Mailman-Approved-At: Sat, 09 Nov 2019 03:27:16 -0500 X-Content-Filtered-By: Mailman/MimeDel 3.3.1 X-Mailman-Version: 3.3.1 Precedence: list List-Id: Announcement-only list for the Python programming language Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Xref: csiph.com comp.lang.python.announce:3245 Hello all, I'm glad to announce the first public release of calf, 0.3.1: https://pypi.org/project/calf/0.3.1/ About ===== calf: Command Argument Loading Function for Python Calf lets you remove all your command argument parsing code, at least for simple cases. Only the implementation function is left, with initialization code that uses calf to call this function. The command argument parser is configured with a proper docstring, and perhaps some annotations (argument type) and default values for the parameters. In other words, stuffs that you would write anyway. The docstring can be written in Google, Sphinx, epydoc or Numpy style, and the design is that it is easy to swap the parsing function with yours. In fact, you can customize such a wide range of characteristics of calf, that you can treat it as a slightly restricted frontend to the ArgumentParser under the hood. Used in this way, you can treat calf as a cute way to configure argparse. This package shamelessly stole a lot of ideas from plac, but hopes to be more focused on creating comfortable command line interfaces rather than becoming a Swiss knife for programs with text-only user interface.