[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