# HG changeset patch
# User ijl <ijl@mailbox.org>
# Date 1600783512 0
#      Tue Sep 22 14:05:12 2020 +0000
# Node ID 54f6f13a86196e1e0b70a2757b60892da51d4e22
# Parent  6b3612fbeaeefe0ab6adc2fc9ebea1dcc9e0c25b
cargo, rust update

diff --git a/Cargo.lock b/Cargo.lock
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -44,9 +44,9 @@
 
 [[package]]
 name = "encoding_rs"
-version = "0.8.23"
+version = "0.8.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8ac63f94732332f44fe654443c46f6375d1939684c17b0afb6cb56b0456e171"
+checksum = "a51b8cf747471cb9499b6d59e59b0444f4c90eba8968c4e44874e92b5b64ace2"
 dependencies = [
  "cfg-if",
  "packed_simd",
@@ -60,9 +60,12 @@
 
 [[package]]
 name = "instant"
-version = "0.1.6"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b141fdc7836c525d4d594027d318c84161ca17aaf8113ab1f81ab93ae897485"
+checksum = "63312a18f7ea8760cdd0a7c5aac1a619752a246b833545e3e36d1f81f7cd9e66"
+dependencies = [
+ "cfg-if",
+]
 
 [[package]]
 name = "itoa"
@@ -85,9 +88,9 @@
 
 [[package]]
 name = "libc"
-version = "0.2.74"
+version = "0.2.77"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2f02823cf78b754822df5f7f268fb59822e7296276d3e069d8e8cb26a14bd10"
+checksum = "f2f96b10ec2560088a8e76961b00d47107b3a625fecb76dedb29ee7ccbf98235"
 
 [[package]]
 name = "lock_api"
@@ -100,9 +103,9 @@
 
 [[package]]
 name = "once_cell"
-version = "1.4.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
+checksum = "260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad"
 
 [[package]]
 name = "orjson"
@@ -159,9 +162,9 @@
 
 [[package]]
 name = "pyo3"
-version = "0.11.1"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ca8710ffa8211c9a62a8a3863c4267c710dc42a82a7fd29c97de465d7ea6b7d"
+checksum = "b065394f390af20bfe60bad3728d71dfc4d397a5717f46cf9083a40ea468a52c"
 dependencies = [
  "libc",
  "parking_lot",
@@ -193,9 +196,9 @@
 
 [[package]]
 name = "serde"
-version = "1.0.115"
+version = "1.0.116"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e54c9a88f2da7238af84b5101443f0c0d0a3bbdc455e34a5c9497b1903ed55d5"
+checksum = "96fe57af81d28386a513cbc6858332abc6117cfdb5999647c6444b8f43a370a5"
 
 [[package]]
 name = "serde_json"
@@ -209,9 +212,9 @@
 
 [[package]]
 name = "smallvec"
-version = "1.4.1"
+version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3757cb9d89161a2f24e1cf78efa0c1fcff485d18e3f55e0aa3480824ddaa0f3f"
+checksum = "fbee7696b84bbf3d89a1c2eccff0850e3047ed46bfcd2e92c29a2d074d57e252"
 
 [[package]]
 name = "static_assertions"
diff --git a/Cargo.toml b/Cargo.toml
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -55,7 +55,7 @@
 inlinable_string = { version = "0.1" }
 itoa = { version = "0.4", default_features = false }
 once_cell = { version = "1", default_features = false }
-pyo3 = { version = "0.11", default_features = false, features = ["extension-module"]}
+pyo3 = { version = "0.12", default_features = false, features = ["extension-module"]}
 ryu = { version = "1" }
 serde = { version = "1", default_features = false }
 serde_json = { path = "./json", default_features = false, features = ["std"] }
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1136,7 +1136,7 @@
 ```
 
 Problems with the Rust nightly channel may require pinning a version.
-`nightly-2020-06-09` is known to be ok.
+`nightly-2020-09-14` is known to be ok.
 
 orjson is tested for amd64 and aarch64 on Linux, macOS, and Windows. It
 may not work on 32-bit targets. It should be compiled with
diff --git a/ci/azure-pipelines.yml b/ci/azure-pipelines.yml
--- a/ci/azure-pipelines.yml
+++ b/ci/azure-pipelines.yml
@@ -4,7 +4,7 @@
     - '*'
 
 variables:
-  toolchain: nightly-2020-07-01
+  toolchain: nightly-2020-09-14
 
 jobs:
 
@@ -156,7 +156,7 @@
   pool:
     vmImage: windows-2019
   variables:
-    interpreter: C:\hostedtoolcache\windows\Python\3.7.8\x64\python.exe
+    interpreter: C:\hostedtoolcache\windows\Python\3.7.9\x64\python.exe
     target: x86_64-pc-windows-msvc
   steps:
   - task: UsePythonVersion@0
@@ -181,45 +181,3 @@
       architecture: 'x64'
   - checkout: self
   - template: ./azure-win.yml
-
-- job: linux_python38_amd64_manylinux1
-  pool:
-    vmImage: ubuntu-20.04
-  container: quay.io/pypa/manylinux1_x86_64:latest
-  variables:
-    interpreter: python3.8
-    manylinux: 1
-    path: /home/vsts_azpcontainer/.local/bin:/home/vsts_azpcontainer/.cargo/bin:/opt/python/cp38-cp38/bin:/opt/rh/devtoolset-2/root/usr/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
-    target: x86_64-unknown-linux-gnu
-    verifyManylinux: true
-  steps:
-  - checkout: self
-  - template: ./azure-linux-container.yml
-
-- job: linux_python37_amd64_manylinux1
-  pool:
-    vmImage: ubuntu-20.04
-  container: quay.io/pypa/manylinux1_x86_64:latest
-  variables:
-    interpreter: python3.7
-    manylinux: 1
-    path: /home/vsts_azpcontainer/.local/bin:/home/vsts_azpcontainer/.cargo/bin:/opt/python/cp37-cp37m/bin:/opt/rh/devtoolset-2/root/usr/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
-    target: x86_64-unknown-linux-gnu
-    verifyManylinux: true
-  steps:
-  - checkout: self
-  - template: ./azure-linux-container.yml
-
-- job: linux_python36_amd64_manylinux1
-  pool:
-    vmImage: ubuntu-20.04
-  container: quay.io/pypa/manylinux1_x86_64:latest
-  variables:
-    interpreter: python3.6
-    manylinux: 1
-    path: /home/vsts_azpcontainer/.local/bin:/home/vsts_azpcontainer/.cargo/bin:/opt/python/cp36-cp36m/bin:/opt/rh/devtoolset-2/root/usr/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
-    target: x86_64-unknown-linux-gnu
-    verifyManylinux: true
-  steps:
-  - checkout: self
-  - template: ./azure-linux-container.yml
diff --git a/ci/drone.yml b/ci/drone.yml
--- a/ci/drone.yml
+++ b/ci/drone.yml
@@ -14,7 +14,7 @@
     TWINE_PASSWORD:
       from_secret: twine_password
   commands:
-    - curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly-2020-07-01 --profile minimal -y
+    - curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly-2020-09-14 --profile minimal -y
     - python3.9 -m pip install --upgrade pip maturin
     - maturin build --no-sdist --release --strip --manylinux 2014 --interpreter python3.9
     - python3.9 -m pip install target/wheels/orjson*.whl
@@ -38,7 +38,7 @@
     TWINE_PASSWORD:
       from_secret: twine_password
   commands:
-    - curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly-2020-07-01 --profile minimal -y
+    - curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly-2020-09-14 --profile minimal -y
     - python3.8 -m pip install --upgrade pip maturin
     - maturin build --no-sdist --release --strip --manylinux 2014 --interpreter python3.8
     - python3.8 -m pip install target/wheels/orjson*.whl
@@ -62,7 +62,7 @@
     TWINE_PASSWORD:
       from_secret: twine_password
   commands:
-    - curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly-2020-07-01 --profile minimal -y
+    - curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly-2020-09-14 --profile minimal -y
     - python3.7 -m pip install --upgrade pip maturin
     - maturin build --no-sdist --release --strip --manylinux 2014 --interpreter python3.7
     - python3.7 -m pip install target/wheels/orjson*.whl
@@ -86,7 +86,7 @@
     TWINE_PASSWORD:
       from_secret: twine_password
   commands:
-    - curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly-2020-07-01 --profile minimal -y
+    - curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly-2020-09-14 --profile minimal -y
     - python3.6 -m pip install --upgrade pip maturin
     - maturin build --no-sdist --release --strip --manylinux 2014 --interpreter python3.6
     - python3.6 -m pip install target/wheels/orjson*.whl
diff --git a/integration/requirements.txt b/integration/requirements.txt
--- a/integration/requirements.txt
+++ b/integration/requirements.txt
@@ -1,3 +1,3 @@
 flask;sys_platform!="win"
 gunicorn;sys_platform!="win"
-httpx;sys_platform!="win"
+httpx==0.14.3;sys_platform!="win"
diff --git a/pydataclass b/pydataclass
--- a/pydataclass
+++ b/pydataclass
@@ -65,7 +65,8 @@
 for lib_name in LIBRARIES:
     if lib_name == "json":
         as_dict = timeit(
-            lambda: json.dumps(objects_as_dict).encode("utf-8"), number=ITERATIONS,
+            lambda: json.dumps(objects_as_dict).encode("utf-8"),
+            number=ITERATIONS,
         )
         as_dataclass = timeit(
             lambda: json.dumps(objects_as_dataclass, default=default).encode("utf-8"),
@@ -84,12 +85,14 @@
         )
     elif lib_name == "ujson":
         as_dict = timeit(
-            lambda: ujson.dumps(objects_as_dict).encode("utf-8"), number=ITERATIONS,
+            lambda: ujson.dumps(objects_as_dict).encode("utf-8"),
+            number=ITERATIONS,
         )
         as_dataclass = None
     elif lib_name == "rapidjson":
         as_dict = timeit(
-            lambda: rapidjson.dumps(objects_as_dict).encode("utf-8"), number=ITERATIONS,
+            lambda: rapidjson.dumps(objects_as_dict).encode("utf-8"),
+            number=ITERATIONS,
         )
         as_dataclass = timeit(
             lambda: rapidjson.dumps(objects_as_dataclass, default=default).encode(
diff --git a/pynonstr b/pynonstr
--- a/pynonstr
+++ b/pynonstr
@@ -58,10 +58,12 @@
     print(f"{lib_name}...")
     if lib_name == "json":
         time_as_str = timeit(
-            lambda: json.dumps(data_as_str).encode("utf-8"), number=ITERATIONS,
+            lambda: json.dumps(data_as_str).encode("utf-8"),
+            number=ITERATIONS,
         )
         time_as_obj = timeit(
-            lambda: json.dumps(data_as_obj).encode("utf-8"), number=ITERATIONS,
+            lambda: json.dumps(data_as_obj).encode("utf-8"),
+            number=ITERATIONS,
         )
         time_as_obj_sorted = (
             None  # TypeError: '<' not supported between instances of 'str' and 'int'
@@ -69,10 +71,12 @@
         correct = False
     elif lib_name == "simplejson":
         time_as_str = timeit(
-            lambda: simplejson.dumps(data_as_str).encode("utf-8"), number=ITERATIONS,
+            lambda: simplejson.dumps(data_as_str).encode("utf-8"),
+            number=ITERATIONS,
         )
         time_as_obj = timeit(
-            lambda: simplejson.dumps(data_as_obj).encode("utf-8"), number=ITERATIONS,
+            lambda: simplejson.dumps(data_as_obj).encode("utf-8"),
+            number=ITERATIONS,
         )
         time_as_obj_sorted = timeit(
             lambda: simplejson.dumps(data_as_obj, sort_keys=True).encode("utf-8"),
@@ -83,16 +87,19 @@
         )
     elif lib_name == "ujson":
         time_as_str = timeit(
-            lambda: ujson.dumps(data_as_str).encode("utf-8"), number=ITERATIONS,
+            lambda: ujson.dumps(data_as_str).encode("utf-8"),
+            number=ITERATIONS,
         )
         time_as_obj = timeit(
-            lambda: ujson.dumps(data_as_obj).encode("utf-8"), number=ITERATIONS,
+            lambda: ujson.dumps(data_as_obj).encode("utf-8"),
+            number=ITERATIONS,
         )
         time_as_obj_sorted = None  # segfault
         correct = False
     elif lib_name == "rapidjson":
         time_as_str = timeit(
-            lambda: rapidjson.dumps(data_as_str).encode("utf-8"), number=ITERATIONS,
+            lambda: rapidjson.dumps(data_as_str).encode("utf-8"),
+            number=ITERATIONS,
         )
         time_as_obj = None
         time_as_obj_sorted = None
diff --git a/pynumpy b/pynumpy
--- a/pynumpy
+++ b/pynumpy
@@ -83,7 +83,10 @@
         mem = None
         correct = False
     else:
-        total_latency = timeit(func, number=ITERATIONS,)
+        total_latency = timeit(
+            func,
+            number=ITERATIONS,
+        )
         latency = per_iter_latency(total_latency)
         time.sleep(1)
         mem = max(memory_usage((func,), interval=0.001, timeout=latency * 2))
diff --git a/pysort b/pysort
--- a/pysort
+++ b/pysort
@@ -49,14 +49,17 @@
 for lib_name in LIBRARIES:
     if lib_name == "json":
         time_unsorted = timeit(
-            lambda: json.dumps(data).encode("utf-8"), number=ITERATIONS,
+            lambda: json.dumps(data).encode("utf-8"),
+            number=ITERATIONS,
         )
         time_sorted = timeit(
-            lambda: json.dumps(data, sort_keys=True).encode("utf-8"), number=ITERATIONS,
+            lambda: json.dumps(data, sort_keys=True).encode("utf-8"),
+            number=ITERATIONS,
         )
     elif lib_name == "simplejson":
         time_unsorted = timeit(
-            lambda: simplejson.dumps(data).encode("utf-8"), number=ITERATIONS,
+            lambda: simplejson.dumps(data).encode("utf-8"),
+            number=ITERATIONS,
         )
         time_sorted = timeit(
             lambda: simplejson.dumps(data, sort_keys=True).encode("utf-8"),
@@ -64,7 +67,8 @@
         )
     elif lib_name == "ujson":
         time_unsorted = timeit(
-            lambda: ujson.dumps(data).encode("utf-8"), number=ITERATIONS,
+            lambda: ujson.dumps(data).encode("utf-8"),
+            number=ITERATIONS,
         )
         time_sorted = timeit(
             lambda: ujson.dumps(data, sort_keys=True).encode("utf-8"),
@@ -72,7 +76,8 @@
         )
     elif lib_name == "rapidjson":
         time_unsorted = timeit(
-            lambda: rapidjson.dumps(data).encode("utf-8"), number=ITERATIONS,
+            lambda: rapidjson.dumps(data).encode("utf-8"),
+            number=ITERATIONS,
         )
         time_sorted = timeit(
             lambda: rapidjson.dumps(data, sort_keys=True).encode("utf-8"),
@@ -81,7 +86,8 @@
     elif lib_name == "orjson":
         time_unsorted = timeit(lambda: orjson.dumps(data), number=ITERATIONS)
         time_sorted = timeit(
-            lambda: orjson.dumps(data, None, orjson.OPT_SORT_KEYS), number=ITERATIONS,
+            lambda: orjson.dumps(data, None, orjson.OPT_SORT_KEYS),
+            number=ITERATIONS,
         )
         orjson_time_sorted = per_iter_latency(time_sorted)
     else:
diff --git a/src/lib.rs b/src/lib.rs
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -20,7 +20,8 @@
 use std::os::raw::c_char;
 use std::ptr::NonNull;
 
-const DUMPS_DOC: &str = "dumps(obj, /, default=None, option=None)\n--\n\nSerialize Python objects to JSON.\0";
+const DUMPS_DOC: &str =
+    "dumps(obj, /, default=None, option=None)\n--\n\nSerialize Python objects to JSON.\0";
 const LOADS_DOC: &str = "loads(obj, /)\n--\n\nDeserialize JSON to Python objects.\0";
 
 macro_rules! opt {
@@ -80,7 +81,11 @@
         PyModule_AddObject(
             mptr,
             "dumps\0".as_ptr() as *const c_char,
-            PyCFunction_New(Box::into_raw(Box::new(wrapped_dumps)), std::ptr::null_mut()),
+            PyCFunction_NewEx(
+                Box::into_raw(Box::new(wrapped_dumps)),
+                std::ptr::null_mut(),
+                mptr,
+            ),
         )
     };
 
@@ -95,7 +100,11 @@
         PyModule_AddObject(
             mptr,
             "loads\0".as_ptr() as *const c_char,
-            PyCFunction_New(Box::into_raw(Box::new(wrapped_loads)), std::ptr::null_mut()),
+            PyCFunction_NewEx(
+                Box::into_raw(Box::new(wrapped_loads)),
+                std::ptr::null_mut(),
+                mptr,
+            ),
         )
     };
 
diff --git a/test/test_dataclass.py b/test/test_dataclass.py
--- a/test/test_dataclass.py
+++ b/test/test_dataclass.py
@@ -102,7 +102,8 @@
         """
         obj = Dataclass1("a", 1, None)
         self.assertEqual(
-            orjson.dumps(obj), b'{"name":"a","number":1,"sub":null}',
+            orjson.dumps(obj),
+            b'{"name":"a","number":1,"sub":null}',
         )
 
     def test_dataclass_recursive(self):
@@ -130,7 +131,8 @@
         dumps() no attributes
         """
         self.assertEqual(
-            orjson.dumps(EmptyDataclass()), b"{}",
+            orjson.dumps(EmptyDataclass()),
+            b"{}",
         )
 
     def test_dataclass_empty_slots(self):
@@ -138,7 +140,8 @@
         dumps() no attributes slots
         """
         self.assertEqual(
-            orjson.dumps(EmptyDataclassSlots()), b"{}",
+            orjson.dumps(EmptyDataclassSlots()),
+            b"{}",
         )
 
     def test_dataclass_default_arg(self):
@@ -164,7 +167,8 @@
         """
         obj = Dataclass4("a", 1, 2.1)
         self.assertEqual(
-            orjson.dumps(obj), b'{"a":"a","b":1,"c":2.1}',
+            orjson.dumps(obj),
+            b'{"a":"a","b":1,"c":2.1}',
         )
 
     def test_dataclass_classvar(self):
@@ -173,7 +177,8 @@
         """
         obj = Dataclass4("a", 1)
         self.assertEqual(
-            orjson.dumps(obj), b'{"a":"a","b":1,"c":1.1}',
+            orjson.dumps(obj),
+            b'{"a":"a","b":1,"c":1.1}',
         )
 
     def test_dataclass_subclass(self):
@@ -182,7 +187,8 @@
         """
         obj = Datasubclass("a", 1, None, False)
         self.assertEqual(
-            orjson.dumps(obj), b'{"name":"a","number":1,"sub":null,"additional":false}',
+            orjson.dumps(obj),
+            b'{"name":"a","number":1,"sub":null,"additional":false}',
         )
 
     def test_dataclass_slots(self):
@@ -238,7 +244,8 @@
         """
         obj = InitDataclass("zxc", "vbn")
         self.assertEqual(
-            orjson.dumps(obj), b'{"ab":"zxc vbn"}',
+            orjson.dumps(obj),
+            b'{"ab":"zxc vbn"}',
         )
 
     def test_dataclass_option(self):
diff --git a/test/test_non_str_keys.py b/test/test_non_str_keys.py
--- a/test/test_non_str_keys.py
+++ b/test/test_non_str_keys.py
@@ -163,7 +163,8 @@
     def test_dict_keys_time(self):
         self.assertEqual(
             orjson.dumps(
-                {datetime.time(12, 15, 59, 111): True}, option=orjson.OPT_NON_STR_KEYS,
+                {datetime.time(12, 15, 59, 111): True},
+                option=orjson.OPT_NON_STR_KEYS,
             ),
             b'{"12:15:59.000111":true}',
         )
@@ -191,7 +192,8 @@
 
     def test_dict_keys_str(self):
         self.assertEqual(
-            orjson.dumps({"1": True}, option=orjson.OPT_NON_STR_KEYS), b'{"1":true}',
+            orjson.dumps({"1": True}, option=orjson.OPT_NON_STR_KEYS),
+            b'{"1":true}',
         )
 
     def test_dict_keys_type(self):
diff --git a/test/test_numpy.py b/test/test_numpy.py
--- a/test/test_numpy.py
+++ b/test/test_numpy.py
@@ -172,35 +172,60 @@
     def test_numpy_array_d1(self):
         array = numpy.array([1])
         self.assertEqual(
-            orjson.loads(orjson.dumps(array, option=orjson.OPT_SERIALIZE_NUMPY,)),
+            orjson.loads(
+                orjson.dumps(
+                    array,
+                    option=orjson.OPT_SERIALIZE_NUMPY,
+                )
+            ),
             array.tolist(),
         )
 
     def test_numpy_array_d2(self):
         array = numpy.array([[1]])
         self.assertEqual(
-            orjson.loads(orjson.dumps(array, option=orjson.OPT_SERIALIZE_NUMPY,)),
+            orjson.loads(
+                orjson.dumps(
+                    array,
+                    option=orjson.OPT_SERIALIZE_NUMPY,
+                )
+            ),
             array.tolist(),
         )
 
     def test_numpy_array_d3(self):
         array = numpy.array([[[1]]])
         self.assertEqual(
-            orjson.loads(orjson.dumps(array, option=orjson.OPT_SERIALIZE_NUMPY,)),
+            orjson.loads(
+                orjson.dumps(
+                    array,
+                    option=orjson.OPT_SERIALIZE_NUMPY,
+                )
+            ),
             array.tolist(),
         )
 
     def test_numpy_array_d4(self):
         array = numpy.array([[[[1]]]])
         self.assertEqual(
-            orjson.loads(orjson.dumps(array, option=orjson.OPT_SERIALIZE_NUMPY,)),
+            orjson.loads(
+                orjson.dumps(
+                    array,
+                    option=orjson.OPT_SERIALIZE_NUMPY,
+                )
+            ),
             array.tolist(),
         )
 
     def test_numpy_array_4_stride(self):
         array = numpy.random.rand(4, 4, 4, 4)
         self.assertEqual(
-            orjson.loads(orjson.dumps(array, option=orjson.OPT_SERIALIZE_NUMPY,)),
+            orjson.loads(
+                orjson.dumps(
+                    array,
+                    option=orjson.OPT_SERIALIZE_NUMPY,
+                )
+            ),
             array.tolist(),
         )
 
@@ -247,7 +272,12 @@
         )
         assert array.ndim == 32
         self.assertEqual(
-            orjson.loads(orjson.dumps(array, option=orjson.OPT_SERIALIZE_NUMPY,)),
+            orjson.loads(
+                orjson.dumps(
+                    array,
+                    option=orjson.OPT_SERIALIZE_NUMPY,
+                )
+            ),
             array.tolist(),
         )
 
diff --git a/test/test_subclass.py b/test/test_subclass.py
--- a/test/test_subclass.py
+++ b/test/test_subclass.py
@@ -34,7 +34,8 @@
 class SubclassTests(unittest.TestCase):
     def test_subclass_str(self):
         self.assertEqual(
-            orjson.dumps(SubStr("zxc")), b'"zxc"',
+            orjson.dumps(SubStr("zxc")),
+            b'"zxc"',
         )
 
     def test_subclass_str_invalid(self):
@@ -55,12 +56,14 @@
 
     def test_subclass_dict(self):
         self.assertEqual(
-            orjson.dumps(SubDict({"a": "b"})), b'{"a":"b"}',
+            orjson.dumps(SubDict({"a": "b"})),
+            b'{"a":"b"}',
         )
 
     def test_subclass_list(self):
         self.assertEqual(
-            orjson.dumps(SubList(["a", "b"])), b'["a","b"]',
+            orjson.dumps(SubList(["a", "b"])),
+            b'["a","b"]',
         )
         ref = [True] * 512
         self.assertEqual(orjson.loads(orjson.dumps(SubList(ref))), ref)
@@ -69,14 +72,16 @@
         with self.assertRaises(orjson.JSONEncodeError):
             orjson.dumps(SubFloat(1.1))
         self.assertEqual(
-            json.dumps(SubFloat(1.1)), "1.1",
+            json.dumps(SubFloat(1.1)),
+            "1.1",
         )
 
     def test_subclass_tuple(self):
         with self.assertRaises(orjson.JSONEncodeError):
             orjson.dumps(SubTuple((1, 2)))
         self.assertEqual(
-            json.dumps(SubTuple((1, 2))), "[1, 2]",
+            json.dumps(SubTuple((1, 2))),
+            "[1, 2]",
         )
 
     def test_namedtuple(self):
diff --git a/test/test_uuid.py b/test/test_uuid.py
--- a/test/test_uuid.py
+++ b/test/test_uuid.py
@@ -89,7 +89,8 @@
     def test_serializes_correctly_with_leading_zeroes(self):
         instance = uuid.UUID(int=0x00345678123456781234567812345678)
         self.assertEqual(
-            orjson.dumps(instance), ('"%s"' % str(instance)).encode("utf8"),
+            orjson.dumps(instance),
+            ('"%s"' % str(instance)).encode("utf8"),
         )
 
     def test_all_uuid_creation_functions_create_serializable_uuids(self):
@@ -101,5 +102,6 @@
         )
         for val in uuids:
             self.assertEqual(
-                orjson.dumps(val), f'"{val}"'.encode("utf-8"),
+                orjson.dumps(val),
+                f'"{val}"'.encode("utf-8"),
             )