Spaces:
Running
Running
license: apache-2.0 | |
title: PyLintPro | |
sdk: gradio | |
emoji: 👁 | |
colorFrom: green | |
colorTo: yellow | |
short_description: A Gradio-based web application | |
sdk_version: 5.17.1 | |
# PyLintPro | |
 | |
 | |
 | |
 | |
[](https://huggingface.co./spaces/Canstralian/PyLintPro) | |
PyLintPro is a Gradio-based web application designed to help developers improve Python code by making it adhere to [Flake8](https://flake8.pycqa.org/) and [PEP 8](https://pep8.org/) standards. Simply paste your code or upload a `.py` file, and PyLintPro will return a linted version along with a detailed report of fixes. Whether you're working on personal projects or professional codebases, PyLintPro streamlines the process of cleaning and optimizing your Python code. | |
## Features | |
- **Code Linting**: Checks Python code against Flake8 rules to identify common issues such as style violations, potential bugs, and complexity problems. | |
- **PEP 8 Compliance**: Ensures your code follows the PEP 8 style guide, improving readability and maintainability. | |
- **File Upload Support**: Upload `.py` files and get the linted code and report back. | |
- **Real-time Linting**: Paste code into the textbox for immediate feedback and a fixed version of your code. | |
- **Customizable Linting Rules**: Choose which Flake8 rules to apply by selecting from a dropdown menu. | |
- **Code Fixing with autopep8**: Automatically fix common style issues in your Python code using the `autopep8` tool. | |
- **Linting Reports**: Get a detailed report on your code’s style issues, including statistics on what was fixed and what still needs attention. | |
- **Minimalist, User-friendly Interface**: Powered by Gradio, with a clean and intuitive interface that’s easy to navigate. | |
## Getting Started | |
### Prerequisites | |
Before using PyLintPro, ensure you have the following installed: | |
- **Python 3.9+**: PyLintPro works with Python 3.9 and above. | |
- **Flake8**: A Python tool for enforcing PEP 8 coding style. | |
- **autopep8**: A tool to automatically fix PEP 8 issues in Python code. | |
### Installation | |
1. Clone the repository: | |
```bash | |
git clone https://github.com/canstralian/PyLintPro.git | |
cd PyLintPro | |
``` | |
2. Install the required dependencies: | |
```bash | |
pip install -r requirements.txt | |
``` | |
3. Run the app locally: | |
```bash | |
python app.py | |
``` | |
4. Navigate to the local address in your browser (e.g., `http://127.0.0.1:7860`) to start linting your Python code. | |
### Usage | |
1. **Paste Code**: In the text input box, paste your Python code. | |
2. **Upload File**: Click the "Upload Code File" button to select a `.py` file from your computer. The app will process the file and display the linted code. | |
3. **Select Linting Rules**: Choose which Flake8 rules to apply by selecting from the provided list of common rules. | |
4. **Submit**: Click the "Submit" button to run the linting process. The app will display: | |
- The **linted code** with improvements. | |
- A **linting report** showing the issues identified and fixed. | |
### Example | |
Here's an example of how to use the app: | |
1. Paste this Python code into the input box: | |
```python | |
import os | |
import sys | |
def main(): | |
print('Hello World') | |
``` | |
2. After clicking "Submit", the app will return the following linted version: | |
```python | |
import os | |
import sys | |
def main(): | |
print('Hello World') | |
``` | |
**Linting Report**: | |
- `E701`: Multiple statements on one line. | |
- `W292`: No newline at end of file. | |
### Options & Customization | |
- **Choose Linting Rules**: Select multiple Flake8 rules to customize which issues should be flagged. You can choose to ignore specific warnings such as line length issues (`E501`) or unused imports (`F401`). | |
- **File Upload Support**: If you have an existing `.py` file, simply upload it, and the app will automatically lint the code. | |
### Advanced Configuration | |
PyLintPro also supports several advanced configurations: | |
- **Ignore Specific Rules**: You can specify which Flake8 rules to ignore when running the linting process. | |
- **Custom PEP 8 Guidelines**: If your project requires custom coding standards, you can configure PyLintPro to enforce those standards by modifying the `flake8` configuration file. | |
## Contributing | |
We welcome contributions to PyLintPro! If you'd like to contribute, please fork the repository and submit a pull request. Here are some ways you can help: | |
- Report bugs or issues. | |
- Suggest new features or enhancements. | |
- Submit code fixes or improvements. | |
### How to Contribute | |
1. Fork the repository. | |
2. Create a new branch (`git checkout -b feature-name`). | |
3. Make your changes and commit them (`git commit -m 'Add feature'`). | |
4. Push to the branch (`git push origin feature-name`). | |
5. Create a pull request. | |
Please ensure that your code adheres to the following: | |
- Follow PEP 8 and Flake8 standards. | |
- Ensure that tests pass and linting is successful. | |
## License | |
PyLintPro is licensed under the MIT License. See the [LICENSE](LICENSE) file for details. | |
## Acknowledgements | |
- [Gradio](https://gradio.app/): Used for building the user-friendly interface. | |
- [Flake8](https://flake8.pycqa.org/): Linting tool used to check code against PEP 8. | |
- [autopep8](https://github.com/hhatto/autopep8): Used to auto-correct PEP 8 violations. | |
--- | |
### Example Code Snippet for Reference | |
Here’s an example Python code snippet that can be used with PyLintPro: | |
```python | |
import sys | |
def hello_world(): | |
print("Hello, World!") | |
if __name__ == "__main__": | |
hello_world() | |
Known Issues | |
• File Upload Limit: Currently, the maximum file size for uploads is 10 MB. | |
• Performance on Large Files: The app may take longer to process large files or files with many lines of code. | |
Contact | |
For more information, contact us at [email protected]. | |
Footer | |
PyLintPro is powered by Flake8 and autopep8, designed to enhance Python code quality with minimal effort. |