Skip to content

Releases: idaholab/MontePy

Release 0.2.10

01 Jul 20:45
Compare
Choose a tag to compare

Bug Fixes

  • Fixed bug with parsing tally segments (#377)

Note: v0.2.9 was skipped due to this version already being taken on test PyPI due to CI testing.

Release 0.2.8

01 Jul 16:51
Compare
Choose a tag to compare

Documentation

  • Added link to the PyPI project on the Sphinx site (#410)
  • Added link shortcuts for MCNP manual, and github issues and pull requests (#417).
  • Added discussion of MCNP output files to FAQ (#400).
  • Updated MCNP 6.3 manual link to point to OSTI/DOI (#424).

CI/CD

  • Fixed project metadata for author to show up correctly on PyPI (#408)
  • Removed automated versioning from CI/CD, and simplified deploy process (#418)

v0.2.7

30 May 18:19
f2b68fe
Compare
Choose a tag to compare

Bug fixes

  • Made versioning system more robust for all situations (#386).
  • Fixed bug with handling read inputs, and made parser more efficient (#206)
  • Fixed bug that couldn't read materials without a library. E.g., 1001 vs. 1001.80c (#365).

Documentation

  • Improved community documentation for contributing. (#375)
  • Added a changelog (#375)
  • Improved how the python API is navigated. (#359)

CI/CD

  • Improved coveralls integration so actual source code can be shown.
  • Improved sphinx build process (#388)

0.2.6 patch release

15 Apr 22:04
d910100
Compare
Choose a tag to compare

Bug Fixes

  • material: Fixed thermal scattering law never being written to file. (872662f)
  • syntax: Fixed not ignoring vertical mode hidden by comments. (847129e)
  • syntax tree: Fixed typing issue with GeometryTree causing exception (7a24ac0)

Reverts

  • Revert "Defined recursive GeometryTree Comments function for nested dicts." (4246f30)

Continuous Integration

  • Implemented better CI and CD (0885472)
  • coveralls: fixed path issue with coveralls. (ab21045)

0.2.5 beta

16 Jan 18:32
5cf1e1e
Compare
Choose a tag to compare

Minor patch release:

  • Implemented Github actions
  • Added default github issue templates
  • Improved readme and documentation hyperlinks
  • Fixed bug with comments in complex geometry.

0.2.4beta

12 Jan 00:42
b323df3
Compare
Choose a tag to compare

Public release

0.2.3 Beta

12 Jan 00:47
Compare
Choose a tag to compare

Release includes:

  • Adding copyright statements.
  • Adding a logo <3
  • Fixed bug #158.
  • Fixed bug #159.

0.2.2 beta

12 Jan 00:47
Compare
Choose a tag to compare

This a minor patch for bug fixes.

Issues:

#151, #153, #154.

0.2.1 beta

12 Jan 00:47
Compare
Choose a tag to compare

This was a quick release that fixed a small bug with the packaging information that was breaking our pages deployment process.

v0.2.0

12 Jan 00:41
Compare
Choose a tag to compare

Release 0.2.0 beta

tl;dr: User formatting is now preserved, and geometry logic is truly implemented in MontePy now.

This is a very large release that has been in development for about a year.
This completely rewrote the majority of the code base.
This does break some backwards compatibility, and adds a new dependency out of necessity.

Why was this necessary

All previous versions of MontePy used "lazy" parsing.
The line was split up into chunks of space separated values,
then each object would take the first chunk and interpret it, etc.

This threw away user formatting.
Also this couldn't handle geometry logic easily.
Using this form of parsing it could be possible to interpret the logic using reverse polish notation.
However, an easier way would to be form binary trees for each operation, and then crawling that tree explicitly represents the geometry logic.

To preserve user formatting and geometry logic a concrete syntax tree had to be created.
To do this you need to truly parse the inputs as a context-free language with a Lexer and Parser.
The library SLY (SLY Lex Yacc) was chosen to provide the Lexer and Parser (yet another compiler-compiler (Yacc)).
This was chosen because it is implemented in purely python and has no dependencies,
making it very easy to install for our users.

Implementing SLY meant actually writing rigorous grammar rules for MCNP inputs.
It also meant creating an entirely new set of data types for properly handling the concrete syntax tree.
Finally, all objects representing inputs had to be rewritten for working with the syntax trees.

Now though when a user changes the density on a cell the whole cell formatting won't change.
Instead the leaf in the syntax tree representing the density (and the space following it) will try to reverse engineer
the formatting the user used (e.g., how many significant figures, was scientific notation used, etc.),
and format the new value the same way, while taking up the same amount of space.
It will eat into the trailing space if necessary.
Though if it has to make the line longer in order to fit the same numerical precision it will do so with a warning.

New Features

  • User formatting is preserved automatically
  • Cell geometry is now stored in cell.geometry and can be set with bitwise operators. e.g., cell.geometry = + inner_sphere & - outer_sphere. This was heavily influenced by OpenMC.
  • You can now check an input file for errors from the command line. python -m montepy -c /path/to/inputs/*.imcnp
  • The error reporting for syntax errors should be much more intuitive now, and easy to read.
  • Dollar sign comments are kept and are available in obj.comments
  • All comments are now in a generator .comments

Deprecated features

  • montepy.data_cards moved to montepy.data_inputs
  • montepy.data_cards.data_card is now montepy.data_inputs.data_input
  • Montepy.Cell.geometry_logic_string was completely removed.
  • Much of the internal functions with how objects are written to file were changed and/or deprecated.
  • montepy.data_cards.data_card.DataCard.class_prefix was moved to _class_prefix as the user usually shouldn't see this. Same goes for has_classifier and has_number.
  • Most of the data types inside montepy.input_parser.mcnp_input were deprecated or changed

Issues resolved

#12, #48,#105, #106, #114, #119, #136

Related MRs

!57, !58, !71, !73, !75, !77, !80, !81, !82, !83, !84, !85, !86, !87 !88, !89, !90, !92, !93, !94, !95, !96, !97, !99, !103

Issues resolved in Alpha Testing

#121, #122, #123, #124, #125, #126, #129, #130, #132, #133, #134, #140, #146