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.9 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 Windows: venv\Scripts\activate
    
  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.2.0.tar.gz (86.6 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.2.0-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for gimmie-0.2.0.tar.gz
Algorithm Hash digest
SHA256 446e8f3b4bee2ff5a44b114e1701fe2819554347676d21c005c1c5a7482f9c07
MD5 2cffaed0f5ec40e47404f39f6ed20257
BLAKE2b-256 b0ecfb6ffcefc7e2ee89ab0d3a0a402d046f619c3ec0386926c4a3573c788096

See more details on using hashes here.

Provenance

The following attestation bundles were made for gimmie-0.2.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.2.0-py3-none-any.whl.

File metadata

  • Download URL: gimmie-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 11.4 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fbb06567a4ce30ed60e3d4ac10270f85cd54e6e8edc4f977392e3dc7d4411d61
MD5 c6927bf476c33e1a01cf6a58b15b88aa
BLAKE2b-256 4fde83891df5cae25d2390e8e0629ae7a33f3ebcc05b8c44a4bafc6592df288c

See more details on using hashes here.

Provenance

The following attestation bundles were made for gimmie-0.2.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

0.3.0

2 files

This release

0.2.0 This release

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