Source code for strawberry.fields.helpers

# -*- coding: utf-8 -*-

import hashlib

__title__ = 'strawberry.fields'
__author__ = 'Artur Barseghyan <artur.barseghyan@gmail.com>'
__copyright__ = '2018 Artur Barseghyan'
__license__ = 'GPL 2.0/LGPL 2.1'
__all__ = (
    'get_prepopulated_value',
    'generate_md5_hash',
)


[docs]def get_prepopulated_value(field, instance): """Returns preliminary value based on `populate_from`. Args: field (:obj:`strawberry.fields.md5.MD5Field`): `MD5Field` instance. instance (:obj:`django.db.models.Model`): Django model instance. Returns: str: Prepopulated value. """ if hasattr(field.populate_from, '__call__'): # MD5Field(populate_from=lambda instance: ...) return field.populate_from(instance) else: # MD5Field(populate_from='foo') attr = getattr(instance, field.populate_from) return callable(attr) and attr() or attr
[docs]def generate_md5_hash(value, unique=False): """Generate md5 hash. Args: value (str): unique (bool): Returns: str: Generated MD5 hash. """ md5 = hashlib.md5() encoded_value = value.encode('utf8') md5.update(encoded_value) return md5.hexdigest()