Changelog

1.9.1

  • Add a real AWS integration test for S3FSStore

  • Add minio test for S3FSStore

  • verify url param that can be passed to url when creating a [h]s3:// store now really controls SSL verifaction

  • Refactor tests to not skip Boto3Store / S3FSStore tests anymore if boto is unavailible

1.9.0

  • Add session_token url param that can be set when creating a [h]s3:// store via get_store_from_url.

1.8.6

  • We undeprecated url2dict and extract_params as these functions turned out to be useful in downstream projects.

1.8.5

  • Changed generic IO type to BinaryIO.

1.8.4

  • Removing invalid BSD-3 Clause license classifier.

1.8.3

  • Changed __iter__ return type to Iterator.

1.8.2

  • Include Python 3.12 in CI

  • Migrate setup.cfg and setup.py into pyproject.toml

  • Port to ruff

  • Include pre-commit autoupdate workflow

  • Determine version in docs/conf.py automatically

1.8.1

  • Drop pkg_resources and use importlib.metadata to access package version string.

  • Add missing region_name in s3fs store creation to set required location contraint during bucket creation.

1.8.0

  • Fixed the behaviour of S3FSStore when providing a custom endpoint.

  • Added verify constructor argument to S3FSStore that disables SSL verification. Use it in an URI as ?verify=false.

  • Fixing boto3 import at module level of s3fsstore.

1.7.0

  • Deprecated get_store, url2dict, and extract_params.

    • get_store_from_url should be used to create stores from a URL

  • Added from_url and from_parsed_url to each store.

  • Made the SQLAlchemyStore compatible with SQLAlchemy 2.0.

1.6.0

  • Added S3FSStore. This is a drop-in replacement for the Boto3Store and will replace it in the next major release.

1.5.0

  • Added concept for closable stores.

    • Stores and Decorators can now be opened using with KeyValueStore as store

    • Implemented this functionality for baseclasses and the AzureBlockBlobStore

1.4.4

  • Keys are not quoted for FSSpecStore``s anymore. * Thus, e.g. GCS objects whose names include special characters like ``/ or # can now be accessed.

1.4.3

  • Bug fixes for Google Cloud Storage: * Request correct OAuth scope when creating credentials from URL * Conform to BufferedIOBase class by calling super()

1.4.2

  • Declare packages as py.typed.

1.4.1

  • We now lazily import gcsfs.

1.4.0

  • Drop support for Python 3.6 & 3.7

  • Add support for Python 3.10

  • Reimplement GoogleCloudStore using gcsfs and fsspec. This is a drop-in replacement for the old implementation.

1.3.1

  • Fixed a bug requiring redis in get_store_from_url().

1.3.0

  • Moved mixin classes UrlMixin and CopyMixin from minimalkv to minimalkv._mixins.

  • Moved mixin class ExtendedKeyspaceMixin from minimalkv.contrib to minimalkv._mixins.

  • Moved stores KeyValueStore and UrlKeyValueStore from minimalkv to minimalkv._key_value_store.

  • Moved functions get_store and get_store_from_url from minimalkv to minimalkv._get_store.

  • Moved constants FOREVER, NOT_SET, VALID_NON_NUM, VALID_KEY_REGEXP and VALID_KEY_RE from minimalkv to minimalkv._constants.

  • Moved constants VALID_NON_NUM_EXTENDED, VALID_KEY_REGEXP_EXTENDED, VALID_KEY_RE_EXTENDED from minimalkv.contrib to minimalkv._constants.

  • All changes are backwards compatible.

1.2.2

  • Improved the API documentation of minimalkv.

1.2.1

  • Fixed intersphinx inventory build on readthedocs to include all classes.

1.2.0

  • Add Python 3.6 / 3.9 to build and support matrix.

  • Allow creating GoogleCloudStore via URL

  • Fix sphinx intersphinx generation and cleanup docs configuration.

1.1.0

  • Merge storefact into the tree.

1.0.0

  • Rename to minimalkv.

0.15.0

  • Add support for Google Cloud Storage through google-cloud-storage (for Python3).

0.14.1

  • Fix support for key in store for azure with azure-storage-blob.

0.14.0

  • Add support for azure-storage-blob version 12. (azure-storage-blob version 2 is still supported.)

0.13.1

  • Add the optional parameters of the Azure API max_block_size and max_single_put_size to the AzureBlockBlobStore.

0.13.0

  • Add iter_prefixes() method to iterate over all prefixes currently in the store, in any order. The

    prefixes are listed up to the given delimiter.

0.12.0

  • Use BlockBlobService.list_blob_names in minimalkv.net.azurestore.AzureBlockBlobStore.iter_keys. This will only parse the names from Azure’s XML response thus reducing CPU time siginificantly for this function.

  • They .keys() method on Python 3 now returns a list. This is in line with the documentation and the behaviour on Python 2. It used to return a generator.

0.11.11

  • Fix file-descriptor leak in KeyValueStore._get_file

0.11.10

  • Azure files handles now correctly implement seek and return the new position.

0.11.9

  • Add option to set the checksum for Azure blobs.

  • Make the FilesystemStore resilient to parallel directory creations.

0.11.8

  • Depend on azure-storage-blob, following the new naming scheme.

  • Pass the max_connections parameter to Azure backend.

0.11.7

  • removed seek() and tell() API for file handles opened in the botostore, due to it leaking HTTP connections to S3.

0.11.6

  • Support seek() and tell() API for file handles opened in the botostore.

0.11.5

  • Fix one off in open() method interfaces for azure backend

0.11.4

  • The open() method in the azure backend now supports partial reads of blobs

  • The exceptions from the azure backend contain more human-readable information in case of common errors.

0.11.3

  • Apply 0.11.2 in ExtendedKeySpaceMixin as well

0.11.2

  • Restore old behaviour of accepting valid keys of type str on Python 2

0.11.1

  • Fix version in setup.py

0.11.0

  • The memcached backend has been removed

  • Keys have to be provided as unicode strings

  • Values have to be provided as bytes (python 2) or as str (python 3)

  • keys() and iter_keys() provide a parameter to iterate just over all keys with a given prefix

  • Added minimalkv.CopyMixin to allow access to copy operations to backends which support a native copy operation

  • Added a decorator which provides a read-only view of a store: ReadOnlyDecorator

  • Added a decorator which url-encodes all keys: URLEncodeKeysDecorator

  • Added a Microsoft Azure Blob Storage backend: AzureBlockBlobStore

  • Added minimalkv.contrib.ExtendedKeyspaceMixin which allows slashes and spaces in key names This mixin is experimental, unsupported and might not work with all backends.

0.10.0

  • simplekv no longer depends on six.

  • The PrefixDecorator works more as expected.

  • An experimental git-based store has been added in GitCommitStore.

0.9.2

0.9

0.6

  • Now supports redis backend: RedisStore.

  • Fixed bug: No initial value for String() column in SQLAlchemy store.

0.5

0.4

  • Support for cloud-based storage using boto (see BotoStore).

  • First time changes were recorded in docs

0.3

0.1

  • Initial release