Remove invalid @staticmethod from module-level get_device_and_memory_breakdown
#41747
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Remove invalid staticmethod decorator from module-level function
get_device_and_memory_breakdown.This PR removes an incorrect @staticmethod decorator applied to the module-level function
get_device_and_memory_breakdown.The decorator caused a runtime error on Python 3.9, even though it appeared to work fine on newer Python versions.
See
trlstacktrace for Python 3.9: https://github.com/huggingface/trl/actions/runs/18605452485/job/53053774127Root cause
In Python 3.9 and earlier,
@staticmethodproduces a descriptor object that is not directly callable when defined outside a class.Starting with Python 3.10, CPython changed the behavior of
staticmethod: staticmethod objects gained a__call__method that delegates to the wrapped function, making them callable even outside a class context. However, this masked the underlying issue in newer Python versions.Fix
Remove the invalid decorator and leave the function as a normal callable at module scope.
This PR will fix huggingface/trl#4308
CC: @remi-or, who created the original PR: