This is an automated email from the ASF dual-hosted git repository.

brondsem pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/allura.git

commit 83d264c13155e8e64fb03331042774b9974de572
Author: Dave Brondsema <[email protected]>
AuthorDate: Thu Aug 3 13:00:04 2023 -0400

    [#8516] misc type annotations
---
 Allura/allura/controllers/discuss.py                 |  4 ++--
 Allura/allura/model/artifact.py                      |  4 +++-
 Allura/allura/model/discuss.py                       | 16 ++++++++--------
 ForgeBlog/forgeblog/main.py                          |  2 +-
 ForgeDiscussion/forgediscussion/controllers/forum.py |  5 +++--
 5 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/Allura/allura/controllers/discuss.py 
b/Allura/allura/controllers/discuss.py
index f095518c3..43478c9b3 100644
--- a/Allura/allura/controllers/discuss.py
+++ b/Allura/allura/controllers/discuss.py
@@ -171,8 +171,8 @@ class ThreadsController(BaseController, 
metaclass=h.ProxiedAttrMeta):
 
 
 class ThreadController(BaseController, FeedController, 
metaclass=h.ProxiedAttrMeta):
-    M = h.attrproxy('_discussion_controller', 'M')
-    W = h.attrproxy('_discussion_controller', 'W')
+    M: ModelConfig = h.attrproxy('_discussion_controller', 'M')
+    W: WidgetConfig = h.attrproxy('_discussion_controller', 'W')
     ThreadController = h.attrproxy(
         '_discussion_controller', 'ThreadController')
     PostController = h.attrproxy('_discussion_controller', 'PostController')
diff --git a/Allura/allura/model/artifact.py b/Allura/allura/model/artifact.py
index d84baf287..3527b1d48 100644
--- a/Allura/allura/model/artifact.py
+++ b/Allura/allura/model/artifact.py
@@ -14,6 +14,7 @@
 #       KIND, either express or implied.  See the License for the
 #       specific language governing permissions and limitations
 #       under the License.
+from __future__ import annotations
 
 import logging
 from collections import defaultdict
@@ -50,6 +51,7 @@ import six
 
 if typing.TYPE_CHECKING:
     from ming.odm.mapper import Query
+    from allura.model import BaseAttachment
 
 log = logging.getLogger(__name__)
 
@@ -466,7 +468,7 @@ class Artifact(MappedClass, SearchIndexable):
     def attachments(self):
         return self._get_attachments()
 
-    def _get_attachments(self, unique_files_only=True, 
include_thumbnails=False):
+    def _get_attachments(self, unique_files_only=True, 
include_thumbnails=False) -> list[BaseAttachment]:
         if hasattr(self, '_attachments'):
             atts = self._attachments
         else:
diff --git a/Allura/allura/model/discuss.py b/Allura/allura/model/discuss.py
index fabd9b7f0..24288966d 100644
--- a/Allura/allura/model/discuss.py
+++ b/Allura/allura/model/discuss.py
@@ -14,7 +14,7 @@
 #       KIND, either express or implied.  See the License for the
 #       specific language governing permissions and limitations
 #       under the License.
-
+from __future__ import annotations
 import os
 import logging
 from datetime import datetime
@@ -87,11 +87,11 @@ class Discussion(Artifact, ActivityObject):
         return 'discussion %s' % self.name
 
     @classmethod
-    def thread_class(cls):
+    def thread_class(cls) -> Thread:
         return cls.threads.related
 
     @classmethod
-    def post_class(cls):
+    def post_class(cls) -> Post:
         return cls.posts.related
 
     @classmethod
@@ -256,11 +256,11 @@ class Thread(Artifact, ActivityObject):
                 continue
 
     @classmethod
-    def discussion_class(cls):
+    def discussion_class(cls) -> Discussion:
         return cls.discussion.related
 
     @classmethod
-    def post_class(cls):
+    def post_class(cls) -> Post:
         return cls.posts.related
 
     @classmethod
@@ -491,7 +491,7 @@ class PostHistory(Snapshot):
     artifact_id = ForeignIdProperty('Post')
 
     @classmethod
-    def post_class(cls):
+    def post_class(cls) -> Post:
         return cls.artifact_id.related
 
     def original(self):
@@ -623,11 +623,11 @@ class Post(Message, VersionedArtifact, ActivityObject, 
ReactableArtifact):
         return result
 
     @classmethod
-    def discussion_class(cls):
+    def discussion_class(cls) -> Discussion:
         return cls.discussion.related
 
     @classmethod
-    def thread_class(cls):
+    def thread_class(cls) -> Thread:
         return cls.thread.related
 
     @classmethod
diff --git a/ForgeBlog/forgeblog/main.py b/ForgeBlog/forgeblog/main.py
index 3e57cd5e9..91c597a57 100644
--- a/ForgeBlog/forgeblog/main.py
+++ b/ForgeBlog/forgeblog/main.py
@@ -375,7 +375,7 @@ class BlogAttachmentsController(AttachmentsController):
 
 class PostController(BaseController, FeedController):
 
-    def __init__(self, post):
+    def __init__(self, post: BM.BlogPost):
         self.post = post
         self.attachment = BlogAttachmentsController(self.post)
 
diff --git a/ForgeDiscussion/forgediscussion/controllers/forum.py 
b/ForgeDiscussion/forgediscussion/controllers/forum.py
index 9d7e343a2..953d40dd0 100644
--- a/ForgeDiscussion/forgediscussion/controllers/forum.py
+++ b/ForgeDiscussion/forgediscussion/controllers/forum.py
@@ -33,6 +33,7 @@ from allura import model as M
 from allura.lib.security import has_access, require_access
 from allura.lib.decorators import require_post
 from allura.controllers import DiscussionController, ThreadController, 
PostController, ModerationController
+from allura.controllers import discuss as controllers_discuss
 from allura.lib.widgets import discuss as DW
 from allura.lib.widgets.subscriptions import SubscribeForm
 
@@ -51,14 +52,14 @@ class pass_validator:
 pass_validator = pass_validator()
 
 
-class ModelConfig:
+class ModelConfig(controllers_discuss.ModelConfig):
     Discussion = DM.Forum
     Thread = DM.ForumThread
     Post = DM.ForumPost
     Attachment = M.DiscussionAttachment
 
 
-class WidgetConfig:
+class WidgetConfig(controllers_discuss.WidgetConfig):
     # Forms
     subscription_form = DW.SubscriptionForm()
     subscribe_form = SubscribeForm()

Reply via email to