Skip to content

Set signature_file to 'text' in read, as write does - #428

Open
mdtisdall wants to merge 4 commits into
pulseq:masterfrom
mdtisdall:fix-signature-file-case
Open

mdtisdall wants to merge 4 commits into
pulseq:masterfrom
mdtisdall:fix-signature-file-case

Conversation

@mdtisdall

Copy link
Copy Markdown
Contributor

Closes #427

read set signature_file to 'Text', while write sets 'text'. This changes read to 'text', as pulseq/pulseq#296 does for MATLAB Pulseq.

  • set signature_file = 'text' in Sequence/read_seq.py
  • check in test_writeread (tests/test_sequence.py) that signature_type and signature_file are the same after write and after read

This bug was identified and the test was generated using Claude, but I have reviewed the code and it seems correct to me.

read() set signature_file to 'Text', while write() sets 'text', the
value that MATLAB Pulseq documents ('text' or 'bin'). So the value for
the same .seq file depended on whether the sequence was written or read.

Add a check to test_writeread that signature_type and signature_file are
the same after write() and after read().

Closes pulseq#427

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mdtisdall added a commit to mdtisdall/pypulseq-issues that referenced this pull request Oct 5, 2026
10b was submitted as pulseq/pypulseq#427, and its fix as PR
pulseq/pypulseq#428 from the branch fix-signature-file-case in the fork
mdtisdall/pypulseq. The README table has the status, the fix branch and
the upstream links of 10b, and 10b's pr.md is the text as submitted.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Coverage

Coverage Report

Warning: Comment truncated due to GitHub's 65536 character limit

FileStmtsMissCoverMissing
/home/runner/.local/lib/python3.12/site-packages/pypulseq
   add_gradients.py1372185%44, 52, 61, 85, 92, 125–128, 155, 162, 177, 187–190, 211–218, 225, 230, 261
   add_ramps.py36360%1–92
   align.py35489%41, 45, 69, 73
   calc_duration.py33294%43, 50
   calc_ramp.py2202162%48–359
   calc_rf_bandwidth.py372824%45–81, 85–89
   check_timing.py962970%78, 82, 107, 180, 199, 232, 239, 249–293
   compress_shape.py30197%28
   convert.py40880%42, 48, 66, 72–73, 82, 88–89
   event_lib.py961584%6–9, 48–51, 70–71, 185, 205–210
   make_adc.py981486%77, 80, 90–94, 97, 146, 149, 153, 159, 163, 202, 204, 206, 214
   make_adiabatic_pulse.py1323970%208–212, 232–236, 244–245, 268, 274, 343–362, 466–475, 513–521
   make_arbitrary_grad.py53492%80, 109, 118, 130
   make_arbitrary_rf.py756316%95–179
   make_block_pulse.py48198%128
   make_delay.py9189%27
   make_digital_output_pulse.py16288%42, 50
   make_extended_trapezoid.py561279%67, 70, 76, 82, 85, 88, 91, 94, 116, 134, 136, 139
   make_extended_trapezoid_area.py104496%68, 71, 261, 264
   make_gauss_pulse.py77594%171, 179–181, 196
   make_label.py21290%68, 70
   make_sigpy_pulse.py1193075%12–13, 122, 125, 129, 166–170, 174, 177–178, 181–182, 197, 204, 209, 221, 224, 249–259, 273, 276, 306–316
   make_sinc_pulse.py74593%110, 175–177, 192
   make_soft_delay.py26292%107, 125
   make_trapezoid.py111794%177, 190, 196, 214, 232, 237, 255
   make_trigger.py16288%47, 55
   opts.py66986%78, 83, 102, 142, 166–170
   points_to_waveform.py9189%27
   rotate.py69593%55, 69, 112, 119–120
   rotate_3d.py78297%145–146
   sigpy_pulse_opts.py26773%34–41
   split_gradient.py393121%46–103
   split_gradient_at.py702761%63–90, 110, 114, 118–120, 154–156
   traj_to_grad.py13931%26–40
/home/runner/.local/lib/python3.12/site-packages/pypulseq/SAR
   SAR_calc.py5180%9
/home/runner/.local/lib/python3.12/site-packages/pypulseq/Sequence
   block.py4525488%64, 67, 75, 81, 96, 104, 110, 121, 124, 127, 135, 140, 149, 160, 168, 208, 210, 214, 329, 333, 336, 357, 372, 382, 393, 402, 434, 438, 447, 460, 471, 480–484, 502, 534–541, 558, 568, 594, 632, 671, 685, 712, 791, 828, 852
   calc_grad_spectrum.py81766%68–190
   calc_pns.py403122%45–96
   ext_grad_check.py55296%51, 53
   ext_test_report.py1671193%79, 156, 167–168, 337–343
   install.py754244%31, 52, 69, 71, 112–131, 148, 181–184, 200–212, 254–278
   parula.py4250%19–86
   read_seq.py4084190%44–45, 110, 117, 130, 133–134, 138, 184, 223–224, 242, 415, 436–453, 516, 519, 604, 628, 668, 699, 715–719, 726, 837, 848
   sequence.py64113379%10–13, 107–117, 138–151, 205, 270–273, 320, 364, 440, 467–472, 509, 537–540, 631, 659–668, 680, 702, 743–746, 775, 801–807, 842, 853–854, 860, 871, 877, 879, 887, 920–928, 1060, 1158, 1164, 1167, 1170, 1209, 1334–1347, 1405, 1427–1429, 1450, 1513, 1521, 1619, 1630–1643, 1712–1713, 1724–1742, 1766, 1796–1804, 1840, 1854–1864
   write_seq.py362798%45, 77–79, 313, 347–349, 499
/home/runner/.local/lib/python3.12/site-packages/pypulseq/utils
   cumsum.py14193%17
   paper_plot.py63588%49–132

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

read sets signature_file to 'Text', but write sets 'text'

3 participants