Use standard Python type hints in models

This commit is contained in:
Ciarán Ainsworth 2022-07-17 16:28:59 +02:00
parent 1bb80c67c9
commit 2746d8750d
5 changed files with 7 additions and 34 deletions

View File

@ -15,9 +15,6 @@ from funkwhale_api.federation import models as federation_models
from funkwhale_api.federation import utils as federation_utils from funkwhale_api.federation import utils as federation_utils
from funkwhale_api.users import models as user_models from funkwhale_api.users import models as user_models
from drf_spectacular.utils import extend_schema_field
from drf_spectacular.types import OpenApiTypes
def empty_dict(): def empty_dict():
return {} return {}
@ -83,8 +80,7 @@ class Channel(models.Model):
return self.actor.fid return self.actor.fid
@property @property
@extend_schema_field(OpenApiTypes.BOOL) def is_local(self) -> bool:
def is_local(self):
return self.actor.is_local return self.actor.is_local
@property @property

View File

@ -18,9 +18,6 @@ from django.urls import reverse
from versatileimagefield.fields import VersatileImageField from versatileimagefield.fields import VersatileImageField
from versatileimagefield.image_warmer import VersatileImageFieldWarmer from versatileimagefield.image_warmer import VersatileImageFieldWarmer
from drf_spectacular.utils import extend_schema_field
from drf_spectacular.types import OpenApiTypes
from funkwhale_api.federation import utils as federation_utils from funkwhale_api.federation import utils as federation_utils
from . import utils from . import utils
@ -243,7 +240,6 @@ class Attachment(models.Model):
return super().save() return super().save()
@property @property
@extend_schema_field(OpenApiTypes.BOOL)
def is_local(self): def is_local(self):
return federation_utils.is_local(self.fid) return federation_utils.is_local(self.fid)

View File

@ -19,9 +19,6 @@ from funkwhale_api.common import utils as common_utils
from funkwhale_api.common import validators as common_validators from funkwhale_api.common import validators as common_validators
from funkwhale_api.music import utils as music_utils from funkwhale_api.music import utils as music_utils
from drf_spectacular.utils import extend_schema_field
from drf_spectacular.types import OpenApiTypes
from . import utils as federation_utils from . import utils as federation_utils
TYPE_CHOICES = [ TYPE_CHOICES = [
@ -51,8 +48,7 @@ class FederationMixin(models.Model):
abstract = True abstract = True
@property @property
@extend_schema_field(OpenApiTypes.BOOL) def is_local(self) -> bool:
def is_local(self):
return federation_utils.is_local(self.fid) return federation_utils.is_local(self.fid)
@property @property
@ -176,8 +172,7 @@ class Domain(models.Model):
return data return data
@property @property
@extend_schema_field(OpenApiTypes.BOOL) def is_local(self) -> bool:
def is_local(self):
return self.name == settings.FEDERATION_HOSTNAME return self.name == settings.FEDERATION_HOSTNAME
@ -237,24 +232,20 @@ class Actor(models.Model):
return "{}#main-key".format(self.fid) return "{}#main-key".format(self.fid)
@property @property
@extend_schema_field(OpenApiTypes.STR) def full_username(self) -> str:
def full_username(self):
return "{}@{}".format(self.preferred_username, self.domain_id) return "{}@{}".format(self.preferred_username, self.domain_id)
def __str__(self): def __str__(self):
return "{}@{}".format(self.preferred_username, self.domain_id) return "{}@{}".format(self.preferred_username, self.domain_id)
@property @property
@extend_schema_field(OpenApiTypes.BOOL)
def is_local(self) -> bool: def is_local(self) -> bool:
return self.domain_id == settings.FEDERATION_HOSTNAME return self.domain_id == settings.FEDERATION_HOSTNAME
@extend_schema_field({'type': 'array', 'items': {'type': 'object'}})
def get_approved_followers(self): def get_approved_followers(self):
follows = self.received_follows.filter(approved=True) follows = self.received_follows.filter(approved=True)
return self.followers.filter(pk__in=follows.values_list("actor", flat=True)) return self.followers.filter(pk__in=follows.values_list("actor", flat=True))
@extend_schema_field(OpenApiTypes.BOOL)
def should_autoapprove_follow(self, actor): def should_autoapprove_follow(self, actor):
if self.get_channel(): if self.get_channel():
return True return True

View File

@ -35,9 +35,6 @@ from funkwhale_api.federation import utils as federation_utils
from funkwhale_api.tags import models as tags_models from funkwhale_api.tags import models as tags_models
from . import importers, metadata, utils from . import importers, metadata, utils
from drf_spectacular.utils import extend_schema_field
from drf_spectacular.types import OpenApiTypes
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
MAX_LENGTHS = { MAX_LENGTHS = {
@ -140,8 +137,7 @@ class APIModelMixin(models.Model):
return super().save(**kwargs) return super().save(**kwargs)
@property @property
@extend_schema_field(OpenApiTypes.BOOL) def is_local(self) -> bool:
def is_local(self):
return federation_utils.is_local(self.fid) return federation_utils.is_local(self.fid)
@property @property
@ -152,7 +148,6 @@ class APIModelMixin(models.Model):
parsed = urllib.parse.urlparse(self.fid) parsed = urllib.parse.urlparse(self.fid)
return parsed.hostname return parsed.hostname
@extend_schema_field({'type': 'array', 'items': {'type': 'string'}})
def get_tags(self): def get_tags(self):
return list(sorted(self.tagged_items.values_list("tag__name", flat=True))) return list(sorted(self.tagged_items.values_list("tag__name", flat=True)))
@ -787,8 +782,7 @@ class Upload(models.Model):
objects = UploadQuerySet.as_manager() objects = UploadQuerySet.as_manager()
@property @property
@extend_schema_field(OpenApiTypes.BOOL) def is_local(self) -> bool:
def is_local(self):
return federation_utils.is_local(self.fid) return federation_utils.is_local(self.fid)
@property @property

View File

@ -29,9 +29,6 @@ from funkwhale_api.federation import keys
from funkwhale_api.federation import models as federation_models from funkwhale_api.federation import models as federation_models
from funkwhale_api.federation import utils as federation_utils from funkwhale_api.federation import utils as federation_utils
from drf_spectacular.utils import extend_schema_field
from drf_spectacular.types import OpenApiTypes
def get_token(length=5): def get_token(length=5):
wordlist_path = os.path.join( wordlist_path = os.path.join(
os.path.dirname(os.path.abspath(__file__)), "wordlist.txt" os.path.dirname(os.path.abspath(__file__)), "wordlist.txt"
@ -309,8 +306,7 @@ class User(AbstractUser):
return groups return groups
@extend_schema_field(OpenApiTypes.STR) def full_username(self) -> str:
def full_username(self):
return "{}@{}".format(self.username, settings.FEDERATION_HOSTNAME) return "{}@{}".format(self.username, settings.FEDERATION_HOSTNAME)
def get_avatar(self): def get_avatar(self):