MCNP_Object#
- class montepy.mcnp_object.MCNP_Object(input: Input | str, *, jit_parse: bool = True, **kwargs)#
Bases:
ABCAbstract class for semantic representations of MCNP inputs.
Changed in version 1.5.0:
Removed parser as an argument (now an abstract property)
Added jit_parse argument
- Parameters:
Methods:
Deletes trailing comments from an object when it has been moved to another object.
_generate_default_node(value_type, default)Generates a "default" or blank ValueNode.
_generate_default_tree(**kwargs)Generate default syntax trees that can be exported once the object is not in an illegal state.
_grab_beginning_comment(padding[, last_obj])Initialize the object to a base state, before any parsing.
Takes the information from syntax tree and link it to the internal attributes.
Method to update values in syntax tree with new values.
clone()Create a new independent instance of this object.
format_for_mcnp_input(mcnp_version)Creates a list of strings representing this MCNP_Object that can be written to file.
Fully parses this object, and disable just-in-time parsing for it.
link_to_problem([problem, deepcopy])Links the input to the parent problem for this input.
mcnp_str([mcnp_version])Returns a string of this input as it would appear in an MCNP input file.
search(search)Searches this input for the given string, or compiled regular expression.
validate()Validates that the object is in a usable state.
wrap_string_for_mcnp(string, mcnp_version, ...)Wraps the list of the words to be a well formed MCNP input.
Attributes:
The comments associated with this input if any.
Whether this has been fully parsed, or is just JIT parsed.
Any comments that come before the beginning of the input proper.
A dictionary of the additional parameters for the object.
The trailing comments and padding of an input.
- static _generate_default_node(value_type: Type, default: str, padding: str = ' ', never_pad: bool = False)#
Generates a “default” or blank ValueNode.
None is generally a safe default value to provide.
Changed in version 1.0.0: Added
never_padargument.- Parameters:
value_type (
Type) – the data type for the ValueNode.default (
str) – the default value to provide (type needs to agree with value_type)padding (
str) – the string to provide to the PaddingNode. If None no PaddingNode will be added.never_pad (
bool) – Whether to never add trailing padding. True means extra padding is suppressed.
- Returns:
a new ValueNode with the requested information.
- Return type:
- static wrap_string_for_mcnp(string: str, mcnp_version: montepy.types.VersionType, is_first_line: bool, suppress_blank_end: bool = True) list[str]#
Wraps the list of the words to be a well formed MCNP input.
multi-line inputs will be handled by using the indentation format, and not the “&” method.
- Parameters:
string (
str) – A long string with new lines in it, that needs to be chunked appropriately for MCNP inputsmcnp_version (
tuple[Integral,Integral,Integral]) – the tuple for the MCNP that must be formatted for.is_first_line (
bool) – If true this will be the beginning of an MCNP input. The first line will not be indented.suppress_blank_end (
bool) – Whether or not to suppress any blank lines that would be added to the end. Good for anywhere but cell modifiers in the cell block.
- Returns:
A list of strings that can be written to an input file, one item to a line.
- Return type:
- _delete_trailing_comment()#
Deletes trailing comments from an object when it has been moved to another object.
- abstractmethod _generate_default_tree(**kwargs)#
Generate default syntax trees that can be exported once the object is not in an illegal state.
For leaves generally use
self._generate_default_nod(<type, None). Save the tree to self._tree- Parameters:
**kwargs (dict) – Allows passing additional arguments through __init__ as
**kwargs
- _grab_beginning_comment(padding: list[PaddingNode], last_obj=None)#
- Parameters:
padding (list[PaddingNode])
- abstractmethod _init_blank()#
Initialize the object to a base state, before any parsing.
This should not setup the syntax tree though.
- abstractmethod _parse_tree()#
Takes the information from syntax tree and link it to the internal attributes.
Use self._tree for this.
- abstractmethod _update_values()#
Method to update values in syntax tree with new values.
Generally when
make_prop_val_node()this is not necessary to do, but whenmake_prop_pointer()is used it is necessary. The most common need is to update a value based on the number for an object pointed at, e.g., the material number in a cell definition.
- clone() MCNP_Object#
Create a new independent instance of this object.
- Returns:
a new instance identical to this object.
- Return type:
- format_for_mcnp_input(mcnp_version: montepy.types.VersionType) list[str]#
Creates a list of strings representing this MCNP_Object that can be written to file.
- full_parse()#
Fully parses this object, and disable just-in-time parsing for it.
- Returns:
The object will be mutated and fully parsed.
- Return type:
None
- link_to_problem(problem: MCNP_Problem = None, *, deepcopy: bool = False)#
Links the input to the parent problem for this input.
This is done so that inputs can find links to other objects.
- Parameters:
problem (
MCNP_Problem) – The problem to link this input to.deepcopy (
bool) – If this is occuring during a problem level deepcopy
- mcnp_str(mcnp_version: montepy.types.VersionType = None) str#
Returns a string of this input as it would appear in an MCNP input file.
..versionadded:: 1.0.0
- search(search: str | Pattern) bool#
Searches this input for the given string, or compiled regular expression.
- validate()#
Validates that the object is in a usable state.
- property _problem: MCNP_Problem#
- property comments: list[PaddingNode]#
The comments associated with this input if any.
This includes all
Ccomments before this card that aren’t part of another card, and any comments that are inside this card.- Returns:
a list of the comments associated with this comment.
- Return type:
- property full_parsed#
Whether this has been fully parsed, or is just JIT parsed.
- Returns:
True iff this is fully parsed, False means this is still just-in-time parsed.
- Return type:
- property leading_comments: list[PaddingNode]#
Any comments that come before the beginning of the input proper.
- Returns:
the leading comments.
- Return type:
- property parameters: dict[str, str]#
A dictionary of the additional parameters for the object.
e.g.:
1 0 -1 u=1 imp:n=0.5has the parameters{"U": "1", "IMP:N": "0.5"}
- property trailing_comment: list[PaddingNode]#
The trailing comments and padding of an input.
Generally this will be blank as these will be moved to be a leading comment for the next input.
- Returns:
the trailing
cstyle comments and intermixed padding (e.g., new lines)- Return type: