Skip to main content

A Python Educational Linter

Project description

EduLint

Pypi Python versions Tests ReadTheDocs Docker image

EduLint is a Python linter aimed at helping novice programmers improve their coding style. Presently, it integrates flake8 and pylint, with some tweaks to their default configuration.

This repository contains the linter itself, which is packaged and published as a Pypi package edulint. There is also a web version running at edulint.com for easy use. Its source code is in another repository.

Demo GIF

Usage

Web version

Are you just starting with programming in Python? Then the web UI (website, repo) might be the best choice for you.

Python package

You can install the latest release with pip:

python3 -m pip install --user edulint

Once installed, you can run it as a Python module:

python3 -m edulint <file-to-lint>

Read the documentation for more options and configuration details.

Docker container

Don't want to install Python and Edulint as a Python package? You can also run it using Docker.

docker pull edulint/edulint-cli  # Optional

docker run -v ${PWD}:/app edulint/edulint-cli some_file.py

# Additional example that lints a file with absolute path /tmp/some_file.py
docker run -v /tmp:/app edulint/edulint-cli /app/some_file.py

It supports the same configuration options as the native Python package.

Road map (long-term)

  • Additional explanations for problems detected in code
  • More code quality defects (from WPS; detecting duplicate code)
  • Rewrite web to React to allow for additional functionality (more settings, better teacher onboarding, …)
  • Speed-up linting by switching to Ruff
  • VS Code and Thonny plugins

Sponsorship and academic collaboration

Are you interested in sponsoring this project, want to collaborate on an academic paper, or know of any interesting grants? Feel free to reach out to anna.rechtackova@mail.muni.cz.

Compatibility with other software

Python version

Supported: >= 3.8

Python 3.7 mostly works, but can fail in edge cases due to different parsing between package typed-ast (<=3.7) and Python's native ast (>=3.8). We discovered those using the existing test suite.

Pylint and Flake8

Right now Edulint has pinned specific versions of both packages, because part of the functionality is based on specific format of messages. In future we aim to rework the offending functionality and make it more version independent. For current state you can check the matrix in the GitHub action that tests it.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

edulint-2.6.2.tar.gz (134.5 kB view details)

Uploaded Source

Built Distribution

edulint-2.6.2-py3-none-any.whl (135.7 kB view details)

Uploaded Python 3

File details

Details for the file edulint-2.6.2.tar.gz.

File metadata

  • Download URL: edulint-2.6.2.tar.gz
  • Upload date:
  • Size: 134.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for edulint-2.6.2.tar.gz
Algorithm Hash digest
SHA256 a06ef468bb4988ff804b44e4014993ac5f054ebe1e55b6ff2a591c51e8394768
MD5 c97f9ebd9ee6aafcbf20ad1c4b424d17
BLAKE2b-256 7e79ac2c4a947f831208a284cf243f983b3e4beaa95f9af0e9fd5300580cad85

See more details on using hashes here.

File details

Details for the file edulint-2.6.2-py3-none-any.whl.

File metadata

  • Download URL: edulint-2.6.2-py3-none-any.whl
  • Upload date:
  • Size: 135.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for edulint-2.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 592148317b264fd6f9130785d94e205ac53a5aa9ea0c0d772f07513b20dd47d7
MD5 8df7d6d530b8d4ca52fdfcf9f33b303b
BLAKE2b-256 0b7f217b3a8adccb9d650f76c2a144bf407f759c1d5cadd1c6a2545d89386148

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page