tkhr


Nametkhr JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryA hot reload implementation for Tkinter applications
upload_time2025-03-01 20:12:21
maintainerNone
docs_urlNone
authorJulian
requires_python>=3.8
licenseNone
keywords development-tools hot-reload tkinter
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # TkinterHotReload

A powerful hot reload utility for Tkinter applications that enables real-time code updates without restarting your application.

## Features

- 🔄 Live code reloading for Tkinter applications
- 🚀 Zero configuration required
- 🎯 Automatic detection of file changes
- 💻 Seamless development experience
- 🛠 Maintains application state during reloads

## Installation

Install TkinterHotReload using pip:

```bash
pip install tkhotreload
```

## Quick Start

Here's a simple example of how to use TkinterHotReload:

```python
from tkinter import Tk, Label
from tkhotreload import HotReloader

class App(Tk):
    def __init__(self):
        super().__init__()
        self.title("Hot Reload Demo")
        Label(self, text="Edit this file and save to see changes!").pack(pady=20)

if __name__ == "__main__":
    app = App()
    hot_reloader = HotReloader(app)
    app.mainloop()
```

## How It Works

TkinterHotReload monitors your Python files for changes. When you modify and save a file, it automatically:

1. Detects the changes in your code
2. Reloads the modified modules
3. Updates your Tkinter application while preserving its state

## Advanced Usage

### Custom Watch Patterns

```python
from tkhotreload import HotReloader

# Watch specific files or patterns
hot_reloader = HotReloader(app, paths=["app.py", "modules/*.py"])
```

### Reload Callbacks

```python
from tkhotreload import HotReloader

def on_reload():
    print("Code reloaded!")

hot_reloader = HotReloader(app, on_reload=on_reload)
```

## Contributing

Contributions are welcome! Here's how you can help:

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## License

This project is licensed under the MIT License - see the LICENSE file for details.

## Support

If you encounter any issues or have questions, please:

- Open an issue on GitHub
- Check existing issues for solutions
- Provide detailed information about your problem

## Acknowledgments

- Thanks to all contributors who have helped shape TkinterHotReload
- Inspired by hot reload functionality in modern web development

---

Made with ❤️ for the Python community
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "tkhr",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "development-tools, hot-reload, tkinter",
    "author": "Julian",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/b9/1d/9ff5e222f4e73f8874b2439a7c3d7bfdbfdfe1f0ff8c05513081e4f26137/tkhr-0.1.0.tar.gz",
    "platform": null,
    "description": "# TkinterHotReload\n\nA powerful hot reload utility for Tkinter applications that enables real-time code updates without restarting your application.\n\n## Features\n\n- \ud83d\udd04 Live code reloading for Tkinter applications\n- \ud83d\ude80 Zero configuration required\n- \ud83c\udfaf Automatic detection of file changes\n- \ud83d\udcbb Seamless development experience\n- \ud83d\udee0 Maintains application state during reloads\n\n## Installation\n\nInstall TkinterHotReload using pip:\n\n```bash\npip install tkhotreload\n```\n\n## Quick Start\n\nHere's a simple example of how to use TkinterHotReload:\n\n```python\nfrom tkinter import Tk, Label\nfrom tkhotreload import HotReloader\n\nclass App(Tk):\n    def __init__(self):\n        super().__init__()\n        self.title(\"Hot Reload Demo\")\n        Label(self, text=\"Edit this file and save to see changes!\").pack(pady=20)\n\nif __name__ == \"__main__\":\n    app = App()\n    hot_reloader = HotReloader(app)\n    app.mainloop()\n```\n\n## How It Works\n\nTkinterHotReload monitors your Python files for changes. When you modify and save a file, it automatically:\n\n1. Detects the changes in your code\n2. Reloads the modified modules\n3. Updates your Tkinter application while preserving its state\n\n## Advanced Usage\n\n### Custom Watch Patterns\n\n```python\nfrom tkhotreload import HotReloader\n\n# Watch specific files or patterns\nhot_reloader = HotReloader(app, paths=[\"app.py\", \"modules/*.py\"])\n```\n\n### Reload Callbacks\n\n```python\nfrom tkhotreload import HotReloader\n\ndef on_reload():\n    print(\"Code reloaded!\")\n\nhot_reloader = HotReloader(app, on_reload=on_reload)\n```\n\n## Contributing\n\nContributions are welcome! Here's how you can help:\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n\n## Support\n\nIf you encounter any issues or have questions, please:\n\n- Open an issue on GitHub\n- Check existing issues for solutions\n- Provide detailed information about your problem\n\n## Acknowledgments\n\n- Thanks to all contributors who have helped shape TkinterHotReload\n- Inspired by hot reload functionality in modern web development\n\n---\n\nMade with \u2764\ufe0f for the Python community",
    "bugtrack_url": null,
    "license": null,
    "summary": "A hot reload implementation for Tkinter applications",
    "version": "0.1.0",
    "project_urls": {
        "Homepage": "https://github.com/username/tkhr",
        "Repository": "https://github.com/username/tkhr.git"
    },
    "split_keywords": [
        "development-tools",
        " hot-reload",
        " tkinter"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "477e443c29557884ee7ed6bc0eea9e7321e781066a92db6beff7aaaad90b40ae",
                "md5": "7d31e9ef1304f274e63b03a479fadfee",
                "sha256": "19950758a9a2423255917a6dea35f4cd19365aabdadd05b29128d2240379ae77"
            },
            "downloads": -1,
            "filename": "tkhr-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7d31e9ef1304f274e63b03a479fadfee",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 8958,
            "upload_time": "2025-03-01T20:12:19",
            "upload_time_iso_8601": "2025-03-01T20:12:19.782396Z",
            "url": "https://files.pythonhosted.org/packages/47/7e/443c29557884ee7ed6bc0eea9e7321e781066a92db6beff7aaaad90b40ae/tkhr-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b91d9ff5e222f4e73f8874b2439a7c3d7bfdbfdfe1f0ff8c05513081e4f26137",
                "md5": "f7acfe7c1c250d82304989c53afed58d",
                "sha256": "88b566207e89fff9e18eab1209016681eeba72b6d6c1b51a19fb2ac22c250c7f"
            },
            "downloads": -1,
            "filename": "tkhr-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "f7acfe7c1c250d82304989c53afed58d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 41317,
            "upload_time": "2025-03-01T20:12:21",
            "upload_time_iso_8601": "2025-03-01T20:12:21.747230Z",
            "url": "https://files.pythonhosted.org/packages/b9/1d/9ff5e222f4e73f8874b2439a7c3d7bfdbfdfe1f0ff8c05513081e4f26137/tkhr-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-03-01 20:12:21",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "username",
    "github_project": "tkhr",
    "github_not_found": true,
    "lcname": "tkhr"
}
        
Elapsed time: 1.47399s