Conversation
- Recreate generate_raw.py script in the root directory. - Update .gitignore to stop ignoring generated API files and error exceptions. - Run generate_raw.py to populate pyrogram/raw/ and pyrogram/errors/exceptions/. Co-authored-by: 5hojib <107526130+5hojib@users.noreply.github.com>
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
Summary of ChangesHello @5hojib, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request focuses on improving the maintainability and accuracy of the Telegram API integration by introducing a dedicated script for API code generation and updating the Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces a script for generating raw API files and includes the newly generated files. The change to .gitignore to track these files is appropriate. However, I've identified a critical issue in the generated exception files: there are duplicate class definitions due to a flaw in the code generation logic. This will cause runtime errors and incorrect exception handling. I've also pointed out a minor issue with an empty docstring in one of the generated classes.
| class AuthRestart(InternalServerError): | ||
| """Internal error (debug info {value}), please repeat the method call.""" | ||
| ID = "AUTH_RESTART_X" | ||
| """``str``: RPC Error ID""" | ||
| MESSAGE = __doc__ |
There was a problem hiding this comment.
This class AuthRestart is a redefinition of the class with the same name on lines 21-25. This is invalid in Python and will cause the first definition to be overwritten at runtime, leading to incorrect error handling for one of the RPC errors (AUTH_RESTART or AUTH_RESTART_X).
This seems to be caused by a bug in the code generation script where different error IDs are mapped to the same class name. A similar issue exists for EMAIL_UNCONFIRMED and EMAIL_UNCONFIRMED_X which will cause a duplicate EmailUnconfirmed class in bad_request_400.py.
The generator should create unique class names for each error ID, for example by turning _X into X in the class name.
| """``str``: RPC Error ID""" | ||
| MESSAGE = __doc__ | ||
| class ChatFromCallChanged(InternalServerError): | ||
| """""" |
There was a problem hiding this comment.
This PR adds a
generate_raw.pyscript to the root directory to allow manual triggering of the Telegram API code generation. It also updates.gitignoreto ensure the generated files inpyrogram/raw/andpyrogram/errors/exceptions/are tracked in the repository, as they were previously ignored but are required for the library to function. The API files have been regenerated using the provided compilers.PR created automatically by Jules for task 15218819098285557598 started by @5hojib