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.6tolitestar ^2.10.0; starlite was renamed to litestar for version 2Updated from
pydantic>=1.9.0, <2.0.0topydantic>=2; this was a restriction imposed by use ofstarlite 1that no longer applies with the use oflitestar 2, and updatingpydanticin particular makes it easier to use 3LC with newer versions of other packages (such asalbumentations) that requirepydantic>=2Updated from
sentry-sdk ^1.39.1tosentry-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 topathin theyolo_yaml_fileif it is relative. Ifpathis absolute,datasets_diris ignored and therefore not required.Added an argument
override_split_pathto explicitly set the path at which to scan for images and labels. This overridespathin thedataset_yaml_fileanddatasets_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
detectronoutputs as Run outputs when theDetectron2MetricsCollectionHookis used[13215] Raise a specific error when collecting metrics with
detectronif not in a context with event storage, rather than havingdetectrontrigger an assert. This error indicates a user error or misuse of theDetectron2MetricsCollectionHookthat 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_trainif nodetectronmetrics 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
Predictorandcollect_metricsbecause the forward hooks cannot be pickled. Now,Predictordoes 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 toNoneinstead 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_tablesfromFalsetoTruein the variousreduce_embeddings*methods to avoid silent, unintended accumulation of disk usage
Known Issues¶
The
tlcPython 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.