Giter VIP home page Giter VIP logo

jadogg / expresspython Goto Github PK

View Code? Open in Web Editor NEW
130.0 8.0 11.0 2.33 MB

๐Ÿš„๐Ÿ expressPython - A small Python editor for learning and competitive programming.

License: GNU General Public License v2.0

C++ 61.62% Python 0.31% HTML 0.04% QMake 0.08% ANTLR 1.10% CMake 4.27% Objective-C++ 0.77% Shell 0.19% Batchfile 0.09% C 0.55% Objective-C 0.01% Makefile 30.97%
ide express-python python qt windows competitive-programming hackerrank c-plus-plus python3

expresspython's Introduction

contributions welcome Downloads Windows Build status Ubuntu Build Status Codacy Badge BCH compliance License: GPL v2 Say Thanks! OPEN open source software Gitter

A small Python 3 editor for learning and competitive programming.

Why expressPython?

I built expressPython to scratch an itch that I had. I wanted a tool that does following for me.

  • Runs easily in windows, portable, doesn't affect system.
  • I wanted a tool to test regexes, small scripts.
  • It should start fast and I don't need to create files to test things
  • Suitable to simulate HackerRank . (Has an input window and output window, works with stdin)
  • I wanted to learn C++/Qt and polish Python knowledge.
  • Compiled to 32bit will work on a 64bit machine. (Windows)
  • Type some text in to input section and process it using quick scripts.
  • Works offline.

Contributors

  • Bhathiya Perera (JaDogg) - Maintainer and original author
  • Mirza Zulfan (mirzazulfan) - Logo & Icon ๐Ÿ˜Ž
  • Harshit Verma (hv7214) - ANTLR Syntax Highlighting, Terminal, CI

GIF

User Guide

Installation

This is fairly simple to use.

  • Download a standalone version from the releases.
  • Scan the binary package for viruses if you want โœ”.
  • Windows: Extract it using 7-zip or a similar software and run expressPython.exe.
  • Linux: Install it using .deb package.

Editor

  • Tabs are replaced by 4 spaces.
  • Any \t (tab) character is highlighted in red.
  • There are basic auto-complete features. Use: ctrl + space
  • Content in the input can be read using input()
  • You can write to output using print().
  • There is terminal intergrated, one can access it by clicking on the top right button(currently it is available for Ubuntu and MacOs distros).
  • This is not a full IDE and is not planning to be.

Known Limitations

  • Lacks keyboard shortcuts(Coming soon).

Credits

Standing on the shoulders of the giants.

Compiling

  • This project uses Cmake to build.
  • There are two different scripts for windows and Linux/MacOs, which setup the project and followingly generates the binary.
    • build.cmd is for windows systems.
    • build.sh is for Linux and MacOs systems.

Dependencies

  • Python 3.8.x (32bit)
  • Qt 5.12.x (GPL Version, MinGW 32bit)
  • ANTLR4(ANother Tool for Language Recognition)

64Bit versions should also work. But it is not tested yet.

Easiest way to compile is to use QtCreator and to build the binary.

Environment Variables

  • PYTHON3_LOCATION - On windows set this to parent of python.exe of a 32bit Python 3.8.x installation.
  • PYTHON3_LIB_LOCATION and PYTHON3_INC_LOCATION should be set to lib and include paths.

Editor API

You can safely ignore this section if you are not interested in customizing/developing.

Documentation

# IDE's API
# ---------------------------
from express_api import get_input, set_input
from express_api import get_output, set_output
from express_api import get_code, set_code
from express_api import write_output, get_apppath
from express_api import set_search_regex, interrupt_requested
#
# get method's have no parameters and others have one
#
# get_input   - get input textbox's text
# set_input   - set input textbox's text
# get_output  - get output textbox's text
# set_output  - get output textbox's text
# get_code    - get code textbox's text
# set_code    - set code textbox's text
# write_output- append to output box
# get_apppath - get exe path
# interrupt_requested - returns 1 if we need to stop running

# API Help/Code Sample
# ---------------------------

# get text from input box
# parameters - none
txt = get_input()

# change output box's text
# parameters - string
set_output("")

# append to output box
# does not add a new line
# parameters - string
write_output("Hi You,\n")

# get_apppath() -> get exe path
print("expressPython.exe is at :", get_apppath())

Customising launch script

If you want to customize how your code is executed.

  • Copy ep_runner.py to _express_startup_.py near expressPython binary.
  • Edit _express_startup_.py as you see fit.

Appendix

Learning Python

One of the reasons for creating this was to teach python. You can checkout my Python 3 tutorial series at http://pandabunnytech.com

Getting Started Guide : here

Image

expresspython's People

Contributors

codacy-badger avatar hv7214 avatar jadogg avatar mirzazulfan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

expresspython's Issues

Add test cases

We need to add some tests for the code.. need to start somewhere ๐Ÿคฃ๐Ÿคฆโ€โ™€๏ธ

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.