Skip to content

download_and_extract to handle Path objects and downloaded file auto naming #3329

Description

@achoruzy

I rather work with pathlib and Path objects than with raw string paths. Today I stumbled upon two problems trying to use download_and_extract() from the apps module.

  1. filepath and output_dir parameters don't get Path objects and it generates:

AttributeError: 'PosixPath' object has no attribute 'rstrip'

Wrapping them by str() helps to avoid the error.

As it is shown in the docs to use string, I think it would be good to have wider possibilities with that, especially with such broadly used lib as pathlib. An alternative to that would be a more precise error note.

  1. filepath parameter cause a RuntimeError when just a directory path with no file name and extension is given. What is confusing the error if pointing towards hash_val parameter and not the one it should.

RuntimeError: md5 check of existing file failed: filepath=/home/user/MEDnist/mednist_practice_1/notebooks/../mnist_data, expected md5=0bc7306e7427e00ad1c5526a6677552d.

It would be comfortable to use just a directory path and get the file name and its extension from the file downloaded. I see a problem here when having no knowledge of what an extension of the downloading file is. An alternative, same as before, is to have a more clear error description pointing the problem itself.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions