Py-allspice

Latest version: v3.7.0

Safety actively analyzes 693883 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

3.2.0

What's Changed

- Remove BOM and COGS generation examples by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/116

The packaged actions at https://hub.allspice.io/Actions/generate-bom and
https://hub.allspice.io/Actions/cofactr-cogs are now the source of truth for
these scripts.

- Remove non-BOM components from Altium BOM by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/119

py-allspice now removes Standard (No BOM) components from Altium BOMs.

- Extract components list function for Altium from BOM by shrik450 in
https://github.com/AllSpiceIO/py-allspice/pull/122

Now you can:

py
from allspice.utils.list_components import list_components_for_altium

list_components_for_altium(...) Returns a list of all components in the project


This is useful if you want a list of components for further processing instead
of generating a BOM and reading it as a CSV.

- Fix doubled pins in netlist generation by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/129

- Specify versions for all dependencies by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/131
- Eliminate N+1 API requests in issues by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/135
- Add API to stream file from repo by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/136
- Automatically add type hints for API Object attributes by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/141

All API objects now have type hints for all attributes present in them! You
can use the type hints to type check your scripts with mypy or pylance, or
for autocomplete in your IDE.

Internal Changes

- Remove invalid flag from pdoc invocation by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/121
- Lint that imports are sorted by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/123
- Update pdoc requirement from ~=14.4 to ~=14.5 by dependabot in https://github.com/AllSpiceIO/py-allspice/pull/137
- Remove top-level `__init__.py` by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/133
- Add dependabot config by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/132
- Replace setup.py with pyproject metadata by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/134
- Bump actions/checkout from 3 to 4 by dependabot in https://github.com/AllSpiceIO/py-allspice/pull/139
- Bump actions/setup-python from 4 to 5 by dependabot in https://github.com/AllSpiceIO/py-allspice/pull/138

**Full Changelog**: https://github.com/AllSpiceIO/py-allspice/compare/v3.1.0...v3.2.0

3.1.0

What's Changed

- Add utils for OrCAD components and BOM by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/107

A new util module has been added: `list_components`. Use this to get a list of
components with all attributes as a list of dictionaries:

py
from allspice.utils import list_components

components = list_components_for_orcad(...)


This is useful if you want to perform further processing of your own on the
list of components, e.g. validate whether a component is allowed.

Along with this, BOM generation now supports OrCAD schematics! To use it, try
`allspice.utils.bom_generation.generate_bom_orcad`.

Py-allspice now also ships with a "universal" bom generation function:
`allspice.utils.bom_generation.generate_bom`, which will automatically decide
whether to use the altium or orcad bom generation.

- Add **version** attr to top level module by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/110

Now, you can check which version of py-allspice you are using in a script:

py
import allspice

print(allspice.__version__) => 3.1.0


- Remove BOM and COGS generation examples by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/116

These example scripts have been removed, and users are encouraged to refer to
the https://github.com/AllSpiceIO/generate-bom-altium and
https://github.com/AllSpiceIO/cofactr-cogs.

**Full Changelog**: https://github.com/AllSpiceIO/py-allspice/compare/v3.0.0...v3.1.0

3.0.0

There are breaking changes in this release, and you may have to update your
scripts to use this version.

Breaking Changes

The main (and only) breaking change in this release is an overhaul of the BOM
generation utility function
`allspice.utils.bom_generation.generate_bom_for_altium`. The changes are:

1. `generate_bom_for_altium` no longer takes a PcbDoc file as an argument. The
BOM generation logic has been reworked to only use a PrjPcb file as the sole
entrypoint and generate the entire BOM from the schematics.

See https://github.com/AllSpiceIO/py-allspice/pull/83

2. You can now customize the columns of the BOM and how rows are grouped using
the `columns` and `group_by` arguments. This replaces the former
`attributes_mapping` argument.

For example, if you want to have columns "Comment", "Part ID" and
"Manufacturer" in your BOM and group them by the "Part ID", you would pass:

py
generate_bom_for_altium(
...
columns={
"Comment": ["Comment", "Description", "_description"],
"Part ID": "_part_id",
"Manufacturer": ["Manufacturer", "MFN"],
},
group_by=["Part ID"],
)


This also shows the `_description` and `_part_id` attributes which are
populated from the component itself.

See https://github.com/AllSpiceIO/py-allspice/pull/84

3. BOM generation now supports variants, and you can select which variant to
generate a BOM for using the `variant` argument.

See https://github.com/AllSpiceIO/py-allspice/pull/86

Other changes

The example scripts for BOM generation and COGS generation have also been
updated to work with these new changes.

2.5.0

This is a minor version bump. Only new functionality was added, and you may not
need to change your scripts to update to this version.

New Features and Bugfixes

- Broaden newline regex in Alitum BOM generation by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/62

This fixes a reported issue with some Altium PrjPcb files.

- Add APIs to work with releases and their assets by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/73

Now you can fetch a repository's releases using:

py
releases = repo.get_releases()

or

release = repo.get_latest_release()

or

release = repo.get_release_by_tag("v1.1")

and even

release = repo.create_release("v1.2")


And add attachments to the releases:

py
release = repo.get_latest_release()
asset = release.create_asset(gerber_file)
asset.download() Download the file from the server!


See the `allspice.Release` class for more details.

- Add API method to get the raw binary content of a single file by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/77

Example:

py
file_content = repo.get_raw_file("README.md").decode("utf-8")


This is better than using `repo.get_file_contents` in almost all cases.

- Add APIs to work with commit statuses by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/74

Commit statuses are the status of checks run via actions on commits. You can
use the new `Commit.get_status` and `Repository.create_commit_status` methods
to work with them.

Internals

- CI: Add cron by kdumontnu in https://github.com/AllSpiceIO/py-allspice/pull/52
- added flake.nix by McRaeAlex in https://github.com/AllSpiceIO/py-allspice/pull/57
- doc: Update README to fix broken example link by jtran in https://github.com/AllSpiceIO/py-allspice/pull/59
- Remove autopep8 completely by shrik450 in https://github.com/AllSpiceIO/py-allspice/pull/67

New Contributors

- McRaeAlex made their first contribution in https://github.com/AllSpiceIO/py-allspice/pull/57
- jtran made their first contribution in https://github.com/AllSpiceIO/py-allspice/pull/59

**Full Changelog**: https://github.com/AllSpiceIO/py-allspice/compare/v2.4.0...v2.5.0

2.4.0

What's Changed

- CI Fixes for Gitea 1.20 by kdumontnu in https://github.com/AllSpiceIO/py-allspice/pull/48
- Add generate netlist routine by kdumontnu in https://github.com/AllSpiceIO/py-allspice/pull/50
- Add error message for component link error by kdumontnu in https://github.com/AllSpiceIO/py-allspice/pull/54
- Add delete_file routine by kdumontnu in https://github.com/AllSpiceIO/py-allspice/pull/56

New Contributors

- kdumontnu made their first contribution in https://github.com/AllSpiceIO/py-allspice/pull/48

**Full Changelog**: https://github.com/AllSpiceIO/py-allspice/compare/v2.3.1...v2.4.0

2.3.1

This is a patch release. You should be able to update to this version without
changing your scripts.

- Fix a bug where `Team.get_members` would not return all members if there
were more than 30 members in a team.

Page 2 of 3

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.