Metadata-Version: 2.4
Name: PyQtier
Version: 1.4.5
Summary: Make your onw desktop app faster
Author-email: Korzhak <bohdan.korzhak@gmail.com>, Yurii Solodzhuk <yurii.solodzhuk@gmail.com>
Project-URL: Homepage, https://github.com/Korzhak/PyQtier
Project-URL: Issues, https://github.com/Korzhak/PyQtier/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.1.7
Requires-Dist: colorama>=0.4.6
Requires-Dist: PyQt5>=5.15.9
Requires-Dist: pyqt5-plugins>=5.15.9.2.3
Requires-Dist: PyQt5-Qt5>=5.15.2
Requires-Dist: pyqt5-tools>=5.15.9.3.3
Requires-Dist: python-dotenv>=1.0.1
Requires-Dist: qt5-applications>=5.15.2.2.3
Requires-Dist: qt5-tools>=5.15.2.1.3
Requires-Dist: PyQtAds>=3.8.1
Provides-Extra: serial
Requires-Dist: pyserial>=3.5; extra == "serial"
Provides-Extra: can
Requires-Dist: python-can>=4.0.0; extra == "can"
Provides-Extra: modbus
Requires-Dist: pymodbus>=3.0.0; extra == "modbus"
Provides-Extra: all
Requires-Dist: pyserial>=3.5; extra == "all"
Requires-Dist: python-can>=4.0.0; extra == "all"
Requires-Dist: pymodbus>=3.0.0; extra == "all"
Dynamic: license-file

# PyQtier

PyQtier is a command-line tool and architecture solution that helps you work with PyQt5 projects simpler and faster,
providing convenient commands for project creation, UI file conversion, and Qt Designer integration.

![screenshot_1.png](docs/img/screenshot_1.png)

## Features

- Command-line interface for project management
- Built-in GUI application with modern interface
- Qt Designer integration
- Automatic UI and resource file conversion
- Project scaffolding and architecture solutions
- Modular plugin system for Serial, CAN, and Modbus communication

## Installation
```bash
# Base installation (no communication protocols)
pip install pyqtier

# With specific protocol support
pip install pyqtier[serial]      # Serial/USB communication
pip install pyqtier[can]         # CAN bus support
pip install pyqtier[modbus]      # Modbus RTU/TCP support

# Multiple protocols
pip install pyqtier[serial,modbus]

# All protocols
pip install pyqtier[all]
```

## Commands

> **Note:** You can use `pyqtier` or shorter `pqr` command to run the commands.

### Start a New Project

Create a new PyQt5 project structure:
```bash
pyqtier startproject PROJECT_NAME
```

- `PROJECT_NAME`: Name and path of your project. Use `.` to create the project in the current directory.

### Open Qt Designer

Launch Qt Designer for creating UI files:
```bash
pyqtier designer
```

Note: Requires `qt5-tools` to be installed on your system.

### Convert UI Files

Convert Qt Designer `.ui` files to Python `.py` files:
```bash
# Convert all .ui files in the project
pyqtier convertui

# Convert a specific .ui file
pyqtier convertui filename.ui

# Convert .ui files and automatically convert associated .qrc files
pyqtier convertui --autorc
```

### Convert Resource Files

Convert Qt resource `.qrc` files to Python `.py` files:
```bash
# Convert all .qrc files in the project
pyqtier convertqrc

# Convert a specific .qrc file
pyqtier convertqrc filename.qrc
```

## Examples

1. Create a new project:
```bash
   pyqtier startproject .
```

2. Design your UI:
```bash
   pyqtier designer
```

3. Convert UI and resource files:
```bash
   # Convert all UI files and automatically convert QRC files
   pyqtier convertui --autorc
   
   # Convert a specific UI file
   pyqtier convertui main_window.ui
   
   # Convert a specific resource file
   pyqtier convertqrc resources.qrc
```

## Requirements

- Python 3.11+
- PyQt5

### Optional Dependencies

| Extra | Package | Description |
|-------|---------|-------------|
| `serial` | pyserial | Serial/USB communication |
| `can` | python-can | CAN bus interface |
| `modbus` | pymodbus | Modbus RTU/TCP protocol |

## License

**MIT**
