https://github.com/iamdyeus/tkreload
auto reloads your tkinter app whenever file changes are detected π
https://github.com/iamdyeus/tkreload
customtkinter developer-tools devtool gui-tool hacktoberfest hacktoberfest-accpeted hacktoberfest2024 hotreloading opensourceforgood python python-libary tkinter
Last synced: 11 months ago
JSON representation
auto reloads your tkinter app whenever file changes are detected π
- Host: GitHub
- URL: https://github.com/iamdyeus/tkreload
- Owner: iamDyeus
- License: apache-2.0
- Created: 2024-10-19T06:52:30.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-24T14:11:29.000Z (over 1 year ago)
- Last Synced: 2024-10-24T19:55:11.148Z (over 1 year ago)
- Topics: customtkinter, developer-tools, devtool, gui-tool, hacktoberfest, hacktoberfest-accpeted, hacktoberfest2024, hotreloading, opensourceforgood, python, python-libary, tkinter
- Language: Python
- Homepage: https://pypi.org/project/tkreload/
- Size: 1.49 MB
- Stars: 10
- Watchers: 1
- Forks: 7
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# 



tkreload | Automated Tkinter App Reloading for a Smoother Development Workflow
Effortlessly reload Tkinter-based Python applications in the terminal, saving valuable development time.
[Installation](#installation) β’ [Usage](#usage) β’ [Features](#features) β’ [Testing](#testing) β’ [Contributing](#contributing) β’ [License](#license)
---
## π Problem Statement
For developers, frequent manual restarts of terminal applications during development can add up quickly, especially in complex Tkinter projects that require regular updates. `tkreload` provides a solution to this by automating the reload process, resulting in significant time savings.
### β³ Estimated Time Saved with tkreload
Imagine restarting your terminal application **15 times daily**, with each reload taking **30 seconds**. Thatβs approximately **7.5 minutes daily** or about **3 hours per month**. `tkreload` helps avoid this productivity drain.
---
## π Solution Overview
`tkreload` automates reloading for terminal-based Python applications, designed specifically for **Tkinter**. By eliminating the need for manual restarts, it streamlines the development process, saving developers valuable time and enhancing productivity.
**Without tkreload:**

**With tkreload:**

---
## π οΈ Getting Started
### Prerequisites
- **Python** 3.9+
- **pip** for dependency management
### Installation
#### 1. Clone the Repository
```sh
git clone https://github.com/iamDyeus/tkreload.git
cd tkreload
```
#### 2. Create and activate a virtual environment:
```sh
python -m venv venv
source venv/bin/activate # On Windows, use `venv\Scripts\activate`
```
3. Install tkreload (in editable mode):
```sh
pip install -e.[test]
```
# Usage
To run the app with `tkreload`, use the following command in your terminal:
```bash
tkreload your_app.py
```
Now, whenever you save changes to your script, tkreload will automatically reload your application.
## π Features
- **Automatic Reloading:** Automatically restarts Tkinter apps upon file changes.
- **Command-Based Control:**
- **`H`:** View help commands
- **`R`:** Restart the application
- **`A`:** Toggle auto-reload
- **`Ctrl + C`:** Exit the application
- **Real-Time Feedback:** Uses `rich` for styled console feedback and progress indicators.
## Testing
To verify tkreload functionality, follow these steps:
1.Install Testing Dependencies: Make sure all testing libraries are installed as per the requirements.txt file.
2.Run Tests Using Pytest
```bash
pytest -v
```
This will run the test suite and confirm tkreload is working as expected.
# Contributing
Contributions are welcome and greatly appreciated! Here's how you can contribute:
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

# License
Distributed under the Apache-2.0 License. See [`LICENSE`](LICENSE) for more information.
# Acknowledgments
- Inspired by the need for efficient development workflows
- Thanks to all contributors and supporters of this project
## Star History
[](https://star-history.com/#iamDyeus/tkreload&Date)