Factor out BoolFacet from StarredFacet and add BlankFacet.
This commit is contained in:
parent
b34ff146c4
commit
b33d280ee7
|
@ -81,22 +81,34 @@ class TextFacet(Facet):
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
|
||||||
class StarredFacet(TextFacet):
|
class BoolFacet(TextFacet):
|
||||||
def __init__(self, selection=None):
|
def __init__(self, column, expression=None, selection=None):
|
||||||
if selection is not None and not isinstance(selection, bool):
|
if selection is not None and not isinstance(selection, bool):
|
||||||
raise ValueError('selection must be True or False.')
|
raise ValueError('selection must be True or False.')
|
||||||
|
if expression is None:
|
||||||
|
raise ValueError('Missing expression')
|
||||||
|
super(BoolFacet, self).__init__(column,
|
||||||
|
expression=expression, selection=selection)
|
||||||
|
|
||||||
|
|
||||||
|
class StarredFacet(BoolFacet):
|
||||||
|
def __init__(self, selection=None):
|
||||||
super(StarredFacet, self).__init__('',
|
super(StarredFacet, self).__init__('',
|
||||||
expression='row.starred', selection=selection)
|
expression='row.starred', selection=selection)
|
||||||
|
|
||||||
|
|
||||||
class FlaggedFacet(TextFacet):
|
class FlaggedFacet(BoolFacet):
|
||||||
def __init__(self, selection=None):
|
def __init__(self, selection=None):
|
||||||
if selection is not None and not isinstance(selection, bool):
|
|
||||||
raise ValueError('selection must be True or False.')
|
|
||||||
super(FlaggedFacet, self).__init__('',
|
super(FlaggedFacet, self).__init__('',
|
||||||
expression='row.flagged', selection=selection)
|
expression='row.flagged', selection=selection)
|
||||||
|
|
||||||
|
|
||||||
|
class BlankFacet(BoolFacet):
|
||||||
|
def __init__(self, column, selection=None):
|
||||||
|
super(BlankFacet, self).__init__(column,
|
||||||
|
expression='isBlank(value)', selection=selection)
|
||||||
|
|
||||||
|
|
||||||
# Capitalize 'From' to get around python's reserved word.
|
# Capitalize 'From' to get around python's reserved word.
|
||||||
class NumericFacet(Facet):
|
class NumericFacet(Facet):
|
||||||
def __init__(self, column, From=None, to=None, select_blank=True, select_error=True, select_non_numeric=True, select_numeric=True, **options):
|
def __init__(self, column, From=None, to=None, select_blank=True, select_error=True, select_non_numeric=True, select_numeric=True, **options):
|
||||||
|
|
|
@ -11,7 +11,8 @@ import sys
|
||||||
import os
|
import os
|
||||||
import unittest
|
import unittest
|
||||||
from google.refine import REFINE_HOST, REFINE_PORT
|
from google.refine import REFINE_HOST, REFINE_PORT
|
||||||
from google.refine import NumericFacet, TextFacet, StarredFacet, Engine
|
from google.refine import NumericFacet, TextFacet
|
||||||
|
from google.refine import BlankFacet, StarredFacet, Engine
|
||||||
from google.refine import RefineServer, Refine, RefineProject
|
from google.refine import RefineServer, Refine, RefineProject
|
||||||
from google.refine import to_camel, from_camel
|
from google.refine import to_camel, from_camel
|
||||||
|
|
||||||
|
@ -300,8 +301,7 @@ class TutorialTestDuplicateDetection(RefineTestCase):
|
||||||
emails = [1 if r['email'] else 0 for r in response.rows]
|
emails = [1 if r['email'] else 0 for r in response.rows]
|
||||||
self.assertEqual(emails, [1, 0, 1, 1, 1, 0, 0, 1, 1, 0])
|
self.assertEqual(emails, [1, 0, 1, 1, 1, 0, 0, 1, 1, 0])
|
||||||
# {12}
|
# {12}
|
||||||
blank_facet = TextFacet('email', expression='isBlank(value)',
|
blank_facet = BlankFacet('email', selection=True)
|
||||||
selection=True)
|
|
||||||
# {13}
|
# {13}
|
||||||
response = self.project.remove_rows(blank_facet)
|
response = self.project.remove_rows(blank_facet)
|
||||||
self.assertTrue('Remove 4 rows' in
|
self.assertTrue('Remove 4 rows' in
|
||||||
|
@ -467,8 +467,7 @@ class TutorialTestTransposeVariableNumbeOfRowsIntoColumns(RefineTestCase):
|
||||||
# {26}
|
# {26}
|
||||||
self.project.engine.mode = 'row-based'
|
self.project.engine.mode = 'row-based'
|
||||||
# {27}
|
# {27}
|
||||||
blank_facet = TextFacet('First Line', expression='isBlank(value)',
|
blank_facet = BlankFacet('First Line', selection=True)
|
||||||
selection=True)
|
|
||||||
response = self.project.remove_rows(blank_facet)
|
response = self.project.remove_rows(blank_facet)
|
||||||
self.assertEqual('Remove 14 rows',
|
self.assertEqual('Remove 14 rows',
|
||||||
response['historyEntry']['description'])
|
response['historyEntry']['description'])
|
||||||
|
|
Loading…
Reference in New Issue