Skip to main content

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 FileUpload allows
  • 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)

Source distribution for ipyuploads 0.2.4
File Size Uploaded
ipyuploads-0.2.4.tar.gz 30.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for ipyuploads 0.2.4
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.2.4 This release

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page