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

import hashlib

from rest_framework.renderers import JSONRenderer

from stock.serializers import StockItemSerializer, LocationSerializer
from part.serializers import PartSerializer

import plugins.plugin as plugin


class BarcodePlugin(plugin.InvenTreePlugin):
    """
    The BarcodePlugin class is the base class for any barcode plugin.
    """

    def __init__(self, barcode_data):
        plugin.InvenTreePlugin.__init__(self)

        self.data = barcode_data

    def hash(self):
        """
        Calculate a hash for the barcode data.
        This is supposed to uniquely identify the barcode contents,
        at least within the bardcode sub-type.

        The default implementation simply returns an MD5 hash of the barcode data,
        encoded to a string.

        This may be sufficient for most applications, but can obviously be overridden
        by a subclass.

        """

        hash = hashlib.md5(str(self.data).encode())
        return str(hash.hexdigest())

    def validate(self):
        """
        Default implementation returns False
        """
        return False

    def decode(self):
        """
        Decode the barcode, and craft a response
        """

        return None

    def render_part(self, part):
        """
        Render a Part object to JSON
        Use the existing serializer to do this.
        """

        serializer = PartSerializer(part)

        return serializer.data

    def render_stock_location(self, loc):
        """
        Render a StockLocation object to JSON
        Use the existing serializer to do this.
        """

        serializer = LocationSerializer(loc)

        return serializer.data

    def render_stock_item(self, item):
        """
        Render a StockItem object to JSON.
        Use the existing serializer to do this
        """

        serializer = StockItemSerializer(item, part_detail=True, location_detail=True, supplier_detail=True)

        return serializer.data

@@ -38,59 +38,8 @@
 ib%0A%0A
-from rest_framework.renderers import JSONRenderer%0A%0A
 from

Delete unused import