Skip to main content

A framework for performing analysis based on a Bill of Materials (BOM) structure

Project description

Documentation Status Coverage

Quality gate

Bill of Materials Analysis

This repository allows for an engineering assembly to be represented in a Bill of Materials (BOM) structure for analysis. The aim was to reduce the cognative complexity of the various data sets that are required for input or output of an analysis workflow. The repository also includes a number of features to help with this analysis.

The motivation for this package comes from a desire to order complex system data used by analysis in a logical. The chosen method for ordering this data is the bill of materials as it provides a common framework used across engineering.

The bill of materials provides a hieracy of materials, components, and assemblies all of which can contain data that is important for the analysis. For example, a user may want to assess the mass of an assembly by summing the mass of all the components in that make it up.

The Bill of Materials can be plotted to help understand the system (taken from example):

tokamak
├── coil_set
│   ├── east
│   ├── north
│   ├── south
│   └── west
└── divertor

The data for each of the components can also be displayed easily:

================================================================================
| var           │ value   │ unit          │ description                        │
================================================================================
│ mass          │ 1000    │ metric_ton    │                                    │
================================================================================
│ configuration │ ST      │ dimensionless │                                    │
================================================================================
│ major_radius  │ 2       │ meter         │ the geometric centre of the plasma │
================================================================================    

Installation

The easiest way to install bom_analysis is using pip pip:

pip install bom_analysis

Help and Support

Testing

BOM Analysis contains a test suite that can be ran using pytest (must be installed). Three markers have been used to distiguish the different testing levels:

  • unittest: runs unit tests that generally only test an individual method by using mocking
  • integrationtest: runs the integration tests
  • regressiontest: tests bugs that have been indentified in other versions

The full test suite can be ran by navigating to the source directory and running pytest:

pytest 

It is possible to filter the tests by the markers:

pytest -m "unittest"

Or filter out markers:

pytest -m "not integrationtest and not regressiontest"

License

BSD 3

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bom_analysis-1.0.0.tar.gz (47.5 kB view details)

Uploaded Source

Built Distribution

bom_analysis-1.0.0-py3-none-any.whl (51.1 kB view details)

Uploaded Python 3

File details

Details for the file bom_analysis-1.0.0.tar.gz.

File metadata

  • Download URL: bom_analysis-1.0.0.tar.gz
  • Upload date:
  • Size: 47.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for bom_analysis-1.0.0.tar.gz
Algorithm Hash digest
SHA256 4bc7d6ec299a69aae4f08e2b9a0cf4b61f5969488e3131b24581f53b80217368
MD5 5a0b6fab4e7b7b1ad3d500a00cd10c04
BLAKE2b-256 30a243acedfa12a075c75e1e2899217ed72036bcd245dac39c969a76fd864ee8

See more details on using hashes here.

File details

Details for the file bom_analysis-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: bom_analysis-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 51.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for bom_analysis-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2a019b9a50f12dfb9d12cc9aba1459b7963aba8af2119c2f4d6c5c3473fe3d2b
MD5 df68018c707f5f428c7bf87ba51a82d4
BLAKE2b-256 a601e383c1e2c8fead3d8763ec04f2e268d00d5ed03a6beed11cbcb691b2182b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page