Giter Site home page Giter Site logo

visualpython / visualpython Goto Github PK

View Code? Open in Web Editor NEW
804.0 19.0 110.0 44.22 MB

GUI-based Python code generator for data science, extension to Jupyter Lab, Jupyter Notebook and Google Colab.

Home Page: https://www.visualpython.ai

License: Other

Python 1.05% Batchfile 0.33% CSS 5.35% JavaScript 87.44% HTML 5.51% Shell 0.31%
python data-analysis visual-coding bigdata code-generator pandas chrome-extension jupyter-lab-extension jupyter-notebook-extension jupyterlab-extension

visualpython's Introduction

PyPI version shields.io Python: 3.x License: GPLv3 Downloads Issues: lite-badge

Introduction

Visual Python is a GUI-based Python code generator, developed on the Jupyter Lab, Jupyter Notebook and Google Colab as an extension. You can also simply use Visual Python using Visual Python Desktop.
Visual Python is an open source project started for students who struggle with coding during Python classes for data science.


Try Visual Python if you would like to:

  • manage big data with minimal coding skills.
  • help students / business analysts / researchers to overcome learning barriers for Python.
  • save & reuse repeatedly used codes(snippets).

Getting Started with Jupyter Lab

1. Requirements

Visual Python is an extension to Jupyter Lab, so you must have Jupyter Lab installed already.

  • Python version 3.x
  • Jupyter lab environment

2. How to Install

1) Install package from PyPI

pip install jupyterlab-visualpython
  • If you are using Jupyter Lab version <= 3.x.x, please install jupyterlab-visualpython==2.5.0
    pip install jupyterlab-visualpython==2.5.0
    

2) Activate Visual Python on Jupyter Lab

Click orange square button on the right side of Jupyter Lab.

Getting Started with Jupyter Notebook 7

1. Requirements

Visual Python is an extension to Jupyter Notebook, so you must have Jupyter Notebook installed already. You need latest version of Jupyter Notebook over version 7.x.x.

  • Python version 3.x
  • Jupyter notebook environment >= 7.x

2. How to Install

1) Install package from PyPI

pip install jupyterlab-visualpython

2) Activate Visual Python on Jupyter Notebook

Click orange square button on the toolbar of Jupyter Notebook.

Getting Started with Jupyter Notebook (for 6.x.x and older version)

1. Requirements

Visual Python is an extension to Jupyter Notebook, so you must have Jupyter Notebook installed already. You need old version of Jupyter Notebook under version 6.x.x.

  • Python version 3.x
  • Jupyter notebook environment <= 6.x

2. How to Install

1) Install package from PyPI

pip install visualpython

2) Enable the package

visualpy install

3) Activate Visual Python on Jupyter Notebook

Click orange square button on the toolbar of Jupyter Notebook.

3. Package Control Info

  • Usage: visualpy [option]
  • Optional arguments:
help       - show help menu
install    - install packages
uninstall  - uninstall packages
upgrade    - version upgrade
version    - version check

Getting Started with Google Colab

1. Requirements

Visual Python is an extension to Google Colab, so you must have Google Colab opened.

  • Google Colab

2. How to Install

1) Install package using Chrome Web Store

2) Open Google Colab

3) Activate Visual Python on Google Colab

Getting Started with Visual Python Desktop

1. Introduction

Visual Python Desktop is an installer to create an isolated jupyter environment and enable to use Visual Python easily.

It simplifies the process of configuring an independent Python environment, installing essential packages, and setting up a Jupyter environment, allowing users to focus on data analysis using python.

2. Requirements

  • Operating System: Windows 10 or later (macOS and Linux support coming soon)
  • Minimum 4GB RAM, recommended 8GB RAM or higher
  • Minimum 10GB of disk space

3. How to Install

  1. Download Visual Python Desktop installer from homepage.

  2. Run the installer and follow the provided instructions for the installation process.

  3. Use the shortcut created in Start menu or on Desktop to execute Jupyter Notebook (Visual Python), Jupyter Lab (Visual Python), and Visual Python Prompt according to your needs.

Contributing

If you are interested in contributing to the Visual Python, please see CONTRIBUTING.md.
All skills from programmers, non-programmers, designers are welcomed.

Maintainers & Contributors

Whoever wants to contribute or join our community,
You can contact us by creating issues on Issue page or using Discord server.

License

GNU GPLv3 with Visual Python special exception (See LICENSE file).

Mission & Vision

Mission
To support technology and education so that anyone can leverage big data analytical skills to create a variety of social values.

Vision
To create an environment where everyone can learn and use big data analytical skills easily.

Support Visual Python

Love Visual Python?
Your support will help us continue to actively develop and improve Visual Python.☕

donate_banner

visualpython's People

Contributors

blacklogicdev avatar leeraejung avatar llbtl avatar minjk-bl avatar minku-koo avatar visualpython 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

visualpython's Issues

[BUG] append initial logic block to another logic block

Describe the bug
when add initial logic block into logic board. drag under the another block (etc. def, class, for, if) to append as child. but it is
always appended outside(root level).

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'logic menu'
  2. Click on 'show vp note'
  3. Drag and drop 'logic block' in to 'logic board' under the another block
  4. See error

Expected behavior
what you expected to happen
when drag initial logic block under the another block as child. it is appended the target block not root level
Screenshots
bug-report

Desktop (please complete the following information):

  • OS: Mac 12.4
  • Browser chrome 103.0.5060.134

VisualPython Information (please complete the following information):

  • Version [2.2.8]

Additional context
any other context about the problem here.

[BUG] Cannot access local filesystem under WSL 2

Cannot access any local files when using Visual Python within a WSL 2 environment

To Reproduce
Steps to reproduce the behavior:

  1. Install Visual Python per the instructions within a Windows 11 WSL 2 Ubuntu LTS environment; then
  2. Attempt to load a CSV or XLSX, no files are available and the filesystem cannot be traversed.

Expected behavior
To be able to directly load CSV files within a functioning WSL 2 Jupyter environment.

VisualPython Information (please complete the following information):

  • Visual Python 1.1.13

Add 'Comment Template' to comment logic block.

Add 'Comment Template' to comment logic block.

[Original]

  • Only comment beginning with # is provided.

[Improved]

  • Provides 'comment template' functionality applicable to Python Class and Method.
  • You can add a new template easily.
  • 'Comment Templates' are referenced in the Numpy Style Guide.
  • Reference Document 1
  • Reference Document 2

Why Numpy Style Guide?

  • Visual Python has many features for Data Analysis and Machine Learning.
  • The Numpy Library is most often used in Data Analysis and ML.

A new function is included in .gif image.

comment_template_clip

I want feedback.

thank you.

[BUG] Unable to install

Describe the bug
Files not found while visualpy install. Showing:

===================================================================================
Not a conda env.

===================================================================================
source : ~10\visualpython\
File not found - visualpython
0 File(s) copied
target : C:\Users\eurekazheng\AppData\Roaming\jupyter\nbextensions\visualpython\
===================================================================================

===================================================================================
Enabling notebook extension visualpython/src/main...
      - Validating: problems found:
        - require?  X visualpython/src/main
===================================================================================

Jupyter notebook shows no buttons for visualpython.

To Reproduce
Steps to reproduce the behavior:

  1. conda activate data
  2. pip install visualpython
  3. pip install jupyter_contrib_nbextensions (optional)
  4. visualpy install

Expected behavior
Successfully installed and displays the visualpython button.

Screenshots
Not needed.

Desktop (please complete the following information):

  • OS: Windows 11 1000.22000.132.0
  • Browser Chrome

VisualPython Information (please complete the following information):

  • Version 1.1.7

Additional context
Not needed.

Need warning to predictable errors.

When creating code (with Apps or Logic Block), there are simple errors that can be predicted.

[Example]
When declare a Python function, 'default value parameter' should always follow 'non-default value parameter'.
If not, error.

vp_issue_1

But visual python is possible this situation on Logic Block.

[I think]
When user creates function, if error is expected, it is better to show a 'warning message'.

[Question to Maintainers]
I wonder that if you don't care about this kind of problem.
Are you going to ignore all predicted error? for increasing user's freedom?

Lack of information and improved technology

Is your feature request related to a problem? Please describe.

  1. Lack of detailed explanation
    -> We don't know what role each plays when doing subset like loc, iloc ..
    image

  2. Add-on to snippets
    -> I wish autocomplete code format was added
    image
    image

  3. Recommend a model according to the purpose
    -> I would like to recommend a model according to the purpose (e.g. LogisticRegression for binary classification)
    image


Describe the solution you'd like

  1. Comments or help would make it easier to code
  2. It will be possible to complete the code easily, accurately and quickly with a shortcut key or auto-complete code.
  3. If you recommend a model suitable for the purpose, good results will be obtained.

Logic block's open algorithm need to be improved

If you move a logic block while the vp note is closed, the logic block is added to the vp note even though the vp note is closed.
Also it is difficult to recognize that you need to turn on vp note when you first encounter it.

Slide the logic block to the side to immediately bring up the vp note.

Increase the visibility of the window that opens the vp note and prevent interaction when the vp note is off.

chrome-capture-2022-6-25

Add autocomplete template to Snippets

Is your feature request related to a problem? Please describe.
I wish there was an autocomplete markdown version.

Describe the solution you'd like
Put markdown.json consisting of keys of snippets

Describe alternatives you've considered
It will be easy and convenient to write code.

Additional context
image

// markdown.json
{
         // Example:
         "Print to console": {
            "prefix": "log",
            "body": [
                "console.log('$1');",
                "$2"
            ],
            "description": "Log output to console"
        }
}

Translate Korean to English

VisualPython is developed by Korean developers, so it needs to be translated to English for enhancing global network.

Target : All comments / labels / text data
Branch : document (you can create new branch for this issue)

Change applying process

TO-BE

  1. Clicking on 'Apply' button of Apps menu add and run cell on jupyter notebook

AS-IS (Optional)

Details from the POV of a newcomer

Is your feature request related to a problem? Please describe.
Not really a problem, but some things that, I thought, could be different, or maybe could be helpful to mention as the experience of a newcomer.

  • Too many sections without anything inside. I suppose you show it to say "VP is going to have all this", but for a newcomer is too much, and is discouraging thinking "Ohh DL code... empty... nvm it has Data analysis WOW... empty... okay, I'm leaving...". I think it would be better for titles to have some mark like WIP, not dhow the empty sections, or maybe a number to show how many operations it has inside, like Boolean operation (9), Linear algebra (6).
    • Don't use the same color for different things. Correct me if I'm not right but in the Apps section the gray color means disable, while in the Logic section the gray color doesn't mean that, since continue, break and pass are gray, but I can use them. It confuses me.
  • Not be able to move the interface. I like to have the menus at the left, but not sure if this is possible. And also the left panel, the one with the Apps and Logic doesn't let me rescale it, but some titles are too long, so I can't see them. An example is "Comparison operations", and yes, I can see it on the tooltip, but I think it would be better to let ppl rescale this panel too.
  • Careful with New note. I was searching for a way to copy the code that generates VP, and when I clicked the hamburger menu I almost clicked the button of New note, then I tried it and I "lost" all the progress that I made until that moment. Maybe there is a way to recover the last document? Didn't see it, but maybe the solution would be to have tabs instead of replacing old note, or have a message if the previous note has not been saved before.
  • A way to only copy the code. A preview of all code would be handy too. I wanted to see what code VP generated, not run it, only see how the components were interacting between them. But I didn't find it, at the end I had to use the function to run it with created many cells which then I had to delete, it would have been better to copy all in a cell, and then I would have been able to get the code I wanted, since I was replicating some code that I already have plus adding some section which I didn't know how to program the logic.

Sorry if I was too direct, or I mentioned dumb stuff, I did it intending to help.

Add "Apps" menu

TO-BE

  1. Apps Menu
  • Snippets, Variable, Instance, Subset, Frame, Chart(matplotlib), File
  1. Click and Open with popup page
  2. Apply it as block

AS-IS (Optional)

Update Frame Editor with added features

TO-BE

  1. popup dialog
  2. buttonn with right-clicked menus
  3. multi-select support
  4. generate stacked codes using temporary variable(_vp)
    • if 'Allocate to' variable exsist,
  5. drop na/duplicates

AS-IS (Optional)

[BUG] Fix option page size on load (w. Mac)

Describe the bug

To Reproduce
Steps to reproduce the behavior:

  1. Halt and Stop Jupyter Notebook
  2. Open new/shutdown notebook file
  3. Open visualpython
  4. Check option page size & gap between block board(middle one) and option page

Expected behavior

  • size corrected

Screenshots

Desktop (please complete the following information):

  • OS: Mac
  • Browser: chrome

VisualPython Information (please complete the following information):

  • Version 1.1.1

Support for Jupyter Lab

Do you plan to support Jupyter Lab?
It's more useful and probably more popular than notebook now.
And I guess it might not be a very great challenge to adapt to it?

Add more menus on apps

TO-BE

  1. Apps additional menus - import, text, merge, groupby, reshape, timeseries
  2. Implement "Import", "Markdown"
  3. Disabled menu (TODO menus) "Merge", "Groupby", "Reshape", "TimeSeries"

AS-IS (Optional)

[BUG] On windows 11 visualpy install fails because it is trying to copy from \programfiles\ instead of \program files\

Here is the error:

Copy visualpython extension files ...

Source Dir : c:\programfiles\python310\lib\site-packages\visualpython
Target Dir : C:\Users\Ace\AppData\Roaming\jupyter\nbextensions\visualpython

File not found - visualpython
0 File(s) copied

I was able to work around this by creating the c:\programfiles\python310\lib\site-packages\visualpython folder and copying all files from c:\Program Files\python310\lib\site-packages\visualpython before running "visualpy install"

image

Profiling

TO-BE

  1. Generate : generate variable and load it
  • set Allocate to as required field
  1. Save Report : bug fix needed

AS-IS (Optional)

[BUG] visualpy command hard-wired to pip

Installing and running on a Mac or other environment with multiple Pyhton environments where pip refers to a Pyhton 2.7 environment and pip3 is used to reference the Python 3 environment, running the visualpy install command fails due to hard-wired dependence on pip:

############ cat /usr/local/bin/visualpy ###############

#============================================================================
#!/bin/sh
#============================================================================
# Filename : visualpy
# function : control visualpython for Mac/Linux
# Creator  : BlackLogic  - LJ
# version  : 2.1
# License  :
# Date     : 2020 07.27
# Mdate    : 2020 12.29
#============================================================================

v_path1=`pip show visualpython | grep Location | awk -F': ' '{print $2}'`
v_prod='visualpython'
v_str1='jupyter nbextension'
v_str2='visualpython/src/main'
v_unst='pip uninstall '${v_prod}
v_upgr='pip install '${v_prod}' --upgrade'
#v_srch='pip search '${v_prod}
v_str3='pip list -o '
v_str4='pip show '${v_prod}

Change Logic menu blocks

For Logic > Define blocks,

  1. class
  • change design
  • change inputs
  1. def
  • change design
  1. return
  • change design

Frame App improvements

TO-BE

  1. get input for new variable name to allocate ('Allocate to')
  2. check steps to save
  3. add undo operation/button
  4. change column/row selection
  • shift : as multi linear click / ctrl : as multi click / single click : as toggle
  • add all selecting button
  1. operations
  2. replace : dictionary type replacement
  • add regex option (regex=True)
  1. OHE : add option to maintain original column.
  2. Add column/row :
  • value/calculation/replace/apply

AS-IS (Optional)

[BUG] Conflicts between nbAgg backend and visualpython

Describe the bug
Bug report from community : Community Bug Report
Thanks to GF LIU :)

To Reproduce
Steps to reproduce the behavior:

  1. Enable visualpython
  2. Run code from jupyter notebook
import numpy as np
import matplotlib.pyplot as plt
%matplotlib notebook

x = np.linspace(0, 10, 100)
y = np.linspace(0, 10, 100)
fig, ax = plt.subplots(dpi=60)
ax.plot(x, y,)
fig.show()
  1. Check output area's button image
    image
    image

Expected behavior
To show button images correctly

Screenshots
(Attached above)

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser: Chrome

VisualPython Information (please complete the following information):

  • Version 2.2.12

[BUG]

Describe the bug
Visual Python workspace blank

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Jupyter'
  2. Click on 'Orange Square'
  3. Scroll down to 'Side Space Show'
  4. See error 'blank'

Expected behavior
what you expected to happen

Screenshots
add screenshots to help explain your problem
微信图片_20210811124818

Desktop (please complete the following information):

  • OS: [e.g. Windows 10]
  • Browser [Edge]

VisualPython Information (please complete the following information):

  • Version [e.g. 1.1.6]

Additional context
any other context about the problem here.

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.