3LC Python Package Version 2.7#
2.7.1#
Enhancements and Fixes#
[13292] In
TableFromYolo
, use a more lenient tolerance for valid bounding boxes so fewer are discarded, and clip them when valid but partially outside the image
2.7.0#
Features#
[9259] Added support for Python 3.12
This required making it so that the required versions of a few dependencies change depending on which Python version is being used.
Added official support for Ubuntu 22.04
[12960] Updated key dependencies to make using 3LC with other packages easier
Updated from
starlite ^1.51.6
tolitestar ^2.10.0
; starlite was renamed to litestar for version 2Updated from
pydantic>=1.9.0, <2.0.0
topydantic>=2
; this was a restriction imposed by use ofstarlite 1
that no longer applies with the use oflitestar 2
, and updatingpydantic
in particular makes it easier to use 3LC with newer versions of other packages (such asalbumentations
) that requirepydantic>=2
Updated from
sentry-sdk ^1.39.1
tosentry-sdk ^2.13.0
, which has an integration compatible withlitestar
[13256] Made it possible to POST to /external_data with the object service to prepare for support for writing segmentation masks from the Dashboard
[13019] Added “How-to” section to documentation to help users with common 3LC tasks
Enhancements and Fixes#
[12882] Improvements and bugfixes in
Table.from_yolo()
to read YOLO object detection datasets:Added an argument
datasets_dir
, which can be provided as a root topath
in theyolo_yaml_file
if it is relative. Ifpath
is absolute,datasets_dir
is ignored and therefore not required.Added an argument
override_split_path
to explicitly set the path at which to scan for images and labels. This overridespath
in thedataset_yaml_file
anddatasets_dir
, and is intended to be used in the YOLO integrations where additional behavior can occur when resolving a dataset, resulting in a different split path than that referenced in thedataset_yaml_file
.Fixed a bug where images found by YOLO would not be found by
Table.from_yolo()
.Various changes to logging and error messages, which should be more helpful in resolving issues when parsing a YOLO dataset to create tables.
[11311] Do not create transaction or write edited table if workspace has insufficient credits when using 3LC account API key
[13203] Made it so that object service post rolls back changes made in the event of failure. Failure can potentially happen for a variety of reasons (URL not writable, insufficient credits, etc.), and rolling back ensures that 3LC is not left in an inconsistent state.
[12825] Updated timestamp input handling for TableFromParquet to allow conversion of parquet input data to automatically adhere to 3LC schema. Specifically, this means converting timestamps to strings.
[13027] Added
detectron
outputs as Run outputs when theDetectron2MetricsCollectionHook
is used[13215] Raise a specific error when collecting metrics with
detectron
if not in a context with event storage, rather than havingdetectron
trigger an assert. This error indicates a user error or misuse of theDetectron2MetricsCollectionHook
that should be reported and avoided.[13237] Deprecated use of
DetectronMetricsCollectionHook.collect_metrics_before_train
. The hook is intended primarily for collecting metrics during the training process, so using this argument is not recommended.[13237] Log a warning in
DetectronMetricsCollectionHook.after_train
if nodetectron
metrics were collected during training[13216] Added some handling for schema inconsistency with edited tables and some general data generation improvements so that tables with failing data production don’t reach inconsistent state
[13253] Made a fix to avoid a potential crash during object service shutdown when using the TUI and debug logging
[13255] Fixed an issue where it was not possible to save a torch model when used with a 3LC
Predictor
andcollect_metrics
because the forward hooks cannot be pickled. Now,Predictor
does not register the hooks in its__init__
method, and hooks are only registered and then removed duringcollect_metrics
.[13258] Restored default behavior for
Table.latest()
to wait indefinitely if no value is specified fortimeout
, which now defaults toNone
instead of 0. This fixes a regression where the old default value of 0 used to mean “wait indefinitely” but was changed to mean “do not wait” in a previous release.[13288] Changed the default value for
delete_source_tables
fromFalse
toTrue
in the variousreduce_embeddings*
methods to avoid silent, unintended accumulation of disk usage
Known Issues#
The
tlc
Python package does not detect, handle, or support NaN (Not-a-Number) values intlc.Table
, and their presence may lead to unpredictable behavior or inconsistencies within the system.