llnl / llnl/OGhidra

Remove hasattr usage in code base

Open
#30 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
440
Forks
48
Avg merge
28m
Merged PRs (30d)
1

Description

There are hundreds of instances where we are using `hasattr` in the code to refer to attributes in our python objects. There doesn't seem to be any good reason to do it this way and it makes for refactoring, code navigation, and debugging much more difficult.

An example:
```
# Store the function summary for future reference
if hasattr(self.bridge, "function_summaries"):
self.bridge.function_summaries[function_name] = ai_analysis.strip()

# Add to renamed functions panel for tracking (even if not renamed)
if hasattr(self, "renamed_functions_panel") and self.renamed_functions_panel:
# Extract address from current function result
```

Remove as many of these unnecessary `hasattr` as possible.

Contributor guide

No contributing guide indexed for this repository

Research direction

Search the Python codebase for `hasattr` and review the surrounding attribute access, starting with the `self.bridge.function_summaries` and `self.renamed_functions_panel` examples in the issue. Separate unnecessary checks from cases that may be required for optional attributes, then run the repository's available checks to confirm behavior is preserved. Done means removing as many unnecessary uses as practical without breaking attribute access.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.