Skip to content

Commit 24bbaea

Browse files
committed
Fix offline BLint: find extension module path
1 parent e1ab6f1 commit 24bbaea

File tree

3 files changed

+23
-12
lines changed

3 files changed

+23
-12
lines changed

__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def reload_recursive_ex(module):
5151
bl_info = {
5252
'name': 'BLint',
5353
'author': 'Spencer Magnusson',
54-
'version': (1, 4, 2),
54+
'version': (1, 4, 3),
5555
'blender': (3, 6, 0),
5656
'description': 'Custom project linting',
5757
'location': 'Scene',

blender_manifest.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ schema_version = "1.0.0"
33
# Example of manifest file for a Blender extension
44
# Change the values according to your extension
55
id = "blint"
6-
version = "1.4.2"
6+
version = "1.4.3"
77
name = "BLint"
88
tagline = "Project-level quality checks for Blender"
99
maintainer = "Spencer Magnusson <[email protected]>"

offline/blinter_file_checker.py

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,14 @@ def print_issues(issue_iter: list['LintIssue'], issue_order: list[tuple]):
4545
log_info('{}:{}:{}'.format(issue.severity_icon, issue.category_icon, issue.description))
4646

4747

48-
def fix_issues(issue_iter):
48+
def fix_issues(blint, issue_iter):
4949
"""Runs fixes on each issue that has a fix option.
5050
5151
:param issue_iter: list of issues
5252
"""
5353
orig_num_issues = len(issue_iter)
5454
bpy.ops.scene_analyzer.fix_issue_all()
55-
reload_issues(context)
55+
blint.save_load.reload_issues(context)
5656
curr_issues = window_manager.lint_issues
5757
curr_num_issues = len(curr_issues)
5858
num_fixed = orig_num_issues - curr_num_issues
@@ -66,35 +66,46 @@ def fix_issues(issue_iter):
6666

6767
# get lint rules from preferences
6868
try:
69-
from blint.model.lint_issue import get_sort_value
70-
from blint.save_load import reload_issues
69+
import blint
7170
except ImportError:
72-
log_error('blint not found, the blint addon must be installed and enabled!')
73-
sys.exit(1)
71+
try:
72+
# find blint as an extension
73+
74+
import sys
75+
module_path = min([p for p in sys.modules.keys() if 'blint' in p], key=len, default=None)
76+
if module_path is None:
77+
raise ImportError
78+
blint = sys.modules[module_path]
79+
except ImportError:
80+
log_error('blint not found, the blint addon must be installed and enabled!')
81+
sys.exit(1)
7482

7583
context = bpy.context
7684
window_manager = context.window_manager
7785

7886
context.scene.render.engine = 'CYCLES'
7987

80-
reload_issues(context)
88+
blint.save_load.reload_issues(context)
8189

8290
# print blender file name
8391
try:
8492
if len(window_manager.lint_issues) == 0:
8593
log_info('No issues found')
8694
else:
8795
issues = window_manager.lint_issues
88-
issue_sort_vals = [(idx, get_sort_value(issue), issue.description) for idx, issue in enumerate(issues)]
96+
issue_sort_vals = [
97+
(idx, blint.model.lint_issue.get_sort_value(issue), issue.description)
98+
for idx, issue in enumerate(issues)
99+
]
89100
issue_sort_vals.sort(key=lambda x: (x[1], x[2]))
90101
print_issues(issues, issue_sort_vals)
91102

92103
num_fixable = len([True for issue in issues if issue.fix_expr])
93104
if num_fixable > 0:
94105
if auto_fix:
95106
log_info('Fixing {} of {} issues...'.format(num_fixable, len(issues)))
96-
fix_issues(issues)
97-
reload_issues(context)
107+
fix_issues(blint, issues)
108+
blint.save_load.reload_issues(context)
98109
else:
99110
log_info('{} of {} issues can be automatically fixed'.format(num_fixable, len(issues)))
100111

0 commit comments

Comments
 (0)