Releases: Positronic-Robotics/pos3
Releases · Positronic-Robotics/pos3
v0.2.2
Fixed
- Fixed S3 key construction for directory markers being inconsistent across code paths. Consolidated all key building into a single
_make_s3_key(prefix, info)helper, ensuring trailing/is always appended for directories. Previously, the upload-copies path relied on a separate fixup in_put_to_s3, while the delete path had its own inline fix — a pattern that caused the v0.2.1 bug.
v0.2.1
[0.2.1] - 2026-01-14
Fixed
- Fixed S3 prefix matching bug where paths like
s3://bucket/data/would incorrectly match adjacent paths likes3://bucket/data_backup/. The_list_s3_objects()function now ensures directory prefixes always end with/to prevent spurious matches at path boundaries.
v0.2.0
[0.2.0] - 2026-01-07
Added
- Profile system for S3-compatible endpoints (MinIO, Nebius, etc.) (#4)
pos3.Profiledataclass for endpoint configurationpos3.register_profile()for named profile registrationprofileparameter ondownload(),upload(),sync(),ls()default_profileparameter onmirror()andwith_mirror()- Support for anonymous/public bucket access via
public=True - Multiple profiles can be used simultaneously in the same context
- Cache path isolation per profile via
local_name
v0.1.0
Initial release [0.1.0] - 2025-12-10
Added
- Initial extraction of
pos3from thepositroniccodebase as a standalone library. pos3.mirror()context manager for seamlessly syncing S3 files to local storage.- Drop-in compatibility for third-party scripts (e.g., OpenCV, Pandas) that require local file paths.
pos3.download(): Fetch S3 files to local cache with mirroring logic.pos3.upload(): Register local outputs for automatic background and exit-time synchronous upload.pos3.sync(): Bi-directional helper for resume-and-update workflows (download inputs -> run -> upload outputs).pos3.ls(): List files in S3 or local paths.- Thread-safe, differential transfer logic (only syncs changes).