Add filter and support ValueWidget

pull/29/head
Thomas Bouve 2020-10-03 13:57:12 +02:00
rodzic ff79543dfe
commit 4bc26e36de
5 zmienionych plików z 33 dodań i 20 usunięć

Wyświetl plik

@ -1,3 +1,3 @@
from .filechooser import FileChooser
__version__ = '0.3.5'
__version__ = '0.4.0'

Wyświetl plik

@ -1,10 +1,10 @@
import os
from ipywidgets import Dropdown, Text, Select, Button, HTML
from ipywidgets import Layout, GridBox, HBox, VBox
from ipywidgets import Layout, GridBox, HBox, VBox, ValueWidget
from .utils import get_subpaths, get_dir_contents
class FileChooser(VBox):
class FileChooser(VBox, ValueWidget):
"""FileChooser class."""
_LBL_TEMPLATE = '<span style="margin-left:10px; color:{1};">{0}</span>'
@ -21,9 +21,8 @@ class FileChooser(VBox):
select_default=False,
use_dir_icons=False,
show_only_dirs=False,
filter_pattern='',
**kwargs
):
filter_pattern=None,
**kwargs):
"""Initialize FileChooser object."""
self._default_path = path.rstrip(os.path.sep)
self._default_filename = filename
@ -510,6 +509,17 @@ class FileChooser(VBox):
# Reset the dialog
self.reset()
@property
def filter_pattern(self):
"""Get file name filter pattern."""
return self._filter_pattern
@filter_pattern.setter
def filter_pattern(self, filter_pattern):
"""Set file name filter pattern."""
self._filter_pattern = filter_pattern
self.refresh()
@property
def selected(self):
"""Get selected value."""
@ -531,17 +541,6 @@ class FileChooser(VBox):
"""Get the selected_filename."""
return self._selected_filename
@property
def filter_pattern(self):
"""Get file name filter pattern."""
return self._filter_pattern
@filter_pattern.setter
def filter_pattern(self, value):
"""Set file name filter pattern."""
self._filter_pattern = value
self.refresh()
def __repr__(self):
"""Build string representation."""
str_ = (
@ -569,3 +568,7 @@ class FileChooser(VBox):
def register_callback(self, callback):
"""Register a callback function."""
self._callback = callback
def get_interact_value(self):
"""Return the value which should be passed to interactive functions."""
return self.selected

Wyświetl plik

@ -37,7 +37,7 @@ def get_dir_contents(
show_hidden=False,
prepend_icons=False,
show_only_dirs=False,
filter_pattern=''):
filter_pattern=None):
"""Get directory contents."""
files = list()
dirs = list()

Wyświetl plik

@ -103,6 +103,16 @@
"fdialog.show_only_dirs = False"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Set a file filter pattern (uses https://docs.python.org/3/library/fnmatch.html)\n",
"fdialog.filter_pattern = '*.txt'"
]
},
{
"cell_type": "code",
"execution_count": null,

Wyświetl plik

@ -10,7 +10,7 @@ def read(fname):
setup(
name='ipyfilechooser',
version='0.3.5',
version='0.4.0',
author='Thomas Bouve (@crahan)',
author_email='crahan@n00.be',
description=(
@ -26,7 +26,7 @@ setup(
'Programming Language :: Python :: 3',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
'Development Status :: 4 - Beta',
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
],
install_requires=[