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. 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. 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 +[![PyPI version shields.io](https://img.shields.io/pypi/v/visualpython)](https://pypi.python.org/pypi/visualpython/) +[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-green)](https://www.gnu.org/licenses/gpl-3.0.html) +[![Website: VP Hub](https://img.shields.io/badge/Website-VP%20Hub-orange)](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). diff --git a/bin/visualpy.bat b/bin/visualpy.bat index 651ecb95..79bfa0d8 100644 --- a/bin/visualpy.bat +++ b/bin/visualpy.bat @@ -1,250 +1,250 @@ -@echo off -SetLocal -rem #========================================================================== -rem # Filename : visualpy.bat -rem # function : control Visual Python for windows -rem # Creator : BlackLogic - LJ -rem # version : 2.1 -rem # License : GPLv3 -rem # Date : 2020 07.30 -rem # MDate : 2020 12.29 -rem #========================================================================== - -rem ## setting variables - -set v_prod=visualpython -(echo "%v_prod%" & echo.) | findstr /O . | more +1 | (set /P RESULT= & call exit /B %%RESULT%%) -set /A v_prd_length=%ERRORLEVEL%-5 -set v_option=%1 -for /f "delims=, tokens=1*" %%i in ('pip show %v_prod% 2^>^&1 ^| find "Location"') do ( -set v_1=%%i) -set v_path1=%v_1:~10% -set v_str1=jupyter nbextension -set v_str2=%v_prod%/src/main -set v_srch=pip search %v_prod% -set v_upgr=pip install %v_prod% --upgrade -set v_unst=pip uninstall %v_prod% -set v_ckup=pip list -o -set v_show=pip show %v_prod% - -rem check env & setting path2 -where /q conda-env -IF ERRORLEVEL 1 ( - call :l_prt_be_line - ECHO Not a conda env. - set v_path2=%APPDATA%\jupyter\nbextensions\ -) ELSE ( - call :l_prt_be_line - ECHO conda env. - set v_path2=%v_path1:~,-18%\share\jupyter\nbextensions\ -) - -rem ## Main Block -:l_main - IF /i "%v_option%"=="" goto :l_help - - for %%i in (-h help) do if /i %v_option% == %%i call :l_help - for %%i in (-e enable) do if /i %v_option% == %%i call :l_enable - for %%i in (-d disable) do if /i %v_option% == %%i call :l_disable - for %%i in (-i install) do if /i %v_option% == %%i call :l_install - for %%i in (-up upgrade) do if /i %v_option% == %%i call :l_upgrade - for %%i in (-v version) do if /i %v_option% == %%i call :l_version - for %%i in (-ce checkext) do if /i %v_option% == %%i call :l_check_extension - for %%i in (-cb checkbpl) do if /i %v_option% == %%i call :l_check_visualpython - for %%i in (-un uninstall) do if /i %v_option% == %%i goto :l_uninstall - goto :eof - -rem ## Function Block -:l_help - echo. - echo usage: visualpy option - echo optional arguments: - echo -h, help show this help message and exit - echo -e, enable enable Visual Python - echo -d, disable disable Visual Python - echo -i, install install Visual Python extensions - echo -un, uninstall uninstall Visual Python packages - echo -up, upgrade upgrade Visual Python Package - echo -v, version show Visual Python current version - echo. - goto :eof - -:l_check_extension - IF NOT EXIST "%v_path2%" call :l_prt_extensiondir - goto :eof - -:l_check_visualpython - IF EXIST "%v_path2%%v_prod%" ( - set v_flag=1 - ) ELSE ( - set v_flag=2 - ) - goto :eof - -:l_install - rem "" is for envname with space. - IF EXIST "%v_path2%%v_prod%" ( call :l_prt_be_line - echo Check installed %v_prod% Path : - echo %v_path2%%v_prod% - call :l_prt_visualpythondir - call :l_overwrite - ) ELSE ( call :l_copy_files - call :l_enable - ) - goto :eof - -:l_enable - call :l_prt_be_line - %v_str1% enable %v_str2% - call :l_prt_af_line - goto :eof - -:l_disable - call :l_prt_af_line - %v_str1% disable %v_str2% - call :l_prt_af_line - goto :eof - -:l_overwrite - rem if visaulpython 없는경우 install로 수행 - rem else remove & install - call :l_disable - call :l_remove_files - call :l_copy_files - call :l_enable - goto :eof - -:l_copy_files - call :l_prt_be_line - echo source : %v_path1%\%v_prod%\ - rem "" is for envname with space. - xcopy /q /y /e "%v_path1%\%v_prod%" "%v_path2%%v_prod%\" - echo target : %v_path2%%v_prod%\ - call :l_prt_af_line - goto :eof - -:l_remove_files - call :l_prt_be_line - echo Remove Visual Python Directories. - rem "" is for envname with space. - rmdir /s /q "%v_path2%%v_prod%" - call :l_prt_af_line - goto :eof - -:l_upgrade - call :l_prt_af_line - echo Running upgrade visualpython. - call :l_prt_af_line - rem setting current version - for /f "tokens=*" %%i in ( '%v_show% 2^>^&1 ^| findstr /i Version') do ( - set v_currentver=%%i - ) - - rem running version upgrade - %v_upgr% - - rem setting last installed version - for /f "tokens=*" %%i in ( '%v_show% 2^>^&1 ^| findstr /i Version') do ( - set v_lastver=%%i - ) - set v_install= Installed %v_currentver% - set v_last=Last Release %v_lastver% - - call :l_prt_af_line - - if not %v_lastver:~9% == %v_currentver:~9% ( - echo change visualpython extension files ... - call :l_disable - call :l_copy_files - call :l_enable - ) else ( - echo Already installed last Visual Python version. - call :l_print_version - ) - goto :eof - -:l_version - rem call :l_prt_be_line - - for /f "tokens=*" %%i in ('%v_ckup% 2^>^&1 ^| find /i "%v_prod%"') do ( set v_info=%%i ) - - if "%v_info%."=="." ( - rem pass upgrade - for /f "tokens=*" %%i in ( '%v_show% 2^>^&1 ^| findstr /i Version') do ( set v_last=%%i - - set v_last=Last Release %%i - set v_install= Installed %%i - set v_ver_flag=0 - ) - ) else ( - rem run upgrade - for /f "tokens=2-3" %%i in ( 'echo %v_info%' ) do ( - rem echo Last release Version : %%j - rem echo Installed Version : %%i - set v_install= Installed Version: %%i - set v_last=Last Release Version: %%j - set v_ver_flag=1 - ) - ) - call :l_print_version - goto :eof - -:l_print_version - call :l_prt_af_line - echo %v_install% - echo %v_last% - call :l_prt_af_line - rem echo %v_flag% - goto :eof - -:l_prt_extensiondir - call :l_prt_be_line - echo Nbextension not activated - echo Plz install nbextension - call :l_prt_af_line - goto :eof - -:l_prt_visualpythondir - call :l_prt_af_line - echo Already exists Visual Python. - goto :eof - -:l_prt_notexists_visualpythondir - call :l_prt_be_line - echo Visual Python extension not installed. - call :l_prt_af_line - goto :eof - -:l_prt_be_line - echo. - echo ========================================================================================== - goto :eof - -:l_prt_af_line - echo ========================================================================================== - goto :eof - -:l_prt_line - echo ------------------------------------------------------------------------------------------ - goto :eof - - -:l_uninstall - IF EXIST "%v_path2%%v_prod%" ( - call :l_disable - call :l_remove_files - echo "%v_path2%%v_prod%" - call :l_prt_af_line - %v_unst% - ) else ( - call :l_prt_be_line - echo %v_path1:~,-18%\share\jupyter\nbextensions\ - echo %v_path2%%v_prod% - call :l_prt_af_line - %v_unst% - ) - -rem #========================================================================== -rem #End of File -rem #========================================================================== +@echo off +SetLocal +rem #========================================================================== +rem # Filename : visualpy.bat +rem # function : control Visual Python for windows +rem # Creator : BlackLogic - LJ +rem # version : 2.1 +rem # License : GPLv3 +rem # Date : 2020 07.30 +rem # MDate : 2020 12.29 +rem #========================================================================== + +rem ## setting variables + +set v_prod=visualpython +(echo "%v_prod%" & echo.) | findstr /O . | more +1 | (set /P RESULT= & call exit /B %%RESULT%%) +set /A v_prd_length=%ERRORLEVEL%-5 +set v_option=%1 +for /f "delims=, tokens=1*" %%i in ('pip show %v_prod% 2^>^&1 ^| find "Location"') do ( +set v_1=%%i) +set v_path1=%v_1:~10% +set v_str1=jupyter nbextension +set v_str2=%v_prod%/src/main +set v_srch=pip search %v_prod% +set v_upgr=pip install %v_prod% --upgrade +set v_unst=pip uninstall %v_prod% +set v_ckup=pip list -o +set v_show=pip show %v_prod% + +rem check env & setting path2 +where /q conda-env +IF ERRORLEVEL 1 ( + call :l_prt_be_line + ECHO Not a conda env. + set v_path2=%APPDATA%\jupyter\nbextensions\ +) ELSE ( + call :l_prt_be_line + ECHO conda env. + set v_path2=%v_path1:~,-18%\share\jupyter\nbextensions\ +) + +rem ## Main Block +:l_main + IF /i "%v_option%"=="" goto :l_help + + for %%i in (-h help) do if /i %v_option% == %%i call :l_help + for %%i in (-e enable) do if /i %v_option% == %%i call :l_enable + for %%i in (-d disable) do if /i %v_option% == %%i call :l_disable + for %%i in (-i install) do if /i %v_option% == %%i call :l_install + for %%i in (-up upgrade) do if /i %v_option% == %%i call :l_upgrade + for %%i in (-v version) do if /i %v_option% == %%i call :l_version + for %%i in (-ce checkext) do if /i %v_option% == %%i call :l_check_extension + for %%i in (-cb checkbpl) do if /i %v_option% == %%i call :l_check_visualpython + for %%i in (-un uninstall) do if /i %v_option% == %%i goto :l_uninstall + goto :eof + +rem ## Function Block +:l_help + echo. + echo usage: visualpy option + echo optional arguments: + echo -h, help show this help message and exit + echo -e, enable enable Visual Python + echo -d, disable disable Visual Python + echo -i, install install Visual Python extensions + echo -un, uninstall uninstall Visual Python packages + echo -up, upgrade upgrade Visual Python Package + echo -v, version show Visual Python current version + echo. + goto :eof + +:l_check_extension + IF NOT EXIST "%v_path2%" call :l_prt_extensiondir + goto :eof + +:l_check_visualpython + IF EXIST "%v_path2%%v_prod%" ( + set v_flag=1 + ) ELSE ( + set v_flag=2 + ) + goto :eof + +:l_install + rem "" is for envname with space. + IF EXIST "%v_path2%%v_prod%" ( call :l_prt_be_line + echo Check installed %v_prod% Path : + echo %v_path2%%v_prod% + call :l_prt_visualpythondir + call :l_overwrite + ) ELSE ( call :l_copy_files + call :l_enable + ) + goto :eof + +:l_enable + call :l_prt_be_line + %v_str1% enable %v_str2% + call :l_prt_af_line + goto :eof + +:l_disable + call :l_prt_af_line + %v_str1% disable %v_str2% + call :l_prt_af_line + goto :eof + +:l_overwrite + rem if visaulpython 없는경우 install로 수행 + rem else remove & install + call :l_disable + call :l_remove_files + call :l_copy_files + call :l_enable + goto :eof + +:l_copy_files + call :l_prt_be_line + echo source : %v_path1%\%v_prod%\ + rem "" is for envname with space. + xcopy /q /y /e "%v_path1%\%v_prod%" "%v_path2%%v_prod%\" + echo target : %v_path2%%v_prod%\ + call :l_prt_af_line + goto :eof + +:l_remove_files + call :l_prt_be_line + echo Remove Visual Python Directories. + rem "" is for envname with space. + rmdir /s /q "%v_path2%%v_prod%" + call :l_prt_af_line + goto :eof + +:l_upgrade + call :l_prt_af_line + echo Running upgrade visualpython. + call :l_prt_af_line + rem setting current version + for /f "tokens=*" %%i in ( '%v_show% 2^>^&1 ^| findstr /i Version') do ( + set v_currentver=%%i + ) + + rem running version upgrade + %v_upgr% + + rem setting last installed version + for /f "tokens=*" %%i in ( '%v_show% 2^>^&1 ^| findstr /i Version') do ( + set v_lastver=%%i + ) + set v_install= Installed %v_currentver% + set v_last=Last Release %v_lastver% + + call :l_prt_af_line + + if not %v_lastver:~9% == %v_currentver:~9% ( + echo change visualpython extension files ... + call :l_disable + call :l_copy_files + call :l_enable + ) else ( + echo Already installed last Visual Python version. + call :l_print_version + ) + goto :eof + +:l_version + rem call :l_prt_be_line + + for /f "tokens=*" %%i in ('%v_ckup% 2^>^&1 ^| find /i "%v_prod%"') do ( set v_info=%%i ) + + if "%v_info%."=="." ( + rem pass upgrade + for /f "tokens=*" %%i in ( '%v_show% 2^>^&1 ^| findstr /i Version') do ( set v_last=%%i + + set v_last=Last Release %%i + set v_install= Installed %%i + set v_ver_flag=0 + ) + ) else ( + rem run upgrade + for /f "tokens=2-3" %%i in ( 'echo %v_info%' ) do ( + rem echo Last release Version : %%j + rem echo Installed Version : %%i + set v_install= Installed Version: %%i + set v_last=Last Release Version: %%j + set v_ver_flag=1 + ) + ) + call :l_print_version + goto :eof + +:l_print_version + call :l_prt_af_line + echo %v_install% + echo %v_last% + call :l_prt_af_line + rem echo %v_flag% + goto :eof + +:l_prt_extensiondir + call :l_prt_be_line + echo Nbextension not activated + echo Plz install nbextension + call :l_prt_af_line + goto :eof + +:l_prt_visualpythondir + call :l_prt_af_line + echo Already exists Visual Python. + goto :eof + +:l_prt_notexists_visualpythondir + call :l_prt_be_line + echo Visual Python extension not installed. + call :l_prt_af_line + goto :eof + +:l_prt_be_line + echo. + echo ========================================================================================== + goto :eof + +:l_prt_af_line + echo ========================================================================================== + goto :eof + +:l_prt_line + echo ------------------------------------------------------------------------------------------ + goto :eof + + +:l_uninstall + IF EXIST "%v_path2%%v_prod%" ( + call :l_disable + call :l_remove_files + echo "%v_path2%%v_prod%" + call :l_prt_af_line + %v_unst% + ) else ( + call :l_prt_be_line + echo %v_path1:~,-18%\share\jupyter\nbextensions\ + echo %v_path2%%v_prod% + call :l_prt_af_line + %v_unst% + ) + +rem #========================================================================== +rem #End of File +rem #========================================================================== EndLocal \ No newline at end of file diff --git a/src/api_block/blockContainer.js b/src/api_block/blockContainer.js index 05eaedcf..4988fd64 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 block; + } else { + return null; } } @@ -289,6 +292,9 @@ define([ this.resetOptionPage(); this.reRenderAllBlock_asc(); } + return block; + } else { + return null; } } @@ -298,8 +304,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 +342,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'); } } @@ -2581,7 +2581,7 @@ define([ this.hideOptionPreviewBox(); $(VP_ID_PREFIX + VP_APIBLOCK_BOARD_OPTION_PREVIEW_BUTTON).removeClass('enabled'); - this.setNavigator(BLOCK_CODELINE_TYPE.NONE, 'Visual Python 1.1.0'); + this.setNavigator(BLOCK_CODELINE_TYPE.NONE, 'Visual Python 1.1.1'); this.setFocusedPageType(FOCUSED_PAGE_TYPE.BOARD); $('.vp-apiblock-option-tab-none').css(STR_DISPLAY, STR_BLOCK); } diff --git a/src/api_block/index.html b/src/api_block/index.html index 3b1069df..70894ee2 100644 --- a/src/api_block/index.html +++ b/src/api_block/index.html @@ -37,7 +37,7 @@ vp-accordion-caption' data-category="api">Library -