Skip to content

KiCad Python module for generating bill of materials in multiple formats.

License

Notifications You must be signed in to change notification settings

peterpolidoro/kicad_bom

Repository files navigation

About

- Python Package Name: kicad_bom
- Description: KiCad Python code for generating bill of materials in multiple formats.
- Python Package Exports: KicadBom, save_all_csv_files
- Version: 6.0.0
- Python Version: 3.10
- Release Date: 2024-05-10
- Creation Date: 2022-08-16
- License: BSD-3-Clause
- URL: https://github.com/janelia-python/kicad_bom
- Author: Peter Polidoro
- Email: [email protected]
- Copyright: 2024 Howard Hughes Medical Institute
- References:
  - https://gitlab.com/kicad/code/kicad
- Dependencies:
  - kicad_netlist_reader

Example Usage

Python

Standard BOM

from kicad_bom import KicadBom
kb = KicadBom(netlist_path='.')

fields = ['Item',
          'Quantity',
          'Manufacturer',
          'Manufacturer Part Number',
          'Synopsis',
          'Reference(s)',
          'Package']
kb.save_bom_csv_file('.', fields)

Org Mode BOM Table

from kicad_bom import KicadBom
kb = KicadBom(netlist_path='.')

fields = ['Item',
          'Quantity',
          'Manufacturer',
          'Manufacturer Part Number',
          'Synopsis',
          'Reference(s)',
          'Package']
bom = kb.get_bom(input_fields=fields, output_fields=fields, format_for_org_table=True)

jlcpcb

from kicad_bom import KicadBom
kb = KicadBom(netlist_path='.')

input_fields = ['Synopsis',
                'Reference',
                'Package',
                'LCSC']
output_fields = ['Comment',
                 'Designator',
                 'Footprint',
                 'LCSC']
kb.save_bom_csv_file('jlcpcb-bom.csv', input_fields, output_fields)

Vendor Parts Files

from kicad_bom import KicadBom
kb = KicadBom(netlist_path='.')

kb.save_vendor_parts_csv_files('.')

Installation

https://github.com/janelia-python/python_setup

GNU/Linux

Python Code

The Python code in this library may be installed in any number of ways, chose one.

  1. pip

    python3 -m venv ~/venvs/kicad_bom
    source ~/venvs/kicad_bom/bin/activate
    pip install kicad_bom
  2. guix

    Setup guix-janelia channel:

    https://github.com/guix-janelia/guix-janelia

    guix install python-kicad-bom

Windows

Python Code

The Python code in this library may be installed in any number of ways, chose one.

  1. pip

    python3 -m venv C:\venvs\kicad_bom
    C:\venvs\kicad_bom\Scripts\activate
    pip install kicad_bom

Development

Clone Repository

git clone [email protected]:janelia-python/kicad_bom.git
cd kicad_bom

Guix

Install Guix

Install Guix

Edit metadata.org

make -f .metadata/Makefile metadata-edits

Tangle metadata.org

make -f .metadata/Makefile metadata

Develop Python package

make -f .metadata/Makefile guix-dev-container
exit

Test Python package using ipython shell

make -f .metadata/Makefile guix-dev-container-ipython
import kicad_bom
exit

Test Python package installation

make -f .metadata/Makefile guix-container
exit

Upload Python package to pypi

make -f .metadata/Makefile upload

Docker

Install Docker Engine

https://docs.docker.com/engine/

Develop Python package

make -f .metadata/Makefile docker-dev-container
exit

Test Python package using ipython shell

make -f .metadata/Makefile docker-dev-container-ipython
import kicad_bom
exit

Test Python package installation

make -f .metadata/Makefile docker-container
exit

About

KiCad Python module for generating bill of materials in multiple formats.

Resources

License

Stars

Watchers

Forks

Packages

No packages published