Skip to content

[python] Fix Python preprocess handling for numeric YAML scalars#11143

Closed
msyyc with Copilot wants to merge 8 commits into
mainfrom
copilot/fix-attributeerror-in-preprocess-description
Closed

[python] Fix Python preprocess handling for numeric YAML scalars#11143
msyyc with Copilot wants to merge 8 commits into
mainfrom
copilot/fix-attributeerror-in-preprocess-description

Conversation

Copilot AI commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

The Python client preprocessor could crash when TypeSpec union enum values emitted numeric YAML scalars, e.g. date-like backtick labels. Numeric descriptions hit rstrip, and numeric enum value names hit snake-case conversion.

  • Preprocess normalization

    • Convert description scalars to strings before trimming/appending punctuation.
    • Convert type and enum value names to strings before reserved-word and casing logic.
  • Regression coverage

    • Added unit coverage for non-string descriptions.
    • Added unit coverage for numeric enum value names in both top-level and nested enum preprocessing.
union ApiVersion {
  string;
  `2020-01-01`: "2020-01-01";
}

This now preprocesses without raising AttributeError or TypeError from Python string helpers.

Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com>
@microsoft-github-policy-service microsoft-github-policy-service Bot added the emitter:client:python Issue for the Python client emitter: @typespec/http-client-python label Jul 2, 2026
Copilot AI and others added 2 commits July 2, 2026 03:37
Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com>
Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix AttributeError in preprocess update_description Fix Python preprocess handling for numeric YAML scalars Jul 2, 2026
Copilot finished work on behalf of msyyc July 2, 2026 03:41
Copilot AI requested a review from msyyc July 2, 2026 03:41
Comment thread packages/http-client-python/tests/unit/test_name_converter.py Outdated
Copilot AI and others added 3 commits July 2, 2026 08:18
Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com>
Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com>
Co-authored-by: msyyc <70930885+msyyc@users.noreply.github.com>
Copilot AI requested a review from msyyc July 2, 2026 08:22
Copilot finished work on behalf of msyyc July 2, 2026 08:22
@msyyc msyyc marked this pull request as ready for review July 3, 2026 07:42
@pkg-pr-new

pkg-pr-new Bot commented Jul 3, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@typespec/http-client-python@11143

commit: 87c8a19

@msyyc msyyc changed the title Fix Python preprocess handling for numeric YAML scalars [python] Fix Python preprocess handling for numeric YAML scalars Jul 3, 2026
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

All changed packages have been documented.

  • @typespec/http-client-python
Show changes

@typespec/http-client-python - fix ✏️

Handle non-string YAML descriptions during Python client preprocessing.

@azure-sdk-automation

Copy link
Copy Markdown

You can try these changes here

🛝 Playground 🌐 Website 🛝 VSCode Extension

@msyyc

msyyc commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

move to #11162

@msyyc msyyc closed this Jul 3, 2026
@msyyc msyyc deleted the copilot/fix-attributeerror-in-preprocess-description branch July 3, 2026 08:33
msyyc added a commit to msyyc/typespec that referenced this pull request Jul 3, 2026
The emitter force-quoting fix makes the non-string description/enum-name
handling from microsoft#11143 unnecessary, so revert those pygen changes and their
tests, leaving a focused emitter-only fix.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

emitter:client:python Issue for the Python client emitter: @typespec/http-client-python

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[http-client-python] AttributeError: 'int' object has no attribute 'rstrip' in preprocess update_description

2 participants