# HG changeset patch # User Teemu Piippo # Date 1561393309 -10800 # Node ID a3536e51f6bcc3d919f1ec7da780adc7b8f8bb31 # Parent 109fb7cf658f2185cfbb2c75d8fef6132d7519ad fixed the cyclical dependency handling diff -r 109fb7cf658f -r a3536e51f6bc filecache.py --- a/filecache.py Mon Jun 24 19:08:24 2019 +0300 +++ b/filecache.py Mon Jun 24 19:21:49 2019 +0300 @@ -105,7 +105,7 @@ subfile.valid = False subfile.problem = 'Description not found' if subfile.valid: - subfile.vertices = set(parse.model_vertices(model)) + subfile.vertices = set(parse.model_vertices(model, file_cache = self)) subfile.flatness = {'x', 'y', 'z'} for vertex in subfile.vertices: # Use list(subfile.flatness) for iteration because the diff -r 109fb7cf658f -r a3536e51f6bc tests/subfiles.py --- a/tests/subfiles.py Mon Jun 24 19:08:24 2019 +0300 +++ b/tests/subfiles.py Mon Jun 24 19:21:49 2019 +0300 @@ -163,6 +163,8 @@ ''' import filecache cache = filecache.SubfileCache(model.ldraw_directories) + if model.header.valid: + cache.reference_stack.append(model.header.name) failed_subfiles = set() for subfile_reference, has_invertnext in subfile_references_with_invertnext(model): path = subfile_reference.subfile_path.lower() @@ -173,13 +175,14 @@ try: subfile = cache.prepare_file(path) except filecache.CyclicalReferenceError as e: + subfile = None failed_subfiles.add(path) yield report_problem( 'cyclical-reference', bad_object = subfile_reference, chain = str(e), ) - if not subfile.valid: + if subfile and not subfile.valid: yield report_problem( 'bad-subfile', bad_object = subfile_reference, @@ -187,7 +190,7 @@ problem_text = subfile.problem, ) failed_subfiles.add(path) - else: + elif subfile: # Test for use of moved-to files import re match = re.search(r'^\~Moved(?: to (.+))?$', subfile.description)