Skip to main content

Python monkey patching for humans.

Project description

Altered States is a reversible state tool. It changes values in an object. When the changes are not needed anymore, it is possible to reverse them.

Read more here:


  • Fixed issue in script

  • Added missing changelog


  • Altered States now runs on Python 3 (tested on 2.7, 3.5 and 3.6)

  • Dropped support for Python 2.6

  • Experimental support for Kenneth Reitz Pipenv tool

  • Corrected invalid use of os.modules in examples


  • Better handling of objects that override __getitem__ (thanks to @merwok).

  • Drop support for Python 2.5 (no sane way to solve issue #4 there).


  • Added a new API entry point: alter(), that can be used to perform a two-step reversible alteration.


  • Updated test suites to use @pytest.fixture notation for fixtures (now requires py.test > 2.3)

  • Fixes a bug causing os.environ not to be patchable.

Fixing bug #2 means switching the dict -like object check from isinstance(x, dict) to hasattr(x, ‘__getitem__’). This change is thought to not break backwards compatibility but if you encounter unexpected behaviour in dict / object detection this might be it. I’d be very interested to know about that if you do.


  • Alias Expando as E for optional terseness.


Initial release.

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

altered_states-1.1.0.tar.gz (11.3 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