PS C:\Users\Admin\Desktop\projects\testing codes> & C:/Users/Admin/AppData/Local/Programs/Python/Python313/python.exe "c:/Users/Admin/Desktop/projects/testing codes/import sys.py"
  File "c:\Users\Admin\Desktop\projects\testing codes\import sys.py", line 178
    for text, row, col, rowspan=1, colspan=1 in buttons:
                               ^
SyntaxError: invalid syntax
PS C:\Users\Admin\Desktop\projects\testing codes> 


solve thiss and any other error in following program 
"import sys
from dataclasses import dataclass
from functools import partial
from PyQt6.QtCore import Qt, QEvent
from PyQt6.QtGui import QFont, QIcon, QPixmap, QAction
from PyQt6.QtWidgets import (
    QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QPushButton,
    QLineEdit, QGridLayout, QFrame, QGraphicsDropShadowEffect, QInputDialog, QTabWidget
)

# Basic colors to match classic calculator
COLOR_BG = "#e0e0e0"  # light grey background typical for old calculators
COLOR_BTN = "#f0f0f0"  # button face color (almost white)
COLOR_BTN_DARK = "#b0b0b0"  # button pressed or hover shade
COLOR_TEXT = "#000000"
COLOR_ACCENT = "#5b5b5b"  # maybe for operator buttons
COLOR_DISPLAY_BG = "#333333"
COLOR_DISPLAY_TEXT = "#ffffff"

@dataclass
class GSTResult:
    cgst: float
    sgst: float
    total: float

def calculate_gst(amount: float, rate_percent: float) -> GSTResult:
    if amount < 0 or rate_percent < 0:
        return GSTResult(0, 0, 0)
    half_rate = rate_percent / 2
    cgst = amount * half_rate / 100
    sgst = cgst
    total = amount + cgst + sgst
    return GSTResult(cgst=cgst, sgst=sgst, total=total)

class ClassicButton(QPushButton):
    """
    Classic raised button look
    """
    def __init__(self, text='', parent=None):
        super().__init__(text, parent)
        self.setCursor(Qt.CursorShape.PointingHandCursor)
        self.setFont(QFont('Courier New', 14))
        self.setFixedSize(70, 60)
        self._is_pressed = False
        self.setStyleSheet(self._style_normal())

    def _style_normal(self):
        return f"""
            QPushButton {{
                background-color: {COLOR_BTN};
                border: 2px solid #888;
                border-top-color: #fff;
                border-left-color: #fff;
                border-radius: 4px;
                color: {COLOR_TEXT};
                padding-top: 4px;
            }}
            QPushButton:hover {{
                background-color: {COLOR_BTN_DARK};
            }}
        """

    def _style_pressed(self):
        return f"""
            QPushButton {{
                background-color: {COLOR_BTN_DARK};
                border: 2px solid #555;  /* pressed look */
                border-bottom-color: #fff;
                border-right-color: #fff;
                border-radius: 4px;
                color: {COLOR_TEXT};
                padding-top: 4px;
            }}
        """

    def mousePressEvent(self, event):
        self._is_pressed = True
        self.setStyleSheet(self._style_pressed())
        super().mousePressEvent(event)

    def mouseReleaseEvent(self, event):
        self._is_pressed = False
        self.setStyleSheet(self._style_normal())
        super().mouseReleaseEvent(event)

class OperatorButton(ClassicButton):
    """
    Special styling for operator buttons +, -, ×, ÷, =
    """
    def __init__(self, text='', parent=None):
        super().__init__(text, parent)
        self.setStyleSheet(self._style_normal())

    def _style_normal(self):
        return f"""
            QPushButton {{
                background-color: {COLOR_ACCENT};
                border: 2px solid #444;
                border-top-color: #666;
                border-left-color: #666;
                border-radius: 4px;
                color: white;
                padding-top: 4px;
                font-weight: bold;
            }}
            QPushButton:hover {{
                background-color: #434343;
            }}
        """

    def _style_pressed(self):
        return f"""
            QPushButton {{
                background-color: #222222;
                border: 2px solid #111;
                border-bottom-color: #666;
                border-right-color: #666;
                border-radius: 4px;
                color: white;
                padding-top: 4px;
                font-weight: bold;
            }}
        """

class GSTButton(ClassicButton):
    """
    GST buttons smaller, consistent with classic style but smaller
    """
    def __init__(self, text='', parent=None):
        super().__init__(text, parent)
        self.setFixedSize(130, 40)
        self.setFont(QFont('Courier New', 11))

class ClassicCalculator(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("Traditional GST Calculator - Harsh Computronics")
        self.setFixedSize(650, 460)
        self.init_ui()

    def init_ui(self):
        main_layout = QHBoxLayout(self)
        main_layout.setContentsMargins(10,10,10,10)
        main_layout.setSpacing(15)

        # Left - calculator + GST buttons stacked vertically
        left_panel = QVBoxLayout()
        left_panel.setSpacing(12)

        # Display
        self.display = QLineEdit('0', self)
        self.display.setReadOnly(True)
        self.display.setFixedHeight(70)
        self.display.setFont(QFont('Courier New', 28))
        self.display.setAlignment(Qt.AlignmentFlag.AlignRight)
        self.display.setStyleSheet(f"""
            background-color: {COLOR_DISPLAY_BG};
            color: {COLOR_DISPLAY_TEXT};
            border: 3px inset #666;
            padding: 10px;
            border-radius: 8px;
        """)
        left_panel.addWidget(self.display)

        # Grid layout for buttons (4 columns)
        grid = QGridLayout()
        grid.setSpacing(8)

        buttons = [
            ('7', 0, 0), ('8', 0, 1), ('9', 0, 2), ('÷', 0, 3),
            ('4', 1, 0), ('5', 1, 1), ('6', 1, 2), ('×', 1, 3),
            ('1', 2, 0), ('2', 2, 1), ('3', 2, 2), ('-', 2, 3),
            ('0', 3, 0, 1, 2), ('.', 3, 2), ('+', 3, 3),
            ('C', 4, 0), ('⌫', 4, 1), ('=', 4, 2, 1, 2),
        ]

        self.btn_map = {}
        for text, row, col, rowspan=1, colspan=1 in buttons:
            if text in ('+', '-', '×', '÷', '='):
                btn = OperatorButton(text)
            else:
                btn = ClassicButton(text)
            btn.clicked.connect(partial(self.handle_button_press, text))
            grid.addWidget(btn, row, col, rowspan, colspan)
            self.btn_map[text] = btn

        left_panel.addLayout(grid)

        # GST Buttons below calculator
        gst_label = QLabel("GST Calculations")
        gst_label.setFont(QFont('Courier New', 15, QFont.Weight.Bold))
        gst_label.setStyleSheet(f"color: {COLOR_ACCENT if (COLOR_ACCENT := '#5b5b5b') else '#555'}; padding-top: 10px;")
        left_panel.addWidget(gst_label)

        gst_buttons_layout = QGridLayout()
        gst_buttons_layout.setHorizontalSpacing(10)
        gst_buttons_layout.setVerticalSpacing(8)

        # Preset GST rates (5%,12%,18%,28%) with + and - GST buttons
        gst_rates = [5, 12, 18, 28]

        for idx, rate in enumerate(gst_rates):
            btn_add = GSTButton(f"+{rate}% GST")
            btn_add.clicked.connect(partial(self.gst_add, rate))
            gst_buttons_layout.addWidget(btn_add, idx, 0)

            btn_sub = GSTButton(f"-{rate}% GST")
            btn_sub.clicked.connect(partial(self.gst_sub, rate))
            gst_buttons_layout.addWidget(btn_sub, idx, 1)

        # Custom GST buttons
        btn_custom_add = GSTButton("+Custom GST")
        btn_custom_add.clicked.connect(self.custom_gst_add)
        gst_buttons_layout.addWidget(btn_custom_add, len(gst_rates), 0)

        btn_custom_sub = GSTButton("-Custom GST")
        btn_custom_sub.clicked.connect(self.custom_gst_sub)
        gst_buttons_layout.addWidget(btn_custom_sub, len(gst_rates), 1)

        left_panel.addLayout(gst_buttons_layout)

        # GST result label
        self.gst_result = QLabel("")
        self.gst_result.setFont(QFont('Courier New', 13))
        self.gst_result.setStyleSheet(f"color: {COLOR_ACCENT}")
        self.gst_result.setFixedHeight(40)
        self.gst_result.setAlignment(Qt.AlignmentFlag.AlignCenter)
        left_panel.addWidget(self.gst_result)

        # Right panel: advertisement banner placeholder
        right_panel = QVBoxLayout()
        right_panel.setSpacing(5)

        ad_label = QLabel("Advertisement")
        ad_label.setFont(QFont('Courier New', 16, QFont.Weight.Bold))
        ad_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
        ad_label.setStyleSheet(f"color: {COLOR_ACCENT}")
        right_panel.addWidget(ad_label)

        self.ad_banner = QLabel()
        self.ad_banner.setFixedSize(300, 140)
        self.ad_banner.setStyleSheet(f"background: #ccc; border: 2px solid #666; border-radius:8px;")
        self.ad_banner.setAlignment(Qt.AlignmentFlag.AlignCenter)
        self.ad_banner.setText("Your Ad Here")
        right_panel.addWidget(self.ad_banner)

        right_panel.addStretch()

        main_layout.addLayout(left_panel, 3)
        main_layout.addLayout(right_panel, 1)

        # Initialize calculator state
        self.reset_calc()

    def reset_calc(self):
        self.expression = ''
        self.update_display('0')
        self.gst_result.clear()

    def update_display(self, text):
        self.display.setText(text)

    def handle_button_press(self, text):
        # No status bar updates — only update display line
        if text == 'C':
            self.expression = ''
            self.update_display('0')
            self.gst_result.clear()
            return
        elif text == '⌫':
            if len(self.expression) > 0:
                self.expression = self.expression[:-1]
            if not self.expression:
                self.update_display('0')
            else:
                self.update_display(self.expression)
            self.gst_result.clear()
            return
        elif text == '=':
            self.calculate_result()
            return

        if text in '0123456789.':
            self.expression += text
        else:
            # Operators
            if self.expression and self.expression[-1] in '+-*/':
                # Replace last operator
                self.expression = self.expression[:-1] + self.operator_map(text)
            else:
                # Append operator
                self.expression += self.operator_map(text)

        self.update_display(self.expression)
        self.gst_result.clear()

    def operator_map(self, op):
        return {'+': '+', '-': '-', '×': '*', '÷': '/'}[op]

    def calculate_result(self):
        if not self.expression:
            self.update_display('0')
            return

        try:
            # Evaluate the expression
            result = eval(self.expression, {"__builtins__": None}, {})
            if isinstance(result, float):
                result = round(result, 8)

            display_value = str(result)
            self.update_display(display_value)
            self.expression = display_value
            self.gst_result.clear()
        except Exception:
            self.gst_result.setText("Error: Invalid Expression")

    def get_display_number(self):
        try:
            val = float(self.display.text())
            return val
        except Exception:
            return None

    def gst_add(self, rate):
        base = self.get_display_number()
        if base is None:
            self.gst_result.setText("Invalid number to add GST")
            return
        res = calculate_gst(base, rate)
        self.gst_result.setText(f"Total w/ {rate}% GST = ₹{res.total:,.2f}")
        self.update_display(f"{res.total:.2f}")

    def gst_sub(self, rate):
        total = self.get_display_number()
        if total is None:
            self.gst_result.setText("Invalid number to subtract GST")
            return
        divisor = 1 + rate / 100
        base = total / divisor
        self.gst_result.setText(f"Base price (excl. {rate}% GST) = ₹{base:,.2f}")
        self.update_display(f"{base:.2f}")

    def custom_gst_add(self):
        rate, ok = QInputDialog.getDouble(self, "Custom GST", "Enter GST Rate %:", decimals=2, min=0, max=100)
        if ok:
            self.gst_add(rate)

    def custom_gst_sub(self):
        rate, ok = QInputDialog.getDouble(self, "Custom GST", "Enter GST Rate %:", decimals=2, min=0, max=100)
        if ok:
            self.gst_sub(rate)


def main():
    app = QApplication(sys.argv)
    app.setStyle('Fusion')  # better looks on some platforms
    calc = ClassicCalculator()
    calc.show()
    sys.exit(app.exec())


if __name__ == '__main__':
    main()" and give whole working code back