- Visual Python 1.1.0
+ Visual Python 1.1.1
diff --git a/src/common/constant.js b/src/common/constant.js
index 04a49207..881f8259 100644
--- a/src/common/constant.js
+++ b/src/common/constant.js
@@ -48,7 +48,7 @@ define ([
* toolbar btn properties
*/
const TOOLBAR_BTN_INFO = {
- HELP: "Visual Python 1.1.0"
+ HELP: "Visual Python 1.1.1"
// , ICON: "fa-angellist"
, ICON: "vp-main-icon"
, ID: "vpBtnToggle"
@@ -1328,4 +1328,4 @@ define ([
, VP_MARKDOWN_TOOBAR_BTN_HORIZONTAL_LINE: VP_MARKDOWN_TOOBAR_BTN_HORIZONTAL_LINE
, VP_MARKDOWN_TOOBAR_BTN_HORIZONTAL_LINE_TITLE: VP_MARKDOWN_TOOBAR_BTN_HORIZONTAL_LINE_TITLE
};
-});
\ No newline at end of file
+});
From fcf9f596dcf617cb095effe538d4448a12a27470 Mon Sep 17 00:00:00 2001
From: Visual Python <83543209+visualpython@users.noreply.github.com>
Date: Fri, 7 May 2021 15:20:03 +0900
Subject: [PATCH 04/10] Update README.md
---
README.md | 166 ++++++++++++++++++++++++++++++++----------------------
1 file changed, 100 insertions(+), 66 deletions(-)
diff --git a/README.md b/README.md
index 934764c3..f54789cd 100644
--- a/README.md
+++ b/README.md
@@ -1,78 +1,112 @@
-# 1. Install Package ( windows / Linux / Mac )
-### 1.1. requirements
-> - Python 3.x
-> - jupyter notebook or anaconda env
-> _pip install jupyter_
-> or
-> _python -m pip install --user jupyter_
->
-> _pip3 install jupyter_
-> or
-> _python3 -m pip install --user jupyter_
-
-### 1.2. Install VisualPython package
-> **[pip / conda]**
-> _pip install visualpython_
-
-### 1.3. Optional package
-* jupyter_contrib_nbextensions
-* Install to manage nbtextensions visually.
->> **[pip]**
->> _pip install jupyter_contrib_nbextensions
_
- _jupyter contrib nbextension install --user_
->> **[conda - anaconda env]**
-> _conda install -c conda-forge jupyter_contrib_nbextensions_
- _jupyter contrib nbextension install --user_
-
-# 2. Package controller for Linux/Mac/Windows
-### 2.1. VisualPython contoller info
-
-> **usage: _visualpy [option]_**
+# Visual Python
+[](https://pypi.python.org/pypi/visualpython/)
+[](https://www.gnu.org/licenses/gpl-3.0.html)
+[](https://www.visualpython.ai)
+
+
+
+
+## Introduction
+Visual Python is a GUI-based Python code generator, developed on the Jupyter Notebook environment as an extension.
+
+
+1. Key Features
+* Automatically generates Python code based on a graphic user interface
+* Creates code blocks by tasks (such as data processing, visualization)
+* You can save the analysis process and share it (as .vp file) with others
+
+2. Who and What is it for?
+Visual Python is a data analytics solution for both Programmers & Non-programmers.
+
+Programmers can use the tool :
+* to save & reuse user-defined (or repeatedly used) code
+* to find Python packages and functions from the list
+
+Non-programmers will be able to :
+* learn the Python language more easily
+* manage big data with minimal coding skills
+
+
+
+## Getting Started
+
+### 1. Requirements
+
+Visual Python is developed as an extension on Jupyter Notebook.
+We recommend installing Anaconda (virtual environment).
+
+- Python version 3.x
+- Jupyter notebook or Anaconda env
+
+### 2. How to Install
+
+**1) Open Anaconda prompt**
+
+* Windows : Click Start > Search or Select 'Anaconda Prompt'
+* Mac : Open Launchpad > Select 'Terminal'
+
+**2) Install package from**
+```
+pip install visualpython
+```
+
+
+Depending on your virtual environment settings, you may need to install Jupyter Extensions.
+To install Jupyter Extension, use commands either:
```
- optional arguments:
- -h, help - show this help message and exit
- -e, enable - enable VisualPython
- -d, disable - disable VisualPython
- -i, install - install VisualPython extensions
- -un, uninstall - uninstall VisualPython packages
- -up, upgrade - upgrade VisualPython Package
- -v, version - show VisualPython current version
+pip install jupyter_contrib_nbextensions
```
+or
+```
+conda install -c conda-forge jupyter_contrib_nbextensions
+```
+
+**3) Enable the package**
+```
+visualpy install
+```
+
+**4) Activate Visual Python on Jupyter Notebook**
+
+Click orange square button on the right side of the Jupyter Notebook menu.
+
+### 3. Package Control Info
+* Usage: visualpy **[option]**
+* Optional arguments:
+
+```
+help - show help menu
+uninstall - uninstall packages
+upgrade - version upgrade
+version - version check
+```
+
+
+## Mission & Vision
+
+
+**Mission**
+To support technology and education so that anyone can leverage big data analytics to create a variety of social values.
+
+**Vision**
+To create an environment where you can learn and use big data analytics skills easily.
+
+
+
+
+## License
-### 2.2. Activate VisualPython
-> _visualpy install_
-> or
-> _visualpy -i_
-
-### 2.3. Disable VisualPython
-> _visualpy disable_
-> or
-> _visualpy -d_
-
-### 2.4. Enable VisualPython extension
-> _visualpy enable_
-> or
-> _visualpy -e_
-
-### 2.5. Upgrade VisualPython package version
-> _visualpy upgrade_
-> or
-> _visualpy -up_
-
-### 2.6. Uninstall VisualPython package
-> _visualpy uninstall_
-> or
-> _visualpy -un_
+GNU GPLv3 (See LICENSE file).
From 6254889c211b1290818240332d51541a35284edf Mon Sep 17 00:00:00 2001
From: Visual Python <83543209+visualpython@users.noreply.github.com>
Date: Mon, 10 May 2021 13:58:39 +0900
Subject: [PATCH 05/10] Create CODE_OF_CONDUCT.md
---
CODE_OF_CONDUCT.md | 128 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 128 insertions(+)
create mode 100644 CODE_OF_CONDUCT.md
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 00000000..2e53b18f
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,128 @@
+# Code of Conduct
+
+## Our Pledge
+
+We as members, contributors, and leaders pledge to make participation in our
+community a harassment-free experience for everyone, regardless of age, body
+size, visible or invisible disability, ethnicity, sex characteristics, gender
+identity and expression, level of experience, education, socio-economic status,
+nationality, personal appearance, race, religion, or sexual identity
+and orientation.
+
+We pledge to act and interact in ways that contribute to an open, welcoming,
+diverse, inclusive, and healthy community.
+
+## Our Standards
+
+Examples of behavior that contributes to a positive environment for our
+community include:
+
+* Demonstrating empathy and kindness toward other people
+* Being respectful of differing opinions, viewpoints, and experiences
+* Giving and gracefully accepting constructive feedback
+* Accepting responsibility and apologizing to those affected by our mistakes,
+ and learning from the experience
+* Focusing on what is best not just for us as individuals, but for the
+ overall community
+
+Examples of unacceptable behavior include:
+
+* The use of sexualized language or imagery, and sexual attention or
+ advances of any kind
+* Trolling, insulting or derogatory comments, and personal or political attacks
+* Public or private harassment
+* Publishing others' private information, such as a physical or email
+ address, without their explicit permission
+* Other conduct which could reasonably be considered inappropriate in a
+ professional setting
+
+## Enforcement Responsibilities
+
+Community leaders are responsible for clarifying and enforcing our standards of
+acceptable behavior and will take appropriate and fair corrective action in
+response to any behavior that they deem inappropriate, threatening, offensive,
+or harmful.
+
+Community leaders have the right and responsibility to remove, edit, or reject
+comments, commits, code, wiki edits, issues, and other contributions that are
+not aligned to this Code of Conduct, and will communicate reasons for moderation
+decisions when appropriate.
+
+## Scope
+
+This Code of Conduct applies within all community spaces, and also applies when
+an individual is officially representing the community in public spaces.
+Examples of representing our community include using an official e-mail address,
+posting via an official social media account, or acting as an appointed
+representative at an online or offline event.
+
+## Enforcement
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be
+reported to the community leaders responsible for enforcement at
+hello@visualpython.ai.
+All complaints will be reviewed and investigated promptly and fairly.
+
+All community leaders are obligated to respect the privacy and security of the
+reporter of any incident.
+
+## Enforcement Guidelines
+
+Community leaders will follow these Community Impact Guidelines in determining
+the consequences for any action they deem in violation of this Code of Conduct:
+
+### 1. Correction
+
+**Community Impact**: Use of inappropriate language or other behavior deemed
+unprofessional or unwelcome in the community.
+
+**Consequence**: A private, written warning from community leaders, providing
+clarity around the nature of the violation and an explanation of why the
+behavior was inappropriate. A public apology may be requested.
+
+### 2. Warning
+
+**Community Impact**: A violation through a single incident or series
+of actions.
+
+**Consequence**: A warning with consequences for continued behavior. No
+interaction with the people involved, including unsolicited interaction with
+those enforcing the Code of Conduct, for a specified period of time. This
+includes avoiding interactions in community spaces as well as external channels
+like social media. Violating these terms may lead to a temporary or
+permanent ban.
+
+### 3. Temporary Ban
+
+**Community Impact**: A serious violation of community standards, including
+sustained inappropriate behavior.
+
+**Consequence**: A temporary ban from any sort of interaction or public
+communication with the community for a specified period of time. No public or
+private interaction with the people involved, including unsolicited interaction
+with those enforcing the Code of Conduct, is allowed during this period.
+Violating these terms may lead to a permanent ban.
+
+### 4. Permanent Ban
+
+**Community Impact**: Demonstrating a pattern of violation of community
+standards, including sustained inappropriate behavior, harassment of an
+individual, or aggression toward or disparagement of classes of individuals.
+
+**Consequence**: A permanent ban from any sort of public interaction within
+the community.
+
+## Attribution
+
+This Code of Conduct is adapted from the [Contributor Covenant][homepage],
+version 2.0, available at
+https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
+
+Community Impact Guidelines were inspired by [Mozilla's code of conduct
+enforcement ladder](https://github.com/mozilla/diversity).
+
+[homepage]: https://www.contributor-covenant.org
+
+For answers to common questions about this code of conduct, see the FAQ at
+https://www.contributor-covenant.org/faq. Translations are available at
+https://www.contributor-covenant.org/translations.
From 314fc84015a233a434c0a26c48e456466b882cd1 Mon Sep 17 00:00:00 2001
From: mjkim-blacklogic <83636412+minjk-bl@users.noreply.github.com>
Date: Mon, 10 May 2021 16:10:40 +0900
Subject: [PATCH 06/10] Update issue templates
---
.github/ISSUE_TEMPLATE/bug_report.md | 35 +++++++++++++++++++
.github/ISSUE_TEMPLATE/feature_request.md | 20 +++++++++++
.../ISSUE_TEMPLATE/simple-devops-issues.md | 17 +++++++++
3 files changed, 72 insertions(+)
create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md
create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md
create mode 100644 .github/ISSUE_TEMPLATE/simple-devops-issues.md
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 00000000..55fe0f74
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,35 @@
+---
+name: Bug report
+about: Create a report to help us improve
+title: "[BUG] "
+labels: bug
+assignees: ''
+
+---
+
+**Describe the bug**
+A clear and concise description of what the bug is.
+
+**To Reproduce**
+Steps to reproduce the behavior:
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+**Expected behavior**
+A clear and concise description of what you expected to happen.
+
+**Screenshots**
+If applicable, add screenshots to help explain your problem.
+
+**Desktop (please complete the following information):**
+ - OS: [e.g. iOS]
+ - Browser [e.g. chrome, safari]
+ - Version [e.g. 22]
+
+**VisualPython Information (please complete the following information):**
+ - Version [e.g. 1.1.0]
+
+**Additional context**
+Add any other context about the problem here.
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 00000000..11fc491e
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,20 @@
+---
+name: Feature request
+about: Suggest an idea for this project
+title: ''
+labels: enhancement
+assignees: ''
+
+---
+
+**Is your feature request related to a problem? Please describe.**
+A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+
+**Describe the solution you'd like**
+A clear and concise description of what you want to happen.
+
+**Describe alternatives you've considered**
+A clear and concise description of any alternative solutions or features you've considered.
+
+**Additional context**
+Add any other context or screenshots about the feature request here.
diff --git a/.github/ISSUE_TEMPLATE/simple-devops-issues.md b/.github/ISSUE_TEMPLATE/simple-devops-issues.md
new file mode 100644
index 00000000..679a663b
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/simple-devops-issues.md
@@ -0,0 +1,17 @@
+---
+name: simple devops issues
+about: issues with simple changes
+title: ''
+labels: small change
+assignees: minjk-bl
+
+---
+
+### TO-BE
+1.
+
+
+--------------------------------
+
+### AS-IS (Optional)
+1.
From 224ca3bad84bd58638079d98f93a5a673052d3c5 Mon Sep 17 00:00:00 2001
From: minjk-bl
Date: Mon, 10 May 2021 14:42:04 +0900
Subject: [PATCH 07/10] #8 initial menu update
---
src/api_block/index.html | 2 +-
src/api_block/init.js | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/api_block/index.html b/src/api_block/index.html
index 26d360bd..2a047be5 100644
--- a/src/api_block/index.html
+++ b/src/api_block/index.html
@@ -37,7 +37,7 @@
vp-accordion-caption'
data-category="api">Library
-
+
diff --git a/src/api_block/init.js b/src/api_block/init.js
index ae31c501..1f6a0231 100644
--- a/src/api_block/init.js
+++ b/src/api_block/init.js
@@ -601,7 +601,8 @@ define([
if (libObj._name != undefined) {
if (libObj._level == 0) {
var open = false;
- if (libObj._name == 'Common') {
+ if (libObj._name == 'Common'
+ || libObj._name == 'Pandas') {
// Common은 처음에 열어놓고 시작
open = true;
}
From 61711fd1cf96b84cc7fdcd5c737667d12bafb12f Mon Sep 17 00:00:00 2001
From: minjk-bl
Date: Mon, 10 May 2021 15:23:06 +0900
Subject: [PATCH 08/10] #9 - always enable apply button (deleted disable parts)
---
src/api_block/blockContainer.js | 6 ------
src/api_block/index.html | 2 +-
src/api_block/init.js | 5 -----
3 files changed, 1 insertion(+), 12 deletions(-)
diff --git a/src/api_block/blockContainer.js b/src/api_block/blockContainer.js
index 4dffb13d..d2198d93 100644
--- a/src/api_block/blockContainer.js
+++ b/src/api_block/blockContainer.js
@@ -298,8 +298,6 @@ define([
var passChecking = false;
if (block) {
if (block.isModified) {
- // set apply button enabled
- $(VP_ID_PREFIX + VP_APIBLOCK_BOARD_OPTION_APPLY_BUTTON).removeClass('disabled');
// show title alert
$(VP_CLASS_PREFIX + 'vp-apiblock-option-new-to-save').css('display', 'block');
} else {
@@ -338,20 +336,16 @@ define([
block.state_backup['isFinally'] = nowState['isFinally'];
}
if (!passChecking && JSON.stringify(nowState) != JSON.stringify(block.state_backup)) {
- // set apply button enabled
- $(VP_ID_PREFIX + VP_APIBLOCK_BOARD_OPTION_APPLY_BUTTON).removeClass('disabled');
// show title alert
$(VP_CLASS_PREFIX + 'vp-apiblock-option-new-to-save').css('display', 'block');
// set this block to isModified = true
block.isModified = true;
} else {
- $(VP_ID_PREFIX + VP_APIBLOCK_BOARD_OPTION_APPLY_BUTTON).addClass('disabled');
$(VP_CLASS_PREFIX + 'vp-apiblock-option-new-to-save').css('display', 'none');
}
}
} else {
- $(VP_ID_PREFIX + VP_APIBLOCK_BOARD_OPTION_APPLY_BUTTON).addClass('disabled');
$(VP_CLASS_PREFIX + 'vp-apiblock-option-new-to-save').css('display', 'none');
}
}
diff --git a/src/api_block/index.html b/src/api_block/index.html
index 2a047be5..70894ee2 100644
--- a/src/api_block/index.html
+++ b/src/api_block/index.html
@@ -142,7 +142,7 @@
Cancel
-
diff --git a/src/api_block/init.js b/src/api_block/init.js
index 1f6a0231..a3a4e4dc 100644
--- a/src/api_block/init.js
+++ b/src/api_block/init.js
@@ -443,11 +443,6 @@ define([
/** option page - apply 버튼 클릭 함수 바인딩 */
$(document).on(STR_CLICK, VP_ID_PREFIX + VP_APIBLOCK_BOARD_OPTION_APPLY_BUTTON, function() {
- // if disabled, do nothing
- if ($(this).hasClass('disabled')) {
- return;
- }
-
blockContainer.applyBlock();
});
From 32596ae105c1f2c2327f1b660f3fdcec5ef7c194 Mon Sep 17 00:00:00 2001
From: minjk-bl
Date: Mon, 10 May 2021 15:42:38 +0900
Subject: [PATCH 09/10] #11 - applied! popup after applied block options
---
src/api_block/blockContainer.js | 6 ++++++
src/api_block/init.js | 7 ++++++-
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/api_block/blockContainer.js b/src/api_block/blockContainer.js
index d2198d93..0e46c485 100644
--- a/src/api_block/blockContainer.js
+++ b/src/api_block/blockContainer.js
@@ -261,6 +261,9 @@ define([
this.reRenderAllBlock_asc();
this.resetBlockListAndRenderThisBlock(block);
}
+ return true;
+ } else {
+ return false;
}
}
@@ -289,6 +292,9 @@ define([
this.resetOptionPage();
this.reRenderAllBlock_asc();
}
+ return true;
+ } else {
+ return false;
}
}
diff --git a/src/api_block/init.js b/src/api_block/init.js
index a3a4e4dc..67d1af8f 100644
--- a/src/api_block/init.js
+++ b/src/api_block/init.js
@@ -443,7 +443,12 @@ define([
/** option page - apply 버튼 클릭 함수 바인딩 */
$(document).on(STR_CLICK, VP_ID_PREFIX + VP_APIBLOCK_BOARD_OPTION_APPLY_BUTTON, function() {
- blockContainer.applyBlock();
+ var isApplied = blockContainer.applyBlock();
+
+ if (isApplied) {
+ // #11 applied! popup
+ vpCommon.renderSuccessMessage('Applied!');
+ }
});
/**
From 96b829004a7984cf21cda6fa9b86d7151bbaff93 Mon Sep 17 00:00:00 2001
From: minjk-bl
Date: Mon, 10 May 2021 16:25:46 +0900
Subject: [PATCH 10/10] #10 - scroll to applied block
---
src/api_block/blockContainer.js | 8 ++++----
src/api_block/init.js | 8 ++++++--
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/src/api_block/blockContainer.js b/src/api_block/blockContainer.js
index 0e46c485..4988fd64 100644
--- a/src/api_block/blockContainer.js
+++ b/src/api_block/blockContainer.js
@@ -261,9 +261,9 @@ define([
this.reRenderAllBlock_asc();
this.resetBlockListAndRenderThisBlock(block);
}
- return true;
+ return block;
} else {
- return false;
+ return null;
}
}
@@ -292,9 +292,9 @@ define([
this.resetOptionPage();
this.reRenderAllBlock_asc();
}
- return true;
+ return block;
} else {
- return false;
+ return null;
}
}
diff --git a/src/api_block/init.js b/src/api_block/init.js
index 67d1af8f..556678eb 100644
--- a/src/api_block/init.js
+++ b/src/api_block/init.js
@@ -443,11 +443,15 @@ define([
/** option page - apply 버튼 클릭 함수 바인딩 */
$(document).on(STR_CLICK, VP_ID_PREFIX + VP_APIBLOCK_BOARD_OPTION_APPLY_BUTTON, function() {
- var isApplied = blockContainer.applyBlock();
+ var appliedBlock = blockContainer.applyBlock();
- if (isApplied) {
+ if (appliedBlock) {
// #11 applied! popup
vpCommon.renderSuccessMessage('Applied!');
+
+ // #10 scroll to selected/applied block
+ var appliedBlockDom = appliedBlock.getBlockMainDom();
+ $(VP_CLASS_PREFIX + VP_CLASS_APIBLOCK_BOARD).animate({scrollTop: $(appliedBlockDom).position().top}, "fast");
}
});