Coverage for src/backend/InvenTree/plugin/builtin/suppliers/digikey.py: 93%

14 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-07 17:47 +0000

1"""The DigiKeyBarcodePlugin is meant to integrate the DigiKey API into InvenTree. 

2 

3This plugin can currently only match DigiKey barcodes to supplier parts. 

4""" 

5 

6from django.utils.translation import gettext_lazy as _ 

7 

8from plugin import InvenTreePlugin 

9from plugin.mixins import SettingsMixin, SupplierBarcodeMixin 

10 

11 

12class DigiKeyPlugin(SupplierBarcodeMixin, SettingsMixin, InvenTreePlugin): 

13 """Plugin to integrate the DigiKey API into InvenTree.""" 

14 

15 NAME = 'DigiKeyBarcodePlugin' 

16 SLUG = 'digikeyplugin' 

17 TITLE = _('Supplier Integration - DigiKey') 

18 DESCRIPTION = _('Provides support for scanning DigiKey barcodes') 

19 VERSION = '1.0.1' 

20 AUTHOR = _('InvenTree contributors') 

21 

22 DEFAULT_SUPPLIER_NAME = 'DigiKey' 

23 

24 SETTINGS = { 

25 'SUPPLIER_ID': { 

26 'name': _('Supplier'), 

27 'description': _("The Supplier which acts as 'DigiKey'"), 

28 'model': 'company.company', 

29 'model_filters': {'is_supplier': True}, 

30 } 

31 } 

32 

33 def extract_barcode_fields(self, barcode_data) -> dict[str, str]: 

34 """Extract barcode fields from a DigiKey plugin.""" 

35 return self.parse_ecia_barcode2d(barcode_data)