Skip to content

Commit 41059a9

Browse files
committed
feat(updates): now run on python 3.13
1 parent 6579542 commit 41059a9

6 files changed

Lines changed: 64 additions & 56 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ instance/
6868

6969
# Sphinx documentation
7070
docs/_build/
71+
mishmash.db
7172

7273
# PyBuilder
7374
target/

mishmash/commands/sync/sync.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@
1818
from eyed3.core import TXXX_ALBUM_TYPE, VARIOUS_TYPE, LP_TYPE, SINGLE_TYPE, EP_TYPE
1919
from nicfit.console.ansi import Fg
2020
from nicfit.console import pout, perr
21+
import warnings
22+
23+
warnings.filterwarnings("ignore", module="eyed3")
24+
2125

2226
from ...util import normalizeCountry
2327
from ...orm import (Track, Artist, Album, Meta, Image, Library,

mishmash/database.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
from .orm import Artist, Track, Album, Tag
1717
from .util import safeDbUrl
1818

19-
DEFAULT_ENGINE_ARGS = {"encoding": "utf8",
19+
DEFAULT_ENGINE_ARGS = {
2020
"echo": False,
2121
}
2222
DEFAULT_SESSION_ARGS = {

mishmash/orm/core.py

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,10 @@
1212
from sqlalchemy.types import TypeDecorator
1313
from sqlalchemy import orm, event, types, Sequence
1414
from sqlalchemy.ext.declarative import declarative_base
15+
import warnings
16+
from sqlalchemy.exc import SAWarning
1517

18+
warnings.filterwarnings("ignore", category=SAWarning)
1619
import eyed3
1720
from eyed3.utils import art
1821
from eyed3.utils import guessMimetype
@@ -156,15 +159,15 @@ class Artist(Base, OrmObject):
156159
nullable=False, index=True)
157160

158161
# Relations
159-
albums = orm.relation("Album", cascade="all")
162+
albums = orm.relationship("Album", cascade="all")
160163
"""all albums by the artist"""
161-
tracks = orm.relation("Track", cascade="all")
164+
tracks = orm.relationship("Track", cascade="all")
162165
"""all tracks by the artist"""
163-
tags = orm.relation("Tag", secondary=artist_tags)
166+
tags = orm.relationship("Tag", secondary=artist_tags)
164167
"""one-to-many (artist->tag) and many-to-one (tag->artist)"""
165-
images = orm.relation("Image", secondary=artist_images, cascade="all")
168+
images = orm.relationship("Image", secondary=artist_images, cascade="all")
166169
"""one-to-many artist images."""
167-
library = orm.relation("Library")
170+
library = orm.relationship("Library")
168171

169172
def getAlbumsByType(self, album_type):
170173
if album_type == VARIOUS_TYPE:
@@ -287,13 +290,13 @@ class Album(Base, OrmObject):
287290
nullable=False, index=True)
288291

289292
# Relations
290-
artist = orm.relation("Artist")
291-
tracks = orm.relation("Track", order_by="Track.track_num",
293+
artist = orm.relationship("Artist")
294+
tracks = orm.relationship("Track", order_by="Track.track_num",
292295
cascade="all")
293-
tags = orm.relation("Tag", secondary=album_tags)
294-
images = orm.relation("Image", secondary=album_images, cascade="all")
296+
tags = orm.relationship("Tag", secondary=album_tags)
297+
images = orm.relationship("Image", secondary=album_images, cascade="all")
295298
"""one-to-many album images."""
296-
library = orm.relation("Library")
299+
library = orm.relationship("Library")
297300

298301
def getBestDate(self):
299302
from eyed3.utils import datePicker
@@ -349,10 +352,10 @@ class Track(Base, OrmObject):
349352
nullable=False, index=True)
350353

351354
# Relations
352-
artist = orm.relation("Artist")
353-
album = orm.relation("Album")
354-
tags = orm.relation("Tag", secondary=track_tags)
355-
library = orm.relation("Library")
355+
artist = orm.relationship("Artist")
356+
album = orm.relationship("Album")
357+
tags = orm.relationship("Tag", secondary=track_tags)
358+
library = orm.relationship("Library")
356359

357360
# XXX: test-only
358361
_mp3_file = None
@@ -419,7 +422,7 @@ class Tag(Base, OrmObject):
419422
nullable=False, index=True)
420423

421424
# Relations
422-
library = orm.relation("Library")
425+
library = orm.relationship("Library")
423426

424427
@orm.validates("name")
425428
def _truncateName(self, key, value):

mishmash/web/__init__.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ def _DBSession(request):
2525

2626
config.add_route('all_artists', '/artists')
2727
config.add_route('all_albums', '/albums')
28-
config.add_route('artist', '/artist/{id:\d+}') # noqa: W605
29-
config.add_route('images.covers', '/images/covers/{id:\d+|default}') # noqa: W605
30-
config.add_route('images.artist', '/images/artist/{id:\d+|default}') # noqa: W605
28+
config.add_route('artist', '/artist/{id:+}') # noqa: W605
29+
config.add_route('images.covers', '/images/covers/{id:+|default}') # noqa: W605
30+
config.add_route('images.artist', '/images/artist/{id:+|default}') # noqa: W605
3131
config.add_route('home', '/')
3232
config.add_route('search', '/search')
3333
config.add_route('new_music', '/new')
34-
config.add_route('album', '/album/{id:\d+}') # noqa: W605
34+
config.add_route('album', '/album/{id:+}') # noqa: W605
3535

3636
config.scan(".panels")
3737
config.scan(".layouts")

requirements.txt

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -4,123 +4,123 @@
44
#
55
# pip-compile --output-file=./requirements.txt requirements.txt
66
#
7-
alembic==1.4.0
7+
alembic==1.14.1
88
# via -r requirements.txt
9-
attrs==20.3.0
9+
attrs==25.1.0
1010
# via nicfit.py
11-
chameleon==3.9.0
11+
chameleon==4.6.0
1212
# via pyramid-chameleon
13-
coverage[toml]==5.5
13+
coverage[toml]==7.6.12
1414
# via eyed3
1515
deprecation==2.1.0
1616
# via
1717
# eyed3
1818
# nicfit.py
19-
eyed3==0.9.6
19+
eyed3==0.9.7
2020
# via -r requirements.txt
21-
filetype==1.0.7
21+
filetype==1.2.0
2222
# via eyed3
23-
gevent==1.4.0
23+
gevent==24.11.1
2424
# via -r requirements.txt
25-
greenlet==1.0.0
25+
greenlet==3.1.1
2626
# via gevent
27-
gunicorn==20.0.4
27+
gunicorn==23.0.0
2828
# via -r requirements.txt
29-
hupper==1.10.2
29+
hupper==1.12.1
3030
# via pyramid
3131
inotify==0.2.10
3232
# via -r requirements.txt
33-
iso3166==1.0.1
33+
iso3166==2.1.1
3434
# via -r requirements.txt
35-
mako==1.1.4
35+
mako==1.3.9
3636
# via
3737
# alembic
3838
# pyramid-mako
39-
markupsafe==1.1.1
39+
markupsafe==3.0.2
4040
# via mako
41-
nicfit.py==0.8.5
41+
nicfit.py==0.8.7
4242
# via -r requirements.txt
4343
nose==1.3.7
4444
# via inotify
45-
packaging==20.9
45+
packaging==24.2
4646
# via deprecation
4747
pastedeploy==2.1.1
4848
# via plaster-pastedeploy
49-
plaster-pastedeploy==0.7
49+
plaster-pastedeploy==1.0.1
5050
# via pyramid
51-
plaster==1.0
51+
plaster==1.1.2
5252
# via
5353
# plaster-pastedeploy
5454
# pyramid
55-
psycopg2-binary==2.8.4
55+
psycopg2-binary==2.9.10
5656
# via -r requirements.txt
57-
pyfiglet==0.8.post1
57+
pyfiglet==1.0.0rc1
5858
# via -r requirements.txt
59-
pygments==2.8.1
59+
pygments==2.19.1
6060
# via pyramid-debugtoolbar
61-
pyparsing==2.4.7
61+
pyparsing==3.2.1
6262
# via packaging
6363
pyramid-chameleon==0.3
6464
# via -r requirements.txt
65-
pyramid-debugtoolbar==4.6.1
65+
pyramid-debugtoolbar==4.12.1
6666
# via -r requirements.txt
6767
pyramid-layout==1.0
6868
# via -r requirements.txt
6969
pyramid-mako==1.1.0
7070
# via pyramid-debugtoolbar
71-
pyramid-tm==2.4
71+
pyramid-tm==2.6
7272
# via -r requirements.txt
73-
pyramid==1.10.4
73+
pyramid==2.0.2
7474
# via
7575
# -r requirements.txt
7676
# pyramid-chameleon
7777
# pyramid-debugtoolbar
7878
# pyramid-layout
7979
# pyramid-mako
8080
# pyramid-tm
81-
python-dateutil==2.8.1
81+
python-dateutil==2.9.0
8282
# via alembic
8383
python-editor==1.0.4
8484
# via alembic
85-
pyyaml==5.4.1
85+
pyyaml==6.0.2
8686
# via nicfit.py
8787
repoze.lru==0.7
8888
# via pyramid-debugtoolbar
89-
six==1.15.0
89+
six==1.17.0
9090
# via
9191
# python-dateutil
9292
# sqlalchemy-utils
93-
sqlalchemy-utils==0.36.1
93+
sqlalchemy-utils==0.41.2
9494
# via -r requirements.txt
95-
sqlalchemy==1.3.23
95+
sqlalchemy==2.0.38
9696
# via
9797
# -r requirements.txt
9898
# alembic
9999
# sqlalchemy-utils
100100
# zope.sqlalchemy
101101
toml==0.10.2
102102
# via coverage
103-
transaction==3.0.0
103+
transaction==5.0
104104
# via
105105
# -r requirements.txt
106106
# pyramid-tm
107107
# zope.sqlalchemy
108108
translationstring==1.4
109109
# via pyramid
110-
venusian==3.0.0
110+
venusian==3.1.1
111111
# via pyramid
112-
waitress==1.4.3
112+
waitress==3.0.2
113113
# via -r requirements.txt
114-
webob==1.8.7
114+
webob==1.8.9
115115
# via pyramid
116-
zope.deprecation==4.4.0
116+
zope.deprecation==5.1
117117
# via pyramid
118-
zope.interface==5.2.0
118+
zope.interface==7.2
119119
# via
120120
# pyramid
121121
# transaction
122122
# zope.sqlalchemy
123-
zope.sqlalchemy==1.3
123+
zope.sqlalchemy==3.1
124124
# via -r requirements.txt
125125

126126
# The following packages are considered to be unsafe in a requirements file:

0 commit comments

Comments
 (0)