You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Release cpymad v1.9.0
API changes:
- ``Table.selected_rows()`` now actually returns the *indices* of the selected
elements as documented, rather than returning a boolean mask.
- ``Madx.eval()`` does no automatic syntax checking anymore. This is a minor
performance improvement and is more consistent with ``Madx.input()`` which
doesn't check the syntax either. Expressions can still be checked manually
using ``cpymad.util.check_expression``
New features:
- (#90) Add comparison operators for ArrayAttribute (see #89)
- (#94) Add keyword argument ``Table.dframe(index=..)`` to allow specifying
a column or sequence as the DataFrame index rather than using the default
(``row_names()``). This is essential when accessing a table after having
executed a ``USE`` statement (see #93).
- (#97) Add basic support for unexpanded nested sequences by returning
them as elements of type ``Sequence`` from ``Sequence.elements`` (see #76)
- Add keyword argument ``Madx(prompt=...)`` as a shortcut for the most common
``CommandLog`` use case
- (#99) Add method ``Table.column()`` to retrieve specified rows in a specific
column.
- (#99) Add ``rows`` and/or ``columns`` arguments to several ``Table`` methods
to allow querying only specific columns or rows from the MAD-X process
- (#99) Add method ``Table.selection()`` that returns a new ``Table`` object
which exposes only those rows/columns marked by a previous ``SELECT`` statement
(see #98)
- Fix ``Madx.eval()`` to handle function calls, e.g.: ``sin(...)`` or ``table(...)``
Bug fixes:
- (#95) Fix ``KeyError`` when accessing tables after ``CLEAR`` (see #57)
- (#99) Fix requesting a subset of table rows using using a *numpy array*
of indices
- Fix expression syntax checker to not reject function calls anymore. Rewrite
the checker to use a LL(1) parser generator.
Documentation:
- Add links to external documentation using intersphinx
- Use automodapi to create module and class summary pages
- Use type hints from function annotations in documentation
- Mark more objects for inclusion in the documentation
- Add "Edit on GitHub" link to directly edit documentation
- Add many function annotations
- Generate class inheritance diagrams using graphviz
- Document problem with ``Table.row_names()`` after ``USE`` (#93)
Tests/CI:
- Move python 3.5 deprecation warning to package level
- Create GitHub releases for tags automatically (required for zenodo DOIs)
- Setup sequence definitions individually and explicitly in each test
- Add module for regression tests for all future bugfixes
- Put transfer map tests in their own module
- Port tests from unittest to pytest for simplicity
- Mark flaky tests for expected failure on macOS and windows