Is your feature request related to a problem? Please describe.
I'm always frustrated when...
...working with a cell definition and wanting to print out just the geometry string.
>>> cell = montepy.Cell("1 0 -123 234 imp:n=1 u=2")
>>> cell.mcnp_str()
1 0 -123 234 imp:n=1 u=2
>>> cell.geometry
(l: s: False, is_c: False, div: SURFACE: 123, CZ| op: Operator.INTERSECTION| r:s: True, is_c: False, div: SURFACE: 234, PZ)
>>> cell.geometry.mcnp_str()
AttributeError: 'HalfSpace' object has no attribute 'mcnp_str'
Describe the solution you'd like
Implement HalfSpace.format_for_mcnp_input(). Move the geometry/region formatting to HalfSpace.format_for_mcnp_input(). Call that function from within Cell.format_for_mcnp_input(). Finally, implement HalfSpace.mcnp_str().
>>> cell.geometry.mcnp_str()
-123 234
Describe alternatives you've considered
Doing the same thing with an inheritance scheme for all printable objects.
Is your feature request related to a problem? Please describe.
I'm always frustrated when...
...working with a cell definition and wanting to print out just the geometry string.
Describe the solution you'd like
Implement
HalfSpace.format_for_mcnp_input(). Move the geometry/region formatting toHalfSpace.format_for_mcnp_input(). Call that function from withinCell.format_for_mcnp_input(). Finally, implementHalfSpace.mcnp_str().Describe alternatives you've considered
Doing the same thing with an inheritance scheme for all printable objects.