Skip to content

fix: present_participle('be') returns 'bing' instead of 'being'#252

Open
gaoflow wants to merge 1 commit into
jaraco:mainfrom
gaoflow:fix-present-participle-be
Open

fix: present_participle('be') returns 'bing' instead of 'being'#252
gaoflow wants to merge 1 commit into
jaraco:mainfrom
gaoflow:fix-present-participle-be

Conversation

@gaoflow

@gaoflow gaoflow commented Jun 24, 2026

Copy link
Copy Markdown

Summary

present_participle('be') produces 'bing' instead of 'being'.

The root cause is the catch-all rule ([^e])e$ in
PRESENT_PARTICIPLE_REPLACEMENTS, which drops the trailing e from
any word ending in e. For a two-letter word like
be that leaves only b, then + ing = bing.

The fix adds an explicit guard ^(be)$ immediately before that rule
(consistent with the existing guards for are, were, had, hoe)
so be passes through intact and produces being.

Test plan

  • assert p.present_participle("be") == "being" added to test_prespart
  • All 208 existing tests still pass

The PRESENT_PARTICIPLE_REPLACEMENTS rule `([^e])e$` drops the trailing
'e' from any word ending in a non-e consonant + e. This incorrectly
strips 'be' down to 'b', yielding 'bing'.

Add an explicit guard for '^be$' ahead of that rule so 'be' passes
through intact and produces 'being'.
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.

1 participant