1414define ( [
1515'./com_Const' ,
1616'./com_util' ,
17- './com_interface'
18- ] , function ( com_Const , com_util , com_interface ) {
17+ './com_interface' ,
18+ 'text!vp_base/python/userCommand.py' ,
19+ ] , function ( com_Const , com_util , com_interface , userCommandFile ) {
1920'use strict' ;
2021//========================================================================
2122// Define Inner Variable
@@ -115,7 +116,64 @@ define([
115116this . defaultConfig = { } ;
116117this . metadataSettings = { } ;
117118
119+ this . moduleDict = {
120+ 'np' :{
121+ code :'import numpy as np' ,
122+ type :'package'
123+ } ,
124+ 'numpy' :{
125+ code :'import numpy as np' ,
126+ type :'package'
127+ } ,
128+ 'pd' :{
129+ code :'import pandas as pd' ,
130+ type :'package'
131+ } ,
132+ 'pandas' :{
133+ code :'import pandas as pd' ,
134+ type :'package'
135+ } ,
136+ 'plt' :{
137+ code :'import matplotlib.pyplot as plt\n%matplotlib inline' ,
138+ type :'package'
139+ } ,
140+ 'sns' :{
141+ code :'import seaborn as sns' ,
142+ type :'package'
143+ } ,
144+ 'metrics' :{
145+ code :'from sklearn import metrics' ,
146+ type :'package'
147+ } ,
148+ 'ProfileReport' :{
149+ code :'from pandas_profiling import ProfileReport' ,
150+ type :'package'
151+ } ,
152+ 'px' :{
153+ code :'import plotly.express as px' ,
154+ type :'package'
155+ } ,
156+ 'WordCloud' :{
157+ code :'from wordcloud import WordCloud' ,
158+ type :'package'
159+ } ,
160+ 'fitz' :{
161+ code :'import fitz' ,
162+ type :'package'
163+ } ,
164+ 'nltk' :{
165+ code :"import nltk\nnltk.download('punkt')" ,
166+ type :'package'
167+ } ,
168+ 'Counter' :{
169+ code :'from collections import Counter' ,
170+ type :'package'
171+ }
172+ }
173+
118174this . _readDefaultConfig ( ) ;
175+ this . _readUserCommandList ( ) ;
176+
119177}
120178
121179/**
@@ -150,6 +208,46 @@ define([
150208$ . extend ( true , this . defaultConfig , this . metadataSettings ) ;
151209}
152210
211+ _readUserCommandList ( ) {
212+ let divider = '#' . repeat ( 6 ) ;
213+ // get list of codes (ignore first 2 items)
214+ let tmpList = userCommandFile . split ( divider ) . slice ( 2 ) ;
215+
216+ // match key-codes-description
217+ // { 'func_name': { code: '', description: '' } }
218+ let funcDict = { } ;
219+ let reg = / ^ d e f ( .+ ) \( / ;
220+ let name = '' ;
221+ let code = '' ;
222+ let desc = '' ;
223+ let packageAlias = {
224+ '_vp_np' :'np' ,
225+ '_vp_pd' :'pd' ,
226+ '_vp_plt' :'plt'
227+ }
228+
229+ for ( let i = 0 ; i < tmpList . length ; i += 2 ) {
230+ desc = tmpList [ i ] . trim ( ) ;
231+ code = tmpList [ i + 1 ] . trim ( ) ;
232+ let regResult = reg . exec ( code ) ;
233+ if ( regResult !== null ) {
234+ name = regResult [ 1 ] ;
235+ // convert code's package alias
236+ Object . keys ( packageAlias ) . forEach ( key => {
237+ let desAlias = packageAlias [ key ] ;
238+ code = code . replaceAll ( key + '.' , desAlias + '.' ) ;
239+ } ) ;
240+ // list up
241+ funcDict [ name ] = { code :code , type :'function' , description :desc } ;
242+ }
243+ }
244+
245+ this . moduleDict = {
246+ ...this . moduleDict ,
247+ ...funcDict
248+ }
249+ }
250+
153251/**
154252 * Read kernel functions for using visualpython
155253 * - manually click restart menu (MenuFrame.js)
@@ -161,7 +259,7 @@ define([
161259'fileNaviCommand.py' ,
162260'pandasCommand.py' ,
163261'variableCommand.py' ,
164- 'userCommand.py'
262+ // 'userCommand.py'
165263] ;
166264let promiseList = [ ] ;
167265libraryList . forEach ( libName => {
@@ -464,6 +562,17 @@ define([
464562return Object . keys ( Config . ML_DATA_DICT ) ;
465563}
466564
565+ getModuleCode ( modName = '' ) {
566+ if ( modName == '' ) {
567+ return this . moduleDict ;
568+ }
569+ try {
570+ return this . moduleDict [ modName ] ;
571+ } catch {
572+ return null ;
573+ }
574+ }
575+
467576}
468577
469578//========================================================================