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 #793

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

Solution #793

wants to merge 4 commits into from

Conversation

serg121192
Copy link

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! 😊 There are a few critical issues that need to be addressed before we can approve it. Specifically, the command validation logic needs to be improved to ensure it correctly identifies the "mv" command. Additionally, the type annotations in the __exit__ method should be updated to match the expected types for exception handling. These changes are important to ensure the functionality and reliability of your code. Once these issues are resolved, your code will be in great shape! Keep up the great work! 🚀

✨ 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.

Comment on lines 19 to 21
exc_type: str,
exc_val: str,
exc_tb: str

Choose a reason for hiding this comment

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

The type annotations for exc_type, exc_val, and exc_tb in the __exit__ method are incorrect. According to Python's context manager protocol, exc_type should be of type Optional[Type[BaseException]], exc_val should be Optional[BaseException], and exc_tb should be Optional[TracebackType]. Consider updating these annotations to reflect the correct types.

app/main.py Outdated

def move_file(command: str) -> None:
split_cmd = command.split()
if len(split_cmd) != 3 or "mv" not in split_cmd:

Choose a reason for hiding this comment

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

The condition "mv" not in split_cmd is not sufficient to validate the command. It should specifically check if split_cmd[0] is "mv" to ensure the command starts with the correct keyword.

Comment on lines +24 to +25
path = moved_file
moved_file += "/file2.txt"

Choose a reason for hiding this comment

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

Appending "/file2.txt" to moved_file without checking if it already ends with a file name could lead to incorrect paths. Consider verifying if moved_file already specifies a file name before appending.

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.

Great effort on implementing the MoveFileManager class and related functions! 🎉 While there are some issues to address, such as handling directories correctly, ensuring consistent code style, and improving exception handling, this approval is to encourage you to keep learning and refining your skills. Please review the comments to enhance your code, especially focusing on critical areas like context manager implementation and path handling. Keep up the good work and continue improving!

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

@@ -0,0 +1,25 @@
from os import remove, makedirs, path

Choose a reason for hiding this comment

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

The import statement is incorrect. You should use 'from os import remove, makedirs' and 'import os.path as path' to correctly import the path module.

self.source_file_name = source_file_name
self.path = path

def __enter__(self) -> None:

Choose a reason for hiding this comment

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

The enter method should return 'self' or another object to be used in the 'with' statement. Currently, it returns None, which might not be the intended behavior.

Comment on lines +19 to +25
def __exit__(
self,
exc_type: Optional[Type[BaseException]],
exc_val: Optional[Type[BaseException]],
exc_tb: Optional[TracebackType]
) -> None:
remove(self.source_file_name)

Choose a reason for hiding this comment

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

The exit method should handle exceptions properly. Consider checking if exc_type is not None and handling the exception accordingly, or re-raising it if necessary.

moved_file: str,
path: str
) -> None:
with MoveFileManager(source_file, path):

Choose a reason for hiding this comment

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

Ensure that the MoveFileManager context manager is correctly implemented to handle file operations as expected. The current implementation in 'context_manager.py' has issues that need to be resolved for this to work properly.


def move_file(command: str) -> None:
split_cmd = command.split()
if len(split_cmd) != 3 or split_cmd[0] != "mv":

Choose a reason for hiding this comment

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

The condition checks if the command is in the correct format. Ensure that the command strictly follows the format 'mv <source_file> <moved_file>'. Consider adding more detailed error messages or handling for different types of incorrect input.

break
else:
path = moved_file
moved_file += "/file2.txt"

Choose a reason for hiding this comment

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

Appending '/file2.txt' to 'moved_file' assumes that the destination is a directory. Ensure that this assumption is valid or handle cases where it might not be.

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.

3 participants