ldcheck.py

changeset 85
4438502fd3e0
parent 81
e65d82501a38
child 92
b8d72909d593
equal deleted inserted replaced
84:55d52e25267f 85:4438502fd3e0
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,

mercurial