Feat: packaging (#127)

- Add configuration files for packaging
- Precommit now uses ruff

Co-authored-by: bkfox <thomas bkfox net>
Reviewed-on: rc/aircox#127
This commit is contained in:
Thomas Kairos
2023-10-11 10:58:34 +02:00
parent 5ea092dba6
commit f7a61fe6c0
82 changed files with 332 additions and 935 deletions

View File

@@ -50,9 +50,7 @@ class SoundQuerySet(models.QuerySet):
def path(self, paths):
if isinstance(paths, str):
return self.filter(file=paths.replace(conf.MEDIA_ROOT + "/", ""))
return self.filter(
file__in=(p.replace(conf.MEDIA_ROOT + "/", "") for p in paths)
)
return self.filter(file__in=(p.replace(conf.MEDIA_ROOT + "/", "") for p in paths))
def playlist(self, archive=True, order_by=True):
"""Return files absolute paths as a flat list (exclude sound without
@@ -66,9 +64,7 @@ class SoundQuerySet(models.QuerySet):
self = self.order_by("file")
return [
os.path.join(conf.MEDIA_ROOT, file)
for file in self.filter(file__isnull=False).values_list(
"file", flat=True
)
for file in self.filter(file__isnull=False).values_list("file", flat=True)
]
def search(self, query):
@@ -122,11 +118,7 @@ class Sound(models.Model):
)
def _upload_to(self, filename):
subdir = (
settings.SOUND_ARCHIVES_SUBDIR
if self.type == self.TYPE_ARCHIVE
else settings.SOUND_EXCERPTS_SUBDIR
)
subdir = settings.SOUND_ARCHIVES_SUBDIR if self.type == self.TYPE_ARCHIVE else settings.SOUND_EXCERPTS_SUBDIR
return os.path.join(self.program.path, subdir, filename)
file = models.FileField(
@@ -161,10 +153,7 @@ class Sound(models.Model):
)
is_downloadable = models.BooleanField(
_("downloadable"),
help_text=_(
"whether it can be publicly downloaded by visitors (sound must be "
"public)"
),
help_text=_("whether it can be publicly downloaded by visitors (sound must be " "public)"),
default=False,
)
@@ -224,9 +213,7 @@ class Sound(models.Model):
if self.type == self.TYPE_REMOVED and self.program:
changed = True
self.type = (
self.TYPE_ARCHIVE
if self.file.name.startswith(self.program.archives_path)
else self.TYPE_EXCERPT
self.TYPE_ARCHIVE if self.file.name.startswith(self.program.archives_path) else self.TYPE_EXCERPT
)
# check mtime -> reset quality if changed (assume file changed)
@@ -299,8 +286,7 @@ class Track(models.Model):
blank=True,
null=True,
help_text=_(
"additional informations about this track, such as "
"the version, if is it a remix, features, etc."
"additional informations about this track, such as " "the version, if is it a remix, features, etc."
),
)
@@ -310,13 +296,9 @@ class Track(models.Model):
ordering = ("position",)
def __str__(self):
return "{self.artist} -- {self.title} -- {self.position}".format(
self=self
)
return "{self.artist} -- {self.title} -- {self.position}".format(self=self)
def save(self, *args, **kwargs):
if (self.sound is None and self.episode is None) or (
self.sound is not None and self.episode is not None
):
if (self.sound is None and self.episode is None) or (self.sound is not None and self.episode is not None):
raise ValueError("sound XOR episode is required")
super().save(*args, **kwargs)