roboflow / roboflow-python

The official Roboflow Python package. Manage your datasets, models, and deployments. Roboflow has everything you need to build a computer vision application.
https://docs.roboflow.com/python
Apache License 2.0
280 stars 72 forks source link

Python API upload fails silently if targeted project does not exist but was before #302

Open gpadiolleau opened 1 month ago

gpadiolleau commented 1 month ago

Problem

Strange and buggy behavior with Python API when uploading images.

Steps to reproduce

I use Roboflow Python API to upload batches of images to be annotated.

I wrote a script that creates Roboflow client and uploads images, here's a simplified version:

import roboflow

IMAGE_PATH = "/path/to/images"
BATCH_NAME = "batch_name"

rf = roboflow.
ws = rf.workspace("my-workspace")
project = ws.project("my-project")

project.upload(image_path=IMAGE_PATH, batch_name=BATCH_NAME)

Logs show that in connects to workspace, finds the project and says my images are uploaded.

BUT, when I check the GUI I have no images in the annotate > Unassigned panel. More, using the CLI to check with roboflow project get my-project -w my-workspace there's nothing under "project":"unannotated"

Where it is very surprising is that if I open a python terminal (sourced with the same env !) and write line-by-line the preceeding code ... IT WORKS !!! Images appear instantly in annotate > Unassigned panel !

Bonus observation: When unannotated images are deleted from the GUI, the unannotated counter in the CLI is not reset...

Expected Behavior

When running my script images should appear in the GUI like when running line-by-line python code.

Version

1.1.37

gpadiolleau commented 1 month ago

Update

I wrote a second script in bash to use the Roboflow CLI and same problem appears....

I ended up finding that the error came from me ! I defined project_name = "my_project" instead of "my-project", but the project "my_project" has existed before and even if not listed in ws.projects() this is not raising any error :(.

I'll rename the issue for the real problem which is slightly related to #235 as it fails silently.