Skip to main content

Search Python code for algorithmic features

Project description

Build Status codecov Checked with mypy Codacy Badge Updates PyPI - Python Version GitHub Release GitHub code size in bytes paroxython SLOC tests SLOC helpers SLOC GitHub commit activity Code style: black License: MIT

Paroxython is a set of command-line tools which finds and tags algorithmic features (such as assignments, nested loops, tail-recursive functions, etc.) in a collection of small Python programs, typically gathered for educational purposes (e.g., examples, patterns, exercise corrections).

Each tag consists in a free-form label associated with its spanning lines. These labels are then mapped onto a knowledge taxonomy designed by the teacher with basic order constraints in mind (e.g., the fact that the introduction of the concept of early exit must come after that of loop, which itself requires that of control flow, is expressed with the following taxon: flow/loop/exit/early).

Source codes, labels and taxa are stored in a database, which can finally be filtered through a pipeline of inclusion, exclusion, impartment and hiding commands on programs or taxa.

Installation and test-drive

pip install paroxython

The following command should print a help message and exit:

paroxython --help

Under Jupyter notebook, you should first load the magic command:

%load_ext paroxython

Run it on a cell of Python code (line numbers added for clarity):

1   %%paroxython
2   def fibonacci(n):
3       result = []
4       (a, b) = (0, 1)
5       while a < n:
6           result.append(a)
7           (a, b) = (b, a + b)
8       return result
Taxon Lines
call/method/append 6
flow/loop/exit/late 5-7
flow/loop/while 5-7
metadata/program 2-8
metadata/sloc/8 2-8
operator/arithmetic/addition 7
subroutine/argument/arg 2
subroutine/function 2-8
test/inequality 5
type/number/integer/literal 4
type/number/integer/literal/zero 4
type/sequence/list 6
type/sequence/list/literal/empty 3
type/sequence/tuple/literal 4, 4, 7, 7
variable/assignment/parallel 4
variable/assignment/parallel/slide 7
variable/assignment/single 3

Documentation

Coming soon.

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

paroxython-0.4.1.tar.gz (92.9 kB view hashes)

Uploaded Source

Built Distribution

paroxython-0.4.1-py3-none-any.whl (102.5 kB view hashes)

Uploaded Python 3

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