You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by mi...@apache.org on 2019/06/19 22:36:12 UTC

[incubator-superset] 05/08: [CSV Upload] Fix Index Column input filter (#7723)

This is an automated email from the ASF dual-hosted git repository.

michellet pushed a commit to branch release--0.33
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git

commit a12c8e0cb0ce4227365ab853e531e1c422302da4
Author: Erik Ritter <er...@airbnb.com>
AuthorDate: Mon Jun 17 22:34:29 2019 -0700

    [CSV Upload] Fix Index Column input filter (#7723)
    
    
    (cherry picked from commit 0b1a875708648e792b274caa6ce944f520478092)
---
 superset/forms.py | 34 ++++++++++++++--------------------
 1 file changed, 14 insertions(+), 20 deletions(-)

diff --git a/superset/forms.py b/superset/forms.py
index 19de67e..4f9d9d3 100644
--- a/superset/forms.py
+++ b/superset/forms.py
@@ -23,7 +23,7 @@ from flask_wtf.file import FileAllowed, FileField, FileRequired
 from wtforms import (
     BooleanField, Field, IntegerField, SelectField, StringField)
 from wtforms.ext.sqlalchemy.fields import QuerySelectField
-from wtforms.validators import DataRequired, NumberRange, Optional
+from wtforms.validators import DataRequired, Length, NumberRange, Optional
 
 from superset import app, db, security_manager
 from superset.models import core as models
@@ -123,8 +123,7 @@ class CsvToDatabaseForm(DynamicForm):
         _('Schema'),
         description=_('Specify a schema (if database flavor supports this).'),
         validators=[Optional()],
-        widget=BS3TextFieldWidget(),
-        filters=[lambda x: x or None])
+        widget=BS3TextFieldWidget())
     sep = StringField(
         _('Delimiter'),
         description=_('Delimiter used by CSV file (for whitespace use \s+).'),
@@ -146,17 +145,15 @@ class CsvToDatabaseForm(DynamicForm):
             'Row containing the headers to use as '
             'column names (0 is first line of data). '
             'Leave empty if there is no header row.'),
-        validators=[Optional()],
-        widget=BS3TextFieldWidget(),
-        filters=[lambda x: x or None])
+        validators=[Optional(), NumberRange(min=0)],
+        widget=BS3TextFieldWidget())
     index_col = IntegerField(
         _('Index Column'),
         description=_(
             'Column to use as the row labels of the '
             'dataframe. Leave empty if no index column.'),
-        validators=[Optional(), NumberRange(0, 1E+20)],
-        widget=BS3TextFieldWidget(),
-        filters=[lambda x: x or None])
+        validators=[Optional(), NumberRange(min=0)],
+        widget=BS3TextFieldWidget())
     mangle_dupe_cols = BooleanField(
         _('Mangle Duplicate Columns'),
         description=_('Specify duplicate columns as "X.0, X.1".'))
@@ -166,15 +163,13 @@ class CsvToDatabaseForm(DynamicForm):
     skiprows = IntegerField(
         _('Skip Rows'),
         description=_('Number of rows to skip at start of file.'),
-        validators=[Optional(), NumberRange(0, 1E+20)],
-        widget=BS3TextFieldWidget(),
-        filters=[lambda x: x or None])
+        validators=[Optional(), NumberRange(min=0)],
+        widget=BS3TextFieldWidget())
     nrows = IntegerField(
         _('Rows to Read'),
         description=_('Number of rows of file to read.'),
-        validators=[Optional(), NumberRange(0, 1E+20)],
-        widget=BS3TextFieldWidget(),
-        filters=[lambda x: x or None])
+        validators=[Optional(), NumberRange(min=0)],
+        widget=BS3TextFieldWidget())
     skip_blank_lines = BooleanField(
         _('Skip Blank Lines'),
         description=_(
@@ -193,10 +188,10 @@ class CsvToDatabaseForm(DynamicForm):
             'automatically.'))
     decimal = StringField(
         _('Decimal Character'),
+        default='.',
         description=_('Character to interpret as decimal point.'),
-        validators=[Optional()],
-        widget=BS3TextFieldWidget(),
-        filters=[lambda x: x or '.'])
+        validators=[Optional(), Length(min=1, max=1)],
+        widget=BS3TextFieldWidget())
     index = BooleanField(
         _('Dataframe Index'),
         description=_('Write dataframe index as a column.'))
@@ -206,5 +201,4 @@ class CsvToDatabaseForm(DynamicForm):
             'Column label for index column(s). If None is given '
             'and Dataframe Index is True, Index Names are used.'),
         validators=[Optional()],
-        widget=BS3TextFieldWidget(),
-        filters=[lambda x: x or None])
+        widget=BS3TextFieldWidget())