Something went wrong. Try again.
Nix Packages collection & NixOS github.com/NixOS/nixpkgs
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch, attrs, coverage, furo, ipython, msgpack, mypy, pre-commit, pyright, pytest, pytestCheckHook, pyyaml, setuptools, setuptools-scm, sphinx, sphinx-copybutton, sphinx-design, tomli-w,}:
buildPythonPackage rec { pname = "msgspec"; version = "0.21.1"; pyproject = true;
src = fetchFromGitHub { owner = "jcrist"; repo = "msgspec"; tag = version; # Note that this hash changes after some time after release because they # use `$Format:%d$` in msgspec/_version.py, and GitHub produces different # tarballs depending on whether tagged commit is the last commit, see # https://github.com/NixOS/nixpkgs/issues/84312 hash = "sha256-mjABnKhZeLLbSQPelZmi+UKZDEIiXi3c9shC8EG6tfE="; };
patches = [ # Ext.code is backed by a long, not an int. int (with sizeof(int) < sizeof(long)) makes it return the high half # of the long on big-endian, so every code turns 0 or -1 when read. # Fixes TestExt suite, and runtime usage of msgpack.Ext(), on big-endian. # https://github.com/msgspec/msgspec/pull/1135 # Remove when version >= 0.22.0 (fetchpatch { name = "0001-msgspec-Fix-backing-type-declaration-of-Ext.code.patch"; url = "https://github.com/msgspec/msgspec/commit/c24bc7025cbf153edc7d32256ea1279f49f422ea.patch"; hash = "sha256-JypmnX55s+wbWzBDsZjsQbkqpE6Cg61GpJ9lSvNrAgY="; }) ];
build-system = [ setuptools setuptools-scm ];
optional-dependencies = { dev = [ coverage mypy pre-commit pyright ] ++ optional-dependencies.doc ++ optional-dependencies.test; doc = [ furo ipython sphinx sphinx-copybutton sphinx-design ]; test = [ attrs msgpack pytest ] ++ optional-dependencies.yaml ++ optional-dependencies.toml; toml = [ tomli-w ]; yaml = [ pyyaml ]; };
nativeCheckInputs = [ pytestCheckHook ];
# `tests/typing` runs type checkers enabledTestPaths = [ "tests/unit" ];
pythonImportsCheck = [ "msgspec" ];
meta = { description = "Module to handle JSON/MessagePack"; homepage = "https://github.com/jcrist/msgspec"; changelog = "https://github.com/jcrist/msgspec/releases/tag/${src.tag}"; license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ fab ]; };}