diff --git a/hippolyzer/lib/base/datatypes.py b/hippolyzer/lib/base/datatypes.py index 54135b0..d29a587 100644 --- a/hippolyzer/lib/base/datatypes.py +++ b/hippolyzer/lib/base/datatypes.py @@ -42,12 +42,10 @@ class _IterableStub: RAD_TO_DEG = 180 / math.pi -class TupleCoord(recordclass.datatuple, _IterableStub): # type: ignore - __options__ = { - "fast_new": False, - } - +class TupleCoord(recordclass.RecordClass, _IterableStub): def __init__(self, *args): + # Only to help typing, doesn't actually do anything. + # All the important stuff happens in `__new__()` pass @classmethod @@ -367,7 +365,7 @@ def flags_to_pod(flag_cls: Type[enum.IntFlag], val: int) -> Tuple[Union[str, int return tuple(flag.name for flag in iter(flag_cls) if val & flag.value) + extra -class TaggedUnion(recordclass.datatuple): # type: ignore +class TaggedUnion(recordclass.RecordClass): tag: Any value: Any diff --git a/hippolyzer/lib/base/mesh.py b/hippolyzer/lib/base/mesh.py index 39cdc9f..455f4af 100644 --- a/hippolyzer/lib/base/mesh.py +++ b/hippolyzer/lib/base/mesh.py @@ -178,7 +178,7 @@ class DomainDict(TypedDict): Min: List[float] -class VertexWeight(recordclass.datatuple): # type: ignore +class VertexWeight(recordclass.RecordClass): """Vertex weight for a specific joint on a specific vertex""" # index of the joint within the joint_names list in the skin segment joint_idx: int diff --git a/hippolyzer/lib/base/objects.py b/hippolyzer/lib/base/objects.py index 61091d9..5d9531c 100644 --- a/hippolyzer/lib/base/objects.py +++ b/hippolyzer/lib/base/objects.py @@ -35,12 +35,7 @@ import hippolyzer.lib.base.serialization as se import hippolyzer.lib.base.templates as tmpls -class Object(recordclass.datatuple): # type: ignore - __options__ = { - "use_weakref": True, - } - __weakref__: Any - +class Object(recordclass.RecordClass, use_weakref=True): # type: ignore LocalID: Optional[int] = None State: Optional[int] = None FullID: Optional[UUID] = None diff --git a/hippolyzer/lib/proxy/vocache.py b/hippolyzer/lib/proxy/vocache.py index 6690073..1fac775 100644 --- a/hippolyzer/lib/proxy/vocache.py +++ b/hippolyzer/lib/proxy/vocache.py @@ -139,7 +139,7 @@ class ViewerObjectCache: return RegionViewerObjectCache.from_file(objects_file) -class ViewerObjectCacheEntry(recordclass.datatuple): # type: ignore +class ViewerObjectCacheEntry(recordclass.dataobject): # type: ignore local_id: int crc: int data: bytes diff --git a/requirements.txt b/requirements.txt index 7d478fa..662cd2a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -aiohttp==3.8.1 +aiohttp==3.8.3 aiosignal==1.2.0 appdirs==1.4.4 Arpeggio==1.10.2 @@ -14,7 +14,7 @@ click==8.0.3 cryptography==36.0.2 defusedxml==0.7.1 Flask==2.0.2 -frozenlist==1.2.0 +frozenlist==1.3.3 gltflib==1.0.13 Glymur==0.9.6 h11==0.12.0 @@ -29,12 +29,12 @@ kaitaistruct==0.9 lazy-object-proxy==1.6.0 ldap3==2.9.1 llsd~=1.0.0 -lxml==4.6.4 +lxml==4.9.2 MarkupSafe==2.0.1 mitmproxy==8.0.0 msgpack==1.0.3 multidict==5.2.0 -numpy==1.21.4 +numpy==1.24.2 outleap~=0.4.1 parso==0.8.3 passlib==1.7.4 @@ -49,13 +49,13 @@ Pygments==2.10.0 pyOpenSSL==22.0.0 pyparsing==2.4.7 pyperclip==1.8.2 -PySide6==6.2.2 +PySide6-Essentials==6.4.2 qasync==0.22.0 -recordclass==0.14.3 +recordclass==0.18.2 requests==2.26.0 -ruamel.yaml==0.17.16 -ruamel.yaml.clib==0.2.6 -shiboken6==6.2.2 +ruamel.yaml==0.17.21 +ruamel.yaml.clib==0.2.7 +shiboken6==6.4.2 six==1.16.0 sortedcontainers==2.4.0 tornado==6.1 @@ -66,5 +66,5 @@ urwid==2.1.2 wcwidth==0.2.5 Werkzeug==2.0.2 wsproto==1.0.0 -yarl==1.7.2 -zstandard==0.15.2 \ No newline at end of file +yarl==1.8.2 +zstandard<0.18.0 \ No newline at end of file diff --git a/setup.py b/setup.py index 699d252..d34b577 100644 --- a/setup.py +++ b/setup.py @@ -45,6 +45,7 @@ setup( "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", "Programming Language :: Python :: Implementation :: CPython", "Topic :: System :: Networking :: Monitoring", "Topic :: Software Development :: Libraries :: Python Modules", @@ -85,7 +86,7 @@ setup( 'outleap<1.0', 'defusedxml', 'aiohttp<4.0.0', - 'recordclass<0.15', + 'recordclass>0.15,<0.19', 'lazy-object-proxy', 'arpeggio', # requests breaks with newer idna @@ -98,7 +99,7 @@ setup( 'Glymur<0.9.7', 'numpy<2.0', # These could be in extras_require if you don't want a GUI. - 'pyside6', + 'pyside6-essentials', 'qasync', # Needed for mesh format conversion tooling 'pycollada',