Skip to main content

Hot code reloading tool for Python

Project description

Reloadr

Python hot code reloading tool.

pip install reloadr

Usage

You can simply decorate your functions / classes with @reloadr and you are ready to go.

from reloadr import reloadr

@reloadr
def do_something(a, b):
    return a + b

@reloadr
class SomeThing:
    def do_stuff(self):
        pass

Then, to reload the code, you can use of the following:

# Manual reload
SomeThing._reload()

# Automatic reload using system (requires library 'watchdog')
SomeThing._start_watch_reload()

# Automatic reload in a thread every 1 second
SomeThing._start_timer_reload(1)

Examples

Launch an example (they each contain an infinite loop), then change the source code of the decorated class or function.

git clone https://github.com/hoh/reloadr.git

python examples/01_manual_reload.py

How it works

Instead of importing your source file again, which can lead to undesired side effects, Reloadr fetches the new code of your function within the Python source file, and executes that code in the environment of your already loaded module.

This allows it to reload code that is followed by blocking instructions such as the infinite loops you can find in the examples.

To achieve this, Reloadr relies on RedBaron , an great tool for manipulating Python source code.

Future plans

This project is still in its early stages. All ideas for improvement are welcome.

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

Reloadr-0.3.1.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

Reloadr-0.3.1-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file Reloadr-0.3.1.tar.gz.

File metadata

  • Download URL: Reloadr-0.3.1.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for Reloadr-0.3.1.tar.gz
Algorithm Hash digest
SHA256 868a9f9d06172ef6356007941c4e87938524ea7283c7085a49f6bdaf5d6e9421
MD5 ca16b8d2297b0e7d99c111e7984febfa
BLAKE2b-256 ee7c09da9b99cea388cf8d4e0ed198e37cfbbdcae0b7a5b6ca90b621ee603dac

See more details on using hashes here.

Provenance

File details

Details for the file Reloadr-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for Reloadr-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3225cd5b5c99f93142acb2bfa1b1b67439a4c9676fa621b9219a350caf3702f2
MD5 5ddf8c84e59b6922383bbe4330fc5986
BLAKE2b-256 757db48d6ef7e7c1fd6d4c3ebfebd901fbb7084a4bb00abe31c0742b6febed6a

See more details on using hashes here.

Provenance

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