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

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.""" 

14 

15import argparse 

16 

17 

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 

30 

31 

32def main(args=None): 

33 """Execute calculate command.""" 

34 parser = create_parser() 

35 parsed = parser.parse_args(args) 

36 

37 from ..core._Calculator import Calculator 

38 

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 

43 

44# EOF