[Patchew-devel] [PATCH 05/12] models: extract blobs functions to a separate file

Fam Zheng famz at redhat.com
Tue May 22 08:04:35 UTC 2018


On Tue, 05/22 08:57, Paolo Bonzini wrote:
> They will be used by migrations, and we don't want to import
> api.models there.

Yes, makes sense.

> ---
>  api/blobs.py  | 45 +++++++++++++++++++++++++++++++++++++++++++++
>  api/models.py | 27 ++++-----------------------
>  2 files changed, 49 insertions(+), 23 deletions(-)
>  create mode 100644 api/blobs.py
> 
> diff --git a/api/blobs.py b/api/blobs.py
> new file mode 100644
> index 0000000..7171b71
> --- /dev/null
> +++ b/api/blobs.py
> @@ -0,0 +1,45 @@
> +#!/usr/bin/env python3
> +#
> +# Copyright 2018 Red Hat, Inc.

Maybe keep the year from models.py header too.

> +#
> +# Authors:
> +#     Fam Zheng <famz at redhat.com>
> +#     Paolo Bonzini <pbonzini at redhat.com>
> +#
> +# This work is licensed under the MIT License.  Please see the LICENSE file or
> +# http://opensource.org/licenses/MIT.
> +
> +
> +import os
> +import json
> +import uuid
> +import logging
> +
> +from django.conf import settings
> +import lzma
> +
> +def save_blob(data, name=None):
> +    if not name:
> +        name = str(uuid.uuid4())
> +    fn = os.path.join(settings.DATA_DIR, "blob", name + ".xz")
> +    lzma.open(fn, 'w').write(data.encode("utf-8"))
> +    return name
> +
> +def load_blob(name):
> +    fn = os.path.join(settings.DATA_DIR, "blob", name + ".xz")
> +    return lzma.open(fn, 'r').read().decode("utf-8")
> +
> +def load_blob_json(name):
> +    try:
> +        return json.loads(load_blob(name))
> +    except json.decoder.JSONDecodeError as e:
> +        logging.error('Failed to load blob %s: %s' %(name, e))
> +        return None
> +
> +def delete_blob(name):
> +    fn = os.path.join(settings.DATA_DIR, "blob", name + ".xz")
> +    try:
> +        os.remove(fn)
> +    except FileNotFoundError:
> +        pass

This function is new. Please do it in a new patch after the code movement.

> +
> diff --git a/api/models.py b/api/models.py
> index 0f25f85..497e43c 100644
> --- a/api/models.py
> +++ b/api/models.py
> @@ -10,39 +10,20 @@
>  
>  
>  from collections import namedtuple
> -import os
>  import json
>  import datetime
>  import re
> -import uuid
> -import logging
>  
> -from django.conf import settings
>  from django.db import models
>  from django.contrib.auth.models import User
>  from django.urls import reverse
>  import jsonfield
> -from mbox import MboxMessage
> -from event import emit_event, declare_event
>  import lzma
>  
> -def save_blob(data, name=None):
> -    if not name:
> -        name = str(uuid.uuid4())
> -    fn = os.path.join(settings.DATA_DIR, "blob", name + ".xz")
> -    lzma.open(fn, 'w').write(data.encode("utf-8"))
> -    return name
> -
> -def load_blob(name):
> -    fn = os.path.join(settings.DATA_DIR, "blob", name + ".xz")
> -    return lzma.open(fn, 'r').read().decode("utf-8")
> -
> -def load_blob_json(name):
> -    try:
> -        return json.loads(load_blob(name))
> -    except json.decoder.JSONDecodeError as e:
> -        logging.error('Failed to load blob %s: %s' %(name, e))
> -        return None
> +from mbox import MboxMessage
> +from event import emit_event, declare_event
> +from .blobs import save_blob, load_blob, load_blob_json
> +import mod

mod is unused here?

Fam

>  
>  class Project(models.Model):
>      name = models.CharField(max_length=1024, db_index=True, unique=True,
> -- 
> 2.17.0
> 
> 
> _______________________________________________
> Patchew-devel mailing list
> Patchew-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/patchew-devel




More information about the Patchew-devel mailing list