Metadata-Version: 2.0
Name: cpymad
Version: 1.0.0rc1
Summary: Cython binding to MAD-X
Home-page: https://github.com/hibtc/cpymad
Author: Thomas Gläßle
Author-email: t_glaessle@gmx.de
License: GPLv3+
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: License :: OSI Approved :: Apache Software License
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Scientific/Engineering :: Physics
Requires-Dist: PyYAML
Requires-Dist: minrpc (>=0.0.6)
Requires-Dist: numpy
Requires-Dist: setuptools (>=18.0)

cpymad
------
|Version| |License| |Python| |Tests| |Coverage|

cpymad is a Cython_ binding to MAD-X_ (`MAD-X source`_).

This version of cpymad should be built against MAD-X |VERSION|.

.. _Cython: http://cython.org/
.. _MAD-X: http://cern.ch/mad
.. _MAD-X source: https://github.com/MethodicalAcceleratorDesign/MAD-X
.. |VERSION| replace:: 5.04.00

cpymad is NOT maintained by CERN members and links against an unofficial build
of MAD-X that is not supported by CERN, i.e. this binary may have problems
that the official binary does not have and vice versa. See also: `Reporting
issues`_.


Links
~~~~~

- `Getting Started`_
- `Installation`_
- `Source code`_
- `Documentation`_
- `Issue tracker`_
- `Latest Release`_

.. _Getting Started: http://hibtc.github.io/cpymad/getting-started
.. _Installation: http://hibtc.github.io/cpymad/installation
.. _Source code: https://github.com/hibtc/cpymad
.. _Documentation: http://hibtc.github.io/cpymad
.. _Issue tracker: https://github.com/hibtc/cpymad/issues
.. _Latest Release: https://pypi.python.org/pypi/cpymad#downloads


License
~~~~~~~

White the cpymad source code itself is under free license, the MAD-X software
package is **NOT FREE**. For more details, see COPYING.rst_.

.. _COPYING.rst: https://github.com/hibtc/cpymad/blob/master/COPYING.rst


Reporting issues
~~~~~~~~~~~~~~~~

If you have a problem with a sequence file, first try to check if that
problem remains when using the MAD-X command line client distributed by
CERN, then:

- Report the issue to CERN only if it **can** be reproduced with their
  official command line client.
- Report the issue here only if it can **not** be reproduced with their
  official command line client.

For issues regarding the cpymad code itself or usage information, I'm happy to
answer. Just keep in mind to be **precise**, **specific**, **concise** and
provide all the necessary information.

.. Badges:

.. |Tests| image::      https://api.travis-ci.org/hibtc/cpymad.svg?branch=master
   :target:             https://travis-ci.org/hibtc/cpymad
   :alt:                Test Status

.. |Coverage| image::   https://coveralls.io/repos/hibtc/cpymad/badge.svg?branch=master
   :target:             https://coveralls.io/r/hibtc/cpymad
   :alt:                Coverage

.. |Version| image::    https://img.shields.io/pypi/v/cpymad.svg
   :target:             https://pypi.python.org/pypi/cpymad/
   :alt:                Latest Version

.. |License| image::    https://img.shields.io/badge/license-CC0,_Apache,_Non--Free-red.svg
   :target:             https://github.com/hibtc/cpymad/blob/master/COPYING.rst
   :alt:                License: CC0, Apache, Non-Free

.. |Python| image::     https://img.shields.io/pypi/pyversions/cpymad.svg
   :target:             https://pypi.python.org/pypi/cpymad#downloads
   :alt:                Python versions

Changelog
~~~~~~~~~

1.0.0rc1
========
Date: 13.05.2018

Collecting further backward incompatibilities before the final 1.0 release, as
well as minor bugfixes.

- only execute variable updates if their value has changed
- use ``__slots__`` for Parameter
- remove cpymad-specific behaviour for ``Madx.select``
- allow direct access to MAD-X commands as attributes on the ``Madx`` instance
- rename ``Parameter.argument`` to ``Parameter.definition``
- add ``VarList.defs``, ``Command.defs`` instance variables for accessing the
  definitions (provisional API)
- create the accessor proxies in advance
- disallow indexing ``ElementList`` by ``dict`` instances (i.e. by element
  object)
- handle uppercase '#S' and '#E' in ``ElementList``


1.0.0rc0
========
Date: 16.04.2018

First pre-release for 1.0.0 with several backward incompatibilities.

- the Madx methods have been simplified to be only thin wrappers over the
  corresponding MAD-X commands, not taking any extra responsibilities such as
  automatically using sequences etc.
- rename ``Madx.tables/sequences`` to singular form
- disable passing dicts as range parameter for commands
- remove ``cpymad.util.is_match_param``.
- remove ``cpymad.libmadx.set_var`` routine. Always use ``input``!
- remove ``Madx.get_table`` method, use ``Madx.table.X`` instead
- rename ``Madx.evaluate`` to ``eval``
- remove ``Madx.set_value/set_expression/update_value``. Use assignment to
  attributes of ``Madx.globals/command/element`` instead.
- rename ``util.mad_command`` -> ``format_command``
- only ignore ``None`` parameters when generating MAD-X commands. This allows
  passing empty strings.
- remove ``cpymad.types.Expression``, replaced by new ``Parameter`` class, see
  below.
- remove ``Madx.active_sequence``, use ``Madx.sequence()`` instead
- the ``at/l`` attributes are now kept as the values specified by the user
  (relative to *refer* flag), and not overwritten anymore by the actual
  position or length. Use ``.position`` and ``.length`` attributes to access
  the node position/length instead!
- the ``name`` attribute is now the command/element name. The node name is
  now available as ``node_name``.

Introduced a new API for accessing additional metadata about command
parameters:

- added a ``Command.cmdpar.X`` namespace that can be used to retrieve a
  ``Parameter`` instance with additional metadata about the command parameter.
- rigorously distinguish between MAD-X command parameters and other attributes
  on elements/commands
- only command parameters can be accessed using the dict-like item access
  syntax while other metadata can only be accessed via attribute access
- use the type information for improving the composition of MAD-X command
  statements

Misc changes:

- add method ``Madx.sectortable2`` to access 2nd order sector map (as well as
  related methods to ``Table``). Method name is subject to change!
- show implicit drifts with ``[0]`` again (the suffix is needed when matching
  on implicit drifts)
- perfect kwargs forwarding
- expose ``occ_count/enable/base_name`` attributes on nodes


0.19.1
======
Date: 02.04.2018

- pass unescaped (raw) string arguments to MAD-X
- use double-quotes by default
- overload ``Madx.evaluate`` for floats and lists (making it applicable
  for anything that may be returned in the property)
- windows builds link against MAD-X 49b4e7fee "Fix incorrect field errors
  in tmbend with INTERPOLATE". This is a few minor bugfixes after 5.04.00.


Older versions
==============

The full changelog is available online in CHANGES.rst_.

.. _CHANGES.rst: https://github.com/hibtc/cpymad/blob/master/CHANGES.rst


