8
8
from os import path
9
9
from urllib .parse import urlparse , urljoin , ParseResult
10
10
11
- import yaml
11
+ from ruamel . yaml import YAML , YAMLError
12
12
from bs4 import BeautifulSoup
13
13
from flask import Flask , render_template , Response , send_from_directory , request
14
14
from flask .helpers import url_for , send_file , make_response
15
15
from flask .views import View
16
16
from flask_frozen import Freezer , walk_directory
17
- from yaml import FullLoader
18
17
19
18
from src .Feature import Feature
20
19
from src .api import get_api_page
30
29
from src .processors .processors import process_code_blocks
31
30
from src .processors .processors import set_replace_simple_code
32
31
32
+ yaml = YAML (typ = 'rt' )
33
+
33
34
app = Flask (__name__ , static_folder = '_assets' )
34
35
app .config .from_pyfile ('mysettings.py' )
35
36
app .jinja_env .trim_blocks = True
@@ -88,8 +89,8 @@ def get_site_data():
88
89
with open (data_file_path , encoding = "UTF-8" ) as stream :
89
90
try :
90
91
file_name_without_extension = data_file [:- 4 ] if data_file .endswith (".yml" ) else data_file
91
- data [file_name_without_extension ] = yaml .load (stream , Loader = FullLoader )
92
- except yaml . YAMLError as exc :
92
+ data [file_name_without_extension ] = yaml .load (stream )
93
+ except YAMLError as exc :
93
94
sys .stderr .write ('Cant parse data file ' + data_file + ': ' )
94
95
sys .stderr .write (str (exc ))
95
96
sys .exit (- 1 )
@@ -98,7 +99,7 @@ def get_site_data():
98
99
sys .stderr .write (str (exc ))
99
100
sys .exit (- 1 )
100
101
data ["core" ] = redirect_to_map (
101
- yaml .load (open ("redirects/stdlib-redirects.yml" , encoding = "UTF-8" ), Loader = FullLoader ))
102
+ yaml .load (open ("redirects/stdlib-redirects.yml" , encoding = "UTF-8" )))
102
103
return data
103
104
104
105
@@ -143,15 +144,15 @@ def get_education_courses():
143
144
144
145
def get_nav_impl ():
145
146
with open (path .join (data_folder , "_nav.yml" )) as stream :
146
- nav = yaml .load (stream , Loader = FullLoader )
147
+ nav = yaml .load (stream )
147
148
nav = process_nav_includes (build_mode , nav )
148
149
return nav
149
150
150
151
151
152
def get_kotlin_features ():
152
153
features_dir = path .join (os .path .dirname (__file__ ), "kotlin-features" )
153
154
features = []
154
- for feature_meta in yaml .load (open (path .join (features_dir , "kotlin-features.yml" )), Loader = FullLoader ):
155
+ for feature_meta in yaml .load (open (path .join (features_dir , "kotlin-features.yml" ))):
155
156
file_path = path .join (features_dir , feature_meta ['content_file' ])
156
157
with open (file_path , encoding = 'utf-8' ) as f :
157
158
content = f .read ()
@@ -436,7 +437,7 @@ def generate_redirect_pages():
436
437
437
438
with open (redirects_file_path , encoding = "UTF-8" ) as stream :
438
439
try :
439
- redirects = yaml .load (stream , Loader = FullLoader )
440
+ redirects = yaml .load (stream )
440
441
441
442
for entry in redirects :
442
443
url_to = entry ["to" ]
@@ -449,7 +450,7 @@ def generate_redirect_pages():
449
450
else :
450
451
app .add_url_rule (url , view_func = RedirectTemplateView .as_view (url , url = url_to ))
451
452
452
- except yaml . YAMLError as exc :
453
+ except YAMLError as exc :
453
454
sys .stderr .write ('Cant parse data file ' + file + ': ' )
454
455
sys .stderr .write (str (exc ))
455
456
sys .exit (- 1 )
0 commit comments