Coverage for src/pip_project_template/cli/calculate.py: 100.00%
20 statements
« prev ^ index » next coverage.py v7.9.2, created at 2025-08-28 08:53 +1000
« prev ^ index » next coverage.py v7.9.2, created at 2025-08-28 08:53 +1000
1#!/usr/bin/env python3
2# -*- coding: utf-8 -*-
3# Timestamp: "2025-08-27 01:09:59 (ywatanabe)"
4# File: /home/ywatanabe/proj/pip-project-template/src/cli/calculate.py
5# ----------------------------------------
6from __future__ import annotations
7import os
8__FILE__ = (
9 "./pip-project-template/src/cli/_calculate.py"
10)
11__DIR__ = os.path.dirname(__FILE__)
12# ----------------------------------------
13"""Calculate command."""
15import argparse
18def create_parser():
19 """Create parser for calculate command."""
20 parser = argparse.ArgumentParser(description="Perform calculations", add_help=False)
21 parser.add_argument("a", type=float, help="First number")
22 parser.add_argument("b", type=float, help="Second number")
23 parser.add_argument(
24 "--operation",
25 choices=["add", "multiply"],
26 default="add",
27 help="Operation to perform",
28 )
29 return parser
32def main(args=None):
33 """Execute calculate command."""
34 parser = create_parser()
35 parsed = parser.parse_args(args)
37 from ..core._Calculator import Calculator
39 calc = Calculator()
40 result = calc.calculate(parsed.a, parsed.b, parsed.operation)
41 print(f"{parsed.a} {parsed.operation} {parsed.b} = {result}")
42 return 0
44# EOF