diff --git a/course/constants.py b/course/constants.py index 7c50b9f1469457c7144366370680fdf7e1eba3b1..f418746b796327abd60311e4fbd1040f3fcd62bf 100644 --- a/course/constants.py +++ b/course/constants.py @@ -24,6 +24,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ +if False: + import typing # noqa from django.utils.translation import pgettext_lazy, ugettext # Allow 10x extra credit at the very most. @@ -286,7 +288,7 @@ FLOW_SESSION_EXPIRATION_MODE_CHOICES = ( def is_expiration_mode_allowed(expmode, permissions): - # type: (str, frozenset[str]) -> bool + # type: (str, typing.FrozenSet[str]) -> bool if expmode == flow_session_expiration_mode.roll_over: if (flow_permission.set_roll_over_expiration_mode in permissions): diff --git a/course/content.py b/course/content.py index 407d1adadbfbb2730847d9917044a40141b3049e..9d320f6c2c75cf8f274b234bf643162ffe8b7d64 100644 --- a/course/content.py +++ b/course/content.py @@ -24,7 +24,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ -from typing import cast, Union +from typing import cast, Union, FrozenSet from django.conf import settings from django.utils.translation import ugettext as _ @@ -1215,7 +1215,7 @@ def compute_chunk_weight_and_shown( chunk, # type: ChunkDesc roles, # type: List[Text] now_datetime, # type: datetime.datetime - facilities, # type: frozenset[Text] + facilities, # type: FrozenSet[Text] ): # type: (...) -> Tuple[float, bool] if not hasattr(chunk, "rules"): @@ -1274,7 +1274,7 @@ def get_processed_page_chunks( page_desc, # type: StaticPageDesc roles, # type: List[Text] now_datetime, # type: datetime.datetime - facilities, # type: frozenset[Text] + facilities, # type: FrozenSet[Text] ): # type: (...) -> List[ChunkDesc] for chunk in page_desc.chunks: diff --git a/course/enrollment.py b/course/enrollment.py index abad304680fc9c9997af018d9f19ac667c37d82c..cd8ee4d3ca2088b1f2ba6e971e2f1b6417f1704e 100644 --- a/course/enrollment.py +++ b/course/enrollment.py @@ -71,7 +71,7 @@ from pytools.lex import RE as REBase # noqa # {{{ for mypy if False: - from typing import Any, Tuple, Text, Optional, List # noqa + from typing import Any, Tuple, Text, Optional, List, FrozenSet # noqa from course.utils import CoursePageContext # noqa # }}} @@ -137,7 +137,7 @@ def get_participation_permissions( course, # type: Course participation, # type: Optional[Participation] ): - # type: (...) -> frozenset[Tuple[Text, Optional[Text]]] + # type: (...) -> FrozenSet[Tuple[Text, Optional[Text]]] if participation is not None: return participation.permissions() diff --git a/course/flow.py b/course/flow.py index 9122f44691b192006e584bcacea97777645f3e50..bdac6e171c89845d6502773b0c27147b7049f5c2 100644 --- a/course/flow.py +++ b/course/flow.py @@ -88,7 +88,7 @@ from relate.utils import retry_transaction_decorator # {{{ mypy if False: - from typing import Any, Optional, Iterable, Tuple, Text, List # noqa + from typing import Any, Optional, Iterable, Tuple, Text, List, FrozenSet # noqa import datetime # noqa from course.models import Course # noqa from course.utils import ( # noqa @@ -1347,7 +1347,7 @@ def recalculate_session_grade(repo, course, session): def lock_down_if_needed( request, # type: http.HttpRequest - permissions, # type: frozenset[Text] + permissions, # type: FrozenSet[Text] flow_session, # type: FlowSession ): # type: (...) -> None @@ -1607,7 +1607,7 @@ def get_and_check_flow_session(pctx, flow_session_id): def will_receive_feedback(permissions): - # type: (frozenset[Text]) -> bool + # type: (FrozenSet[Text]) -> bool return ( flow_permission.see_correctness in permissions @@ -1615,14 +1615,14 @@ def will_receive_feedback(permissions): def may_send_email_about_flow_page(permissions): - # type: (frozenset[Text]) -> bool + # type: (FrozenSet[Text]) -> bool return flow_permission.send_email_about_flow_page in permissions def get_page_behavior( page, # type: PageBase - permissions, # type: frozenset[Text] + permissions, # type: FrozenSet[Text] session_in_progress, # type: bool answer_was_graded, # type: bool generates_grade, # type: bool @@ -1679,7 +1679,7 @@ def get_page_behavior( def add_buttons_to_form(form, fpctx, flow_session, permissions): - # type: (StyledForm, FlowPageContext, FlowSession, frozenset[Text]) -> StyledForm + # type: (StyledForm, FlowPageContext, FlowSession, FrozenSet[Text]) -> StyledForm from crispy_forms.layout import Submit show_save_button = getattr(form, "show_save_button", True) @@ -2137,7 +2137,7 @@ def post_flow_page( flow_session, # type: FlowSession fpctx, # type: FlowPageContext request, # type: http.HttpRequest - permissions, # type: frozenset[Text] + permissions, # type: FrozenSet[Text] generates_grade, # type: bool ): # type: (...) -> Tuple[PageBehavior, List[FlowPageVisit], forms.Form, Optional[AnswerFeedback], Any, bool] # noqa diff --git a/course/page/base.py b/course/page/base.py index 4bc5c7eb450d9bac9f36cbb6d009a38beff04471..2a5c3b6e496995950f7361412ceeefe5a0d93ffb 100644 --- a/course/page/base.py +++ b/course/page/base.py @@ -44,7 +44,7 @@ from django.conf import settings # {{{ mypy if False: - from typing import Text, Optional, Any, Tuple, Dict, Callable # noqa + from typing import Text, Optional, Any, Tuple, Dict, Callable, FrozenSet # noqa from django import http # noqa from course.models import ( # noqa Course, @@ -371,7 +371,7 @@ class PageBase(object): ) def get_modified_permissions_for_page(self, permissions): - # type: (frozenset[Text]) -> frozenset[Text] + # type: (FrozenSet[Text]) -> FrozenSet[Text] rw_permissions = set(permissions) if hasattr(self.page_desc, "access_rules"): diff --git a/course/utils.py b/course/utils.py index 2ff1f3f567f611043a31478cbbfad6430d58c8db..2be2311b16d00e92732be2c3788672c8ef5e3c37 100644 --- a/course/utils.py +++ b/course/utils.py @@ -58,7 +58,7 @@ from course.page.base import ( # noqa # {{{ mypy if False: - from typing import Tuple, List, Text, Iterable, Any, Optional, Union, Dict # noqa + from typing import Tuple, List, Text, Iterable, Any, Optional, Union, Dict, FrozenSet # noqa from relate.utils import Repo_ish # noqa from course.models import ( # noqa Course, @@ -105,7 +105,7 @@ class FlowSessionStartRule(FlowSessionRuleBase): class FlowSessionAccessRule(FlowSessionRuleBase): def __init__( self, - permissions, # type: frozenset[Text] + permissions, # type: FrozenSet[Text] message=None, # type: Optional[Text] ): # type: (...) -> None @@ -280,7 +280,7 @@ def get_session_start_rule( flow_id, # type: Text flow_desc, # type: FlowDesc now_datetime, # type: datetime.datetime - facilities=None, # type: Optional[frozenset[Text]] + facilities=None, # type: Optional[FrozenSet[Text]] for_rollover=False, # type: bool login_exam_ticket=None, # type: Optional[ExamTicket] ): @@ -373,7 +373,7 @@ def get_session_access_rule( session, # type: FlowSession flow_desc, # type: FlowDesc now_datetime, # type: datetime.datetime - facilities=None, # type: Optional[frozenset[Text]] + facilities=None, # type: Optional[FrozenSet[Text]] login_exam_ticket=None, # type: Optional[ExamTicket] ): # type: (...) -> FlowSessionAccessRule @@ -552,7 +552,7 @@ class CoursePageContext(object): self.request = request self.course_identifier = course_identifier - self._permissions_cache = None # type: Optional[frozenset[Tuple[Text, Optional[Text]]]] # noqa + self._permissions_cache = None # type: Optional[FrozenSet[Tuple[Text, Optional[Text]]]] # noqa self._role_identifiers_cache = None # type: Optional[List[Text]] from course.models import Course # noqa @@ -612,7 +612,7 @@ class CoursePageContext(object): return self._role_identifiers_cache def permissions(self): - # type: () -> frozenset[Tuple[Text, Optional[Text]]] + # type: () -> FrozenSet[Tuple[Text, Optional[Text]]] if self.participation is None: if self._permissions_cache is not None: return self._permissions_cache