Skip to content

Commit a3a19e1

Browse files
committed
Rename "routes" modules to "views"
"Views" should be more familiar to people who have some experience with web frameworks. It also better matches the intended scope of the module.
1 parent 8a39ed1 commit a3a19e1

File tree

11 files changed

+70
-70
lines changed

11 files changed

+70
-70
lines changed

naucse/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
raise RuntimeError('We love Python 3.')
1010

1111
from naucse.cli import cli
12-
from naucse.routes import app, lesson_static_generator
12+
from naucse.views import app, lesson_static_generator
1313

1414

1515
def main():

naucse/cli.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import click
22
import elsa
33

4-
from naucse.utils.routes import forks_enabled, does_course_return_info
4+
from naucse.utils.views import forks_enabled, does_course_return_info
55

66

77
def cli(app, *, base_url=None, freezer=None):
@@ -27,7 +27,7 @@ def list_courses(forks_only):
2727
A practical benefit is that on Travis CI the docker images are pulled/built
2828
in this command and the freezing won't timeout after the 10 minute limit if things are taking particularly long.
2929
"""
30-
from naucse.routes import model
30+
from naucse.views import model
3131

3232
def canonical(course, suffix=""):
3333
click.echo(f" {course.slug}: {course.title}{suffix}")

naucse/freezer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from flask_frozen import UrlForLogger, Freezer
44

5-
from naucse.utils.routes import absolute_urls_to_freeze
5+
from naucse.utils.views import absolute_urls_to_freeze
66

77

88
class AllLinksLogger(UrlForLogger):

naucse/models.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
from arca import Task
1111
from git import Repo
1212

13-
import naucse.utils.routes
13+
import naucse.utils.views
1414
from naucse.utils.models import Model, YamlProperty, DataProperty, DirProperty, MultipleModelDirProperty, ForkProperty
1515
from naucse.utils.models import reify, arca
16-
from naucse.utils.routes import AllowedElementsParser, absolute_urls_to_freeze
16+
from naucse.utils.views import AllowedElementsParser, absolute_urls_to_freeze
1717
from naucse.templates import setup_jinja_env, vars_functions
1818
from naucse.utils.markdown import convert_markdown
1919
from naucse.utils.notebook import convert_notebook
@@ -624,7 +624,7 @@ def base_course(self):
624624
def render(self, page_type, *args, **kwargs):
625625
""" Renders a page in the fork, checks the content and registers urls to freeze.
626626
"""
627-
naucse.utils.routes.forks_raise_if_disabled()
627+
naucse.utils.views.forks_raise_if_disabled()
628628

629629
task = Task(
630630
"naucse.utils.forks:render",
@@ -672,7 +672,7 @@ def get_footer_links(self, lesson_slug, page, **kwargs):
672672
with a warning. This method provides the correct footer links for the page, since ``sessions``
673673
is not included in the info provided by forks.
674674
"""
675-
naucse.utils.routes.forks_raise_if_disabled()
675+
naucse.utils.views.forks_raise_if_disabled()
676676

677677
task = Task(
678678
"naucse.utils.forks:get_footer_links",
@@ -684,7 +684,7 @@ def get_footer_links(self, lesson_slug, page, **kwargs):
684684

685685
to_return = []
686686

687-
from naucse.routes import logger
687+
from naucse.views import logger
688688
logger.debug(result.output)
689689

690690
if not isinstance(result.output, dict):
@@ -744,7 +744,7 @@ def slug(self):
744744
""" Returns the slug of the repository based on the current branch. Returns the default if not on a branch,
745745
the branch doesn't have a remote or the remote url can't be parsed.
746746
"""
747-
from naucse.routes import logger
747+
from naucse.views import logger
748748

749749
# Travis CI checks out specific commit, so there isn't an active branch
750750
if os.environ.get("TRAVIS") and os.environ.get("TRAVIS_REPO_SLUG"):
@@ -785,7 +785,7 @@ def slug(self):
785785
def branch(self):
786786
""" Returns the active branch name or master if not on a branch.
787787
"""
788-
from naucse.routes import logger
788+
from naucse.views import logger
789789

790790
# Travis CI checks out specific commit, so there isn't an active branch
791791
if os.environ.get("TRAVIS") and os.environ.get("TRAVIS_BRANCH"):
@@ -844,8 +844,8 @@ def safe_run_years(self):
844844
for run in run_years.runs.values():
845845
if not run.is_link():
846846
safe_run_years.append(run)
847-
elif (naucse.utils.routes.forks_enabled() and
848-
naucse.utils.routes.does_course_return_info(run, extra_required=["start_date", "end_date"])):
847+
elif (naucse.utils.views.forks_enabled() and
848+
naucse.utils.views.does_course_return_info(run, extra_required=["start_date", "end_date"])):
849849
safe_run_years.append(run)
850850

851851
safe_years[year] = safe_run_years

naucse/utils/forks.py

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
from flask_frozen import UrlForLogger
66
from git import Repo
77

8-
from naucse import routes
8+
from naucse import views
99
from naucse.models import Course
10-
from naucse.utils.routes import page_content_cache_key, get_edit_info
10+
from naucse.utils.views import page_content_cache_key, get_edit_info
1111

1212

1313
def get_course_from_slug(slug: str) -> Course:
@@ -16,9 +16,9 @@ def get_course_from_slug(slug: str) -> Course:
1616
parts = slug.split("/")
1717

1818
if parts[0] == "course":
19-
return routes.model.courses[parts[1]]
19+
return views.model.courses[parts[1]]
2020
else:
21-
return routes.model.runs[(int(parts[0]), parts[1])]
21+
return views.model.runs[(int(parts[0]), parts[1])]
2222

2323

2424
def course_info(slug: str, *args, **kwargs) -> Dict[str, Any]:
@@ -71,35 +71,35 @@ def render(page_type: str, slug: str, *args, **kwargs) -> Dict[str, Any]:
7171
if kwargs.get("request_url"):
7272
path = [kwargs["request_url"]]
7373

74-
logger = UrlForLogger(routes.app)
75-
with routes.app.test_request_context(*path):
74+
logger = UrlForLogger(views.app)
75+
with views.app.test_request_context(*path):
7676
with logger:
7777

7878
info = {
7979
"course": {
8080
"title": course.title,
81-
"url": routes.course_url(course),
81+
"url": views.course_url(course),
8282
"vars": course.vars,
8383
"canonical": course.canonical,
8484
"is_derived": course.is_derived,
8585
},
8686
}
8787

8888
if page_type == "course":
89-
info["content"] = routes.course_content(course)
89+
info["content"] = views.course_content(course)
9090
info["edit_info"] = get_edit_info(course.edit_path)
9191

9292
elif page_type == "calendar":
93-
info["content"] = routes.course_calendar_content(course)
93+
info["content"] = views.course_calendar_content(course)
9494
info["edit_info"] = get_edit_info(course.edit_path)
9595

9696
elif page_type == "calendar_ics":
97-
info["calendar"] = str(routes.generate_calendar_ics(course))
97+
info["calendar"] = str(views.generate_calendar_ics(course))
9898
info["edit_info"] = get_edit_info(course.edit_path)
9999

100100
elif page_type == "course_page":
101101
lesson_slug, page, solution, *_ = args
102-
lesson = routes.model.get_lesson(lesson_slug)
102+
lesson = views.model.get_lesson(lesson_slug)
103103

104104
content_offer_key = kwargs.get("content_key")
105105

@@ -119,13 +119,13 @@ def render(page_type: str, slug: str, *args, **kwargs) -> Dict[str, Any]:
119119
if request_url is None:
120120
request_url = url_for('course_page', course=course, lesson=lesson, page=page, solution=solution)
121121

122-
lesson_url, subpage_url, static_url = routes.relative_url_functions(request_url, course, lesson)
123-
page, session, prv, nxt = routes.get_page(course, lesson, page)
122+
lesson_url, subpage_url, static_url = views.relative_url_functions(request_url, course, lesson)
123+
page, session, prv, nxt = views.get_page(course, lesson, page)
124124

125125
# if content isn't cached or the version was refused, let's render
126126
# the content here (but just the content and not the whole page with headers, menus etc)
127127
if content is not_processed:
128-
content = routes.page_content(lesson, page, solution, course,
128+
content = views.page_content(lesson, page, solution, course,
129129
lesson_url=lesson_url, subpage_url=subpage_url, static_url=static_url,
130130
without_cache=True)
131131

@@ -155,7 +155,7 @@ def render(page_type: str, slug: str, *args, **kwargs) -> Dict[str, Any]:
155155
"slug": session.slug,
156156
}
157157

158-
prev_link, session_link, next_link = routes.get_footer_links(course, session, prv, nxt, lesson_url)
158+
prev_link, session_link, next_link = views.get_footer_links(course, session, prv, nxt, lesson_url)
159159
info["footer"] = {
160160
"prev_link": prev_link,
161161
"session_link": session_link,
@@ -172,7 +172,7 @@ def render(page_type: str, slug: str, *args, **kwargs) -> Dict[str, Any]:
172172
"title": session.title,
173173
"url": url_for("session_coverpage", course=course.slug, session=session.slug),
174174
},
175-
"content": routes.session_coverpage_content(course, session, coverpage),
175+
"content": views.session_coverpage_content(course, session, coverpage),
176176
"edit_info": get_edit_info(session.get_edit_path(course, coverpage)),
177177
})
178178
else:
@@ -197,21 +197,21 @@ def get_footer_links(slug, lesson_slug, page, request_url=None):
197197
raise ValueError("Circular dependency.")
198198

199199
try:
200-
lesson = routes.model.get_lesson(lesson_slug)
200+
lesson = views.model.get_lesson(lesson_slug)
201201
except LookupError:
202202
raise ValueError("Lesson not found")
203203

204204
path = []
205205
if request_url is not None:
206206
path = [request_url]
207207

208-
with routes.app.test_request_context(*path):
208+
with views.app.test_request_context(*path):
209209

210210
def lesson_url(lesson, *args, **kwargs):
211211
return url_for("course_page", course=course, lesson=lesson, *args, **kwargs)
212212

213-
page, session, prv, nxt = routes.get_page(course, lesson, page)
214-
prev_link, session_link, next_link = routes.get_footer_links(course, session, prv, nxt, lesson_url)
213+
page, session, prv, nxt = views.get_page(course, lesson, page)
214+
prev_link, session_link, next_link = views.get_footer_links(course, session, prv, nxt, lesson_url)
215215

216216
return {
217217
"prev_link": prev_link,

naucse/utils/links.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from xml.dom import SyntaxErr
44

55
from naucse.models import Page
6-
from naucse.utils.routes import DisallowedStyle
6+
from naucse.utils.views import DisallowedStyle
77

88

99
class InvalidInfo(Exception):

naucse/utils/models.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from arca import Task, Arca
66
from werkzeug.local import LocalProxy
77

8-
import naucse.utils.routes
8+
import naucse.utils.views
99

1010
_arca = None
1111

@@ -112,7 +112,7 @@ def process_kwargs(self, instance):
112112
return x
113113

114114
def compute(self, instance):
115-
naucse.utils.routes.forks_raise_if_disabled()
115+
naucse.utils.views.forks_raise_if_disabled()
116116

117117
task = Task(**self.process_kwargs(instance))
118118

naucse/utils/routes.py renamed to naucse/utils/views.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def list_months(start_date, end_date):
6565
def get_naucse_tree_hash(repo):
6666
""" Returns the tree hash of the folder ``naucse``, which contains rendering mechanisms, in specified ``repo``.
6767
"""
68-
from naucse.routes import app
68+
from naucse.views import app
6969
global _naucse_tree_hash
7070

7171
if _naucse_tree_hash.get(repo.git_dir):
@@ -85,7 +85,7 @@ def get_naucse_tree_hash(repo):
8585
def get_lesson_tree_hash(repo, lesson_slug):
8686
""" Returns the tree hash of the folder containing the lesson in specified ``repo``.
8787
"""
88-
from naucse.routes import app
88+
from naucse.views import app
8989

9090
global _lesson_tree_hash
9191

@@ -264,7 +264,7 @@ def does_course_return_info(course, extra_required=(), *, force_ignore=False):
264264
265265
Raises exception if :func:`raise_errors_from_forks` returns it should. (But not if ``force_ignore`` is set.)
266266
"""
267-
from naucse.routes import logger
267+
from naucse.views import logger
268268

269269
required = ["title", "description"] + list(extra_required)
270270
try:
@@ -314,7 +314,7 @@ def page_content_cache_key(repo, lesson_slug, page, solution, course_vars=None)
314314

315315

316316
def edit_link(path):
317-
from naucse.routes import model
317+
from naucse.views import model
318318

319319
if path == Path("."):
320320
return f"https://github.com/{model.meta.slug}"

naucse/routes.py renamed to naucse/views.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@
2424
from naucse.utils.links import (process_course_data, process_session_data, process_page_data, process_footer_data,
2525
InvalidInfo)
2626
from naucse.utils.models import arca
27-
from naucse.utils.routes import (get_recent_runs, list_months, DisallowedStyle,
27+
from naucse.utils.views import (get_recent_runs, list_months, DisallowedStyle,
2828
DisallowedElement, does_course_return_info, absolute_urls_to_freeze,
2929
raise_errors_from_forks, page_content_cache_key, InvalidHTML, get_edit_info)
3030

3131
# so it can be mocked
32-
import naucse.utils.routes
32+
import naucse.utils.views
3333

3434
app = Flask('naucse')
3535
app.config['TEMPLATES_AUTO_RELOAD'] = True
@@ -168,7 +168,7 @@ def courses():
168168
for course in model.courses.values():
169169
if not course.is_link():
170170
safe_courses.append(course)
171-
elif naucse.utils.routes.forks_enabled() and does_course_return_info(course):
171+
elif naucse.utils.views.forks_enabled() and does_course_return_info(course):
172172
safe_courses.append(course)
173173

174174
return render_template("course_list.html",
@@ -197,7 +197,7 @@ def lesson_static(course, lesson, path):
197197
lesson = None
198198

199199
if course is not None and course.is_link(): # is static file from a link?
200-
naucse.utils.routes.forks_raise_if_disabled()
200+
naucse.utils.views.forks_raise_if_disabled()
201201

202202
try:
203203
return send_from_directory(*course.lesson_static(lesson_slug, path))
@@ -276,7 +276,7 @@ def lesson_url(lesson, *args, **kwargs):
276276
@app.route('/<course:course>/')
277277
def course(course):
278278
if course.is_link():
279-
naucse.utils.routes.forks_raise_if_disabled()
279+
naucse.utils.views.forks_raise_if_disabled()
280280

281281
try:
282282
data_from_fork = course.render_course(request_url=request.path)
@@ -489,7 +489,7 @@ def course_page(course, lesson, page, solution=None):
489489
prev_link = session_link = next_link = session = None
490490

491491
if course.is_link():
492-
naucse.utils.routes.forks_raise_if_disabled()
492+
naucse.utils.views.forks_raise_if_disabled()
493493

494494
fork_kwargs = {"request_url": request.path}
495495

@@ -696,7 +696,7 @@ def session_coverpage(course, session, coverpage):
696696
rendered session coverpage
697697
"""
698698
if course.is_link():
699-
naucse.utils.routes.forks_raise_if_disabled()
699+
naucse.utils.views.forks_raise_if_disabled()
700700

701701
try:
702702
data_from_fork = course.render_session_coverpage(session, coverpage, request_url=request.path)
@@ -756,7 +756,7 @@ def course_calendar_content(course):
756756
@app.route('/<course:course>/calendar/')
757757
def course_calendar(course):
758758
if course.is_link():
759-
naucse.utils.routes.forks_raise_if_disabled()
759+
naucse.utils.views.forks_raise_if_disabled()
760760

761761
try:
762762
data_from_fork = course.render_calendar(request_url=request.path)
@@ -828,7 +828,7 @@ def course_calendar_ics(course):
828828
abort(404)
829829

830830
if course.is_link():
831-
naucse.utils.routes.forks_raise_if_disabled()
831+
naucse.utils.views.forks_raise_if_disabled()
832832

833833
try:
834834
data_from_fork = course.render_calendar_ics(request_url=request.path)

0 commit comments

Comments
 (0)