2
0
mirror of https://github.com/inventree/demo-dataset.git synced 2025-04-27 21:16:50 +00:00
demo-dataset/scripts/pin_headers.py
2022-07-15 14:35:46 +10:00

97 lines
2.5 KiB
Python

from random import randint
from inventree.api import InvenTreeAPI
from inventree.part import Part, Parameter, ParameterTemplate
from inventree.stock import StockItem
api = InvenTreeAPI("http://localhost:8000", username="admin", password="inventree")
# Pin headers category
cat_id = 21
# Storage location
loc_id = 10
rows = [1, 2]
pitch = [1.27, 2.0, 2.54]
ways = range(2, 11)
# Parameter templates
templates = {}
for tmp in ParameterTemplate.list(api):
templates[tmp.name] = tmp.pk
for r in rows:
for p in pitch:
for w in ways:
n = r * w
name = f"PinHeader_{r}x{w:02d}x{p}mm"
description = f"Male pin header connector, {r} rows, {n} positions, {p}mm pitch, vertical"
keywords = "pin header connector"
# Check if this part already exists
results = Part.list(api, search=name)
if len(results) > 0:
part = results[0]
else:
part = Part.create(
api,
{
'name': name,
'description': description,
'keywords': keywords,
'category': cat_id,
'purchaseable': True,
'component': True,
}
)
# Create stock item for this item
items = StockItem.list(api, part=part.pk)
if len(items) == 0:
q = randint(0, 25)
if q > 0:
StockItem.create(
api,
{
'part': part.pk,
'quantity': q,
'location': loc_id,
}
)
# Generate parameters for each item
Parameter.create(
api,
{
'part': part.pk,
'template': templates['Pitch'],
'data': p
}
)
Parameter.create(
api,
{
'part': part.pk,
'template': templates['Positions'],
'data': n
}
)
Parameter.create(
api,
{
'part': part.pk,
'template': templates['Rows'],
'data': r
}
)