@@ -109,38 +109,27 @@ def create(self, author, project_name=None, version='1'):
109109 self .validate_package ()
110110 self .project_dir .mkdir ()
111111
112- from sphinx .quickstart import main
113-
114- argv = [
115- '' , # Will be skipped.
116- '-q' , # Don't start the interactive mode
117- ]
112+ from sphinx .cmd .quickstart import main
118113
119114 if project_name is None :
120115 project_name = self .package_dir .name
121116
122- argv . append ( '-p {0}' . format ( project_name ))
123- argv . append ( '-a {0}' . format ( author ))
124- argv . append ( '-v {0}' . format ( version ))
125-
126- argv . extend ([
127- str ( self .project_dir ) ,
128- '--sep' , # Separate source and build directory
129- '--ext-autodoc' , # Enable autodoc
117+ argv = [
118+ '-q' , # Don't start the interactive mode
119+ f'-p { project_name } ' ,
120+ f'-a { author } ' ,
121+ f'-v { version } ' ,
122+ self .project_dir ,
123+ '--sep' , # Separate source and build directory
124+ '--ext-autodoc' , # Enable autodoc
130125 '--no-makefile' ,
131126 '--no-batchfile'
132- ])
127+ ]
133128
134- # Hacky, but required, because sphinx is reading sys.argv even if you
135- # pass a list to main()
136- old_argv = sys .argv
137- sys .argv = argv
138129 try :
139- main (sys . argv )
130+ main (argv )
140131 except :
141132 raise SphinxError
142- finally :
143- sys .argv = old_argv
144133
145134 def generate_project_files (self , sub_dir = '' ):
146135 """Generate the project files (`*.rst` files).
@@ -155,25 +144,19 @@ def generate_project_files(self, sub_dir=''):
155144 """
156145 self .validate_project_and_package ()
157146
158- from sphinx .apidoc import main
147+ from sphinx .ext .apidoc ._cli import main
148+
159149 argv = [
160- '' , # Will be skipped.
161150 '-e' , # Separate pages/files for every module
162151 '-o' ,
163152 str (self .project_source_dir / sub_dir ),
164153 str (self .package_dir ), # Package to document
165154 ]
166155
167- # Hacky, but required, because sphinx is reading sys.argv even if you
168- # pass a list to main()
169- old_argv = sys .argv
170- sys .argv = argv
171156 try :
172- main (sys . argv )
157+ main (argv )
173158 except :
174159 raise SphinxError
175- finally :
176- sys .argv = old_argv
177160
178161 def build (self , clean = False ):
179162 """Build the Sphinx project.
@@ -193,24 +176,18 @@ def build(self, clean=False):
193176 if add_to_path :
194177 sys .path .append (str (self .package_dir .parent ))
195178
196- from sphinx import main
179+ from sphinx . cmd . build import main
197180 argv = [
198- '' , # Will be skipped.
199181 str (self .project_source_dir ),
200182 str (self .project_build_dir ),
201183 ]
202184
203- # Hacky, but required, because sphinx is reading sys.argv even if you
204- # pass a list to main()
205- old_argv = sys .argv
206- sys .argv = argv
207185 try :
208- main (sys . argv )
186+ main (argv )
209187 except SystemExit as e :
210188 if e .code != 0 :
211189 raise SphinxError
212190 finally :
213- sys .argv = old_argv
214191 if add_to_path :
215192 sys .path .remove (str (self .package_dir .parent ))
216193
0 commit comments