Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit20ba6f3

Browse files
author
minjk-bl
committed
Edit File to use multi-extensions
1 parent36c75a8 commit20ba6f3

File tree

2 files changed

+66
-43
lines changed

2 files changed

+66
-43
lines changed

‎visualpython/js/com/component/PackageManager.js‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ define([
4747
this.packageLibTemplate={
4848
'numpy':{pipName:'numpy'},
4949
'pandas':{pipName:'pandas'},
50+
'pyarrow':{pipName:'pyarrow'},
5051
'matplotlib':{pipName:'matplotlib'},
5152
'seaborn':{pipName:'seaborn'},
5253
'plotly':{pipName:'plotly'},

‎visualpython/js/m_apps/File.js‎

Lines changed: 65 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -35,17 +35,17 @@ define([
3535
super._init();
3636
/** Write codes executed before rendering */
3737
this.config.dataview=false;
38-
this.config.sizeLevel=1;
38+
this.config.sizeLevel=2;
3939
this.config.checkModules=['pd'];
4040

4141
this.fileExtensions={
42-
'csv':'csv',
43-
'excel':'xlsx',
44-
'json':'json',
45-
'pickle':'',
46-
'sas':'',// xport or sas7bdat
47-
'spss':'',
48-
'parquet':'parquet'
42+
'csv':['csv','tsv'],
43+
'excel':['xlsx','xls'],
44+
'json':['json'],
45+
'pickle':[],
46+
'sas':[],// xport or sas7bdat
47+
'spss':[],
48+
'parquet':['parquet']
4949
}
5050

5151
this.package={
@@ -69,7 +69,8 @@ define([
6969
}
7070

7171
this.state={
72-
fileExtension:'csv',
72+
fileType:'csv',
73+
fileExtension:['csv'],
7374
selectedFile:'',
7475
selectedPath:'',
7576
vp_fileioType:'Read',
@@ -188,6 +189,11 @@ define([
188189
}
189190
}
190191

192+
_unbindEvent(){
193+
super._unbindEvent();
194+
$(document).off('change',this.wrapSelector('#fileReadAs'));
195+
}
196+
191197
_bindEvent(){
192198
super._bindEvent();
193199
/** Implement binding events */
@@ -198,6 +204,19 @@ define([
198204
$(that.wrapSelector('.vp-fileio-box')).hide();
199205
$(that.wrapSelector('#vp_file'+pageType)).show();
200206

207+
if(pageType==='Read'&&that.fileState[pageType].selectedType==='spss'){
208+
// show install button
209+
that.showInstallButton();
210+
// show install note below File type selection
211+
$(`<tr class="vp-spss-note"><td colspan="2">
212+
<label class="vp-orange-text vp-italic">NOTE: </label>
213+
<label class="vp-gray-text vp-italic">pyreadstat package is required to read spss file.</label>
214+
</td></tr>`).insertAfter($(that.wrapSelector('#fileType')).closest('tr'));
215+
}else{
216+
that.hideInstallButton();
217+
$(that.wrapSelector('.vp-spss-note')).remove();
218+
}
219+
201220

202221
//set fileExtensions
203222
that.fileResultState={
@@ -210,26 +229,24 @@ define([
210229
letisChecked=$(this).prop('checked');
211230
varfileioType=that.state.vp_fileioType;
212231
varprefix='#vp_file'+fileioType+' ';
213-
varselectedFileFormat=that.fileState[fileioType].selectedType;
232+
varselectedType=that.fileState[fileioType]['selectedType'];
214233
varfileioTypePrefix=fileioType.toLowerCase();
215234
if(fileioTypePrefix=='write'){
216235
fileioTypePrefix="to";
217236
}
237+
letfileId=that.fileState[fileioType].fileTypeId[selectedType];
218238

219-
if(isChecked){// pyArrow
220-
that.fileState[fileioType].fileTypeId[that.state.fileExtension]="pa_"+fileioTypePrefix+selectedFileFormat[0].toUpperCase()+selectedFileFormat.slice(1);
239+
if(isChecked){// pyArrow
240+
fileId="pa_"+fileioTypePrefix+selectedType[0].toUpperCase()+selectedType.slice(1);
241+
// that.fileState[fileioType].fileTypeId[that.state.fileExtension] = "pa_" + fileioTypePrefix + selectedFileFormat[0].toUpperCase() + selectedFileFormat.slice(1);
221242
$(that.wrapSelector(prefix+'#vp_optionBox')).closest('.vp-accordian-container').hide();
222-
}
223-
else{// pandas
224-
that.fileState[fileioType].fileTypeId[that.state.fileExtension]="pd_"+fileioTypePrefix+selectedFileFormat[0].toUpperCase()+selectedFileFormat.slice(1);
225-
if(that.state.fileExtension!='parquet'){// parquet has no options area
243+
}else{// pandas
244+
// that.fileState[fileioType].fileTypeId[that.state.fileExtension] = "pd_" + fileioTypePrefix + selectedFileFormat[0].toUpperCase() + selectedFileFormat.slice(1);
245+
if(that.state.fileType!='parquet'){// parquet has no options area
226246
$(that.wrapSelector(prefix+'#vp_optionBox')).closest('.vp-accordian-container').show();
227247
}
228248
}
229249

230-
varfileTypeObj=that.fileState[fileioType]['fileTypeId'];
231-
varselectedType=that.fileState[fileioType]['selectedType'];
232-
letfileId=fileTypeObj[selectedType];
233250
letpdLib=pandasLibrary.PANDAS_FUNCTION;
234251
letthisPkg=JSON.parse(JSON.stringify(pdLib[fileId]));
235252

@@ -246,31 +263,14 @@ define([
246263
if(fileioTypePrefix=='write'){
247264
fileioTypePrefix="to";
248265
}
249-
varselectedFileFormat=that.fileState[pageType].selectedType;
250266
// select file type
251267
$(this.wrapSelector(prefix+'#fileType')).change(function(){
252-
varvalue=$(this).val();
253-
that.fileState[pageType].selectedType=value;
254-
255-
// Whenever change the file type, change to default pandas
256-
that.fileState[pageType].fileTypeId[that.state.fileExtension]="pd_"+fileioTypePrefix+selectedFileFormat[0].toUpperCase()+selectedFileFormat.slice(1);
257-
268+
varfileType=$(this).val();
269+
that.fileState[pageType].selectedType=fileType;
258270

259271
// reload
260272
that.renderPage(pageType);
261273
that._bindEventByType(pageType);
262-
263-
if(value==='spss'){
264-
// show install button
265-
that.showInstallButton();
266-
// show install note below File type selection
267-
$(`<tr><td colspan="2">
268-
<label class="vp-orange-text vp-italic">NOTE: </label>
269-
<label class="vp-gray-text vp-italic">pyreadstat package is required to read spss file.</label>
270-
</td></tr>`).insertAfter($(that.wrapSelector('#fileType')).closest('tr'));
271-
}else{
272-
that.hideInstallButton();
273-
}
274274
});
275275

276276
// open file navigation
@@ -282,8 +282,8 @@ define([
282282
}
283283

284284
letextensionList=[];
285-
if(that.state.fileExtension!==''){
286-
extensionList=[that.state.fileExtension];
285+
if(that.state.fileExtension&&that.state.fileExtension.length>0){
286+
extensionList=that.state.fileExtension;
287287
}
288288

289289
letfileNavi=newFileNavigation({
@@ -417,8 +417,7 @@ define([
417417
$('<tr>').append($(`<td><label for="fileType" class="vp-bold vp-orange-text">File Type</label></td>`))
418418
.append($('<td><select id="fileType" class="vp-select"></select> <label><input id="fileReadAs" type="checkbox"/><span>Use PyArrow</span></label></td>'))
419419
);
420-
}
421-
else{
420+
}else{
422421
$(this.wrapSelector(prefix+'#vp_inputOutputBox table tbody')).prepend(
423422
$('<tr>').append($(`<td><label for="fileType" class="vp-bold vp-orange-text">File Type</label></td>`))
424423
.append($('<td><select id="fileType" class="vp-select"></select> </td>'))
@@ -433,7 +432,6 @@ define([
433432
);
434433
});
435434

436-
437435
// prepend user option
438436
lethasAllocateTo=$(this.wrapSelector(prefix+'#o0')).length>0;
439437
if(hasAllocateTo){
@@ -476,6 +474,18 @@ define([
476474
,'vp-file-browser-button')
477475
);
478476
}
477+
478+
if(pageType==='Read'&&selectedType==='spss'){
479+
// show install button
480+
this.showInstallButton();
481+
// show install note below File type selection
482+
$(`<tr class="vp-spss-note"><td colspan="2">
483+
<label class="vp-orange-text vp-italic">NOTE: </label>
484+
<label class="vp-gray-text vp-italic">pyreadstat package is required to read spss file.</label>
485+
</td></tr>`).insertAfter($(this.wrapSelector('#fileType')).closest('tr'));
486+
}else{
487+
this.hideInstallButton();
488+
}
479489

480490
// encoding suggest input
481491
$(this.wrapSelector('#encoding')).replaceWith(function(){
@@ -488,6 +498,18 @@ define([
488498
suggestInput.setPlaceholder('encoding option');
489499
returnsuggestInput.toTagString();
490500
});
501+
502+
// seperator suggest input
503+
$(this.wrapSelector('#sep')).replaceWith(function(){
504+
// seperator list :
505+
varsepList=[',','|','\\t','\\n',':',';','-','_','&','/','\\'];
506+
varsuggestInput=newSuggestInput();
507+
suggestInput.setComponentID('sep');
508+
suggestInput.addClass('vp-input vp-state');
509+
suggestInput.setSuggestList(function(){returnsepList;});
510+
suggestInput.setPlaceholder('Input seperator');
511+
returnsuggestInput.toTagString();
512+
});
491513
}
492514

493515
render(){

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp