Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Solution #1406

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Solution #1406

wants to merge 3 commits into from

Conversation

neeeksa
Copy link

@neeeksa neeeksa commented Nov 16, 2024

No description provided.

Copy link

@mateacademy-ai-mentor mateacademy-ai-mentor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


Thank you for your hard work on this pull request! 😊 Your implementation of the caching decorator is mostly correct and meets many of the task requirements. However, there's a critical issue that needs to be addressed before we can approve the changes. The use of mutable arguments as keys in the dictionary can lead to runtime errors, as mutable types like lists or dictionaries are not hashable and will raise a TypeError. To fix this, ensure that args contains only immutable types, such as tuples of integers or strings. Once this issue is resolved, your code will be in great shape! Keep up the great work, and I look forward to your updated submission. 🚀

✨ Please rate this review in the Platform's notification center. I will be grateful for your feedback! ✨

🔄 Fix the issues, commit the changes, and then re-request my review using the Re-request review button in the Reviewers tab.

app/main.py Outdated Show resolved Hide resolved
Copy link

@mateacademy-ai-mentor mateacademy-ai-mentor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Summary

Great job on implementing the caching decorator! 🎉 Your code effectively meets the task requirements by ensuring that only immutable arguments are used, utilizing a dictionary for caching, and correctly handling multiple functions with their own storage. The output messages are also correctly implemented.

However, there's a critical issue to address: the current implementation catches a TypeError when arguments are not hashable and raises a ValueError. While this works, it would be more robust to convert mutable arguments to immutable ones before using them as keys. This can prevent runtime errors and improve the reliability of your code.

Please review the comments and consider these improvements for future projects. This decision is made to help you move forward with your learning journey. Keep up the great work and continue to learn from these experiences! 🚀

✨ Please rate this review in the Platform's notification center. I will be grateful for your feedback! ✨

app/main.py Outdated
Comment on lines 9 to 11
key = tuple(args)
except TypeError as e:
raise ValueError(f"All arguments must be hashable: {e}")

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The current implementation catches a TypeError if any argument is not hashable and raises a ValueError. While this handles the error, it would be better to ensure that only immutable types are used as keys. Consider converting mutable arguments to immutable ones, such as using a tuple of tuples for lists or dictionaries, to avoid this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants