Git Product home page Git Product logo

ipyfilechooser's Introduction

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

Usage

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 = '<b>FileChooser title</b>'

# Sample callback function
def change_title(chooser):
    chooser.title = '<b>Callback function executed</b>'

# Register callback function
fc.register_callback(change_title)

Functions and properties

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

Screenshot 2

Existing vs new file selection

Screenshot 3

Screenshot 4

Quick navigation dropdown

Screenshot 5

Use folder icons

Screenshot 6

Restrict navigation

Screenshot 7

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

ipyfilechooser's People

Contributors

andriykorchak avatar crahan avatar mandroide avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ipyfilechooser's Issues

folder and file list does not showup in 0.3.0 and 0.3.1 version. However, works fine in with 0.2.0 version

my setup details:
jupyter lab version:- 1.1.4
jupyter nbextension:- 6.0.1

ipyfilechooser version = 0.3.1


# Create and display a FileChooser widget
fc = FileChooser('/home/som/Downloads/pytest_dir')
display(fc)

screenshot of the widget output below
https://drive.google.com/file/d/1HwYjAEma27bEXr8X4VB4ezqxeReWKSjr/view?usp=sharing

ipyfilechooser version 0.2.0 (screenshot of working widget)
https://drive.google.com/file/d/1I_aysgWrVArA_GsRMAL7AuWfrxbQ9yLK/view?usp=sharing

Optional halt cell execution until file selected

Hi, nice plugin!

I was wondering if there would be a way to halt the execution of the cell until a file is selected / callback activated. This would be helpful for situations where you are executing cells in order, and don't want the next cell to run until the filechooser has done its thing. I tried put a while loop with sleep until the callback happens, but then can't interact with the file chooser.

Option to render FileChooser as 'open' when loading

Would it be possible to make the step of clicking 'select' to open the FileChooser optional? I feel this might be useful for applications where clicking select to open the widget is somewhat redundant.

Allow filter pattern to be case insensitive

The current filter pattern is case-sensitive. Do you think it makes sense to allow the filter pattern to be case insensitive? For example, .filter_pattern = ["*.csv"] finds all files with csv, Csv, and CSV extensions.

default/selected

When the widget first comes up, if there is a default_path and default_file could you please put those where the string "No file selected" currently is? (or make selected_path and selected_file writeable?) This is a total nit. This is a great widget regardless.

Callback not called?

Hi, and thanks for sharing ipyfilechooser!

Could it be that the callback is not called?

from ipyfilechooser import FileChooser

fc = FileChooser()

def my_func(chooser):
    print("hello")

fc.register_callback = my_func
display(fc)

I see no hello printed.

Only allow access to a specific directory and sub-directories

Would it be possible to restrict file chooser to only access a specific directory and sub-directories only rather than the entire system directory? The reason for this is that I am developed a web app that allows users to select and display geospatial data. The web app can be deployed to a web server. It would be a security risk if users are allowed to browse the entire system directory of a web server.

open_data.mp4

How to open in extra dialog window?

Currently the file selection is shown in the cell output area.

How can I show the file selection as an extra popup dialog window?

(I would like to reuse the functionality of ipyfilechooser in a JupyterLab extension.)

allow passing full filepath as argument to FileChooser

** Feature Request **

currently when you pass a full file path you get the following type of error:

image

in my use case i have an interface that caches the previous user selection in a json file.
when the app is relaunched ideally the previously selected path would still be the selected path.

is this already possible?

select multiple files?

Would it be possible to add support for multiple file selection (i.e. using command-click or shift-click?)

Folder view not showing in VSCODE

I use FileChooser in python3.7, although no error is displayed, but the window for selecting data is not displayed.
image

Is it because my vscode environment is not set up?

Thanks!

Question for crahan: how do you debug/step through widget code?

Apologies for posting this as an issue, but wasn't sure how else I could ask...

Firstly, your widget is fantastic and thank you for supporting it.

I am trying to customize a portion of this widget for something I am building, but am struggling to de-bug it (and ipywidgets in general) as it gets more complicated. I have not found a way to add breakpoints, or step through the widget code and have resorted to print statements in the code to watch the flow of information.

I wanted to know if you had found a method for doing this, or had any suggestions on alternate methods?

use_dir_icons not working on Linux

The dir icon is not showing up on my Linux machine. Any advice? Thanks.

import os
from ipyfilechooser import FileChooser

home_dir= os.path.expanduser('~')
# Create and display a FileChooser widget
fc = FileChooser(home_dir)
fc.default_filename = 'output.html'
fc.use_dir_icons = True

display(fc)

Specifying width on creation seems to have no effect

I've been looking for a decent file chooser for Jupyter, thanks for making one.
I have pretty long paths, particularly when working on Google CoLab.
The path name was getting truncated. The widget wasn't using the full width of the page, so I tried to specify a width of 100%.

fc = FileChooser(title="Source Video",layout=Layout(width='100%'))

Error message:

C:\Portable\PortableApps\Portable Python-3.8.6 x64\App\Python\lib\site-packages\ipyfilechooser\filechooser.py in init(self, path, filename, title, select_desc, change_desc, show_hidden, select_default, use_dir_icons, show_only_dirs, filter_pattern, **kwargs)
132
133 # Call VBox super class init
--> 134 super().init(
135 children=[
136 self._title,

TypeError: init() got multiple values for keyword argument 'layout'

Creating a new file with an extension not in the allowed extension list

Thank you for implementing the filter pattern to allow multiple file extensions. It works like a charm! I would like to make a suggestion. If the user creates a new file with a file extension not in the allowed extension list, it is probably better to prompt the user the correct the file extension. If it is something difficult to implement, maybe changing the text color to red rather than the default green color would work.

Permission denied with webdav network drive on Windows 10

image

I have a network drive mapped on Z: to a webdav network drive. For some bizarre reason the existence of this drive causes all the calls to os.path.realpath to throw PermissionDenied!! This prevents any use of FileChooser from any location as get_drive_letters etc fails.

I can monkey patch a fix of:

os.path.realpath = lambda x: x

and the problem goes away but I've not added that as a PR for obvious reasons. Hopefully there's a more elegant fix.

How to make the widget resizable in Jupyter NB (programmatically and interactively)?

The 'viewport' to select files and folder is too small for seeing enough files in many file systems.

I need to set both height and width programmatically

I could not find any programmatic settings in your code to modify it myself.

Can you make create an argument to call it with a specific size in pixels or inches?

RESIZE HANDLE:

Having a "resize handle" in the lower right corner would be great for when the programmatically set size is still too small.

Set Double-Click as Default for selection?

Also, is there a way to set "double-click" as the default for selection?
Single-click is too sensitive and does not conform to default expectations of most Windows and Mac users.

Select only folder

Hi everyone, I am creating small GUI in Jupyter lab including your file chooser widget. I need to only select folder path (not file path) I know I don't have to choose the file now, but I am afraid that I might confuse my users if they need to choose the file or not. So I was wondering if it would be possible to disable the file choosing option and leave it only for the folder?

Does not seem to work on Linux

I tried this on two different linux systems (nVidia Nano under ubuntu and chromium and a regular ubuntu 19 with Firefox). Neither was able to render the example, the dialog box never appears in the Jupyter notebook. Any ideas

Support passing filechooser instance as an argument to the callback function

Callback functionality would be greatly increased by the callback function being able to access the calling instance, in my use case I am using multiple file choosers to allow users to add multiple files.

This can be added without breaking existing callback usage by, for example:

try:
    self._callback(self)
except TypeError:
    self._callback()

events

Is it possible to add a "changed" event so that I can register a callback for when the selected file (or folder) gets changed? (or is there a way to do this already using the widgets framework?)

Thanks for the very useful widget!

Allow pasting of path

Hi,

I would like to propose the following usecase:
As a user I want to paste a path I have copied in my clipboard into the FileChooser quick navigation dropdown to change to the path's directory.

If I have the path available as a string that allows me to very quickly select files from that path. If the path points to a file the parent directory should be used.

What do you think about that suggestion?

Thanks for your efforts, love it already!

Windows not working, renders fine but no collection of selection

Hi,
Nice widget, super useful.
I can get the widget to run just fine but results don't seem to be recorded, the file is None after select:

I end up with a file selected but the object doesn't have the info, but obviously the widget does see the file that I selected displayed.
image

Windows 10 (Having same issue on Linux Mint but that will have to wait for my volunteer time):

node -v
v14.17.5
(base) C:\Users\breck>conda info -a

 active environment : base
active env location : C:\Users\breck\Anaconda3
        shell level : 1
   user config file : C:\Users\breck\.condarc

populated config files : C:\Users\breck.condarc
conda version : 4.10.3
conda-build version : 3.21.4
python version : 3.8.8.final.0
virtual packages : __win=0=0
__archspec=1=x86_64
base environment : C:\Users\breck\Anaconda3 (writable)
conda av data dir : C:\Users\breck\Anaconda3\etc\conda
conda av metadata url : None
channel URLs : https://conda.anaconda.org/conda-forge/win-64
https://conda.anaconda.org/conda-forge/noarch
https://repo.anaconda.com/pkgs/main/win-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/win-64
https://repo.anaconda.com/pkgs/r/noarch
https://repo.anaconda.com/pkgs/msys2/win-64
https://repo.anaconda.com/pkgs/msys2/noarch
package cache : C:\Users\breck\Anaconda3\pkgs
C:\Users\breck.conda\pkgs
C:\Users\breck\AppData\Local\conda\conda\pkgs
envs directories : C:\Users\breck\Anaconda3\envs
C:\Users\breck.conda\envs
C:\Users\breck\AppData\Local\conda\conda\envs
platform : win-64
user-agent : conda/4.10.3 requests/2.26.0 CPython/3.8.8 Windows/10 Windows/10.0.19041
administrator : False
netrc file : None
offline mode : False

conda environments:

base * C:\Users\breck\Anaconda3
R_env C:\Users\breck\Anaconda3\envs\R_env

sys.version: 3.8.8 (default, Apr 13 2021, 15:08:03) [...
sys.prefix: C:\Users\breck\Anaconda3
sys.executable: C:\Users\breck\Anaconda3\python.exe
conda location: C:\Users\breck\Anaconda3\lib\site-packages\conda
conda-build: C:\Users\breck\Anaconda3\Scripts\conda-build.exe
conda-content-trust: C:\Users\breck\Anaconda3\Scripts\conda-content-trust.exe
conda-convert: C:\Users\breck\Anaconda3\Scripts\conda-convert.exe
conda-debug: C:\Users\breck\Anaconda3\Scripts\conda-debug.exe
conda-develop: C:\Users\breck\Anaconda3\Scripts\conda-develop.exe
conda-env: C:\Users\breck\Anaconda3\Scripts\conda-env.exe
conda-index: C:\Users\breck\Anaconda3\Scripts\conda-index.exe
conda-inspect: C:\Users\breck\Anaconda3\Scripts\conda-inspect.exe
conda-metapackage: C:\Users\breck\Anaconda3\Scripts\conda-metapackage.exe
conda-pack: C:\Users\breck\Anaconda3\Scripts\conda-pack.exe
conda-render: C:\Users\breck\Anaconda3\Scripts\conda-render.exe
conda-repo: C:\Users\breck\Anaconda3\Scripts\conda-repo.exe
conda-server: C:\Users\breck\Anaconda3\Scripts\conda-server.exe
conda-skeleton: C:\Users\breck\Anaconda3\Scripts\conda-skeleton.exe
conda-token: C:\Users\breck\Anaconda3\Scripts\conda-token.exe
conda-verify: C:\Users\breck\Anaconda3\Scripts\conda-verify.exe
user site dirs: C:\Users\breck\AppData\Roaming\Python\Python39
C:\Users\breck\AppData\Roaming\Python\share

CIO_TEST:
CONDA_DEFAULT_ENV: base
CONDA_EXE: C:\Users\breck\Anaconda3\condabin..\Scripts\conda.exe
CONDA_EXES: "C:\Users\breck\Anaconda3\condabin..\Scripts\conda.exe"
CONDA_PREFIX: C:\Users\breck\Anaconda3
CONDA_PROMPT_MODIFIER: (base)
CONDA_PYTHON_EXE: C:\Users\breck\Anaconda3\python.exe
CONDA_ROOT: C:\Users\breck\Anaconda3
CONDA_SHLVL: 1
CURL_CA_BUNDLE:
HOMEPATH: \Users\breck
PATH: C:\Users\breck\Anaconda3;C:\Users\breck\Anaconda3\Library\mingw-w64\bin;C:\Users\breck\Anaconda3\Library\usr\bin;C:\Users\breck\Anaconda3\Library\bin;C:\Users\breck\Anaconda3\Scripts;C:\Users\breck\Anaconda3\bin;C:\Users\breck\Anaconda3;C:\Users\breck\Anaconda3\Library\mingw-w64\bin;C:\Users\breck\Anaconda3\Library\usr\bin;C:\Users\breck\Anaconda3\Library\bin;C:\Users\breck\Anaconda3\Scripts;C:\Users\breck\Anaconda3\bin;C:\Users\breck\Anaconda3\condabin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Program Files (x86)\Sennheiser\SenncomSDK;C:\Program Files\dotnet;C:\Program Files\nodejs;C:\Users\breck\AppData\Local\Programs\Python\Launcher;C:\Users\breck\AppData\Local\Microsoft\WindowsApps;C:\Users\breck\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\breck\AppData\Local\GitHubDesktop\bin;C:\Users\breck\AppData\Local\Programs\Julia-1.6.2\bin;C:\Users\breck\AppData\Roaming\npm
PSMODULEPATH: C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
REQUESTS_CA_BUNDLE:
SSL_CERT_FILE:

(base) C:\Users\breck>


Edition Windows 10 Enterprise
Version 21H1
Installed on ‎6/‎1/‎2021
OS build 19043.1165
Experience Windows Feature Experience Pack 120.2212.3530.0

--------------Jupyter Notebook Console output, changed to 'trusted' and re-ran...

[W 12:41:30.669 NotebookApp] Trusting notebook /Documents/GitHub/multicultural/video_products.ipynb
[I 12:41:30.697 NotebookApp] Starting buffering for b6e96a38-4524-4060-b6c7-25640775d33d:8f0ccaf2303a4e2f8fdccb017240737e

Define a way to pre-select a path and file name

Hi there
I would like to have the ability to predefine a selected path and a selected file name.
Now I use:

fc = FileChooser()
fc.default_path = os.getcwd() #current directory (using import 0s)
fc.default_filename = 'transformed_file.csv'
display (fc.default)
'/Users/aideenf/Documents/GitHub/Thesis_Aideen/Main/transformed_19_08_2020.csv'

which is perfect, however, I would like to set

fc.selected = fc.default

so that when I render the widget the specific path and file is already selected and the control is in
"change" mode rather than in "select" mode.

Regards
Aideen

reverse sorting order

hi and thank you for this handy tool ! 👏

I was wondering if there is an option to reverse the display order of the files?
In case there isn't: Is this where the sorting is taking place?

if dir_icon:
return prepend_dir_icons(sorted(dirs), dir_icon, dir_icon_append) + sorted(files)
else:
return sorted(dirs) + sorted(files)

I might want to play around with it a little so any hints on where to start would be welcome

callback interface suggestions

Hi there,

thanks for this very useful utility! I just have a few things on my mind to make the callback interface more convenient.
First of all, it would be nice to support multiple callbacks (e.g. like IPyWidgets). So they will be stored in a list, and just invoked in the order of registration. I wonder why the parent interface has not been adopted here, since it is well designed.

Another nice to have feature would be to determine, how the value (path, file) have changed. This could also be analogous to ipywidgets, where you get passed a dictionary with "new", "old" keys to see the difference. Also the reference to the originating widget (e.g. the FileChooser triggering the event) is passed in this dictionary as the "owner" key.

This feature can be used to create backups prior saving a file. But I guess it is pretty general.

In the meantime I'd have to access the private ipywidgets for the Selection and obtain my values from there. But this is not very clean.

Extremely slow initialization

I am having trouble with the initialization of the FileChooser. Is it possible that I am doing something wrong or should I expect the original assignment of FileChooser to a variable to take > 80 seconds?

import os
from ipyfilechooser import FileChooser
from time import time
cwd = os.getcwd()
start_time = time()
wb_path = FileChooser(cwd + "\\input")
print(f"FileChooser took {time() - start_time} seconds to init.")
start_time = time()
display(wb_path)
print(f"FileChooser took {time() - start_time} seconds to display.")

image

ipyfilechooser appears broken with ipywidgets>=8.0.0

Hi,

After upgrading ipywidgets to the latest version (==8.0.1), my older notebooks do not display the file chooser widget with the code below:

from IPython.display import display
from ipyfilechooser import FileChooser

fc = FileChooser()
display(fc)

There is nothing displayed under the cell after running it. However, in the browser console (Firefox) I see a bunch of error messages thrown by extensions.js and kernel.js that are the following repeated a bunch of times:

> Error: Could not create a model. 
    ....

> Couldn't process kernel message Error: Cannot find model module @jupyter-widgets/[email protected], TextStyleModel
    ....

> Couldn't process kernel message Error: Cannot find model module @jupyter-widgets/[email protected], HTMLStyleModel
    ....

I can render other widgets (such as sliders) perfectly fine, it's just ipyfilechooser that seems to be broken.

The workaround for now is to use pip to downgrade ipywidgets to back to version 7.7.1 fixes the issue for now. I am using python version 3.9.10.

Provide a way to filter file list

Provide a way to pass the file filter pattern. Suppose on selecting a directory, there may be 1000s of files. But user is interested to list only a particular set of files ex: *.json.

does not work in python 3.10 - works fine in 3.9.5 (VSCode 1.7 )

In VSCode, the ipyfilechooser works fine in python 3.9.5 but I also have 3.10 on my system and it does not show the widget in Python 3.1 version for some reason.
here is the module list from python 3.10 where ipyfilechooser doesnt display anything
Package Version


asttokens 2.0.5
attrs 22.1.0
backcall 0.2.0
bleach 5.0.1
bokeh 2.4.3
certifi 2022.6.15
charset-normalizer 2.1.0
colorama 0.4.5
colorcet 3.0.0
colour 0.1.5
comtypes 1.1.11
cycler 0.11.0
debugpy 1.6.1
decorator 5.1.1
dominate 2.7.0
engineering-notation 0.6.0
entrypoints 0.4
et-xmlfile 1.1.0
executing 0.8.3
fastjsonschema 2.16.1
fonttools 4.34.4
holoviews 1.15.0
htap-jupyter-toolkit 0.0.394
hvplot 0.8.0
idna 3.3
ipyfilechooser 0.6.0
ipykernel 6.15.0
ipython 8.4.0
ipywidgets 8.0.1
jedi 0.18.1
Jinja2 3.1.2
jsonschema 4.15.0
jupyter-bokeh 3.0.4
jupyter-client 7.3.4
jupyter-core 4.10.0
jupyterlab-widgets 3.0.2
kiwisolver 1.4.4
Markdown 3.4.1
MarkupSafe 2.1.1
matplotlib 3.5.2
matplotlib-inline 0.1.3
metadict 0.1.2
nbformat 5.4.0
nest-asyncio 1.5.5
networkx 2.8.4
npTDMS 0.24.0
numpy 1.23.2
nxtdms 22.8.0.7
openpyxl 3.0.10
outlier-utils 0.0.3
packaging 21.3
pandas 1.4.2
panel 0.13.1
param 1.12.2
parso 0.8.3
pickleshare 0.7.5
Pillow 9.2.0
pip 22.2.2
plotly 5.8.0
prompt-toolkit 3.0.30
psutil 5.9.1
pure-eval 0.2.2
pyct 0.4.8
Pygments 2.12.0
pyparsing 3.0.9
pyrsistent 0.18.1
python-dateutil 2.8.2
pytz 2022.1
pyviz-comms 2.2.0
pywin32 304
PyYAML 6.0
pyzmq 23.2.0
quantiphy 2.18.0
requests 2.28.1
scikit-rf 0.23.1
scipy 1.8.1
setuptools 58.1.0
six 1.16.0
stack-data 0.3.0
tenacity 8.0.1
tornado 6.2
tqdm 4.64.0
traitlets 5.3.0
typing_extensions 4.3.0
urllib3 1.26.10
wcwidth 0.2.5
webencodings 0.5.1
widgetsnbextension 4.0.2
xarray 2022.3.0
xlwt 1.3.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.