Skip to main content

Keep and compare a history of changes to your Python strings.

Project description

CleverText

Work in progress... copied from CleverDict


PyPI PyPI - Python Version Downloads PyPI - License PyPI - Status GitHub Repo stars

clevertext cartoon

>CONTENTS

  1. OVERVIEW
  2. INSTALLATION
  3. INPUT METHODS
  4. OUTPUT METHODS
  5. ATTRIBUTE NAMES AND ALIASES
  6. DEEPER DIVE INTO ATTRIBUTE NAMES
  7. SETTING AN ATTRIBUTE WITHOUT CREATING A DICTIONARY ITEM
  8. THE AUTO-SAVE FEATURE
  9. CREATING YOUR OWN AUTO-SAVE FUNCTION
  10. CONTRIBUTING
  11. CREDITS

1. OVERVIEW

CleverText is a convenience class that behaves almost exactly like regular Python string but also contain its own self-contained version history and record of actions. It is mainly intented for recording and comparing different states of text (string, HTML, JSON, code etc) as various transformations (replacements, deletions, validation, parsing) are applied to it. Built in CleverText methods (e.g. diff()) are readily available for ETL style processing, and can be added easily and consistently, allowing you to segregate common text manipulation function from your main control code for example.

2. INSTALLATION

Very lightweight install via pip. No dependencies.

python -m pip install clevertext --upgrade

Then from your Python shell just import the class...

>>> from clevertext import CleverText

3. INPUT METHODS

You can create a CleverText instance using keyword arguments:

>>> x = CleverText("This is the my first draft")

4. OUTPUT METHODS

5. ATTRIBUTES

6. BUILT-IN METHODS

7. ADDING YOUR OWN METHODS

CONTRIBUTING NEW METHODS AS PULL REQUESTS

8. ENABLING AUTO-SAVE

Creating Subclasses:

If you create a subclass of CleverText remember to call super().__init__() before trying to set any further class or object attributes, otherwise you'll run into trouble:

class YourTextClass(CleverText):
    def __init__(self, *args, **kwargs):
        self.setattr_direct('index', [])
        super().__init__(*args, **kwargs)

10. CONTRIBUTING

We'd love to see Pull Requests (and relevant tests) from other contributors, particularly if you can help:

  • Tackle any of the outstanding issues listed here.
  • Evolve CleverText to make it play nicely with other classes, packages, and formats, for example datetime, pandas and textwrap.
  • Put the finishing touches on the docstrings to enable autocompletion in modern IDEs (this is neither the author's strong suit nor his passion!).
  • Improve the structure and coverage of test_clevertext.py.

For a list of all outstanding Feature Requests and (heaven forbid!) actual Issues please have a look here and maybe you can help out?

https://github.com/PFython/clevertext/issues?q=is%3Aopen+is%3Aissue

11. CREDITS

CleverText was conceived by Peter Fison and co-developed with the expert assistance of Ruud van der Ham from the friendly and excellent Pythonista Cafe forum (www.pythonistacafe.com).

It follows on from the success of CleverDict which is similar in concept and well worth checking out if you haven't already.

If you find clevertext helpful, please feel free to:

Buy Me A Coffee

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clevertext-0.1.1rc1.tar.gz (14.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page