A Jupyter file widget with chunked upload capabilities
Project description
ipyuploads
ipyuploads is a Jupyter file widget with a variety of improvements over the FileUpload component that comes in ipywidgets. It is designed to serve as a drop-in replacement for the aforementioned component. Features include:
- Progress indicator on uploads over 1 mb
- "Chunked" file upload supports larger files than
FileUploadallows - The ability to write chunks to disk reduces the memory requirement for large file uploads
- Callback hooks on file upload completion, chunk upload completion and all-files completion
Requirements
- ipywidgets >= 7.5.0
Installation
pip install ipyuploads
Development
git clone https://github.com/g2nb/ipyuploads.git
pip install -e ipyuploads
Usage
In a Jupyter notebook, run the following:
import ipyuploads
ipyuploads.Upload()
Various options can also be set, including:
import ipyuploads
ipyuploads.Upload(accept='txt', # Accept only text files
multiple=True, # Upload multiple files at once
disabled=True, # Disable the widget
icon='cloud-upload', # Change the upload icon
button_stye='primary', # Change the button style
error='Bad Error', # Set the error message
busy=False, # Whether an upload is in progress
chunk_complete=foo, # Callback when a chunk upload completes
file_complete=bar, # Callback when a file upload completes
all_files_complete=baz, # Callback when all files complete
upload_dir=path # Custom dir path to upload to
)
The three callback functions defined above should have the following structure:
def chunk_complete(name, count, total):
"""Callback to be executed when a chunk finishes uploading
name - Name of the file being uploaded
count - A counter of which chunk just finished uploading
total - The total number of chunks in this file"""
print(f'CHUNK CALLBACK! {name} {count} {total}')
def file_complete(name):
"""Callback to be executed when a file finishes uploading
name - Name of the file that was just uploaded"""
print('FILE CALLBACK! ' + name)
def all_files_complete(names):
"""Callback to be executed once all selected files finish uploading
names - A list of metadata objects, one for each file. Each contains:
{ 'name': 'the file's name',
'type': 'mime-type of the file',
'last_modified': last modified data as an integer
(number of milliseconds since the epoch) }"""
print(f'ALL FILES CALLBACK! {names}')
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ipyuploads-0.2.4.tar.gz.
File metadata
- Download URL: ipyuploads-0.2.4.tar.gz
- Upload date:
- Size: 30.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f7152200549cca204612d9aedd3071e595b7ffbbb451b92bfc3407107ac91aa
|
|
| MD5 |
b07de8e145a95904fe83fc1b6075967c
|
|
| BLAKE2b-256 |
39f3679b9ba34489da28480ef14930ac78564e0d968963da300ed08b121cb602
|
File details
Details for the file ipyuploads-0.2.4-py3-none-any.whl.
File metadata
- Download URL: ipyuploads-0.2.4-py3-none-any.whl
- Upload date:
- Size: 108.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef90db391f5f73eb21b97205fcae59d13b4ed189c41183b6905c1096e047704d
|
|
| MD5 |
03bb47cabfe0ef69a865398689240af1
|
|
| BLAKE2b-256 |
ae4f2fb26f49e8ed984e35afb8f5826110ab62ffb235936ca2be3487257c8169
|