How authorsauravkushwaha/scientific-calculator works
This is a Tkinter scientific calculator with a deliberately separate, GUI-independent calculation engine. The main workflow is user input in the GUI, live preview or evaluation through the engine, safe expression evaluation, and display of the result. The engine also manages angle mode, memory, and calculation history. The README documents additional scientific functions and security behavior; excerpts do not show every implementation detail, so the graph omits uncertain internal links.
Main entry points: calculator_engine.py Calculator engine · scientific_calculator.py Tkinter app
Components 12
Calculator interface
- Tkinter app
scientific_calculator.py - Expression entry
scientific_calculator.py - Live preview
scientific_calculator.py - History panel
scientific_calculator.py
Calculation core
- Calculator engine
calculator_engine.py - Expression preprocessing
calculator_engine.py - Safe evaluator
calculator_engine.py - Number formatting
calculator_engine.py
Calculator state
- Angle mode
calculator_engine.py - Memory register
calculator_engine.py - Calculation history
calculator_engine.py
Other components
- Calculator user
Connections 17
- Calculator user → Expression entry: enters expression
- Calculator user → Tkinter app: uses controls
- Tkinter app → Expression entry: builds interface
- Expression entry → Live preview: triggers preview
- Live preview → Calculator engine: calls peek
- Tkinter app → Calculator engine: calls evaluate
- Calculator engine → Expression preprocessing: normalizes input
- Calculator engine → Safe evaluator: evaluates expression
- Safe evaluator → Angle mode: reads mode
- Calculator engine → Number formatting: formats result
- Calculator engine → Calculation history: updates history
- Calculator engine → Memory register: manages memory
- Tkinter app → Angle mode: toggles mode
- Tkinter app → Memory register: uses memory controls
- Tkinter app → History panel: refreshes panel
- History panel → Calculation history: reads entries
- Calculator engine → Tkinter app: returns result