Rewrite the imports to use typing.TYPE_CHECKING.

This commit is contained in:
Tom Rothamel
2025-01-05 00:48:05 -05:00
parent cedcc36418
commit 36c00a5e19
14 changed files with 259 additions and 199 deletions
+69 -68
View File
@@ -678,71 +678,72 @@ if 1 == 0:
# Generated by scripts/relative_imports.py, do not edit below this line.
if 1 == 0:
from . import add_from
from . import arguments
from . import ast
from . import astsupport
from . import atl
from . import audio
from . import bootstrap
from . import character
from . import color
from . import compat
from . import config
from . import curry
from . import debug
from . import defaultstore
from . import display
from . import dump
from . import easy
from . import editor
from . import encryption
from . import error
from . import execution
from . import exports
from . import game
from . import gl
from . import gl2
from . import lexer
from . import lexersupport
from . import lint
from . import location
from . import loader
from . import loadsave
from . import log
from . import main
from . import memory
from . import minstore
from . import object
from . import parameter
from . import parser
from . import performance
from . import persistent
from . import preferences
from . import pyanalysis
from . import pydict
from . import python
from . import revertable
from . import rollback
from . import savelocation
from . import savetoken
from . import screenlang
from . import script
from . import scriptedit
from . import sl2
from . import statements
from . import style
from . import styledata
from . import substitutions
from . import test
from . import text
from . import translation
from . import uguu
from . import ui
from . import update
from . import util
from . import vc_version
from . import versions
from . import warp
from . import webloader
import typing
if typing.TYPE_CHECKING:
from . import add_from as add_from
from . import arguments as arguments
from . import ast as ast
from . import astsupport as astsupport
from . import atl as atl
from . import audio as audio
from . import bootstrap as bootstrap
from . import character as character
from . import color as color
from . import compat as compat
from . import config as config
from . import cslots as cslots
from . import curry as curry
from . import debug as debug
from . import defaultstore as defaultstore
from . import display as display
from . import dump as dump
from . import easy as easy
from . import editor as editor
from . import encryption as encryption
from . import error as error
from . import execution as execution
from . import exports as exports
from . import game as game
from . import gl2 as gl2
from . import lexer as lexer
from . import lexersupport as lexersupport
from . import lint as lint
from . import loader as loader
from . import loadsave as loadsave
from . import log as log
from . import main as main
from . import memory as memory
from . import minstore as minstore
from . import object as object
from . import parameter as parameter
from . import parser as parser
from . import performance as performance
from . import persistent as persistent
from . import preferences as preferences
from . import pyanalysis as pyanalysis
from . import pydict as pydict
from . import python as python
from . import revertable as revertable
from . import rollback as rollback
from . import savelocation as savelocation
from . import savetoken as savetoken
from . import screenlang as screenlang
from . import script as script
from . import scriptedit as scriptedit
from . import sl2 as sl2
from . import statements as statements
from . import style as style
from . import styledata as styledata
from . import substitutions as substitutions
from . import test as test
from . import text as text
from . import translation as translation
from . import uguu as uguu
from . import ui as ui
from . import update as update
from . import util as util
from . import vc_version as vc_version
from . import versions as versions
from . import warp as warp
from . import webloader as webloader
+9 -7
View File
@@ -29,10 +29,12 @@ renpy.update_path()
# Generated by scripts/relative_imports.py, do not edit below this line.
if 1 == 0:
from . import audio
from . import filter
from . import music
from . import renpysound
from . import sound
from . import webaudio
import typing
if typing.TYPE_CHECKING:
from . import audio as audio
from . import filter as filter
from . import music as music
from . import renpysound as renpysound
from . import sound as sound
from . import webaudio as webaudio
+5 -3
View File
@@ -132,6 +132,8 @@ __all__ = [ "PY2", "open", "basestring", "str", "pystr", "range",
# Generated by scripts/relative_imports.py, do not edit below this line.
if 1 == 0:
from . import fixes
from . import pickle
import typing
if typing.TYPE_CHECKING:
from . import fixes as fixes
from . import pickle as pickle
+41 -39
View File
@@ -68,42 +68,44 @@ to_log = renpy.log.open("text_overflow", developer=True, append=True)
# Generated by scripts/relative_imports.py, do not edit below this line.
if 1 == 0:
from . import accelerator
from . import anim
from . import behavior
from . import controller
from . import core
from . import displayable
from . import dragdrop
from . import emulator
from . import error
from . import focus
from . import gesture
from . import im
from . import image
from . import imagelike
from . import imagemap
from . import joystick
from . import layout
from . import matrix
from . import minigame
from . import model
from . import module
from . import motion
from . import movetransition
from . import particle
from . import pgrender
from . import predict
from . import presplash
from . import quaternion
from . import render
from . import scale
from . import scenelists
from . import screen
from . import swdraw
from . import transform
from . import transition
from . import tts
from . import video
from . import viewport
import typing
if typing.TYPE_CHECKING:
from . import accelerator as accelerator
from . import anim as anim
from . import behavior as behavior
from . import controller as controller
from . import core as core
from . import displayable as displayable
from . import dragdrop as dragdrop
from . import emulator as emulator
from . import error as error
from . import focus as focus
from . import gesture as gesture
from . import im as im
from . import image as image
from . import imagelike as imagelike
from . import imagemap as imagemap
from . import joystick as joystick
from . import layout as layout
from . import matrix as matrix
from . import minigame as minigame
from . import model as model
from . import module as module
from . import motion as motion
from . import movetransition as movetransition
from . import particle as particle
from . import pgrender as pgrender
from . import predict as predict
from . import presplash as presplash
from . import quaternion as quaternion
from . import render as render
from . import scale as scale
from . import scenelists as scenelists
from . import screen as screen
from . import swdraw as swdraw
from . import transform as transform
from . import transition as transition
from . import tts as tts
from . import video as video
from . import viewport as viewport
+24
View File
@@ -628,3 +628,27 @@ except Exception:
platform = "iOS"
else:
platform = "Unknown"
# Generated by scripts/relative_imports.py, do not edit below this line.
import typing
if typing.TYPE_CHECKING:
from . import actionexports as actionexports
from . import commonexports as commonexports
from . import contextexports as contextexports
from . import debugexports as debugexports
from . import displayexports as displayexports
from . import fetchexports as fetchexports
from . import inputexports as inputexports
from . import loaderexports as loaderexports
from . import mediaexports as mediaexports
from . import menuexports as menuexports
from . import persistentexports as persistentexports
from . import platformexports as platformexports
from . import predictexports as predictexports
from . import restartexports as restartexports
from . import rollbackexports as rollbackexports
from . import sayexports as sayexports
from . import scriptexports as scriptexports
from . import statementexports as statementexports
+17 -15
View File
@@ -5,18 +5,20 @@ renpy.update_path()
# Generated by scripts/relative_imports.py, do not edit below this line.
if 1 == 0:
from . import gl2debug
from . import gl2draw
from . import gl2functions
from . import gl2mesh
from . import gl2mesh2
from . import gl2mesh3
from . import gl2model
from . import gl2polygon
from . import gl2shader
from . import gl2shadercache
from . import gl2texture
from . import live2d
from . import live2dmodel
from . import live2dmotion
import typing
if typing.TYPE_CHECKING:
from . import gl2debug as gl2debug
from . import gl2draw as gl2draw
from . import gl2functions as gl2functions
from . import gl2mesh as gl2mesh
from . import gl2mesh2 as gl2mesh2
from . import gl2mesh3 as gl2mesh3
from . import gl2model as gl2model
from . import gl2polygon as gl2polygon
from . import gl2shader as gl2shader
from . import gl2shadercache as gl2shadercache
from . import gl2texture as gl2texture
from . import live2d as live2d
from . import live2dmodel as live2dmodel
from . import live2dmotion as live2dmotion
+7 -5
View File
@@ -8,8 +8,10 @@ renpy.update_path()
# Generated by scripts/relative_imports.py, do not edit below this line.
if 1 == 0:
from . import slast
from . import sldisplayables
from . import slparser
from . import slproperties
import typing
if typing.TYPE_CHECKING:
from . import slast as slast
from . import sldisplayables as sldisplayables
from . import slparser as slparser
from . import slproperties as slproperties
+16 -14
View File
@@ -45,17 +45,19 @@ def import_style_functions():
# Generated by scripts/relative_imports.py, do not edit below this line.
if 1 == 0:
from . import style_activate_functions
from . import style_functions
from . import style_hover_functions
from . import style_idle_functions
from . import style_insensitive_functions
from . import style_selected_activate_functions
from . import style_selected_functions
from . import style_selected_hover_functions
from . import style_selected_idle_functions
from . import style_selected_insensitive_functions
from . import styleclass
from . import stylesets
from . import styleutil
import typing
if typing.TYPE_CHECKING:
from . import style_activate_functions as style_activate_functions
from . import style_functions as style_functions
from . import style_hover_functions as style_hover_functions
from . import style_idle_functions as style_idle_functions
from . import style_insensitive_functions as style_insensitive_functions
from . import style_selected_activate_functions as style_selected_activate_functions
from . import style_selected_functions as style_selected_functions
from . import style_selected_hover_functions as style_selected_hover_functions
from . import style_selected_idle_functions as style_selected_idle_functions
from . import style_selected_insensitive_functions as style_selected_insensitive_functions
from . import styleclass as styleclass
from . import stylesets as stylesets
from . import styleutil as styleutil
+9 -7
View File
@@ -29,10 +29,12 @@ renpy.update_path()
# Generated by scripts/relative_imports.py, do not edit below this line.
if 1 == 0:
from . import testast
from . import testexecution
from . import testfocus
from . import testkey
from . import testmouse
from . import testparser
import typing
if typing.TYPE_CHECKING:
from . import testast as testast
from . import testexecution as testexecution
from . import testfocus as testfocus
from . import testkey as testkey
from . import testmouse as testmouse
from . import testparser as testparser
+12 -10
View File
@@ -29,13 +29,15 @@ renpy.update_path()
# Generated by scripts/relative_imports.py, do not edit below this line.
if 1 == 0:
from . import emoji_trie
from . import extras
from . import font
from . import ftfont
from . import hbfont
from . import shader
from . import text
from . import textsupport
from . import texwrap
import typing
if typing.TYPE_CHECKING:
from . import emoji_trie as emoji_trie
from . import extras as extras
from . import font as font
from . import ftfont as ftfont
from . import hbfont as hbfont
from . import shader as shader
from . import text as text
from . import textsupport as textsupport
from . import texwrap as texwrap
+8 -6
View File
@@ -1146,9 +1146,11 @@ def detect_user_locale():
# Generated by scripts/relative_imports.py, do not edit below this line.
if 1 == 0:
from . import dialogue
from . import extract
from . import generation
from . import merge
from . import scanstrings
import typing
if typing.TYPE_CHECKING:
from . import dialogue as dialogue
from . import extract as extract
from . import generation as generation
from . import merge as merge
from . import scanstrings as scanstrings
+5 -3
View File
@@ -7,6 +7,8 @@ from renpy.uguu.uguu import *
# Generated by scripts/relative_imports.py, do not edit below this line.
if 1 == 0:
from . import gl
from . import uguu
import typing
if typing.TYPE_CHECKING:
from . import gl as gl
from . import uguu as uguu
+7 -5
View File
@@ -24,8 +24,10 @@ from renpy.compat import PY2, basestring, bchr, bord, chr, open, pystr, range, r
# Generated by scripts/relative_imports.py, do not edit below this line.
if 1 == 0:
from . import common
from . import download
from . import generate
from . import update
import typing
if typing.TYPE_CHECKING:
from . import common as common
from . import download as download
from . import generate as generate
from . import update as update
+30 -17
View File
@@ -7,27 +7,40 @@ import re
ROOT = pathlib.Path(__file__).parent.parent
HEADER = "# Generated by scripts/relative_imports.py, do not edit below this line."
GENERATED_MODULES : str = """
renpy.styledata.style_activate_functions
renpy.styledata.style_functions
renpy.styledata.style_hover_functions
renpy.styledata.style_idle_functions
renpy.styledata.style_insensitive_functions
renpy.styledata.style_selected_activate_functions
renpy.styledata.style_selected_functions
renpy.styledata.style_selected_hover_functions
renpy.styledata.style_selected_idle_functions
renpy.styledata.style_selected_insensitive_functions
"""
def find_modules():
"""
Finds the names of all modules.
"""
modules = [ ]
modules : list[str] = GENERATED_MODULES.split()
# .py modules.
for i in ROOT.glob("renpy/**/*.py"):
i = i.relative_to(ROOT)
mod = str(i.with_suffix("")).replace("/", ".")
if mod.endswith(".__init__"):
mod = mod[:-9]
# A list of root, pattern pairs.
patterns = [
(ROOT, "renpy/**/*.py"),
(ROOT, "renpy/**/*.pyx"),
]
modules.append(mod)
for root, pattern in patterns:
for i in ROOT.glob(pattern):
i = i.relative_to(ROOT)
mod = str(i.with_suffix("")).replace("/", ".")
if mod.endswith(".__init__"):
mod = mod[:-9]
# Generated modules.
for i in (ROOT / "module" / "gen3").glob("*.c"):
mod = str(i.stem)
modules.append(mod)
modules.append(mod)
modules.sort()
@@ -48,8 +61,6 @@ def generate(package, modules):
if package == "renpy.common":
return
print(package)
fn = package.replace(".", "/") + "/__init__.py"
p = ROOT / fn
@@ -70,10 +81,12 @@ def generate(package, modules):
text = text + "\n\n\n"
text += HEADER + "\n"
text += "if 1 == 0:\n"
text += "import typing\n"
text += "\n"
text += "if typing.TYPE_CHECKING:\n"
for mod in modules:
text += f" from . import {mod}\n"
text += f" from . import {mod} as {mod}\n"
p.write_text(text)