100 parser.add_argument('--flatness', |
100 parser.add_argument('--flatness', |
101 action = 'store_true', |
101 action = 'store_true', |
102 help = 'finds a primitive by name and prints out in which ' |
102 help = 'finds a primitive by name and prints out in which ' |
103 'dimensions it is flat in', |
103 'dimensions it is flat in', |
104 ) |
104 ) |
|
105 parser.add_argument('--description', |
|
106 action = 'store_true', |
|
107 help = 'finds a primitive by name and prints out its description', |
|
108 ) |
105 args = parser.parse_args() |
109 args = parser.parse_args() |
106 config = load_config('ldcheck.cfg') |
110 config = load_config('ldcheck.cfg') |
107 for ldconfig_ldr_path in find_ldconfig_ldr_paths(config): |
111 for ldconfig_ldr_path in find_ldconfig_ldr_paths(config): |
108 with ldconfig_ldr_path.open() as ldconfig_ldr: |
112 with ldconfig_ldr_path.open() as ldconfig_ldr: |
109 load_colours(ldconfig_ldr) |
113 load_colours(ldconfig_ldr) |
110 if args.flatness: |
114 if args.flatness or args.description: |
111 import filecache |
115 import filecache |
112 cache = filecache.SubfileCache( |
116 cache = filecache.SubfileCache( |
113 ldraw_directories = config['libraries'], |
117 ldraw_directories = config['libraries'], |
114 ) |
118 ) |
115 subfile = cache.prepare_file(args.filename) |
119 subfile = cache.prepare_file(args.filename) |
116 if not subfile.valid: |
120 if not subfile.valid: |
117 print(subfile.problem) |
121 print(subfile.problem) |
118 else: |
122 elif args.flatness: |
119 if subfile.flatness: |
123 if subfile.flatness: |
120 print(str.format( |
124 print(str.format( |
121 'Flatness: {}', |
125 'Flatness: {}', |
122 ', '.join(subfile.flatness), |
126 ', '.join(subfile.flatness), |
123 )) |
127 )) |
124 else: |
128 else: |
125 print('File is not flat in any dimensions') |
129 print('File is not flat in any dimensions') |
|
130 elif args.description: |
|
131 print('Description:', repr(subfile.description)) |
126 else: |
132 else: |
127 with open(args.filename) as file: |
133 with open(args.filename) as file: |
128 from os.path import basename |
134 from os.path import basename |
129 model = parse.read_ldraw( |
135 model = parse.read_ldraw( |
130 file, |
136 file, |