Skip to content

Commit

Permalink
Merge pull request voxel51#1576 from voxel51/release
Browse files Browse the repository at this point in the history
Release v0.14.4
  • Loading branch information
brimoor authored Feb 10, 2022
2 parents bee5fb7 + a563b1d commit c444503
Show file tree
Hide file tree
Showing 8 changed files with 115 additions and 25 deletions.
2 changes: 1 addition & 1 deletion app/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@fiftyone/fiftyone",
"productName": "FiftyOne",
"version": "0.19.1",
"version": "0.19.2",
"license": "Apache-2.0",
"private": true,
"main": "index.js",
Expand Down
2 changes: 1 addition & 1 deletion app/packages/app/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@fiftyone/app",
"version": "0.19.1",
"version": "0.19.2",
"license": "Apache-2.0",
"private": true,
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion app/packages/desktop/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "FiftyOne",
"version": "0.19.1",
"version": "0.19.2",
"description": "Explore, Analyze, Curate",
"author": "Voxel51, Inc.",
"main": "./dist/main.js",
Expand Down
3 changes: 3 additions & 0 deletions docs/source/_includes/substitutions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -127,3 +127,6 @@

.. |InteractiveScatter| replace:: :class:`InteractiveScatter <fiftyone.core.plots.plotly.InteractiveScatter>`
.. |InteractiveHeatmap| replace:: :class:`InteractiveHeatmap <fiftyone.core.plots.plotly.InteractiveHeatmap>`

.. |AnnotationBackend| replace:: :class:`AnnotationBackend <fiftyone.utils.annotations.AnnotationBackend>`
.. |AnnotationBackendConfig| replace:: :class:`AnnotationBackendConfig <fiftyone.utils.annotations.AnnotationBackendConfig>`
90 changes: 90 additions & 0 deletions docs/source/release-notes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,96 @@ FiftyOne Release Notes

.. default-role:: code

.. _release-notes-v0.14.4:

FiftyOne 0.14.4
---------------
*Released February 7, 2022*

News

- With support from the `ActivityNet team <http://activity-net.org/download.html>`_,
FiftyOne is now a recommended tool for downloading, visualizing, and
evaluating on the Activitynet dataset! Check out
:ref:`this guide <activitynet>` for more details

App

- Fixed encoding of sample media URLs so image and video filepaths with special
characters are supported
- Fixed an error that would occur when rendering empty |Keypoint| instances

Core

- Added an official
`Dockerfile <https://github.com/voxel51/fiftyone/blob/develop/Dockerfile>`_
- Changed the default implementation of
:meth:`to_frames() <fiftyone.core.collections.SampleCollection.to_frames>` to
assume that the user has already sampled the frames offline and stored their
locations in a `filepath` field of each |Frame| in their video dataset. See
:ref:`this section <frame-views>` for more details
- Updated :meth:`DatasetView.save() <fiftyone.core.view.DatasetView.save>` to
save changes to (only) the samples in the view to the underlying dataset
- Added a new :meth:`DatasetView.keep() <fiftyone.core.view.DatasetView.keep>`
method that deletes any samples that are not in the view from the underlying
dataset
- Added
:meth:`InteractivePlot.save() <fiftyone.core.plots.base.InteractivePlot.save>`
and
:meth:`ViewPlot.save() <fiftyone.core.plots.base.ViewPlot>` methods that can
be used to save plots as static images
- Added support for populating query distances on a dataset when using
:meth:`sort_by_similarity() <fiftyone.core.collections.SampleCollection.sort_by_similarity>`
to query by visual similarity
- Added a
:func:`instances_to_polylines() <fiftyone.utils.labels.instances_to_polylines>`
utility that converts instance segmentations to |Polylines| format
- Added support for frame labels to all conversion methods in the
:mod:`fiftyone.utils.labels` module
- Updated the implementation of
:meth:`Detection.to_polyline() <fiftyone.core.labels.Detection.to_polyline>`
so that all attributes are included rather than just ETA-supported ones
- Added support for including empty labels labels via an `include_missing`
keyword argument in
:func:`add_yolo_labels() <fiftyone.utils.yolo.add_yolo_labels>`
- Added a
:func:`download_youtube_videos() <fiftyone.utils.youtube.download_youtube_videos>`
utility for efficiently and robustly downloading videos or specific segments
from YouTube
- Added a `skip_failures` flag to
:func:`transform_images() <fiftyone.utils.image.transform_images>` and
:func:`transform_videos() <fiftyone.utils.video.transform_videos>`
- Added `shuffle` and `seed` parameters to
:class:`FiftyOneImageLabelsDatasetImporter <fiftyone.utils.data.importers.FiftyOneImageLabelsDatasetImporter>`
and
:class:`FiftyOneVideoLabelsDatasetImporter <fiftyone.utils.data.importers.FiftyOneVideoLabelsDatasetImporter>`
- Added an `include_all_data` parameter to
:class:`YOLOv5DatasetImporter <fiftyone.utils.yolo.YOLOv5DatasetImporter>`
- Resolved a bug that would previously cause an error when writing aggregations
on video datasets that involve applying expressions directly to `"frames"`

Annotation

- Added support for :ref:`importing <CVATImageDataset-import>` and
:ref:`exporting <CVATImageDataset-export>` sample-level tags in CVAT format
- Fixed a bug that prevented existing label fields such as |Detections| that
can contain multiple annotation types (boxes or instances) from being
specified in calls to
:meth:`annotate() <fiftyone.core.collections.SampleCollection.annotate>`
- CVAT login credentials are no longer included in exception messages

Zoo

- Added :ref:`ActivityNet 100 <dataset-zoo-activitynet-100>` to the dataset
zoo!
- Added :ref:`ActivityNet 200 <dataset-zoo-activitynet-200>` to the dataset
zoo!
- Added :ref:`Kinetics 400 <dataset-zoo-kinetics-400>` to the dataset zoo!
- Added :ref:`Kinetics 600 <dataset-zoo-kinetics-600>` to the dataset zoo!
- Added :ref:`Kinetics 700 <dataset-zoo-kinetics-700>` to the dataset zoo!
- Added :ref:`Kinetics 700-2020 <dataset-zoo-kinetics-700-2020>` to the dataset
zoo!

.. _release-notes-v0.14.3:

FiftyOne 0.14.3
Expand Down
28 changes: 13 additions & 15 deletions docs/source/user_guide/annotation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ labels on your :ref:`datasets <using-datasets>` or specific

By default, all annotation is performend via a native
:ref:`CVAT integration <cvat-integration>` that uses `cvat.org <https://cvat.org>`_, but
you can use a :ref:`self-hosted server <cvat-setup>` or even use a
you can use a :ref:`self-hosted CVAT server <cvat-setup>`, switch to the
:ref:`Labelbox backend <labelbox-integration>`, or even use a
:ref:`custom annotation backend <custom-annotation-backend>`.

.. note::
Expand Down Expand Up @@ -202,12 +203,12 @@ Configuring your backend

Annotation backends may be configured in a variety of backend-specific ways,
which you can see by inspecting the parameters of a backend's associated
:class:`AnnotationBackendConfig <fiftyone.utils.annotations.AnnotationBackendConfig>`
class.
|AnnotationBackendConfig| clas.

The relevant classes for the builtin annotation backends are:

- `"cvat"`: :class:`fiftyone.utils.cvat.CVATBackendConfig`
- `"labelbox"`: :class:`fiftyone.utils.labelbox.LabelboxBackendConfig`

You can configure an annotation backend's parameters for a specific run by
simply passing supported config parameters as keyword arguments each time you call
Expand Down Expand Up @@ -700,9 +701,8 @@ default `label`.

Each annotation backend may support different `type` values, as declared by the
:meth:`supported_attr_types() <fiftyone.utils.annotations.AnnotationBackend.supported_attr_types>`
method of its
:class:`AnnotationBackend <fiftyone.utils.annotations.AnnotationBackend>` class.
For example, CVAT supports the following choices for `type`:
method of its |AnnotationBackend| class. For example, CVAT supports the
following choices for `type`:

- `text`: a free-form text box. In this case, `default` is optional and
`values` is unused
Expand Down Expand Up @@ -1006,18 +1006,17 @@ methods will use your custom backend.
Annotation backends are defined by writing subclasses of the following
three classes with the appropriate abstract methods implemented:

- :class:`AnnotationBackend <fiftyone.utils.annotations.AnnotationBackend>`:
this class implements the logic required for your annotation backend to
declare the types of labeling tasks that it supports, as well as the core
- |AnnotationBackend|: this class implements the logic required for your
annotation backend to declare the types of labeling tasks that it supports,
as well as the core
:meth:`upload_annotations() <fiftyone.utils.annotations.AnnotationBackend.upload_annotations>`
and
:meth:`download_annotations() <fiftyone.utils.annotations.AnnotationBackend.download_annotations>`
methods, which handle uploading and downloading data and labels to your
annotation tool

- :class:`AnnotationBackendConfig <fiftyone.utils.annotations.AnnotationBackendConfig>`:
this class defines the available parameters that users can pass as keyword
arguments to
- |AnnotationBackendConfig|: this class defines the available parameters that
users can pass as keyword arguments to
:meth:`annotate() <fiftyone.core.collections.SampleCollection.annotate>` to
customize the behavior of the annotation run

Expand All @@ -1043,7 +1042,7 @@ The recommended way to expose a custom backend is to add it to your
"default_backend": "<backend>",
"backends": {
"<backend>": {
"config_cls": "your.custom.AnnotationBackendConfigSubclass",
"config_cls": "your.custom.AnnotationBackendConfig",
# custom parameters here
...
Expand All @@ -1055,8 +1054,7 @@ In the above, `<backend>` defines the name of your custom backend, which you
can henceforward pass as the `backend` parameter to
:meth:`annotate() <fiftyone.core.collections.SampleCollection.annotate>`, and
the `config_cls` parameter specifies the fully-qualified name of the
:class:`AnnotationBackend <fiftyone.utils.annotations.AnnotationBackend>`
subclass for your annotation backend.
|AnnotationBackendConfig| subclass for your annotation backend.

With the `default_backend` parameter set to your custom backend as shown above,
calling
Expand Down
5 changes: 2 additions & 3 deletions package/desktop/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,14 @@
import glob
import os
import shutil
from setuptools import setup, find_packages
from setuptools.command.install import install
from setuptools import setup
from wheel.bdist_wheel import bdist_wheel

import os
import shutil


VERSION = "0.19.1"
VERSION = "0.19.2"


def get_version():
Expand Down
8 changes: 4 additions & 4 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from setuptools import setup, find_packages


VERSION = "0.14.3"
VERSION = "0.14.4"


def get_version():
Expand Down Expand Up @@ -61,9 +61,9 @@ def get_version():
"xmltodict",
"universal-analytics-python3>=1.0.1,<2",
# internal packages
"fiftyone-brain>=0.7.3,<0.8",
"fiftyone-brain>=0.8,<0.9",
"fiftyone-db>=0.3,<0.4",
"voxel51-eta>=0.6.2,<0.7",
"voxel51-eta>=0.6.3,<0.7",
]


Expand Down Expand Up @@ -100,7 +100,7 @@ def get_install_requirements(install_requires, choose_install_requires):
return install_requires


EXTRAS_REQUIREMENTS = {"desktop": ["fiftyone-desktop>=0.19.1,<0.20"]}
EXTRAS_REQUIREMENTS = {"desktop": ["fiftyone-desktop>=0.19.2,<0.20"]}


with open("README.md", "r") as fh:
Expand Down

0 comments on commit c444503

Please sign in to comment.