@@ -506,109 +506,6 @@ def version_info():
506
506
)
507
507
508
508
509
- def parse_args ():
510
- """Parse command-line arguments."""
511
-
512
- parser = ArgumentParser (
513
- description = "Runs a build of the Python docs for various branches."
514
- )
515
- parser .add_argument (
516
- "--select-output" ,
517
- choices = ("no-html" , "only-html" , "only-html-en" ),
518
- help = "Choose what outputs to build." ,
519
- )
520
- parser .add_argument (
521
- "-q" ,
522
- "--quick" ,
523
- action = "store_true" ,
524
- help = "Run a quick build (only HTML files)." ,
525
- )
526
- parser .add_argument (
527
- "-b" ,
528
- "--branch" ,
529
- metavar = "3.12" ,
530
- help = "Version to build (defaults to all maintained branches)." ,
531
- )
532
- parser .add_argument (
533
- "-r" ,
534
- "--build-root" ,
535
- type = Path ,
536
- help = "Path to a directory containing a checkout per branch." ,
537
- default = Path ("/srv/docsbuild" ),
538
- )
539
- parser .add_argument (
540
- "-w" ,
541
- "--www-root" ,
542
- type = Path ,
543
- help = "Path where generated files will be copied." ,
544
- default = Path ("/srv/docs.python.org" ),
545
- )
546
- parser .add_argument (
547
- "--skip-cache-invalidation" ,
548
- help = "Skip Fastly cache invalidation." ,
549
- action = "store_true" ,
550
- )
551
- parser .add_argument (
552
- "--group" ,
553
- help = "Group files on targets and www-root file should get." ,
554
- default = "docs" ,
555
- )
556
- parser .add_argument (
557
- "--log-directory" ,
558
- type = Path ,
559
- help = "Directory used to store logs." ,
560
- default = Path ("/var/log/docsbuild/" ),
561
- )
562
- parser .add_argument (
563
- "--languages" ,
564
- nargs = "*" ,
565
- help = "Language translation, as a PEP 545 language tag like"
566
- " 'fr' or 'pt-br'. "
567
- "Builds all available languages by default." ,
568
- metavar = "fr" ,
569
- )
570
- parser .add_argument (
571
- "--version" ,
572
- action = "store_true" ,
573
- help = "Get build_docs and dependencies version info" ,
574
- )
575
- parser .add_argument (
576
- "--theme" ,
577
- default = "python-docs-theme" ,
578
- help = "Python package to use for python-docs-theme: Useful to test branches:"
579
- " --theme git+https://github.com/obulat/python-docs-theme@master" ,
580
- )
581
- args = parser .parse_args ()
582
- if args .version :
583
- version_info ()
584
- sys .exit (0 )
585
- del args .version
586
- if args .log_directory :
587
- args .log_directory = args .log_directory .resolve ()
588
- if args .build_root :
589
- args .build_root = args .build_root .resolve ()
590
- if args .www_root :
591
- args .www_root = args .www_root .resolve ()
592
- return args
593
-
594
-
595
- def setup_logging (log_directory : Path , select_output : str | None ):
596
- """Setup logging to stderr if run by a human, or to a file if run from a cron."""
597
- log_format = "%(asctime)s %(levelname)s: %(message)s"
598
- if sys .stderr .isatty ():
599
- logging .basicConfig (format = log_format , stream = sys .stderr )
600
- else :
601
- log_directory .mkdir (parents = True , exist_ok = True )
602
- if select_output is None :
603
- filename = log_directory / "docsbuild.log"
604
- else :
605
- filename = log_directory / f"docsbuild-{ select_output } .log"
606
- handler = logging .handlers .WatchedFileHandler (filename )
607
- handler .setFormatter (logging .Formatter (log_format ))
608
- logging .getLogger ().addHandler (handler )
609
- logging .getLogger ().setLevel (logging .DEBUG )
610
-
611
-
612
509
@dataclass
613
510
class DocBuilder :
614
511
"""Builder for a CPython version and a language."""
@@ -1288,6 +1185,109 @@ def main():
1288
1185
build_docs_with_lock (args , "build_docs_html_en.lock" )
1289
1186
1290
1187
1188
+ def parse_args ():
1189
+ """Parse command-line arguments."""
1190
+
1191
+ parser = ArgumentParser (
1192
+ description = "Runs a build of the Python docs for various branches."
1193
+ )
1194
+ parser .add_argument (
1195
+ "--select-output" ,
1196
+ choices = ("no-html" , "only-html" , "only-html-en" ),
1197
+ help = "Choose what outputs to build." ,
1198
+ )
1199
+ parser .add_argument (
1200
+ "-q" ,
1201
+ "--quick" ,
1202
+ action = "store_true" ,
1203
+ help = "Run a quick build (only HTML files)." ,
1204
+ )
1205
+ parser .add_argument (
1206
+ "-b" ,
1207
+ "--branch" ,
1208
+ metavar = "3.12" ,
1209
+ help = "Version to build (defaults to all maintained branches)." ,
1210
+ )
1211
+ parser .add_argument (
1212
+ "-r" ,
1213
+ "--build-root" ,
1214
+ type = Path ,
1215
+ help = "Path to a directory containing a checkout per branch." ,
1216
+ default = Path ("/srv/docsbuild" ),
1217
+ )
1218
+ parser .add_argument (
1219
+ "-w" ,
1220
+ "--www-root" ,
1221
+ type = Path ,
1222
+ help = "Path where generated files will be copied." ,
1223
+ default = Path ("/srv/docs.python.org" ),
1224
+ )
1225
+ parser .add_argument (
1226
+ "--skip-cache-invalidation" ,
1227
+ help = "Skip Fastly cache invalidation." ,
1228
+ action = "store_true" ,
1229
+ )
1230
+ parser .add_argument (
1231
+ "--group" ,
1232
+ help = "Group files on targets and www-root file should get." ,
1233
+ default = "docs" ,
1234
+ )
1235
+ parser .add_argument (
1236
+ "--log-directory" ,
1237
+ type = Path ,
1238
+ help = "Directory used to store logs." ,
1239
+ default = Path ("/var/log/docsbuild/" ),
1240
+ )
1241
+ parser .add_argument (
1242
+ "--languages" ,
1243
+ nargs = "*" ,
1244
+ help = "Language translation, as a PEP 545 language tag like"
1245
+ " 'fr' or 'pt-br'. "
1246
+ "Builds all available languages by default." ,
1247
+ metavar = "fr" ,
1248
+ )
1249
+ parser .add_argument (
1250
+ "--version" ,
1251
+ action = "store_true" ,
1252
+ help = "Get build_docs and dependencies version info" ,
1253
+ )
1254
+ parser .add_argument (
1255
+ "--theme" ,
1256
+ default = "python-docs-theme" ,
1257
+ help = "Python package to use for python-docs-theme: Useful to test branches:"
1258
+ " --theme git+https://github.com/obulat/python-docs-theme@master" ,
1259
+ )
1260
+ args = parser .parse_args ()
1261
+ if args .version :
1262
+ version_info ()
1263
+ sys .exit (0 )
1264
+ del args .version
1265
+ if args .log_directory :
1266
+ args .log_directory = args .log_directory .resolve ()
1267
+ if args .build_root :
1268
+ args .build_root = args .build_root .resolve ()
1269
+ if args .www_root :
1270
+ args .www_root = args .www_root .resolve ()
1271
+ return args
1272
+
1273
+
1274
+ def setup_logging (log_directory : Path , select_output : str | None ):
1275
+ """Setup logging to stderr if run by a human, or to a file if run from a cron."""
1276
+ log_format = "%(asctime)s %(levelname)s: %(message)s"
1277
+ if sys .stderr .isatty ():
1278
+ logging .basicConfig (format = log_format , stream = sys .stderr )
1279
+ else :
1280
+ log_directory .mkdir (parents = True , exist_ok = True )
1281
+ if select_output is None :
1282
+ filename = log_directory / "docsbuild.log"
1283
+ else :
1284
+ filename = log_directory / f"docsbuild-{ select_output } .log"
1285
+ handler = logging .handlers .WatchedFileHandler (filename )
1286
+ handler .setFormatter (logging .Formatter (log_format ))
1287
+ logging .getLogger ().addHandler (handler )
1288
+ logging .getLogger ().setLevel (logging .DEBUG )
1289
+
1290
+
1291
1291
def build_docs_with_lock (args : Namespace , lockfile_name : str ) -> int :
1292
1292
try :
1293
1293
lock = zc .lockfile .LockFile (HERE / lockfile_name )
0 commit comments