GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - theatlantic/python-monkey-business: Utility functions for monkey-patching python code

BranchesTags
Open more actions menu

Latest commit

 

History

4 Commits
4 Commits

Folders and files

NameName
Last commit message
Last commit date
monkeybiz
monkeybiz
 
 
.gitignore
.gitignore
 
 
LICENSE
LICENSE
 
 
MANIFEST.in
MANIFEST.in
 
 
README.rst
README.rst
 
 
setup.cfg
setup.cfg
 
 
setup.py
setup.py
 
 

Repository files navigation

About

python-monkey-business is a package that provides a decorator for monkey-patching python functions at runtime.

Installation

Using pip:

pip install python-monkey-business

Or, to install from source:

pip install -e git+https://github.com/theatlantic/python-monkey-business.git#egg=python-monkey-business

If the source is already checked out, use setuptools:

python setup.py develop

Usage

To use python-monkey-business to swap out a function in a class or module at runtime:

import monkeybiz

from foomodule import FooClass
import barmodule


# This replaces FooClass.bar with our method
@monkeybiz.patch(FooClass)
def bar(original_fn, *args, **kwargs):
    print "Patched!"
    return original_fn(*args, **kwargs)

# This replaces barmodule.baz with our function
@monkeybiz.patch(barmodule)
def baz(original_fn, *args, **kwargs):
    #...

The first argument to monkeybiz.patch can be either a module, a class, or a list of modules and/or classes. The decorator also takes optional name and avoid_doublewrap keyword arguments. If name is omitted, the name of the function being patched will be the name of the function being decorated. If avoid_doublewrap is True (the default), then functions and methods can only be patched once using this function.

Use monkeybiz.unpatch() to revert a monkey-patched function to its original.

License

This code is licensed under the Simplified BSD License. View the LICENSE file under the root directory for complete license and copyright information.

About

Utility functions for monkey-patching python code

Resources

Readme
BSD-2-Clause license
Activity
Custom properties

Stars

12 stars

Watchers

37 watching

Forks

5 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.