Skip to main content

A CLI tool to do LeetCode and LeetCode-like exercises locally

Project description

localeet

A CLI tool to select and solve LeetCode and LeetCode-like problems locally

installation

pip install localeet

usage

localeet

This will find a random question from LeetCode's free question set. It will create a code file shell (Python by default) with the question description and other metadata in it in your current working directory. It will then pop open a code editor (VSCode by default) with the new file opened in it.

Examples of output files:

cli args

See the installed version of localeet with:

localeet --version
localeet -v

Using any of these CLI args will use the output path provided, and create any needed directories in that path as well.

localeet --output_path ~/leetcode
localeet --path problems
localeet -o ~/leetcode/problems/2023-7-22

You can set the max or min difficulty of the problem selected using a string or an int {1: easy, 2: medium, 3: hard}.

localeet --max_difficulty medium
localeet --max 1
localeet --min_difficulty 3
localeet --min hard

To specify a code editor other than VSCode, pass the CLI arg used to open said editor using one of these args:

localeet -e charm
localeet --editor subl
localeet --code_editor_open_command atom

To specify a language other than Python, use one of the following CLI arg formats:

localeet --programming_language rust
localeet --language go
localeet -l ts

Valid language options:

c++
cpp
java
python
python3
py
c
c#
cs
javascript
js
ruby
rb
swift
go
golang
scala
kotlin
kt
rust
rs
php
typescript
ts
racket
rkt
erlang
erl
elixir
ex
dart

Print the manual:

localeet --help

overriding defaults

If you want to set a different default value permanently, set it in your environment like in these examples:

export LOCALEET_DEFAULT_MAX_DIFFICULTY=medium
export LOCALEET_DEFAULT_MIN_DIFFICULTY=medium
export LOCALEET_DEFAULT_OUTPUT_PATH=./leetcode
export LOCALEET_DEFAULT_CODE_EDITOR_OPEN_COMMAND=vi
export LOCALEET_DEFAULT_LANGUAGE=cpp

contributions

local setup

    git clone https://github.com/dannybrown37/localeet.git
    python -m venv .venv
    source .venv/bin/activate
    pip install -U pip
    pip install -e .[dev, test]
    pre-commit install
    pytest tests -s -vv

contribution process

  1. Create a new branch
  2. Add features you wish to propose
  3. Stage and commit your changes, ensure pre-commit checks pass
  4. Push your branch
  5. Open a pull request
  6. Ensure Pull Request Verification CI/CD pipeline passes
  7. Get approved & merged
  8. Ensure Publish to PyPI pipeline passes

feature ideas

  • Add commitizen for auto version updating
  • Support submitting responses to LeetCode via CLI as well
  • Whatever your imagination holds

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

localeet-0.2.12.tar.gz (17.7 kB view details)

Uploaded Source

Built Distribution

localeet-0.2.12-py2.py3-none-any.whl (8.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file localeet-0.2.12.tar.gz.

File metadata

  • Download URL: localeet-0.2.12.tar.gz
  • Upload date:
  • Size: 17.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for localeet-0.2.12.tar.gz
Algorithm Hash digest
SHA256 8cfdf87d6ab00027f3d1afe0b9f5bfccc549e8da639b5da8b8bb21d5332481f1
MD5 3e400e1edf46e3c17b01cb1f93a93275
BLAKE2b-256 4698e2a558ae0ae51789ef78006a89dc467fa40105198ae59cd50062964511bf

See more details on using hashes here.

File details

Details for the file localeet-0.2.12-py2.py3-none-any.whl.

File metadata

  • Download URL: localeet-0.2.12-py2.py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for localeet-0.2.12-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 015db887a5da270871c259d969a02210cbead9f286fe9c81b932b57b9df4d2f8
MD5 4842dca5743ba281a06b0aeeb77fd666
BLAKE2b-256 f76049014b989d4480eec4f6fc46178d59240fd09f1b0d1fcbb1cc9645ae8f79

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