Release and Version History¶
- orphan:
Backlog (TODO)¶
Features and Improvements
make
s3pathlib.aws.Contextmulti-thread safe.
Minor Improvements
Bugfixes
Miscellaneous
2.3.4 (2025-07-13)¶
Bugfixes
Fix smart_open version parsing bug that could cause compatibility issues with certain version string formats.
Miscellaneous
Remove unused cached_property import fallback code for Python < 3.8 since the minimum supported Python version is now 3.9.
2.3.3 (2025-06-13)¶
Bugfixes
Relax the requirements of
func_args>=0.1.1,<1.0.0tofunc_args>=0.1.1,<2.0.0to allow the latest version offunc_argsto be used.
Miscellaneous
Use pywf_open_source code skeleton.
2.3.2 (2025-03-07)¶
Minor Improvements
Allow user to use
context.attach_s3_client(your_custom_s3_client)andcontext.attach_sts_client(your_custom_sts_client)to set a custom S3 client, so that you can work with any S3 compatible storage by customizing your own s3 client object.
Miscellaneous
Upgrade moto to 5.X.Y
Add support to use smart_open 7.X.Y
Stop testing on Python 3.7
2.3.1 (2024-08-31)¶
Features and Improvements
2.2.1 (2024-08-10)¶
Features and Improvements
Add
s3pathlib.core.metadata.MetadataAPIMixin.responseproperty method to allow developer to access the underlyinghead_objectAPI response.Add support for Python 3.12.
2.1.2 (2023-09-10)¶
Minor Improvements
now most of the
S3Pathmethods can take bothboto3.client("s3")orboto_session_manager.BotoSesManager(...)object forbsmargument.
2.1.1 (2023-09-03)¶
Features and Improvements
open()method now takes full list ofs3_client.get_object,s3_client.put_object,s3_client.create_multipart_uploadarguments.
New APIs:
add
from_bucket()add
create_bucket()add
delete_bucket()add
list_buckets()add
ContentTypeEnum
Bugfixes
2.0.1 (2023-04-21)¶
Features and Improvements
Changes:
most of methods now supports
version_idargument for S3 versioning enabled bucket.s3pathlib.core.rw.ReadAndWriteAPIMixin.read_bytes()ands3pathlib.core.rw.ReadAndWriteAPIMixin.read_text()now supportversion_idand full list ofget_objectboto3 arguments.s3pathlib.core.uri.UriAPIMixin.console_url()now take the version id into consideration.add
s3pathlib.core.is_test.IsTestAPIMixin.is_delete_marker()method.s3pathlib.core.base.BaseS3Path.__new__()now can take S3 URI and ARN directly without using thefrom_s3_uriandfrom_s3_arnmethod.
New APIs:
add
s3pathlib.better_clientto the public API, it is a collection of more user friendly boto3 API, with type hint.add
list_object_versions()method. It will return all objects, all versions, all delete markers in reverse chronological order.The
is_delete_marker()method can be used to check if the version is a delete marker.delete(): delete object, directory (recursively), specific object version, object versions, all objects all versions in directory. This API will replace the olddelete_if_exists()API in 3.X.Y.
Minor Improvements
use moto for unit test.
add tons of more unit test for edge cases.
prompt to confirm when delete everything in a bucket.
Bugfixes
fix a bug that should not allow user to set value to attributes like
bucket,key.
Miscellaneous
completely rewrite the documentation in Jupyter notebook to provide interactive reading experience.
Imcompatible Change
removed
join_path().
1.4.1 (2023-02-16)¶
Features and Improvements
- now the following API supports full list of native boto3 argument:
S3Path.write_bytesS3Path.write_textS3Path.copy_fileS3Path.copy_dirS3Path.copy_toS3Path.move_to
add many optional argument to the
S3Path.sync()method.
1.3.1 (2022-12-30)¶
Features and Improvements
allow
and_,or_,not_in iterproxy filter.allow update
metadataandtaggingsincopy_file(),copy_to()andmove_to()method.
Miscellaneous
the
iterproxy.pymodule is taken out and released as a independent project.
1.2.1 (2022-11-20)¶
Features and Improvements
open()method now takesmetadataandtagsarguments.write_bytes()andwrite_text(),touch()method now takesmetadataandtagsarguments.add
sync(),sync_from(),sync_to()method that execute aws s3 sync command
Minor Improvements
raise a warning if there is upper case key used in user defined metadata.
1.1.2 (2022-11-16)¶
Minor Improvements
Refactor
core.pymodule, split the 2.5k line script into 10+ 100 line module.Made the metadata pull more intelligent.
Bugfixes
Fix a bug that the
S3Pathconstructor should not take concrete S3 object / dir path as the second / third / fourth / … argumentsFix a bug that cannot get the metadata value of the S3Path is created by
_from_content_dictmethod.
1.1.1 (2022-11-13)¶
Features and Improvements
- add
taggingmanagement feature add
get_tags()methodadd
put_tags()methodadd
update_tags()method
- add
allow update
metadataandtaggingsinwrite_text()andwrite_bytes()method.
1.0.12 (2022-09-10)¶
Features and Improvements
add
s3pathlib.core.S3Path.joinpath()method to mimickpathlib.Path.joinpathbehavioradd
s3pathlib.core.S3Path.s3_select_console_url()propertyadd
s3pathlib.core.S3Path.s3_select_us_gov_cloud_console_url()property
Bugfixes
made
s3pathlib.core.S3Path.console_url()ands3pathlib.core.S3Path.us_gov_cloud_console_url()regular property, they should not beFilterableProperty
Miscellaneous
mark
s3pathlib.core.S3Path.join_path()as deprecated
1.0.11 (2022-07-12)¶
Features and Improvements
add the
__truediv__operator override. it is as3path / part1 / part2syntax sugar.add the
__sub__operator override. it is aS3Path("bucket/folder") - S3Path("bucket")syntax sugar.
Minor Improvements
Bugfixes
Miscellaneous
1.0.10 (2022-04-30)¶
Miscellaneous
remove the boto session module, now it depends on boto_session_manager library.
add compatibility support for smart_open >= 6.0 due to the
ignore_extarg is removed.for s3 IO feature, you need
smart_open>=5.1.x
1.0.9 (2022-04-19)¶
Features and Improvements
add
s3pathlib.core.S3Path.boto_ses.BotoSesManager.get_client()method
1.0.8 (2022-04-19)¶
Bugfixes
fix import bug in
s3pathlib.awsmodule
1.0.7 (2022-04-17)¶
Bugfixes
fix import bug in
s3pathlib.boto_sesmodule
1.0.6 (2022-04-13)¶
Features and Improvements
add
s3pathlib.core.S3Path.to_file()method.add
s3pathlib.core.S3Path.to_dir()method.add
s3pathlib.core.S3Path.parents()method.add
s3pathlib.core.S3Path.iterdir()method.add
s3pathlib.core.S3Path.touch()method.add
s3pathlib.core.S3Path.mkdir()method.add
s3pathlib.core.S3Path.boto_ses.BotoSesManagerclass.
Minor Improvements
add
bsmboto session manager parameter for all method using s3 api.
Bugfixes
Miscellaneous
1.0.5 (2022-02-06)¶
Features and Improvements
add
s3pathlib.core.S3Path.us_gov_cloud_console_url()propertyadd
s3pathlib.utils.parse_data_size()method
Minor Improvements
Bugfixes
Miscellaneous
1.0.4 (2022-01-25)¶
Features and Improvements
add
s3pathlib.core.S3PathIterProxy.equal_to()add
s3pathlib.core.S3PathIterProxy.not_equal_to()add
s3pathlib.core.S3PathIterProxy.greater()add
s3pathlib.core.S3PathIterProxy.greater_equal()add
s3pathlib.core.S3PathIterProxy.less()add
s3pathlib.core.S3PathIterProxy.less_equal()add
recursive = True | Falseargument fors3pathlib.util.iter_objects(), so you can ignore files in nested foldersadd
recursive = True | Falseargument fors3pathlib.core.S3Path.iter_objects(), so you can ignore files in nested folders
Minor Improvements
Bugfixes
fix a bug that
s3pathlib.core.S3Path.fname()was a regular property and not filterable
Miscellaneous
Add “S3 Object filter” doc
Add “File Liked Object IO Object filter” doc
1.0.3 (2022-01-23)¶
Features and Improvements
make
s3pathlib.core.S3Patha file-like object that support open, read, write.add
s3pathlib.core.S3PathIterProxythat greatly simplify S3 object filtering.add
s3pathlib.core.S3Path.open()method, makesS3Patha file-like objectadd
s3pathlib.core.S3Path.write_text()add
s3pathlib.core.S3Path.read_text()add
s3pathlib.core.S3Path.write_bytes()add
s3pathlib.core.S3Path.read_bytes()
1.0.2 (2022-01-21)¶
Features and Improvements
add
s3pathlib.core.S3Path.from_s3_uri()method.add
s3pathlib.core.S3Path.from_s3_arn()method.add
s3pathlib.core.S3Path.change()method.add
s3pathlib.core.S3Path.is_parent_of()method.add
s3pathlib.core.S3Path.is_prefix_of()method.add
s3pathlib.core.S3Path.dirpath()property.add better support to handle auto-created “empty folder” object, add
include_folder=Trueparameter fors3pathlib.core.S3Path.list_objects(),s3pathlib.core.S3Path.count_objects(),s3pathlib.core.S3Path.calculate_total_size()method.
Bugfixes
fix a bug that AWS S3 will create an invisible object when creating a folder, it should not counts as a valid object for
s3pathlib.core.S3Path.count_objects()
Miscellaneous
A lot doc improvement.
1.0.1 (2022-01-19)¶
Features and Improvements
s3pathlib.S3PathAPI becomes stables3pathlib.utilsAPI becomes stables3pathlib.contextAPI becomes stable
Miscellaneous
First stable release.
0.0.1 (2022-01-17)¶
First release, a placeholder release.