66
77import argparse
88import sys
9- from typing import Optional
109
1110from . import __version__
1211from .constants import (
2221def create_parser () -> argparse .ArgumentParser :
2322 """Create the argument parser."""
2423 parser = argparse .ArgumentParser (
25- prog = ' cdl' ,
26- description = ' Crystal Description Language (CDL) Parser' ,
24+ prog = " cdl" ,
25+ description = " Crystal Description Language (CDL) Parser" ,
2726 formatter_class = argparse .RawDescriptionHelpFormatter ,
2827 epilog = """
2928Examples:
@@ -32,62 +31,33 @@ def create_parser() -> argparse.ArgumentParser:
3231 %(prog)s validate "hexagonal[6/mmm]:{10-10} + {0001}"
3332 %(prog)s --list-point-groups
3433 %(prog)s --list-systems
35- """
34+ """ ,
3635 )
3736
38- parser .add_argument (
39- '--version' ,
40- action = 'version' ,
41- version = f'%(prog)s { __version__ } '
42- )
37+ parser .add_argument ("--version" , action = "version" , version = f"%(prog)s { __version__ } " )
4338
4439 parser .add_argument (
45- 'command' ,
46- nargs = '?' ,
47- choices = ['parse' , 'validate' ],
48- help = 'Command to execute'
40+ "command" , nargs = "?" , choices = ["parse" , "validate" ], help = "Command to execute"
4941 )
5042
51- parser .add_argument (
52- 'cdl' ,
53- nargs = '?' ,
54- help = 'CDL string to parse/validate'
55- )
43+ parser .add_argument ("cdl" , nargs = "?" , help = "CDL string to parse/validate" )
5644
5745 parser .add_argument (
58- '--list-point-groups' ,
59- action = 'store_true' ,
60- help = 'List all point groups by system'
46+ "--list-point-groups" , action = "store_true" , help = "List all point groups by system"
6147 )
6248
63- parser .add_argument (
64- '--list-systems' ,
65- action = 'store_true' ,
66- help = 'List all crystal systems'
67- )
49+ parser .add_argument ("--list-systems" , action = "store_true" , help = "List all crystal systems" )
6850
69- parser .add_argument (
70- '--list-forms' ,
71- action = 'store_true' ,
72- help = 'List all named forms'
73- )
51+ parser .add_argument ("--list-forms" , action = "store_true" , help = "List all named forms" )
7452
75- parser .add_argument (
76- '--list-twins' ,
77- action = 'store_true' ,
78- help = 'List all twin laws'
79- )
53+ parser .add_argument ("--list-twins" , action = "store_true" , help = "List all twin laws" )
8054
81- parser .add_argument (
82- '--json' ,
83- action = 'store_true' ,
84- help = 'Output parsed result as JSON'
85- )
55+ parser .add_argument ("--json" , action = "store_true" , help = "Output parsed result as JSON" )
8656
8757 return parser
8858
8959
90- def main (args : Optional [ list ] = None ) -> int :
60+ def main (args : list | None = None ) -> int :
9161 """Main entry point for the CLI."""
9262 parser = create_parser ()
9363 parsed_args = parser .parse_args (args )
@@ -127,12 +97,13 @@ def main(args: Optional[list] = None) -> int:
12797 parser .print_help ()
12898 return 1
12999
130- if parsed_args .command == ' parse' :
100+ if parsed_args .command == " parse" :
131101 try :
132102 desc = parse_cdl (parsed_args .cdl )
133103
134104 if parsed_args .json :
135105 import json
106+
136107 print (json .dumps (desc .to_dict (), indent = 2 ))
137108 else :
138109 print ("Parsed successfully!" )
@@ -153,7 +124,7 @@ def main(args: Optional[list] = None) -> int:
153124 print (f"Parse error: { e } " , file = sys .stderr )
154125 return 1
155126
156- elif parsed_args .command == ' validate' :
127+ elif parsed_args .command == " validate" :
157128 is_valid , error = validate_cdl (parsed_args .cdl )
158129 if is_valid :
159130 print ("Valid CDL string" )
@@ -165,5 +136,5 @@ def main(args: Optional[list] = None) -> int:
165136 return 0
166137
167138
168- if __name__ == ' __main__' :
139+ if __name__ == " __main__" :
169140 sys .exit (main ())
0 commit comments