Metadata-Version: 1.1
Name: icemac.truncatetext
Version: 0.3
Summary: Nice, intelligent truncation of text.


Home-page: http://pypi.python.org/pypi/icemac.truncatetext
Author: Michael Howitz
Author-email: icemac@gmx.net
License: ZPL
Description: Nice, intelligent truncation of text.
        
        .. contents::
        
        Nicely truncate text
        ====================
        
        Intelligent truncation of text means that truncation does not take
        place inside a word but only between words. So the required length is
        only an approximation. The result text might be a bit longer than the
        required length:
        
          >>> from icemac.truncatetext import truncate
          >>> 'I was here.'[:3]
          'I w'
          >>> truncate('I was here.', 3)
          'I was ...'
        
        What can get truncated?
        -----------------------
        
        Only instances of basestring can be truncated:
        
          >>> truncate(3, 3)
          Traceback (most recent call last):
          ValueError: 3 is no instance of basestring or None
          >>> truncate(u'Lorem ipsum', 5)
          u'Lorem ...'
        
        ``None`` is handled nicely:
        
          >>> truncate(None, 4)
          ''
        
        What is returned?
        -----------------
        
        Always at least one word is returned even when it is longer than the
        required length:
        
          >>> truncate('Lorem ipsum', 1)
          'Lorem ...'
        
        If the text contains only of one word which is longer than the desired
        length it is returned without an ellipsis:
        
          >>> truncate('The-really-long-word', 5)
          'The-really-long-word'
        
        If the text is shorter than the desired length it is returned without
        the ellipsis, too:
        
          >>> truncate('Lorem ipsum', 11)
          'Lorem ipsum'
        
        Where gets the text truncated?
        ------------------------------
        
        Truncation also takes place at tabs and linebreaks:
        
          >>> truncate("I was here.\nNow I'm away", 11)
          'I was here. ...'
          >>> truncate("I was here.\rNow I'm away", 12)
          'I was here.\rNow ...'
          >>> truncate("I was here.\tNow I'm away", 11)
          'I was here. ...'
        
        I do not want `...` as ellipsis.
        --------------------------------
        
        ``truncate`` takes an optional argument which defines the ellipsis string:
        
          >>> truncate(u'Lorem ipsum', 5, ellipsis=u':::')
          u'Lorem :::'
        
        
        
        Changelog
        =========
        
        0.3 (2012-11-13)
        ----------------
        
        - Moved sources to bitbucket.org.
        
        - Added Travis-CI.
        
        - Dropped official support for Python 2.3 and Python 2.4. (Although these
          rather old Python versions still might be used with this release.)
        
        
        0.2.1 (2011-07-28)
        ------------------
        
        - Updated categories: Python 2.7 is supported, too.
        
        
        0.2 (2009-09-26)
        ----------------
        
        - Added ability pass a string used as ellipsis string.
        
        
        0.1 (2009-01-31)
        ----------------
        
        - Initial public release.
        
        
        
        Hacking
        =======
        
        Fork me on `bitbucket.org`_ or put your issues to the `issue tracker`_.
        
        .. image:: https://secure.travis-ci.org/icemac/icemac.truncatetext.png
        
        .. _`bitbucket.org` : https://bitbucket.org/icemac/icemac.truncatetext
        .. _`issue tracker` : https://bitbucket.org/icemac/icemac.truncatetext/issues
        
        
Keywords: text truncate string intelligent
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.5
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Zope Public License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Topic :: Utilities
Classifier: Topic :: Software Development :: Libraries :: Python Modules
