[PATCH] python: Default whence argument for Data() to SEEK_SET.

Tobias Mueller muelli at cryptobitch.de
Mon Oct 9 18:43:50 CEST 2017


Hi.

I also wonder whether this patch has been reviewed and whether it is
acceptable.

Cheers,
  Tobi

On Di, 2017-08-22 at 17:48 +0200, Tobias Mueller wrote:
> * lang/python/gpgme.i: copied signature from gpgme.h and defaulted the
> value to SEEK_SET.
> * lang/python/tests/t-data.py: Added a test for no second argument
> --
> 
> Having to import the os package when wanting to read a Data object is a
> slight annoyance. With SWIG, we can define default parameters. This
> change defaults the whence argument to SEEK_SET which is how StringIO
> and BytesIO behave.
> 
> Signed-off-by: Tobias Mueller <muelli at cryptobitch.de>
> ---
>  lang/python/gpgme.i         | 5 +++++
>  lang/python/tests/t-data.py | 6 ++++++
>  2 files changed, 11 insertions(+)
> 
> diff --git a/lang/python/gpgme.i b/lang/python/gpgme.i
> index 58148b3..3fa2e0b 100644
> --- a/lang/python/gpgme.i
> +++ b/lang/python/gpgme.i
> @@ -557,6 +557,11 @@ gpgme_error_t gpgme_op_keylist_start (gpgme_ctx_t ctx,
>                        const char *pattern="",
>                        int secret_only=0);
>  
> +/* The whence argument is surprising in Python-land,
> +   because BytesIO or StringIO objects do not require it.
> +   It defaults to SEEK_SET. Let's do that for Data objects, too */
> +off_t gpgme_data_seek (gpgme_data_t dh, off_t offset, int whence=SEEK_SET);
> +
>  /* Include the unmodified <gpgme.h> for cc, and the cleaned-up local
>     version for SWIG.  We do, however, want to hide certain fields on
>     some structs, which we provide prior to including the version for
> diff --git a/lang/python/tests/t-data.py b/lang/python/tests/t-data.py
> index 3301319..5cf074c 100755
> --- a/lang/python/tests/t-data.py
> +++ b/lang/python/tests/t-data.py
> @@ -51,6 +51,12 @@ data.write(b'Hello world!')
>  data.seek(0, os.SEEK_SET)
>  assert data.read() == b'Hello world!'
>  
> +data = gpg.Data()
> +data.write(b'Hello world!')
> +# We expect the second argument to default to SEEK_SET
> +data.seek(0)
> +assert data.read() == b'Hello world!'
> +
>  binjunk = bytes(range(256))
>  data = gpg.Data()
>  data.write(binjunk)



More information about the Gnupg-devel mailing list