3LC Python Package Version 3.4¶

3.4.0¶

System Requirements¶

  • [18489] Support for Python 3.14 has been added.

  • [18489] The minimum supported macOS version is now macOS Sonoma (version 14). The 3lc wheels for macOS are built for macOS 14 and newer, and can no longer be installed on macOS Ventura (version 13).

  • The minimum supported Ubuntu version is now Ubuntu 22.04 (x86-64 and ARM64), matching the versions 3LC is tested on.

Features¶

  • [18255] A location declared as static is now also read-only. Declaring static: true on a scan-urls entry, or in a config.3lc.yaml beside the data, previously only meant the location was scanned once. 3LC now also refuses to write to the location. Direct writes raise a PermissionError, and writes whose destination 3LC chooses, such as the new table written when you commit edits in the Dashboard, are redirected under the project root instead. A project root inside a static location is refused, and static: false deeper in the tree makes an exception. See static scopes for details.

  • [18263] The Object Service now reports how many log messages it has recorded at each level in its /status response, so the Dashboard can notify you of new Object Service info, warning and error messages.

Enhancements and Fixes¶

  • [18621] Edits to the user configuration file and the project root’s configuration file, such as added or changed aliases, are now correctly picked up by a running Object Service without a restart.

  • [18255] Fixed tables and runs sometimes disappearing from the Dashboard when a scan hit a temporary storage error.

  • [18594] Fixed intermittent “403 Unauthenticated” errors from the Object Service, typically shortly after the Dashboard renewed its login.

  • [18369] Data inside a project folder that matches a registered alias is now stored using the alias instead of as a path relative to the table, so moving the data only requires updating the alias. Tables written by earlier versions keep their relative paths.

  • [18263] Fixed error messages in the Dashboard’s Object Service log view being shown with the level “Not set”.

  • [18240] PaCMAP embedding reduction now works on macOS. PaCMAP has been upgraded to 0.9, which uses faiss instead of annoy for its nearest-neighbor search. Existing PaCMAP tables that stored an annoy index and have no row cache reuse it when annoy is installed, and otherwise rebuild the index with a warning.

  • [18317] 3lc now depends on opencv-python-headless instead of opencv-python. This removes the need for GUI system libraries such as libGL on Linux servers and containers, and makes the install smaller. The headless package does not include OpenCV’s GUI functions, such as cv2.imshow, so code that relied on them through 3lc’s previous dependency needs to install opencv-python itself.

  • [18218] Raised the minimum typing-extensions version to 4.15, for compatibility with Pixeltable 0.7.

  • [18329] Stopped logging a traceback at DEBUG level on every import tlc when the project root has no configuration file.