DeepForest icon indicating copy to clipboard operation
DeepForest copied to clipboard

Ask user if they want to download the latest model.

Open bw4sz opened this issue 2 years ago • 8 comments

We have not specifically gotten into this problem yet, but there should be a mechanism to ask user if they want to download a new model, instead of forcing it here.

https://github.com/weecology/DeepForest/blob/e31ecabf07b1b7d2444ba2c1d1298df79a416c27/deepforest/utilities.py#L82

bw4sz avatar Mar 29 '22 17:03 bw4sz

Just a note on implementation - I think this should be an optional argument like update = True, not an interactive query. I think we also want a related optional argument that lets you pin to a specific release.

ethanwhite avatar Mar 29 '22 17:03 ethanwhite

Hello @ethanwhite, I want to work on this issue but I am new to this repo and I need help. Please assign me this.

ayeankit avatar Feb 11 '23 13:02 ayeankit

Hi @ayeankit - @henrykironde is working on getting some beginner developer docs up this week that will help you get started on things.

Having glanced at the code related to this issue I think this one is actually something to check in with @bw4sz about. The function already has a check_release optional argument which could be set to False to avoid updating. I guess @bw4sz is interested in being able to check separately from updating, in which case we may just want to split out the on lines 64-79 into it's own function, but I'd like to hear from @bw4sz as to what he's viewing the use case as before anyone implements anything.

ethanwhite avatar Feb 13 '23 12:02 ethanwhite

Given that we don't have a use case yet, its difficult to know what the pros and cons are here. I think the simplest thing is here: https://github.com/weecology/DeepForest/blob/906730656579ed215d69d10e0757cf5dcceeb759/deepforest/utilities.py#L143, we need to ask the user if we want to update. So we need an update=True flag and then the user needs to be alerted that a new model will be downloaded.

bw4sz avatar Feb 14 '23 17:02 bw4sz

@bw4sz - a couple of follow up questions:

  1. That code only gets hit if check_release==True, so it feels like we basically have this kind of a flag implemented. Are you envisioning separating the check to see if there is a new release available and the installing of the new release if it exists?
  2. When you say "the user needs to be alerted that a new model will be downloaded" do you just meaning displaying some output or were you envisioning an interactive prompt?

ethanwhite avatar Feb 14 '23 17:02 ethanwhite

Yes, these are different. check_release relates to our underlying (poor) choice of how to store the model. https://github.com/weecology/DeepForest/issues/380

Especially during unit tests, we often hit github API query limits. update=True would relate to download a new model if it exists.

On Tue, Feb 14, 2023 at 9:31 AM ethanwhite @.***> wrote:

@bw4sz https://github.com/bw4sz - a couple of follow up questions:

  1. That code only gets hit if check_release==True, so it feels like we basically have this kind of a flag implemented. Are you envisioning separating the check to see if there is a new release available and the installing of the new release if it exists?
  2. When you say "the user needs to be alerted that a new model will be downloaded" do you just meaning displaying some output or were you envisioning an interactive prompt?

— Reply to this email directly, view it on GitHub https://github.com/weecology/DeepForest/issues/321#issuecomment-1430119924, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJHBLBKDXJAPVNIGQADPNDWXO6N5ANCNFSM5R7CDJOA . You are receiving this because you were mentioned.Message ID: @.***>

-- Ben Weinstein, Ph.D. Research Scientist University of Florida http://benweinstein.weebly.com/

bw4sz avatar Feb 14 '23 17:02 bw4sz

OK, in that case @ayeankit I think my original suggestion to split out the code on lines 64-79 into it's own function, which is then used use_bird_release() is a reasonable way to go. You would add an update=True argument to use_bird_release() and then if check_release==True check the release using the new function and if there is a new release an update==True download it using the code currently on lines 82-97.

ethanwhite avatar Feb 16 '23 15:02 ethanwhite

hey @ethanwhite and @henrykironde , i have successfully passed the test cases locally but on raising the PR, I am getting the error. ( #400 ). Can you suggest any solution for passing that here? Please review it.

ayeankit avatar Mar 11 '23 12:03 ayeankit