3LC Python Package Version 2.16

2.16.2

Enhancements and Fixes

  • [14246] Improved performance of first time calls to Url.create_unique

  • [15478] Reverted override of behavior of Table.__bool__ to keep it more pythonic


2.16.1

Enhancements and Fixes

  • [15133, 15433] Support torch.Tensor inputs in Int and Float schema sample type classes

  • [15433] Relax int and float sample type checks; allow a float value for Int if it can be losslessly converted to an integer, and allow an int value for Float

  • [15132] Provide a more specific error when there is an issue constructing a schema MapElement value map

  • [15130] Provide more informative error messages when exporter format inference fails

  • [15460] Do not use global random state in RepeatByWeightSampler to make it easier to make results repeatable

  • [15460] Added warning in docs not to instantiate Table and Run directly, inspired by Pyarrow

  • [15097] Warn when coco labels are not in the label map, which can happen either if the annotations.json file contains labels not present in the categories list, or if a user deletes a value map item in code while there are still annotations present using that label

  • [15425] Do not load parquet twice if row cache is used

  • [15466] Check for YAML file existing in TableFromYolo and raise if it does not

  • [15467] Added uv install instructions to Quickstart

  • [15484] Link to updated video in Quickstart

  • [13747] Improved formatting for 3lc Python API docs and added a couple of mappings to external library docs

  • [15352] Updated docs for indexing configuration and performance

  • [15478] Raise an error if __bool__ is called on a Table instead of implicitly producing its row data


2.16.0

Features

  • [13789] Added support for Python 3.13

    • This required several updates to dependencies; of particular note: pyarrow 17 to pyarrow>=18 and pyarmor 8 to pyarmor 9

  • [15264] Added a 3lc watch service to monitor and detect external changes to 3LC project folders. It uses file system notifications and updates timestamp files in order to notify other parts of the 3LC ecosystem about changes to data. It carries no dependence on the rest of the tlc library and can be run in a separate process.

    • For convenience it is also possible to add watching of all local scan URLs in the Object Service using the new --watch-local-folders option

Enhancements and Fixes

  • [13429] Put several mechanisms in place maintain robust backwards-compatibility for 3LC object serialization format

  • [14906] Added a warning for unequal default values in schema comparison

  • [15289] Reduced memory usage for Table objects

    • Removed circular object dependencies to allow for garbage collection

    • Avoid reading the full parquet when asked to produce schema in many cases

  • [15376] Updated the Object.delete docstring to clarify usage and behavior

  • [15409] Improve error handling when validating object names, particularly when there is an issue with a category value in TableFromYolo

  • [13114] Improvements to memory handling

    • Clear metrics tables after embedding reduction

    • Ensure objects are deleted from ObjectRegistry when source tables are deleted from disk

    • Fixed issue that could inadvertently cause a Table to produce its row data during deletion

  • Fix printing of model_url in log message, which came out as absolute for all log messages after the first

  • [15375] Clean up malformed JoinedTable if schemas are incompatible