Skip to content

Should john smith, v read like JOHN SMITH, V under lenient_comma_suffixes=False? #727

Closed

Description

@derek73

T4 (the bare letter as an initial, #723) says a name written wholly in one case reads as its capitals. With the default policy that holds. Under Policy(lenient_comma_suffixes=False) it does not, for the one-letter roman numerals:

>>> P = Parser(policy=Policy(lenient_comma_suffixes=False))
>>> P.parse("john smith, v")     # given 'john', family 'smith', suffix 'v'
>>> P.parse("JOHN SMITH, V")     # given 'V', family 'JOHN SMITH'
>>> P.parse("smith, john, i")    # suffix 'i', no report
>>> P.parse("SMITH, JOHN, I")    # suffix 'I', reports comma-structure

The likely cause is that the strict comma-suffix test vetoes a one-letter numeral by its shape as written, a bare capital looking like an initial. It doesn't read the initial tag, which both spellings now carry. This predates #723 and also fails on 16ee285. The design-docs review of PR #726 found it, measuring 4 disagreeing shapes for i/v and none for other letters. It is recorded in decisions/T4.

To settle before implementing:

  • Which reading is right? Should the strict test read the tag, so the lowercase spelling reads as the capitals do (john smith, v → given v)? Or does the knob's documented meaning, a strict v1-style token test, make the written shape the point?
  • Coverage: test_a_one_case_name_reads_as_its_capitals runs the default policy only. Should its grid add the strict knob, and are there other policy knobs it should run under?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions