Skip to main content

SuperHELP - Help for Humans!

Project description

https://github.com/grantps/superhelp

Example HTML output

version number: 1.0.2 author: Grant Paton-Simpson

Overview

SuperHELP is Help for Humans! The goal is to provide customised help for simple code snippets. SuperHELP is not intended to replace the built-in Python help but to supplement it for basic Python code structures. SuperHELP will also be opinionated. Help can be provided in a variety of contexts including the terminal and web browsers (perhaps as part of on-line tutorials).

Quick Start

Click the button below to open a Binder Jupyter Notebook you can play around in e.g. get advice on a snippet or line of Python

Binder

or put the following at the top of your Python script and run the script:

import superhelp
superhelp.this()

Installation

Note - Python 3.6+ only. If you have an older version of Python use the Binder Jupyter Notebook button instead (see higher up)

To install

  1. Use pip e.g.

    $ pip3 install superhelp

or similar

$ python3 -m pip install superhelp
  1. Or clone the repo

    $ git clone https://github.com/grantps/superhelp.git $ python3 setup.py install

Example Use Cases

  • Charlotte likes to check her code before others see it so includes

      import superhelp
      superhelp.this(warnings_only=True)
    

    at the top of each script. When she is happy with the code she comments those two lines out.

  • Avi is a Python beginner and wants to get advice on a five-line function he wrote to display greetings to a list of people. He learns about Python conventions for variable naming and better ways of combining strings.

  • Zach wants to get advice on a named tuple. He learns how to add doc strings to individual fields.

  • Noor is considering submitting some code to Stack Overflow but wants to improve it first (or possibly get ideas for a solution directly). She discovers that a list comprehension might work. She also becomes aware of dictionary comprehensions for the first time.

  • Al has written a simple Python decorator but is wanting to see if there is anything which can be improved. He learns how to use functool.wrap from an example provided.

  • Moana is an experienced Python developer but tends to forget things like doc strings in her functions. She learns a standard approach and starts using it more often. Moana also finds the summarised linting useful.

  • Paul wants to check the quality of some code before including it in his project. He learns about some issues and makes improvements before integrating it.

Example Usage

Screenshot from HTML output

Example HTML output

Screenshot from Terminal output

Example Terminal output

Screenshot from Markdown output

Example Markdown output

Using SuperHELP on the Notebook

Add new cell at end with content like:

%%shelp

def sorted(my_list):
    sorted_list = my_list.sort()
    return sorted_list

and run it to get advice.

The notebook has more detailed instructions at the top.

Using SuperHELP on a Local Installation

Inside your script

Put the following at the top of your script and then run the script (note - there are two underscores on either side of file):

import superhelp
superhelp.this()

If you don't want the default web output you can specify another output such as 'cli' (command line interface) or 'md' (markdown):

import superhelp
superhelp.this(output='md')

If you don't want the default 'Extra' level of messages you can specify a different detail level ('Brief' or 'Main') e.g.

import superhelp
superhelp.this(output='md', detail_level='Brief')

or:

import superhelp
superhelp.this(detail_level='Main')

If you only want to see warnings you can specify warnings only e.g.

import superhelp
superhelp.this(warnings_only=True)

Changes since 0.9.21:

Changed:

output (replaces displayer)
detail_level (replaces level)

Added:

warnings_only

From the command line (terminal / console)

$ shelp -h  ## get help on usage

$ shelp --code "people = ['Tomas', 'Sal', 'Raj']" --output html --detail-level Main
$ shelp -c "people = ['Tomas', 'Sal', 'Raj']" -o html -d Main

$ shelp --file-path my_script.py --output cli  --detail-level Extra
$ shelp -f my_snippet.py -o cli -d Brief

$ shelp -w --code "people = ['Tomas', 'Sal', 'Raj']"
$ shelp --warnings-only --code "people = ['Tomas', 'Sal', 'Raj']"

$ shelp  ## to see advice on an example snippet displayed (detail level 'Extra')

Changes since 0.9.21:

Changed:

--output and -o (replaces --displayer and -d)
--detail-level and -d (replaces --level and -l)

Added:

--warnings-only and -w

Stretch Ideas

  • Extend beyond standard library into popular libraries like requests, bottle, flask etc.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

superhelp-1.0.2.tar.gz (297.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

superhelp-1.0.2-py3-none-any.whl (267.3 kB view details)

Uploaded Python 3

File details

Details for the file superhelp-1.0.2.tar.gz.

File metadata

  • Download URL: superhelp-1.0.2.tar.gz
  • Upload date:
  • Size: 297.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for superhelp-1.0.2.tar.gz
Algorithm Hash digest
SHA256 9b9198b2f62a560e936c98eb30d7c99c3a93c4abfe7b84d0ab31b90f1585442c
MD5 d96e1c6895e9dc3c4134dc3273b5eab9
BLAKE2b-256 6a9270877757e2ac49255f199a50f864f109caf6d05d9775c4c9f08bdc3660e3

See more details on using hashes here.

File details

Details for the file superhelp-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: superhelp-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 267.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.8.2

File hashes

Hashes for superhelp-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2c16638cb10f6ded1fe594f82ba3a759fb6dd9f73fe866e3230068f0d25d2c3b
MD5 80302850ac6a1817b7081dbbe784aaab
BLAKE2b-256 07230c52666750cedbbc238fdd3a69bfebe12164348c2600620c3edb5cb724d5

See more details on using hashes here.

Supported by

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