kopia lustrzana https://github.com/crahan/ipyfilechooser
Add filter and support ValueWidget
rodzic
ff79543dfe
commit
4bc26e36de
|
@ -1,3 +1,3 @@
|
|||
from .filechooser import FileChooser
|
||||
|
||||
__version__ = '0.3.5'
|
||||
__version__ = '0.4.0'
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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,
|
||||
|
|
4
setup.py
4
setup.py
|
@ -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=[
|
||||
|
|
Ładowanie…
Reference in New Issue