Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[sdk/python] Workaround lazy module regression #16038

Merged
merged 1 commit into from
Apr 24, 2024
Merged

Conversation

justinvp
Copy link
Member

A regression was introduced in Python 3.11.9 and 3.12.3 that breaks lazy loaded config modules in generated Pulumi provider Python SDKs. It's unclear if this is going to be addressed in subsequent patch releases of Python, so we workaround the problem by using a copy of the Python stdlib's _LazyModule and LazyLoader classes that don't have the regression, as suggested by the Python maintainers.

Fixes #15882

@justinvp justinvp requested a review from a team as a code owner April 23, 2024 07:31
@pulumi-bot
Copy link
Contributor

pulumi-bot commented Apr 23, 2024

Changelog

[uncommitted] (2024-04-23)

Bug Fixes

  • [sdk/python] Workaround lazy module loading regression
    #16038

@justinvp justinvp force-pushed the justin/pylazyload branch 2 times, most recently from 7f31ca6 to 4cd0d68 Compare April 23, 2024 07:42
A regression was introduced in Python 3.11.9 and 3.12.3 that breaks lazy loaded `config` modules in generated Pulumi provider Python SDKs. It's unclear if this is going to be addressed in subsequent patch releases of Python, so we workaround the problem by using a copy of the Python stdlib's `_LazyModule` and `LazyLoader` classes that don't have the regression, as suggested by the Python maintainers.
@justinvp justinvp added this pull request to the merge queue Apr 23, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Apr 23, 2024
@justinvp justinvp added this pull request to the merge queue Apr 23, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Apr 23, 2024
@justinvp justinvp added this pull request to the merge queue Apr 24, 2024
Merged via the queue into master with commit 3b94493 Apr 24, 2024
49 checks passed
@justinvp justinvp deleted the justin/pylazyload branch April 24, 2024 08:35
github-merge-queue bot pushed a commit that referenced this pull request Apr 25, 2024
Tentative changelog, but also planning to include
#16057

### Features

- [auto/{go,nodejs,python}] Add support for the continue-on-error
parameter of the up command to the Automation API
  [#15953](#15953)

- [engine] Add a --continue-on-error flag to pulumi up
  [#15740](#15740)


### Bug Fixes

- [sdk/nodejs] Fix a race condition that could cause the NodeJS runtime
to terminate before finishing all work
  [#16005](#16005)

- [sdk/python] Fix an exception when setting providers resource option
with a dict
  [#16022](#16022)

- [sdk/python] Fix event loop tracking in the python SDK when using
remote transforms
  [#16039](#16039)

- [sdk/python] Workaround lazy module loading regression
  [#16038](#16038)


### Miscellaneous

- [cli/plugin] Move PluginKind type definition into apitype and
re-export for backward compatibility
@justinvp justinvp mentioned this pull request Apr 25, 2024
github-merge-queue bot pushed a commit that referenced this pull request Apr 26, 2024
Will wait to merge this until after
#16057 merges

### Features

- [auto/{go,nodejs,python}] Add support for the continue-on-error
parameter of the up command to the Automation API
  [#15953](#15953)

- [engine] Add a --continue-on-error flag to pulumi up
  [#15740](#15740)


### Bug Fixes

- [sdk/nodejs] Fix a race condition that could cause the NodeJS runtime
to terminate before finishing all work
  [#16005](#16005)

- [sdk/python] Fix an exception when setting providers resource option
with a dict
  [#16022](#16022)

- [sdk/python] Fix event loop tracking in the python SDK when using
remote transforms
  [#16039](#16039)

- [sdk/python] Workaround lazy module loading regression
  [#16038](#16038)


### Miscellaneous

- [cli/plugin] Move PluginKind type definition into apitype and
re-export for backward compatibility
  [#15946](#15946)
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.

Pulumi providers fail on Python 3.11.9
3 participants