Skip to main content

python client for the Roboflow application

Project description

Roboflow Python Library


roboflow logo

WebsiteDocsBlogTwitterLinkedinUniverse

Roboflow makes managing, preprocessing, augmenting, and versioning datasets for computer vision seamless. This is the official Roboflow python package that interfaces with the Roboflow API. Key features of Roboflow:

Installation:

To install this package, please use Python 3.6 or higher. We provide three different ways to install the Roboflow package to use within your own projects.

Install from PyPi (Recommended):

pip install roboflow

Install from Source:

git clone https://github.com/roboflow-ai/roboflow-python.git
cd roboflow-python
python3 -m venv env
source env/bin/activate 
pip3 install -r requirements.txt

Quickstart

import roboflow

# Instantiate Roboflow object with your API key
rf = roboflow.Roboflow(api_key=YOUR_API_KEY_HERE)

# List all projects for your workspace
workspace = rf.workspace()

# Load a certain project, workspace url is optional
project = rf.project("PROJECT_ID")

# List all versions of a specific project
project.versions()

# Upload image to dataset
project.upload("UPLOAD_IMAGE.jpg")

# Retrieve the model of a specific project
model = project.version("1").model

# predict on a local image
prediction = model.predict("YOUR_IMAGE.jpg")

# Predict on a hosted image
prediction = model.predict("YOUR_IMAGE.jpg", hosted=True)

# Plot the prediction
prediction.plot()

# Convert predictions to JSON
prediction.json()

# Save the prediction as an image
prediction.save(output_path='predictions.jpg')

Using this package for a specifc project

If you have a specific project from your workspace you'd like to run in a notebook follow along on this tutorial Downloading Datasets from Roboflow for Training (Python)

Selecting the format you'd like your project to be exported as while choosing the show download code option will display code snippets you can use in either Jupyter or your terminal. These code snippets will include your api_key, project, and workspace names.

Alt Text

Developing locally

Using Docker

To set the Docker container up for the first time:

# Clone this repo
git clone git@github.com:roboflow-ai/roboflow-python.git && cd roboflow-python

# Copy the environment variables template
# Be sure to update the values with your account's information

# Build our development image
docker build -t roboflow-python -f Dockerfile.dev .

# Run container and map current folder in it
docker run --rm -it \
  -v $(pwd)/:/workspace/ \
  --env-file .env \
  roboflow-python 

# Run tests
python -m unittest

Change Python version

You can pass the build arg PYTHON_VERSION to dynamically change python version at build time

docker build  -t roboflow-python --build-arg PYTHON_VERSION=3.9 -f Dockerfile.dev .

Will use python:3.9-slim

Note If you are using VSCode we reccomend to read the "Developing inside a Container" tutorial.

Using Virtualenv

# Clone this repo
git clone git@github.com:roboflow-ai/roboflow-python.git && cd roboflow-python

# create virtual env
virtualenv local_dev

# activate virtual env
source local_dev/bin/activate

# install dependencies
pip3 install -e ".[dev]"

Testing

Make sure you have your virtualenv spun up before running tests. Execute the unittest command at the /root level directory.

Run tests:

python -m unittest

Contributing

  1. Increment the pip package minor version number in setup.py
  2. Manually add any new dependencies to requirements.txt with a version such as chardet==4.0.0 and list of dependencies in setup.py (Be careful not to overwrite any packages that might screw up backwards dependencies for object detection, etc.)

Code Quality

When creating new functions, please follow the Google style Python docstrings. See example below:

def example_function(param1: int, param2: str) -> bool:
    """Example function that does something.

    Args:
        param1: The first parameter.
        param2: The second parameter.

    Returns:
        The return value. True for success, False otherwise.

    """

We provide a Makefile to format and ensure code quality. Be sure to run them before creating a PR.

# format your code with `black` and `isort` run
make style
# check code with flake8
make check_code_quality

Note These tests will be run automatically when you commit thanks to git hooks.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

roboflow-0.2.20.tar.gz (34.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

roboflow-0.2.20-py3-none-any.whl (41.7 kB view details)

Uploaded Python 3

File details

Details for the file roboflow-0.2.20.tar.gz.

File metadata

  • Download URL: roboflow-0.2.20.tar.gz
  • Upload date:
  • Size: 34.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.0

File hashes

Hashes for roboflow-0.2.20.tar.gz
Algorithm Hash digest
SHA256 49a99e472ec4e7f7c926649e634f2ec24d36d3edfae8e27fec0dec6a65049cff
MD5 6ca876b196ce8624c04161ea4b7ed17c
BLAKE2b-256 2db20198e5f255303a9bbe8459adf14f753f9be42bc0bfc65083877861869ea5

See more details on using hashes here.

File details

Details for the file roboflow-0.2.20-py3-none-any.whl.

File metadata

  • Download URL: roboflow-0.2.20-py3-none-any.whl
  • Upload date:
  • Size: 41.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.0

File hashes

Hashes for roboflow-0.2.20-py3-none-any.whl
Algorithm Hash digest
SHA256 62b10cb748e9cdaa3cc64cbf49f122c872f2e489a938d52eb91777f573278d9f
MD5 30ee3df32752dd439c6061ccffee5466
BLAKE2b-256 39042745019a00028db51796882e63da303b92588032f3543a9234b93266816c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page