Skip to content

Releases: tmolteno/python-necpp

v1.8.2 — cibuildwheel v4.1.0, drop macos-intel, Python 3.10+

Choose a tag to compare

@tmolteno tmolteno released this 06 Jul 02:18

v1.8.2 — CI and build system improvements

  • Upgrade cibuildwheel to v4.1.0
  • Drop macOS Intel (x86_64) wheel builds
  • Bump minimum Python version to 3.10
  • Remove stale --without-lapack references

Includes all changes from v1.8.0.

v1.8.1 — CI fixes, cibuildwheel v4.1.0, Python 3.10+

Choose a tag to compare

@tmolteno tmolteno released this 06 Jul 01:54

v1.8.1 — Build system and CI improvements

  • Drop macOS Intel (x86_64) wheel builds — only macOS ARM and Linux remain
  • Bump minimum Python version to 3.10 (drop 3.9)
  • Upgrade cibuildwheel to v4.1.0
  • Remove stale --without-lapack references from build scripts (flag already removed in necpp_src v2.1.1)

Includes all changes from v1.8.0.

v1.8.0 — necpp_src v2.1.1 engine upgrade (Eigen replaces LAPACK)

Choose a tag to compare

@tmolteno tmolteno released this 06 Jul 01:17

Version 1.8.0: necpp_src v2.1.1 engine upgrade

Major engine upgrade — necpp_src v2.1.1 replaces LAPACK with Eigen 3.4.0 for all linear algebra.

  • Eigen 3.4.0 replaces LAPACK (bundled in src/eigen3/, no external dependency)
  • SIMD-accelerated LU decomposition via Eigen::PartialPivLU
  • nec_3vector now backed by Eigen::Matrix (internal, no API change)
  • Fix uninitialized structure_power_loss producing NaN efficiency
  • Fix structure loss reported as zero with current printing disabled
  • Fix exception memory leak: throw-by-pointer → throw-by-value (55+ sites)
  • Table-driven NEC card parser replaces C-string parser
  • 4 monolithic functions refactored into 13 focused methods
  • No public API changes — SWIG interface and Python wrapper fully compatible

Bug fixes:

  • Fix #30/#16: Add float() casts and segment_count validation in context_clean.wire()

(includes changes from unreleased v1.7.5)

  • Convert setup.py to pyproject.toml as primary metadata source (PEP 621)
  • Fix #24: VSWR formula guard — add explicit np.abs() in vswr() to prevent negative values
  • Fix #8: Add missing handle_nec method to necpp/tests/test_multiple_sc_cards.py
  • Fix #31: Guard numpy import in PyNEC/setup.py with try/except for PEP 517 metadata phases
  • Fix #20/#27: Correct helix argument order in SWIG interface
  • Fix #28: Add sc_card to PyNEC SWIG interface (continuation card for multiple-patch surfaces)
  • Fix #22/#28: Add PyNEC/example/basic_usage.py
  • Multiple code analysis bug fixes (see CHANGES.md for full list)

Version 1.7.4. Lots of bugfixes.

Choose a tag to compare

@tmolteno tmolteno released this 25 Jun 19:03

Version 1.7.4:

  • Convert setup.py to pyproject.toml as primary metadata source (PEP 621)
    • All package metadata now lives in pyproject.toml [project] table
    • setup.py reduced to C++ extension compilation only
    • Supports uv build (uv build) as well as pip/build
    • Remove superseded necpp/setup.cfg
  • Fix #24: VSWR formula guard — add explicit np.abs() in vswr() to prevent negative values
  • Fix #8: Add missing handle_nec method to necpp/tests/test_multiple_sc_cards.py
  • Fix #31: Guard numpy import in PyNEC/setup.py with try/except for PEP 517 metadata phases
  • Fix multiple bugs found during code analysis:
    • Move test_multiple_sc_cards.py from PyNEC/tests/ to necpp/tests/ (it imported the wrong module)
    • Fix setup.cfg referencing nonexistent README.txt → README.md
    • Fix broken nosetests command in build_wheels.sh
    • Fix double-space in CI CIBW_BUILD string
    • Fix license metadata consistency (GPLv2 → GPLv3) in both setup.py files
    • Fix hard-coded swig3.0 → swig in necpp/build.sh
    • Fix symlink creation failure on re-run in both build.sh scripts
    • Fix typo (stop_ → stop) and unassigned delta bug in context_clean.py Range class
    • Add clarifying docstring for ex_card overload in nec_context.i
    • Add scipy, matplotlib to dev-requirements.txt
    • Remove stale Python 2 classifiers from necpp/setup.py
    • Fix Makefile manylinux2014 → manylinux_2_28
    • Fix CI branch filter (main → master)