3LC Python Package Version 3.4¶
3.4.2¶
Enhancements and Fixes¶
[18938] Hardened request authentication and validation in the Object Service.
[18964] Fixed runs and other objects written by older versions of 3LC failing to load with the error âproperty âis_url_writableâ of âRunâ object has no setterâ.
[18912] Fixed tables and runs briefly disappearing from the Dashboard on Linux and macOS when another file in the same folder was deleted during a scan.
[18912] Fixed changes to a local file on Windows sometimes not being picked up for up to an hour when the file was held open by another program.
[18900] Fixed a rare crash on Linux when a Python process exited right after 3LC logged a message.
[18929] Fixed an
AttributeErrorin the Object Service when a table or run does not belong to a project.
3.4.1¶
Enhancements and Fixes¶
[18818] Fixed the Object Service logging an error with a traceback for every image when it could not sign cloud-direct URLs for a bucket. It now logs one warning per bucket, and the Dashboard loads that bucketâs media through the Object Service instead. See self-authenticated media URLs for the permissions each cloud needs.
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
3lcwheels 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: trueon ascan-urlsentry, or in aconfig.3lc.yamlbeside the data, previously only meant the location was scanned once. 3LC now also refuses to write to the location. Direct writes raise aPermissionError, 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, andstatic: falsedeeper 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
/statusresponse, 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
annoyis installed, and otherwise rebuild the index with a warning.[18317]
3lcnow depends onopencv-python-headlessinstead ofopencv-python. This removes the need for GUI system libraries such aslibGLon Linux servers and containers, and makes the install smaller. The headless package does not include OpenCVâs GUI functions, such ascv2.imshow, so code that relied on them through3lcâs previous dependency needs to installopencv-pythonitself.[18218] Raised the minimum
typing-extensionsversion to 4.15, for compatibility with Pixeltable 0.7.[18329] Stopped logging a traceback at DEBUG level on every
import tlcwhen the project root has no configuration file.