From c5cc506e69fefcf9a096bc09b177a69228746909 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Tue, 11 Apr 2023 21:17:35 +0000 Subject: automatic import of python-ipyfilechooser --- .gitignore | 1 + python-ipyfilechooser.spec | 640 +++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 642 insertions(+) create mode 100644 python-ipyfilechooser.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..b3c2875 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/ipyfilechooser-0.6.0.tar.gz diff --git a/python-ipyfilechooser.spec b/python-ipyfilechooser.spec new file mode 100644 index 0000000..57e0e59 --- /dev/null +++ b/python-ipyfilechooser.spec @@ -0,0 +1,640 @@ +%global _empty_manifest_terminate_build 0 +Name: python-ipyfilechooser +Version: 0.6.0 +Release: 1 +Summary: Python file chooser widget for use in Jupyter/IPython in conjunction with ipywidgets +License: MIT +URL: https://github.com/crahan/ipyfilechooser +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/13/63/a0bfdda0cdf002421632734e203e4692d72dc4e71cd006f101c90f9ba6d3/ipyfilechooser-0.6.0.tar.gz +BuildArch: noarch + +Requires: python3-ipywidgets + +%description +# ipyfilechooser + +A simple Python file chooser widget for use in Jupyter/IPython in conjunction with ipywidgets. The selected path and file are available via `.selected_path` and `.selected_filename` respectvely or as a single combined filepath via `.selected`. The dialog can be reset to its default path and filename by using `.reset()`. + +When a typed filename matches an existing file entry in the current folder the entry will be highlighted. If a typed filename matches a folder entry in the current view the selection button is disabled ensure the user is aware of the match. To select a folder simply leave the filename field empty. + +To emphasize the risk of overwriting existing files, the selected filepath is displayed in green if the file does not exist and orange if it does. + +[![Downloads](https://pepy.tech/badge/ipyfilechooser)](https://pepy.tech/project/ipyfilechooser) + +## Usage + +```python +from ipyfilechooser import FileChooser + +# Create and display a FileChooser widget +fc = FileChooser('/Users/crahan/FC demo') +display(fc) + +# Print the selected path, filename, or both +print(fc.selected_path) +print(fc.selected_filename) +print(fc.selected) + +# Change defaults and reset the dialog +fc.default_path = '/Users/crahan/' +fc.default_filename = 'output.txt' +fc.reset() + +# Shorthand reset +fc.reset(path='/Users/crahan/', filename='output.txt') + +# Restrict navigation to /Users +fc.sandbox_path = '/Users' + +# Change hidden files +fc.show_hidden = True + +# Customize dir icon +fc.dir_icon = '/' +fc.dir_icon_append = True + +# Switch to folder-only mode +fc.show_only_dirs = True + +# Set a file filter pattern (uses https://docs.python.org/3/library/fnmatch.html) +fc.filter_pattern = '*.txt' + +# Set multiple file filter patterns (uses https://docs.python.org/3/library/fnmatch.html) +fc.filter_pattern = ['*.jpg', '*.png'] + +# Change the title (use '' to hide) +fc.title = 'FileChooser title' + +# Sample callback function +def change_title(chooser): + chooser.title = 'Callback function executed' + +# Register callback function +fc.register_callback(change_title) +``` + +## Functions and properties + +```python +fc.reset() +fc.refresh() +fc.register_callback(function_name) +fc.show_hidden +fc.dir_icon +fc.dir_icon_append +fc.show_only_dirs +fc.rows +fc.title +fc.filter_pattern +fc.default +fc.default_path +fc.default_filename +fc.sandbox_path +fc.value +fc.selected +fc.selected_path +fc.selected_filename +``` + +## Screenshots + +### Closed vs open dialog + +![Screenshot 1](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_1.png) + +![Screenshot 2](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_2.png) + +### Existing vs new file selection + +![Screenshot 3](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_3.png) + +![Screenshot 4](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_4.png) + +### Quick navigation dropdown + +![Screenshot 5](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_5.png) + +### Use folder icons + +![Screenshot 6](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_6.png) + +### Restrict navigation + +![Screenshot 7](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_7.png) + +## Release notes + +### 0.6.0 + +- The ability to restrict file browsing to a `sandbox_path` folder has finally been added! +- Filenames can not contain path separator characters or parent folder strings (i.e., '..') +- `use_dir_icons` has been replaced with `dir_icon` which allows for customizing the folder icon +- `dir_icon_append` can now be used to put the folder icon before or after the folder name +- Better error handling with `ParentPathError`, `InvalidPathError`, and `InvalidFileNameError` +- Better and more consistent handling of Windows drive letters and paths +- Fix bug where resetting the filechooser would not reenable the select/change button +- Properly handle folder permission errors by raising a warning + +### 0.5.0 + +- Widget width is now configurable using the `layout` property and a `Layout` object +- Folder paths are now normalized using `os.path.normpath` to properly handle '/' and '\\' on Windows +- The widget now supports the `value` property to align with other widget types +- The label showing the selected value now reflows the text to new lines as required (and shows a scrollbar if the value is too long) +- Buttons now have a minimum width to ensure their text is always visible, regardless of widget width + +### 0.4.4 + +- Added typing hints (@Mandroide) +- Updated max line length check from 90 to 120 characters +- Fixed `filter_pattern` values not being treated as case-insensitive +- General code cleanup + +### 0.4.3 + +- Prevent applying the selected value if the filename doesn't match one of the `filter_pattern` values + +### 0.4.2 + +- Added ability to specify a list of `fnmatch` pattern strings for `filter_pattern` + +### 0.4.1 + +- Fixed issue with `select_default` not being applied on `reset` + +### 0.4.0 + +- Option added to specify a file filter (@andriykorchak) +- Add support for `ValueWidget` and `get_interact_value()` +- Updated sample notebook with filter example +- Updated Development Status to Production/Stable + +### 0.3.5 + +- Option added to only display folders (@andriykorchak) + +### 0.3.4 + +- Option added to display folder icons (@ptooley) + +### 0.3.3 + +- Option added to add `self` as an argument to the callback function (@ptooley) + +### 0.3.2 + +- Return `None` if file is not selected (@danjjl) + +### 0.3.1 + +- Option to register a callback function (`register_callback(function_name)`) + +### 0.3.0 + +- Ability to select a folder +- Support for Windows drive letters +- Option to use the defaults as the selected value + +### 0.2.0 + +- First public release + + + + +%package -n python3-ipyfilechooser +Summary: Python file chooser widget for use in Jupyter/IPython in conjunction with ipywidgets +Provides: python-ipyfilechooser +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-ipyfilechooser +# ipyfilechooser + +A simple Python file chooser widget for use in Jupyter/IPython in conjunction with ipywidgets. The selected path and file are available via `.selected_path` and `.selected_filename` respectvely or as a single combined filepath via `.selected`. The dialog can be reset to its default path and filename by using `.reset()`. + +When a typed filename matches an existing file entry in the current folder the entry will be highlighted. If a typed filename matches a folder entry in the current view the selection button is disabled ensure the user is aware of the match. To select a folder simply leave the filename field empty. + +To emphasize the risk of overwriting existing files, the selected filepath is displayed in green if the file does not exist and orange if it does. + +[![Downloads](https://pepy.tech/badge/ipyfilechooser)](https://pepy.tech/project/ipyfilechooser) + +## Usage + +```python +from ipyfilechooser import FileChooser + +# Create and display a FileChooser widget +fc = FileChooser('/Users/crahan/FC demo') +display(fc) + +# Print the selected path, filename, or both +print(fc.selected_path) +print(fc.selected_filename) +print(fc.selected) + +# Change defaults and reset the dialog +fc.default_path = '/Users/crahan/' +fc.default_filename = 'output.txt' +fc.reset() + +# Shorthand reset +fc.reset(path='/Users/crahan/', filename='output.txt') + +# Restrict navigation to /Users +fc.sandbox_path = '/Users' + +# Change hidden files +fc.show_hidden = True + +# Customize dir icon +fc.dir_icon = '/' +fc.dir_icon_append = True + +# Switch to folder-only mode +fc.show_only_dirs = True + +# Set a file filter pattern (uses https://docs.python.org/3/library/fnmatch.html) +fc.filter_pattern = '*.txt' + +# Set multiple file filter patterns (uses https://docs.python.org/3/library/fnmatch.html) +fc.filter_pattern = ['*.jpg', '*.png'] + +# Change the title (use '' to hide) +fc.title = 'FileChooser title' + +# Sample callback function +def change_title(chooser): + chooser.title = 'Callback function executed' + +# Register callback function +fc.register_callback(change_title) +``` + +## Functions and properties + +```python +fc.reset() +fc.refresh() +fc.register_callback(function_name) +fc.show_hidden +fc.dir_icon +fc.dir_icon_append +fc.show_only_dirs +fc.rows +fc.title +fc.filter_pattern +fc.default +fc.default_path +fc.default_filename +fc.sandbox_path +fc.value +fc.selected +fc.selected_path +fc.selected_filename +``` + +## Screenshots + +### Closed vs open dialog + +![Screenshot 1](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_1.png) + +![Screenshot 2](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_2.png) + +### Existing vs new file selection + +![Screenshot 3](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_3.png) + +![Screenshot 4](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_4.png) + +### Quick navigation dropdown + +![Screenshot 5](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_5.png) + +### Use folder icons + +![Screenshot 6](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_6.png) + +### Restrict navigation + +![Screenshot 7](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_7.png) + +## Release notes + +### 0.6.0 + +- The ability to restrict file browsing to a `sandbox_path` folder has finally been added! +- Filenames can not contain path separator characters or parent folder strings (i.e., '..') +- `use_dir_icons` has been replaced with `dir_icon` which allows for customizing the folder icon +- `dir_icon_append` can now be used to put the folder icon before or after the folder name +- Better error handling with `ParentPathError`, `InvalidPathError`, and `InvalidFileNameError` +- Better and more consistent handling of Windows drive letters and paths +- Fix bug where resetting the filechooser would not reenable the select/change button +- Properly handle folder permission errors by raising a warning + +### 0.5.0 + +- Widget width is now configurable using the `layout` property and a `Layout` object +- Folder paths are now normalized using `os.path.normpath` to properly handle '/' and '\\' on Windows +- The widget now supports the `value` property to align with other widget types +- The label showing the selected value now reflows the text to new lines as required (and shows a scrollbar if the value is too long) +- Buttons now have a minimum width to ensure their text is always visible, regardless of widget width + +### 0.4.4 + +- Added typing hints (@Mandroide) +- Updated max line length check from 90 to 120 characters +- Fixed `filter_pattern` values not being treated as case-insensitive +- General code cleanup + +### 0.4.3 + +- Prevent applying the selected value if the filename doesn't match one of the `filter_pattern` values + +### 0.4.2 + +- Added ability to specify a list of `fnmatch` pattern strings for `filter_pattern` + +### 0.4.1 + +- Fixed issue with `select_default` not being applied on `reset` + +### 0.4.0 + +- Option added to specify a file filter (@andriykorchak) +- Add support for `ValueWidget` and `get_interact_value()` +- Updated sample notebook with filter example +- Updated Development Status to Production/Stable + +### 0.3.5 + +- Option added to only display folders (@andriykorchak) + +### 0.3.4 + +- Option added to display folder icons (@ptooley) + +### 0.3.3 + +- Option added to add `self` as an argument to the callback function (@ptooley) + +### 0.3.2 + +- Return `None` if file is not selected (@danjjl) + +### 0.3.1 + +- Option to register a callback function (`register_callback(function_name)`) + +### 0.3.0 + +- Ability to select a folder +- Support for Windows drive letters +- Option to use the defaults as the selected value + +### 0.2.0 + +- First public release + + + + +%package help +Summary: Development documents and examples for ipyfilechooser +Provides: python3-ipyfilechooser-doc +%description help +# ipyfilechooser + +A simple Python file chooser widget for use in Jupyter/IPython in conjunction with ipywidgets. The selected path and file are available via `.selected_path` and `.selected_filename` respectvely or as a single combined filepath via `.selected`. The dialog can be reset to its default path and filename by using `.reset()`. + +When a typed filename matches an existing file entry in the current folder the entry will be highlighted. If a typed filename matches a folder entry in the current view the selection button is disabled ensure the user is aware of the match. To select a folder simply leave the filename field empty. + +To emphasize the risk of overwriting existing files, the selected filepath is displayed in green if the file does not exist and orange if it does. + +[![Downloads](https://pepy.tech/badge/ipyfilechooser)](https://pepy.tech/project/ipyfilechooser) + +## Usage + +```python +from ipyfilechooser import FileChooser + +# Create and display a FileChooser widget +fc = FileChooser('/Users/crahan/FC demo') +display(fc) + +# Print the selected path, filename, or both +print(fc.selected_path) +print(fc.selected_filename) +print(fc.selected) + +# Change defaults and reset the dialog +fc.default_path = '/Users/crahan/' +fc.default_filename = 'output.txt' +fc.reset() + +# Shorthand reset +fc.reset(path='/Users/crahan/', filename='output.txt') + +# Restrict navigation to /Users +fc.sandbox_path = '/Users' + +# Change hidden files +fc.show_hidden = True + +# Customize dir icon +fc.dir_icon = '/' +fc.dir_icon_append = True + +# Switch to folder-only mode +fc.show_only_dirs = True + +# Set a file filter pattern (uses https://docs.python.org/3/library/fnmatch.html) +fc.filter_pattern = '*.txt' + +# Set multiple file filter patterns (uses https://docs.python.org/3/library/fnmatch.html) +fc.filter_pattern = ['*.jpg', '*.png'] + +# Change the title (use '' to hide) +fc.title = 'FileChooser title' + +# Sample callback function +def change_title(chooser): + chooser.title = 'Callback function executed' + +# Register callback function +fc.register_callback(change_title) +``` + +## Functions and properties + +```python +fc.reset() +fc.refresh() +fc.register_callback(function_name) +fc.show_hidden +fc.dir_icon +fc.dir_icon_append +fc.show_only_dirs +fc.rows +fc.title +fc.filter_pattern +fc.default +fc.default_path +fc.default_filename +fc.sandbox_path +fc.value +fc.selected +fc.selected_path +fc.selected_filename +``` + +## Screenshots + +### Closed vs open dialog + +![Screenshot 1](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_1.png) + +![Screenshot 2](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_2.png) + +### Existing vs new file selection + +![Screenshot 3](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_3.png) + +![Screenshot 4](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_4.png) + +### Quick navigation dropdown + +![Screenshot 5](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_5.png) + +### Use folder icons + +![Screenshot 6](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_6.png) + +### Restrict navigation + +![Screenshot 7](https://github.com/crahan/ipyfilechooser/raw/master/screenshots/FileChooser_screenshot_7.png) + +## Release notes + +### 0.6.0 + +- The ability to restrict file browsing to a `sandbox_path` folder has finally been added! +- Filenames can not contain path separator characters or parent folder strings (i.e., '..') +- `use_dir_icons` has been replaced with `dir_icon` which allows for customizing the folder icon +- `dir_icon_append` can now be used to put the folder icon before or after the folder name +- Better error handling with `ParentPathError`, `InvalidPathError`, and `InvalidFileNameError` +- Better and more consistent handling of Windows drive letters and paths +- Fix bug where resetting the filechooser would not reenable the select/change button +- Properly handle folder permission errors by raising a warning + +### 0.5.0 + +- Widget width is now configurable using the `layout` property and a `Layout` object +- Folder paths are now normalized using `os.path.normpath` to properly handle '/' and '\\' on Windows +- The widget now supports the `value` property to align with other widget types +- The label showing the selected value now reflows the text to new lines as required (and shows a scrollbar if the value is too long) +- Buttons now have a minimum width to ensure their text is always visible, regardless of widget width + +### 0.4.4 + +- Added typing hints (@Mandroide) +- Updated max line length check from 90 to 120 characters +- Fixed `filter_pattern` values not being treated as case-insensitive +- General code cleanup + +### 0.4.3 + +- Prevent applying the selected value if the filename doesn't match one of the `filter_pattern` values + +### 0.4.2 + +- Added ability to specify a list of `fnmatch` pattern strings for `filter_pattern` + +### 0.4.1 + +- Fixed issue with `select_default` not being applied on `reset` + +### 0.4.0 + +- Option added to specify a file filter (@andriykorchak) +- Add support for `ValueWidget` and `get_interact_value()` +- Updated sample notebook with filter example +- Updated Development Status to Production/Stable + +### 0.3.5 + +- Option added to only display folders (@andriykorchak) + +### 0.3.4 + +- Option added to display folder icons (@ptooley) + +### 0.3.3 + +- Option added to add `self` as an argument to the callback function (@ptooley) + +### 0.3.2 + +- Return `None` if file is not selected (@danjjl) + +### 0.3.1 + +- Option to register a callback function (`register_callback(function_name)`) + +### 0.3.0 + +- Ability to select a folder +- Support for Windows drive letters +- Option to use the defaults as the selected value + +### 0.2.0 + +- First public release + + + + +%prep +%autosetup -n ipyfilechooser-0.6.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-ipyfilechooser -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot - 0.6.0-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..35c8eb8 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +740d0eb770a51fb9864e0f094fd33041 ipyfilechooser-0.6.0.tar.gz -- cgit v1.2.3