Metadata-Version: 2.1
Name: simple-calculator-tc2
Version: 1.0
Summary: Calculator with memory, supports + - / * sqrt()
Home-page: UNKNOWN
Author: Sofiia GRYN
Author-email: sgryn18@gmail.com
License: UNKNOWN
Description: # Calculator вЂ” Simple Memory-Based Arithmetic Module
        
        *A tiny Python class that keeps a running **memory** and performs validated arithmetic operations.*
        
        > This document explains the module, how to install/use it. It also includes a miniвЂ‘tutorial in English
        
        ---
        
        ## Features
        
        - `Calculator.memory` вЂ” readвЂ‘only property exposing the current memory value.
        - Validated inputs: only `int` or `float` are accepted; other types raise `TypeError`.
        - Arithmetic: `add`, `subtract`, `multiply`, `divide`.
        - Utilities: `sqrt` (adds в€љn to memory), `memory_reset` (resets to `0.0`).
        - Clear, GoogleвЂ‘style docstrings and helpful error messages.
        
        ---
        
        ## Installation
        
        This is a singleвЂ‘file module. You can:
        - drop `calculator.py` into your project, or
        - install it as an editable local package if you later add `pyproject.toml`/`setup.cfg`.
        
        **Python version:** 3.9+ recommended.
        
        ---
        
        ## Quick Start (Tutorial)
        
        ### 1) Import and construct
        ```python
        from calculator import Calculator
        
        c = Calculator()
        print(c.memory)   # 0.0
        ```
        
        ### 2) Basic operations
        ```python
        c.add(10)         # -> 10.0
        c.subtract(3.5)   # -> 6.5
        c.multiply(2)     # -> 13.0
        c.divide(4)       # -> 3.25
        ```
        
        ### 3) Square root accumulation
        ```python
        c.sqrt(9)         # adds 3, -> 6.25
        ```
        
        ### 4) Reset
        ```python
        c.memory_reset()  # -> 0.0
        ```
        
        ### 5) Defensive behavior (errors)
        ```python
        
        try:
            c.add("3")  # not allowed
        except TypeError as e:
            print(e)    # Argument must be an int or float
        
        try:
            c.divide(0) # division by zero
        except ZeroDivisionError as e:
            print(e)
        
        try:
            c.sqrt(-1)  # negative sqrt
        except ValueError as e:
            print(e)    # Cannot take square root of a negative real number
        
        # read-only property
        try:
            c.memory = 42
        except AttributeError as e:
            print(e)    # memory is read-only
        ```
        
        
        ## API Reference
        
        ### Class: `Calculator()`
        - **Properties**
          - `memory: float` вЂ” readвЂ‘only; returns the current memory value.
        - **Methods**
          - `add(n: float) -> float` вЂ” Adds `n` to memory.
          - `subtract(n: float) -> float` вЂ” Subtracts `n` from memory.
          - `multiply(n: float) -> float` вЂ” Multiplies memory by `n`.
          - `divide(n: float) -> float` вЂ” Divides memory by `n`. Raises `ZeroDivisionError` if `n == 0`.
          - `sqrt(n: float) -> float` вЂ” Adds `sqrt(n)` to memory. Raises `ValueError` if `n < 0`.
          - `memory_reset() -> float` вЂ” Resets memory to `0.0`.
        
        **Validation rule:** a private helper `_to_float` converts and validates inputs. Only `int` and `float` are accepted
        
        ---
Platform: UNKNOWN
Requires-Python: >=3.8
Description-Content-Type: text/markdown
