Metadata-Version: 1.1
Name: say
Version: 1.2.7
Summary: Super-simple templated printing. E.g.: say("Hello, {whoever}!", indent=1)
Home-page: https://bitbucket.org/jeunice/say
Author: Jonathan Eunice
Author-email: jonathan.eunice@gmail.com
License: UNKNOWN
Description: 
        | |version| |downloads| |supported-versions| |supported-implementations|
        
        .. |version| image:: http://img.shields.io/pypi/v/say.png?style=flat
            :alt: PyPI Package latest release
            :target: https://pypi.python.org/pypi/say
        
        .. |downloads| image:: http://img.shields.io/pypi/dm/say.png?style=flat
            :alt: PyPI Package monthly downloads
            :target: https://pypi.python.org/pypi/say
        
        .. |supported-versions| image:: https://img.shields.io/pypi/pyversions/say.svg
            :alt: Supported versions
            :target: https://pypi.python.org/pypi/say
        
        .. |supported-implementations| image:: https://img.shields.io/pypi/implementation/say.svg
            :alt: Supported implementations
            :target: https://pypi.python.org/pypi/say
        
        ``print``, ``format``, and ``%`` evolved.
        
        It's been *forty five years* since ``C`` introduced ``printf()`` and the basic
        formatted printing of positional parameters. Isn't it time for an upgrade?
        **Yes!** Indeed it is.
        
        ``say`` goes beyond Python's ``print``
        statement/function, ``format`` function/method, and ``%`` string
        interpolation operator with simpler, higher-level facilities. For example::
        
            from say import say
        
            x, nums, name = 12, list(range(4)), 'Fred'
        
            say("There are {x} things.")
            say("Nums has {len(nums)} items: {nums}")
            say("Name: {name!r}")
        
        yields::
        
            There are 12 things.
            Nums has 4 items: [0, 1, 2, 3]
            Name: 'Fred'
        
        At this level, ``say`` is basically a simpler, nicer recasting of::
        
            from __future__ import print_function
        
            print("There are {0} things.".format(x))
            print("Nums has {0} items: {1}".format(len(nums), nums))
            print("Name: {0!r}".format(name))
        
        The more items being printed, and the more complicated the ``format``
        invocation, the more valuable this simple inline specification becomes.
        But ``say`` isn't just replacing positional templates with inline templates.
        It also works in a variety of ways to up-level the output-generation task.
        For example::
        
            say.title('Discovered')
            say("Name: {name:style=blue}", indent='+1')
            say("Age:  {age:style=blue}", indent='+1')
        
        
        Prints a nicely formatted text block, with a proper title and indentation,
        and just the variable information in blue.
        
        .. image:: http://content.screencast.com/users/jonathaneunice/folders/Jing/media/81bf4738-c875-4998-82ac-a91d211d000b/00000745.png
            :align: left
        
        ``say`` provides:
        
          * DRY, Pythonic templates that piggyback the
            Python's well-proven ``format()`` method, syntax, and underlying engine.
          * A single output mechanism that works virtually
            the same in either Python 2 or Python 3 (i.e. seamless compatibility).
          * A companion ``fmt()`` object for string formatting.
          * Higher-order line formatting such as line numbering,
            indentation, and line-wrapping built in. You can get better output
            formatting with almost no additional code of your own.
          * Convenient methods for common formatting items such as titles, horizontal
            separators, and vertical whitespace.
          * Easy styled output, including ANSI colors and user-defined styles
            and text transforms.
          * Easy output to one or more files, again with no additional code.
          * Super-duper template/text aggregator objects for easily building,
            reading, and writing multi-line texts.
        
        Take it for a test drive today! See `the full documentation
        at Read the Docs <http://say.readthedocs.org/en/latest/>`_.
        
Keywords: print format template interpolate say
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: BSD License
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Printing
