Upgrade to Python 3.9
Recipe ID
org.openrewrite.python.migrate.UpgradeToPython39Artifactopenrewrite-migrate-pythonMigrate deprecated APIs for Python 3.9 compatibility. This includes PEP 585 built-in generics, removed base64 functions, and deprecated XML Element methods.
Composite recipepythonmigration3.9Proprietary
Usage
This recipe has no required configuration options. You’ll need the Moderne CLI configured before running the command below.
mod run . --recipe org.openrewrite.python.migrate.UpgradeToPython39If the recipe isn’t available locally, install it with:
mod config recipes pip install openrewrite-migrate-pythonDefinition
This recipe runs the following recipes in order.
- Upgrade to Python 3.8
org.openrewrite.python.migrate.UpgradeToPython38 - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Replace
typing.Listwithlistorg.openrewrite.python.migrate.ReplaceTypingListWithList - Replace
typing.Dictwithdictorg.openrewrite.python.migrate.ReplaceTypingDictWithDict - Replace
typing.Setwithsetorg.openrewrite.python.migrate.ReplaceTypingSetWithSet - Replace
typing.FrozenSetwithfrozensetorg.openrewrite.python.migrate.ReplaceTypingFrozenSetWithFrozenset - Replace
typing.Tuplewithtupleorg.openrewrite.python.migrate.ReplaceTypingTupleWithTuple - Replace
typing.Typewithtypeorg.openrewrite.python.migrate.ReplaceTypingTypeWithType - Replace
typing.Callablewithcollections.abc.Callableorg.openrewrite.python.migrate.ReplaceTypingCallableWithCollectionsAbcCallable - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Trim blank lines before a leading import
org.openrewrite.python.migrate.TrimLeadingBlankLines - Replace
Element.getiterator()withElement.iter()org.openrewrite.python.migrate.ReplaceElementGetiterator - Replace
Element.getchildren()withlist(element)org.openrewrite.python.migrate.ReplaceElementGetchildren - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Change import
org.openrewrite.python.ChangeImport - Replace
Thread.isAlive()withThread.is_alive()org.openrewrite.python.migrate.ReplaceThreadIsAlive - Replace
HTMLParser.unescape()withhtml.unescape()org.openrewrite.python.migrate.ReplaceHtmlParserUnescape - org.openrewrite.python.migrate.UpgradePythonVersionTo39
org.openrewrite.python.migrate.UpgradePythonVersionTo39