Skip to main content

Gimmie

A simple command-line tool to download files from a list of URLs.

Description

Gimmie ("Give me your files") is a lightweight utility that downloads files from a list of web addresses. Simply provide a text file with one URL per line, and Gimmie will handle the rest.

Features

  • Downloads files from multiple URLs in sequence
  • Extracts filenames automatically from URLs
  • Supports any file type available via HTTP/HTTPS
  • Handles errors gracefully, continuing to the next file if one fails
  • Option to specify a custom download directory

Installation

Requirements

  • Python 3.10 or higher
  • pip package manager

From PyPI (Recommended)

pip install gimmie

From Source

  1. Clone the repository:

    git clone https://github.com/yourusername/gimmie.git
    cd gimmie
    
  2. Install the package:

    pip install .
    

Usage

Basic Usage

  1. Create a text file (e.g., files-to-download.txt) with one URL per line:

    https://example.com/file1.pdf
    https://example.com/file2.jpg
    https://example.com/file3.zip
    
  2. Run Gimmie with the file as an argument:

    gimmie files-to-download.txt
    
  3. Files will be downloaded to a downloads directory in your current working directory.

Command-Line Options

gimmie [-h] [-d DIRECTORY] url_file

Arguments:

  • url_file: Path to text file containing URLs (one per line)

Options:

  • -h, --help: Show help message and exit
  • -d DIRECTORY, --directory DIRECTORY: Directory to save downloaded files (default: downloads)

Example

# Download files to a custom directory
gimmie files-to-download.txt -d my_files

URL File Format

The URL file should contain one URL per line. The tool will:

  • Strip whitespace from lines
  • Skip empty lines and lines starting with '#' (for comments)

Example URL file:

# Files to download
https://example.com/file1.pdf
https://example.com/file2.jpg
https://example.com/file3.zip

Development

Docker Dev Container

The recommended approach is to use a Docker Dev Container as this includes everything you need.

  1. Install VSCode
    1. Ensure the ms-vscode-remote.remote-containers extension is installed.
  2. Install Docker Desktop
  3. Clone the repository
  4. Reopen in Container

Setting Up Development Environment

  1. Clone the repository

  2. Create a virtual environment:

    python -m venv venv
    source venv/bin/activate   # On Linux / MacOS
    venv\Scripts\activate      # On Windows
    
  3. Install development dependencies:

    pip install -e ".[dev,test]"
    

Running Tests

Run the tests using PyTest:

pytest

Set the environment variable RUN_INTEGRATION_TESTS=1 to run integration tests that will actually download a file from the internet.

Linux:

export RUN_INTEGRATION_TESTS=1

Windows:

set RUN_INTEGRATION_TESTS=1

Updating Release version number

Rather than set the version explicitly, use Hatch to roll version numbers:

$ hatch version minor
Old: 0.1.0
New: 0.2.0

The final word in the command above controls how the version is incremented:

Segments New version
release 1.0.0
major 2.0.0
minor 1.1.0
micro patch fix 1.0.1
a alpha 1.0.0a0
b beta 1.0.0b0
c rc pre preview 1.0.0rc0
r rev post 1.0.0.post0
dev 1.0.0.dev0

This ensures that versions are rolled correctly.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gimmie-0.3.0.tar.gz (86.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gimmie-0.3.0-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file gimmie-0.3.0.tar.gz.

File metadata

  • Download URL: gimmie-0.3.0.tar.gz
  • Upload date:
  • Size: 86.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for gimmie-0.3.0.tar.gz
Algorithm Hash digest
SHA256 2cc8ebcb36c94728aead6b9d2493995ad03569f4337a0cdba4144ec6ff125068
MD5 76d0468a07cda8afe42950ee8d667a79
BLAKE2b-256 0b33a8a54134537fa515c6cc30271b8b62beb70b38ac242c6dfbc934e1784f45

See more details on using hashes here.

Provenance

The following attestation bundles were made for gimmie-0.3.0.tar.gz:

Publisher: publish.yml on laywill/gimmie

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gimmie-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: gimmie-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for gimmie-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 74767d025e4bf283ffa30da6a0da40fc478e4edde3d13bf91f521e59a4abf5fd
MD5 d33d400b4b192ac8e3d6f591ebeeebc2
BLAKE2b-256 c8d69ea25c6e25c5315c2ad841d2f27ff3e7d9dc3184af80034e984463fc931a

See more details on using hashes here.

Provenance

The following attestation bundles were made for gimmie-0.3.0-py3-none-any.whl:

Publisher: publish.yml on laywill/gimmie

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.3.1

2 files

This release

0.3.0 This release

2 files

0.2.0

2 files

0.1.0

2 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