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}')
Metadata
Release files for ipyuploads 0.2.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ipyuploads-0.2.4.tar.gz | 30.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ipyuploads-0.2.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.1 MB
Release files / ipyuploads-0.2.4.tar.gz
| Download URL | ipyuploads-0.2.4.tar.gz |
|---|---|
| Size | 30.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4f7152200549cca204612d9aedd3071e595b7ffbbb451b92bfc3407107ac91aa
|
|
BLAKE2b-256 checksum How to use checksums |
39f3679b9ba34489da28480ef14930ac78564e0d968963da300ed08b121cb602
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.12
|
Release files / ipyuploads-0.2.4-py3-none-any.whl
| Download URL | ipyuploads-0.2.4-py3-none-any.whl |
|---|---|
| Size | 108.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ef90db391f5f73eb21b97205fcae59d13b4ed189c41183b6905c1096e047704d
|
|
BLAKE2b-256 checksum How to use checksums |
ae4f2fb26f49e8ed984e35afb8f5826110ab62ffb235936ca2be3487257c8169
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.9.12
|