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([
115116 this . defaultConfig = { } ;
116117 this . 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+
118174 this . _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 ] ;
166264 let promiseList = [ ] ;
167265 libraryList . forEach ( libName => {
@@ -464,6 +562,17 @@ define([
464562 return 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 //========================================================================
0 commit comments