roboflow / roboflow/roboflow-python

cli image upload documentation / functionality

Open
#427 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
629
Forks
140
Avg merge
2d 2h
Merged PRs (30d)
5

Description

roboflow --version
                                                                                                                                                                                  
1.2.11

following https://docs.roboflow.com/developer/manage-images/upload-an-image

roboflow upload val_000000.jpg

loading Roboflow workspace...
loading Roboflow project...
Traceback (most recent call last):
  File "/home/matej/.local/bin/roboflow", line 10, in <module>
    sys.exit(main())
             ~~~~^^
  File "/home/matej/.local/share/uv/tools/roboflow/lib/python3.13/site-packages/roboflow/roboflowpy.py", line 612, in main
    args.func(args)
    ~~~~~~~~~^^^^^^
  File "/home/matej/.local/share/uv/tools/roboflow/lib/python3.13/site-packages/roboflow/roboflowpy.py", line 74, in upload_image
    project = workspace.project(args.project)
  File "/home/matej/.local/share/uv/tools/roboflow/lib/python3.13/site-packages/roboflow/core/workspace.py", line 91, in project
    if "/" in project_id:
       ^^^^^^^^^^^^^^^^^
TypeError

: argument of type 'NoneType' is not iterable

it seems that project id is required...

roboflow upload --help

usage: roboflow upload [-h] [-w WORKSPACE] [-p PROJECT] [-a ANNOTATION] [-m LABELMAP] [-s SPLIT] [-r NUM_RETRIES] [-b BATCH] [-t TAG_NAMES] [-i] imagefile

positional arguments:
  imagefile       path to image file

options:
  -h, --help      show this help message and exit
  -w WORKSPACE    specify a workspace url or id (will use default workspace if not specified)
  -p PROJECT      project_id to upload the image into

get the project id:

roboflow project list

loading Roboflow workspace...

horserider10k
  link: https://app.roboflow.com/matej-smid/horserider10k-aubbj
  id: matej-smid/horserider10k-aubbj
  type: object-detection
  versions: 0
  images: 0
  classes: dict_keys([])
roboflow upload -p matej-smid/horserider10k-aubbj val_000000.jpg
                                                             
loading Roboflow workspace...
loading Roboflow project...
Traceback (most recent call last):
  File "/home/matej/.local/bin/roboflow", line 10, in <module>
    sys.exit(main())
             ~~~~^^
  File "/home/matej/.local/share/uv/tools/roboflow/lib/python3.13/site-packages/roboflow/roboflowpy.py", line 612, in main
    args.func(args)
    ~~~~~~~~~^^^^^^
  File "/home/matej/.local/share/uv/tools/roboflow/lib/python3.13/site-packages/roboflow/roboflowpy.py", line 74, in upload_image
    project = workspace.project(args.project)
  File "/home/matej/.local/share/uv/tools/roboflow/lib/python3.13/site-packages/roboflow/core/workspace.py", line 92, in project
    raise RuntimeError(f"The {project_id} project is not available in this ({self.url}) workspace")
RuntimeError: The matej-smid/horserider10k-aubbj project is not available in this (matej-smid) workspace

checking the sources for a while... the prefix before / shouldn't be there...

roboflow upload -p horserider10k-aubbj val_000001.jpg

loading Roboflow workspace...
loading Roboflow project...

nice this works, according to docs I should be able to do

roboflow upload *.jpg

not really

roboflow upload -p horserider10k-aubbj *.jpg

usage: roboflow [-h] [-v] {login,download,train,upload,import,infer,project,workspace,upload_model,get_workspace_info,run_video_inference_api,deployment,whoami} ...
roboflow: error: unrecognized arguments: val_000001.jpg val_000002.jpg val_000003.jpg val_000004.jpg ...

passing the wildcard to the cli directly doesn't work either:

roboflow upload -p horserider10k-aubbj '*.jpg' 

loading Roboflow workspace...
loading Roboflow project...
[ WARN:0@0.011] global loadsave.cpp:241 findDecoder imread_('*.jpg'): can't open/read file: check file path/integrity
Traceback (most recent call last):
...
  File "/home/matej/.local/share/uv/tools/roboflow/lib/python3.13/site-packages/PIL/Image.py", line 3493, in open
    fp = builtins.open(filename, "rb")
FileNotFoundError: [Errno 2] No such file or directory: '*.jpg'

after some more tinkering...

roboflow import -p horserider10k-aubbj -r 5 .

did the job.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the upload and import command handling in roboflowpy.py, especially upload_image, and inspect workspace.py where project IDs are resolved. Reproduce the documented commands with a single image, a wildcard, and the import fallback. Done means the CLI behavior and documentation agree, including project selection and multi-image uploads.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli, documentation
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.