explosion / srsly

🦉 Modern high-performance serialization utilities for Python (JSON, MessagePack, Pickle)
MIT License
432 stars 31 forks source link

Support for Python 3.13 #112

Open SamEdwardes opened 2 weeks ago

SamEdwardes commented 2 weeks ago

I imagine this may be on your radar, but just in case it is not, I am having some issues installing with Python 3.13. Thanks for the work on all your awesome tools!

~/tmp
❯ mkdir srsly-test

~/tmp
❯ cd srsly-test

~/tmp/srsly-test
❯ uv venv --python 3.13
Using CPython 3.13.0
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate

~/tmp/srsly-test
❯ uv pip install srsly
Resolved 2 packages in 1ms
error: Failed to prepare distributions
  Caused by: Failed to fetch wheel: srsly==2.4.8
  Caused by: Build backend failed to build wheel through `build_wheel` (exit status: 1)

[stdout]
Cythonizing sources
running bdist_wheel
running build
running build_py
copying srsly/util.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly
copying srsly/_yaml_api.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly
copying srsly/_msgpack_api.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly
copying srsly/__init__.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly
copying srsly/about.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly
copying srsly/_json_api.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly
copying srsly/_pickle_api.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly
copying srsly/ujson/__init__.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ujson
copying srsly/msgpack/_version.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/msgpack
copying srsly/msgpack/util.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/msgpack
copying srsly/msgpack/_msgpack_numpy.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/msgpack
copying srsly/msgpack/__init__.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/msgpack
copying srsly/msgpack/exceptions.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/msgpack
copying srsly/msgpack/_ext_type.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/msgpack
copying srsly/cloudpickle/cloudpickle.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/cloudpickle
copying srsly/cloudpickle/compat.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/cloudpickle
copying srsly/cloudpickle/__init__.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/cloudpickle
copying srsly/cloudpickle/cloudpickle_fast.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/cloudpickle
copying srsly/tests/test_msgpack_api.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests
copying srsly/tests/test_json_api.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests
copying srsly/tests/test_pickle_api.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests
copying srsly/tests/test_yaml_api.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests
copying srsly/tests/util.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests
copying srsly/tests/__init__.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests
copying srsly/ruamel_yaml/scalarfloat.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/scanner.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/compat.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/error.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/anchor.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/constructor.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/composer.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/util.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/events.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/scalarint.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/scalarbool.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/configobjwalker.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/__init__.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/representer.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/tokens.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/dumper.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/cyaml.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/parser.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/reader.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/scalarstring.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/loader.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/resolver.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/serializer.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/nodes.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/timestamp.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/main.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/emitter.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/ruamel_yaml/comments.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ruamel_yaml
copying srsly/tests/ujson/__init__.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ujson
copying srsly/tests/ujson/test_ujson.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ujson
copying srsly/tests/msgpack/test_extension.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/msgpack
copying srsly/tests/msgpack/test_subtype.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/msgpack
copying srsly/tests/msgpack/test_buffer.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/msgpack
copying srsly/tests/msgpack/test_unpack.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/msgpack
copying srsly/tests/msgpack/test_pack.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/msgpack
copying srsly/tests/msgpack/__init__.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/msgpack
copying srsly/tests/msgpack/test_except.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/msgpack
copying srsly/tests/msgpack/test_case.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/msgpack
copying srsly/tests/msgpack/test_read_size.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/msgpack
copying srsly/tests/msgpack/test_memoryview.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/msgpack
copying srsly/tests/msgpack/test_seq.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/msgpack
copying srsly/tests/msgpack/test_limits.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/msgpack
copying srsly/tests/msgpack/test_newspec.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/msgpack
copying srsly/tests/msgpack/test_numpy.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/msgpack
copying srsly/tests/msgpack/test_format.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/msgpack
copying srsly/tests/msgpack/test_stricttype.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/msgpack
copying srsly/tests/msgpack/test_sequnpack.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/msgpack
copying srsly/tests/cloudpickle/testutils.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/cloudpickle
copying srsly/tests/cloudpickle/__init__.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/cloudpickle
copying srsly/tests/cloudpickle/cloudpickle_test.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/cloudpickle
copying srsly/tests/cloudpickle/cloudpickle_file_test.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/cloudpickle
copying srsly/tests/ruamel_yaml/test_deprecation.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_appliance.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_version.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_line_col.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_literal.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_none.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_class_register.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_indentation.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_json_numbers.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_string.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_copy.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_z_check_debug_leftovers.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_yamlobject.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/__init__.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_program_config.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_flowsequencekey.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_issues.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_datetime.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_int.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_add_xxx.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_tag.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_comments.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_api_change.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_anchor.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_fail.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/roundtrip.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_float.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_spec_examples.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_comment_manipulation.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_collections.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_a_dedent.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_numpy.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_documents.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_yamlfile.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_z_data.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
copying srsly/tests/ruamel_yaml/test_contextmanager.py -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ruamel_yaml
running egg_info
writing srsly.egg-info/PKG-INFO
writing dependency_links to srsly.egg-info/dependency_links.txt
writing entry points to srsly.egg-info/entry_points.txt
writing requirements to srsly.egg-info/requires.txt
writing top-level names to srsly.egg-info/top_level.txt
dependency /Users/samedwardes/Library/Application Support/uv/python/cpython-3.13.0-macos-aarch64-none/include/python3.13/Python.h won't be automatically included in the manifest: the path must be relative
dependency /Users/samedwardes/Library/Application Support/uv/python/cpython-3.13.0-macos-aarch64-none/include/python3.13/pythread.h won't be automatically included in the manifest: the path must be relative
dependency /Users/samedwardes/Library/Application Support/uv/python/cpython-3.13.0-macos-aarch64-none/include/python3.13/Python.h won't be automatically included in the manifest: the path must be relative
dependency /Users/samedwardes/Library/Application Support/uv/python/cpython-3.13.0-macos-aarch64-none/include/python3.13/pythread.h won't be automatically included in the manifest: the path must be relative
reading manifest file 'srsly.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'srsly.egg-info/SOURCES.txt'
copying srsly/ujson/JSONtoObj.c -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ujson
copying srsly/ujson/objToJSON.c -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ujson
copying srsly/ujson/py_defines.h -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ujson
copying srsly/ujson/ujson.c -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ujson
copying srsly/ujson/version.h -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ujson
copying srsly/ujson/lib/dconv_wrapper.cc -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ujson/lib
copying srsly/ujson/lib/ultrajson.h -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ujson/lib
copying srsly/ujson/lib/ultrajsondec.c -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ujson/lib
copying srsly/ujson/lib/ultrajsonenc.c -> build/lib.macosx-11.0-arm64-cpython-313/srsly/ujson/lib
copying srsly/msgpack/_packer.cpp -> build/lib.macosx-11.0-arm64-cpython-313/srsly/msgpack
copying srsly/msgpack/_packer.pyx -> build/lib.macosx-11.0-arm64-cpython-313/srsly/msgpack
copying srsly/msgpack/_unpacker.cpp -> build/lib.macosx-11.0-arm64-cpython-313/srsly/msgpack
copying srsly/msgpack/_unpacker.pyx -> build/lib.macosx-11.0-arm64-cpython-313/srsly/msgpack
copying srsly/msgpack/buff_converter.h -> build/lib.macosx-11.0-arm64-cpython-313/srsly/msgpack
copying srsly/msgpack/pack.h -> build/lib.macosx-11.0-arm64-cpython-313/srsly/msgpack
copying srsly/msgpack/pack_template.h -> build/lib.macosx-11.0-arm64-cpython-313/srsly/msgpack
copying srsly/msgpack/sysdep.h -> build/lib.macosx-11.0-arm64-cpython-313/srsly/msgpack
copying srsly/msgpack/unpack.h -> build/lib.macosx-11.0-arm64-cpython-313/srsly/msgpack
copying srsly/msgpack/unpack_define.h -> build/lib.macosx-11.0-arm64-cpython-313/srsly/msgpack
copying srsly/msgpack/unpack_template.h -> build/lib.macosx-11.0-arm64-cpython-313/srsly/msgpack
copying srsly/tests/ujson/334-reproducer.json -> build/lib.macosx-11.0-arm64-cpython-313/srsly/tests/ujson
running build_ext
building 'srsly.msgpack._unpacker' extension
clang++ -fno-strict-overflow -Wsign-compare -Wunreachable-code -DNDEBUG -g -O3 -Wall -arch arm64 -mmacosx-version-min=11.0 -Wno-nullability-completeness -Wno-expansion-to-defined -Wno-undef-prefix -fPIC -Werror=unguarded-availability-new -D__LITTLE_ENDIAN__=1 -Isrsly/msgpack "-I/Users/samedwardes/Library/Application Support/uv/python/cpython-3.13.0-macos-aarch64-none/include/python3.13" -I. -I/Users/samedwardes/.cache/uv/builds-v0/.tmp4C8EL7/include "-I/Users/samedwardes/Library/Application Support/uv/python/cpython-3.13.0-macos-aarch64-none/include/python3.13" -c srsly/msgpack/_unpacker.cpp -o build/temp.macosx-11.0-arm64-cpython-313/srsly/msgpack/_unpacker.o -O2 -Wno-strict-prototypes -Wno-unused-function

[stderr]
warning: no files found matching '*.pxd' under directory 'srsly'
/Users/samedwardes/.cache/uv/builds-v0/.tmp4C8EL7/lib/python3.13/site-packages/setuptools/command/build_py.py:218: _Warning: Package 'srsly.ujson.lib' is absent from the `packages` configuration.
!!

        ********************************************************************************
        ############################
        # Package would be ignored #
        ############################
        Python recognizes 'srsly.ujson.lib' as an importable package[^1],
        but it is absent from setuptools' `packages` configuration.

        This leads to an ambiguous overall configuration. If you want to distribute this
        package, please make sure that 'srsly.ujson.lib' is explicitly added
        to the `packages` configuration field.

        Alternatively, you can also rely on setuptools' discovery methods
        (for example by using `find_namespace_packages(...)`/`find_namespace:`
        instead of `find_packages(...)`/`find:`).

        You can read more about "package discovery" on setuptools documentation page:

        - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

        If you don't want 'srsly.ujson.lib' to be distributed and are
        already explicitly excluding 'srsly.ujson.lib' via
        `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
        you can try to use `exclude_package_data`, or `include-package-data=False` in
        combination with a more fine grained `package-data` configuration.

        You can read more about "package data files" on setuptools documentation page:

        - https://setuptools.pypa.io/en/latest/userguide/datafiles.html

        [^1]: For Python, any directory (with suitable naming) can be imported,
              even if it does not contain any `.py` files.
              On the other hand, currently there is no concept of package data
              directory, all directories are treated like packages.
        ********************************************************************************

!!
  check.warn(importable)
srsly/msgpack/_unpacker.cpp:877:59: warning: 'Py_UNICODE' is deprecated [-Wdeprecated-declarations]
  877 | static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) {
      |                                                           ^
/Users/samedwardes/Library/Application Support/uv/python/cpython-3.13.0-macos-aarch64-none/include/python3.13/cpython/unicodeobject.h:10:1: note: 'Py_UNICODE' has been explicitly marked deprecated here
   10 | Py_DEPRECATED(3.13) typedef wchar_t Py_UNICODE;
      | ^
/Users/samedwardes/Library/Application Support/uv/python/cpython-3.13.0-macos-aarch64-none/include/python3.13/pyport.h:251:54: note: expanded from macro 'Py_DEPRECATED'
  251 | #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
      |                                                      ^
srsly/msgpack/_unpacker.cpp:878:11: warning: 'Py_UNICODE' is deprecated [-Wdeprecated-declarations]
  878 |     const Py_UNICODE *u_end = u;
      |           ^
/Users/samedwardes/Library/Application Support/uv/python/cpython-3.13.0-macos-aarch64-none/include/python3.13/cpython/unicodeobject.h:10:1: note: 'Py_UNICODE' has been explicitly marked deprecated here
   10 | Py_DEPRECATED(3.13) typedef wchar_t Py_UNICODE;
      | ^
/Users/samedwardes/Library/Application Support/uv/python/cpython-3.13.0-macos-aarch64-none/include/python3.13/pyport.h:251:54: note: expanded from macro 'Py_DEPRECATED'
  251 | #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
      |                                                      ^
srsly/msgpack/_unpacker.cpp:2605:17: error: use of undeclared identifier 'PyObject_AsReadBuffer'; did you mean 'PyObject_GetBuffer'?
 2605 |     __pyx_t_2 = PyObject_AsReadBuffer(__pyx_v_obj, ((void const **)__pyx_v_buf), __pyx_v_buffer_len); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 136, __pyx_L1_error)
      |                 ^~~~~~~~~~~~~~~~~~~~~
      |                 PyObject_GetBuffer
/Users/samedwardes/Library/Application Support/uv/python/cpython-3.13.0-macos-aarch64-none/include/python3.13/pybuffer.h:46:17: note: 'PyObject_GetBuffer' declared here
   46 | PyAPI_FUNC(int) PyObject_GetBuffer(PyObject *obj, Py_buffer *view,
      |                 ^
srsly/msgpack/_unpacker.cpp:2605:52: error: cannot initialize a parameter of type 'Py_buffer *' with an rvalue of type 'const void **'
 2605 |     __pyx_t_2 = PyObject_AsReadBuffer(__pyx_v_obj, ((void const **)__pyx_v_buf), __pyx_v_buffer_len); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 136, __pyx_L1_error)
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/samedwardes/Library/Application Support/uv/python/cpython-3.13.0-macos-aarch64-none/include/python3.13/pybuffer.h:46:62: note: passing argument to parameter 'view' here
   46 | PyAPI_FUNC(int) PyObject_GetBuffer(PyObject *obj, Py_buffer *view,
      |                                                              ^
srsly/msgpack/_unpacker.cpp:9638:27: error: no matching function for call to '_PyLong_AsByteArray'
 9638 |                 int ret = _PyLong_AsByteArray((PyLongObject *)v,
      |                           ^~~~~~~~~~~~~~~~~~~
/Users/samedwardes/Library/Application Support/uv/python/cpython-3.13.0-macos-aarch64-none/include/python3.13/cpython/longobject.h:111:17: note: candidate function not viable: requires 6 arguments, but 5 were provided
  111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
      |                 ^                   ~~~~~~~~~~~~~~~~
  112 |     unsigned char* bytes, size_t n,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  113 |     int little_endian, int is_signed, int with_exceptions);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
srsly/msgpack/_unpacker.cpp:9834:27: error: no matching function for call to '_PyLong_AsByteArray'
 9834 |                 int ret = _PyLong_AsByteArray((PyLongObject *)v,
      |                           ^~~~~~~~~~~~~~~~~~~
/Users/samedwardes/Library/Application Support/uv/python/cpython-3.13.0-macos-aarch64-none/include/python3.13/cpython/longobject.h:111:17: note: candidate function not viable: requires 6 arguments, but 5 were provided
  111 | PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
      |                 ^                   ~~~~~~~~~~~~~~~~
  112 |     unsigned char* bytes, size_t n,
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  113 |     int little_endian, int is_signed, int with_exceptions);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 warnings and 4 errors generated.
error: command '/usr/bin/clang++' failed with exit code 1
salty-horse commented 1 week ago

Besides the required code changes to use the buffer protocol, this will probably require upgrading cython, which is blocked by the issue mentioned in #97

SamEdwardes commented 1 week ago

Thank you! I figured this was on your radar. Just wanted to share in case.

salty-horse commented 1 week ago

I'm not related to the project. Just came here because I had the same issue :)