hmr


Namehmr JSON
Version 0.6.4.4 PyPI version JSON
download
home_pageNone
SummaryHot Module Reload for Python
upload_time2025-07-12 01:03:11
maintainerNone
docs_urlNone
authorNone
requires_python>=3.12
licenseNone
keywords reactive-programming reload signals hmr
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <div align="center">

# HMR for Python

<sup> on-demand · fine-grained · push-pull reactivity </sup>

[![PyPI - Version](https://img.shields.io/pypi/v/hmr)](https://pypi.org/project/hmr/)
[![Supported Python Version](https://img.shields.io/python/required-version-toml?tomlFilePath=https://github.com/promplate/pyth-on-line/raw/refs/heads/reactivity/packages/hmr/pyproject.toml)](https://github.com/promplate/pyth-on-line/blob/reactivity/packages/hmr/pyproject.toml)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/hmr)](https://pepy.tech/projects/hmr)

</div>

HMR means Hot Module Reload / [Hot Module Replacement](https://webpack.js.org/concepts/hot-module-replacement/). It is a feature that allows part of your app to be updated at runtime without a full rerun.

- The module whose source file **you changed** will rerun
- The module / function that **depends on** the changed module will rerun
- Other modules that are unaffected (like third-party libraries) will not rerun

Thus, in contrast to the traditional way of **cold-reloading** Python applications (like [watchfiles CLI](https://watchfiles.helpmanual.io/cli/)), HMR is just more efficient.

Unlike static-analysis tools like [Tach](https://github.com/gauge-sh/tach), HMR works by tracking the dependencies between names and modules **during runtime** through a [reactive system](https://wikipedia.org/wiki/Reactive_programming).

## Usage

If you are running your entry file with `python foo.py bar baz ...`, you can just replace it with `hmr foo.py bar baz ...`.

You can also try it with `uvx` or `pipx`. If you are using a virtual environment, it is recommended to install `hmr` in the virtual environment instead of globally.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "hmr",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.12",
    "maintainer_email": null,
    "keywords": "reactive-programming, reload, signals, hmr",
    "author": null,
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/aa/6c/1effd1108e5cee66f6bd2d97d71cf14afa880439401c57b03f424036cb28/hmr-0.6.4.4.tar.gz",
    "platform": null,
    "description": "<div align=\"center\">\n\n# HMR for Python\n\n<sup> on-demand \u00b7 fine-grained \u00b7 push-pull reactivity </sup>\n\n[![PyPI - Version](https://img.shields.io/pypi/v/hmr)](https://pypi.org/project/hmr/)\n[![Supported Python Version](https://img.shields.io/python/required-version-toml?tomlFilePath=https://github.com/promplate/pyth-on-line/raw/refs/heads/reactivity/packages/hmr/pyproject.toml)](https://github.com/promplate/pyth-on-line/blob/reactivity/packages/hmr/pyproject.toml)\n[![PyPI - Downloads](https://img.shields.io/pypi/dm/hmr)](https://pepy.tech/projects/hmr)\n\n</div>\n\nHMR means Hot Module Reload / [Hot Module Replacement](https://webpack.js.org/concepts/hot-module-replacement/). It is a feature that allows part of your app to be updated at runtime without a full rerun.\n\n- The module whose source file **you changed** will rerun\n- The module / function that **depends on** the changed module will rerun\n- Other modules that are unaffected (like third-party libraries) will not rerun\n\nThus, in contrast to the traditional way of **cold-reloading** Python applications (like [watchfiles CLI](https://watchfiles.helpmanual.io/cli/)), HMR is just more efficient.\n\nUnlike static-analysis tools like [Tach](https://github.com/gauge-sh/tach), HMR works by tracking the dependencies between names and modules **during runtime** through a [reactive system](https://wikipedia.org/wiki/Reactive_programming).\n\n## Usage\n\nIf you are running your entry file with `python foo.py bar baz ...`, you can just replace it with `hmr foo.py bar baz ...`.\n\nYou can also try it with `uvx` or `pipx`. If you are using a virtual environment, it is recommended to install `hmr` in the virtual environment instead of globally.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Hot Module Reload for Python",
    "version": "0.6.4.4",
    "project_urls": {
        "repository": "https://github.com/promplate/pyth-on-line/tree/main/packages/hmr"
    },
    "split_keywords": [
        "reactive-programming",
        " reload",
        " signals",
        " hmr"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9036dfd96877a60a8c11932dc2dc6dd5491ebeac54b3d77c741f0b9258583207",
                "md5": "315d90ba08ef486e38b9a6e4aef75505",
                "sha256": "d82d912abdf6f858c8ff9e88b408e0a724d3fc1d69e2cef59166fbc651617cde"
            },
            "downloads": -1,
            "filename": "hmr-0.6.4.4-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "315d90ba08ef486e38b9a6e4aef75505",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.12",
            "size": 15942,
            "upload_time": "2025-07-12T01:03:10",
            "upload_time_iso_8601": "2025-07-12T01:03:10.075951Z",
            "url": "https://files.pythonhosted.org/packages/90/36/dfd96877a60a8c11932dc2dc6dd5491ebeac54b3d77c741f0b9258583207/hmr-0.6.4.4-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "aa6c1effd1108e5cee66f6bd2d97d71cf14afa880439401c57b03f424036cb28",
                "md5": "26a4e826ca6816bafb6926b3fbd4d3ca",
                "sha256": "680fa2b736eee8e6a74fca262b09f29af0fdcfd3680ad0303ea881d813d2eaeb"
            },
            "downloads": -1,
            "filename": "hmr-0.6.4.4.tar.gz",
            "has_sig": false,
            "md5_digest": "26a4e826ca6816bafb6926b3fbd4d3ca",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.12",
            "size": 12313,
            "upload_time": "2025-07-12T01:03:11",
            "upload_time_iso_8601": "2025-07-12T01:03:11.412967Z",
            "url": "https://files.pythonhosted.org/packages/aa/6c/1effd1108e5cee66f6bd2d97d71cf14afa880439401c57b03f424036cb28/hmr-0.6.4.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-12 01:03:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "promplate",
    "github_project": "pyth-on-line",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "hmr"
}
        
Elapsed time: 1.37667s