Skip to main content

An enhanced reload module from PyDev

Project description

This is a reload library based on from The original library is used in PyDev & PyCharm.


If you don’t have much time, just perform

$ pip install pydevd_reload

which will install the module(without tests) on your system.

Also, you can just copy & paste the which require no third-party dependency.


Just import pydevd_reload and use pydevd_reload.xreload as the reload built-in function.

import pydevd_reload

pydevd_reload reload code objects in a module by default, and provide __xreload_old_new__ and __xreload_after_reload_update__ custom hooks which allow user to update data in a module:

Original module:

class B(object):
        CONSTANT = 1

        def foo(self):
                return self.CONSTANT

Updated module:

class B(object):

        CONSTANT = 2

        # Custom hooks can be added in a reload.
        def __xreload_old_new__(cls, name, old, new):
                if name == 'CONSTANT':
                        cls.CONSTANT = new
        __xreload_old_new__ = classmethod(__xreload_old_new__)

        def foo(self):
                return self.CONSTANT


This standalone pydevd_reload library has following improvements than original

  • Removed pydevd dependency.
  • Removed limitation that functions with decorators cannot be handled. *
  • Added support to update function closure. *
  • Added code object name check to avoid update monkey patched code. *
  • Refined reload hooks. (eg, __xreload_old_new__ and __xreload_after_reload_update__)
  • Fixed __file__ attribute in namespace so they will be updated.
  • Fixed compiled python file support.
  • Fixed reload failed when python code compiled from different paths.


If you have the source code you can run the tests with

$ python pydevd_reload/tests/


The project is hosted on GitHub. You can look at the source here:

Project details

Download files

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

Files for pydevd-reload, version 1.0
Filename, size File type Python version Upload date Hashes
Filename, size pydevd_reload-1.0-py2.py3-none-any.whl (9.6 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size pydevd_reload-1.0.tar.gz (7.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page