Release and Version History#

orphan:

Backlog (TODO)#

Features and Improvements

2.0.1 (2023-04-21)#

Features and Improvements

Changes:

New APIs:

  • add s3pathlib.better_client to 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 old delete_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_bytes

    • S3Path.write_text

    • S3Path.copy_file

    • S3Path.copy_dir

    • S3Path.copy_to

    • S3Path.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 metadata and taggings in copy_file(), copy_to() and move_to() method.

Miscellaneous

  • the iterproxy.py module is taken out and released as a independent project.

1.2.1 (2022-11-20)#

Features and Improvements

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.py module, split the 2.5k line script into 10+ 100 line module.

  • Made the metadata pull more intelligent.

Bugfixes

  • Fix a bug that the S3Path constructor should not take concrete S3 object / dir path as the second / third / fourth / … arguments

  • Fix a bug that cannot get the metadata value of the S3Path is created by _from_content_dict method.

1.1.1 (2022-11-13)#

Features and Improvements

  • add tagging management feature
    • add get_tags() method

    • add put_tags() method

    • add update_tags() method

  • allow update metadata and taggings in write_text() and write_bytes() method.

1.0.12 (2022-09-10)#

Features and Improvements

  • add s3pathlib.core.S3Path.joinpath() method to mimick pathlib.Path.joinpath behavior

  • add s3pathlib.core.S3Path.s3_select_console_url() property

  • add s3pathlib.core.S3Path.s3_select_us_gov_cloud_console_url() property

Bugfixes

  • made s3pathlib.core.S3Path.console_url() and s3pathlib.core.S3Path.us_gov_cloud_console_url() regular property, they should not be FilterableProperty

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 a s3path / part1 / part2 syntax sugar.

  • add the __sub__ operator override. it is a S3Path("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_ext arg 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

1.0.7 (2022-04-17)#

Bugfixes

  • fix import bug in s3pathlib.boto_ses module

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.BotoSesManager class.

Minor Improvements

  • add bsm boto session manager parameter for all method using s3 api.

Bugfixes

Miscellaneous

1.0.5 (2022-02-06)#

Features and Improvements

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 | False argument for s3pathlib.util.iter_objects(), so you can ignore files in nested folders

  • add recursive = True | False argument for s3pathlib.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.S3Path a file-like object that support open, read, write.

  • add s3pathlib.core.S3PathIterProxy that greatly simplify S3 object filtering.

  • add s3pathlib.core.S3Path.open() method, makes S3Path a file-like object

  • add 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=True parameter for s3pathlib.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.S3Path API becomes stable

  • s3pathlib.utils API becomes stable

  • s3pathlib.context API becomes stable

Miscellaneous

  • First stable release.

0.0.1 (2022-01-17)#

  • First release, a placeholder release.