High-performance, versatile implementation of the universal 'sign' function for Python
Project description
csignum-fast
High-performance, versatile implementation of the universal 'sign' function for Python
Released on January 5, 2026 ⊙ Gold Edition
Version 1.2.0: Maximum speed (+7.1% vs v.1.0.2 and 15.9% vs 1.1.5), and the third keyword argument.
Key Features
- Uniform Results: Always returns only
-1,0, or1as anintfor valid numeric comparisons. - Correct Edge Case Handling:
sign(+0.0)andsign(-0.0)return0.sign(inf)returns1,sign(-inf)returns-1.- For any NaN (float NaN, Decimal NaN, etc.), it returns
math.nan(float).
- Comprehensive Duck Typing: Delegates comparisons to the argument's class. Works seamlessly with:
- Built-in
int(including arbitrary-precision),bool, andfloat. fractions.Fractionanddecimal.Decimal.- Any existing and future objects that support rich comparisons with numbers.
- Built-in
- Informative Error Handling for Easy Debugging: Provides clear, descriptive
TypeErrormessages when passed non-numeric, non-scalar, or incomparable arguments. - ⚡ High Performance: Branch-optimized C++20 core;
METH_FASTCALLargument scan; static module-level constants. The speed is near maximum as for C++ extension for Python: since v1.0.0 all possibilities to increase productivity were sistematically searched and applied. - ✅ Thoroughly Tested: Tested on 121 cases including different types, edge cases, new custom class, keyword and inappropriate arguments. Also tested: memory leaks, and benchmarking against older versions.
- ✨ Pre-processing Engine: Use the
preprocesskeyword argument to transform input before calculation or trigger an "Early Exit" (recursion permitted). - 🛡️ Exception safety: The
if_exckeyword argument allows to define a fallback value (likeNone,math.nan, or-2) instead of crashing on invalid types. - ✨ 5-way uniform result: Use the
codeshiftkeyword argument to encode all 5 possiblesignexits (TypeError, -1, 0, 1,NaN) by subsequent integers for switching or indexing.
Installation
pip install csignum-fast
Standard Usage
from signum import sign # Obligatory for all examples
print(sign(-10**100)) # -1
print(sign(3.14)) # 1
print(sign(float('-nan'))) # math.nan
from decimal import Decimal
print(sign(Decimal("0.0"))) # 0
Advanced Usage (New features since v1.1.0)
☢️ Attention: Contract Programming!
For productivity reasons, keyword argument values are not checked by the sign function. Your responsibility is:
- To pass a
callablewith one argument forpreprocess(must returnNoneor atuple). - To pass a
tupleforif_exc. - To pass an
intforcodeshift. - To guarantee that all calculations implied by these arguments do not result in additional exceptions or faults.
Passing incorrect values to these parameters may result in unpredictable behavior or faults.
⚡ Custom Pre-processing with preprocess
With preprocess keyword argument, you can pass a callable to transform the input. (Default: preprocess=None without preprocessing).
The callable will be called with the positional argument of sign. It should support a special return protocol:
- Return
None:signproceed with usual calculation. - Return
(value,):signproceed with calculation usingvalueas an argument. Why atuple? Use(None,)to returnNoneas avalue(usually raisesTypeError). - Return
(any, result): Early Exit. Immediately returnresultas the final answer ofsign;anyis ignored.
from signum import sign # Obligatory for all examples
# Convert str to float; uses lambda as callable
sign('5.0', preprocess=lambda a: (float(a),)) # Returns 1 instead of `TypeError` exception
# Treat small number as zero through argument replacement only
EPS = 1e-9
sign(-.187e-17, preprocess=lambda a: (0 if abs(a) < EPS else a,)) # Returns 0 (instead of -1)
# Treat small number as zero through argument or result replacement; uses variable as callable
ppf1 = lambda x: (x, 0) if abs(x) < EPS else (x,)
sign(-.187e-17, preprocess=ppf1) # Returns 0 (instead of -1)
# Extract the first number from string, replacing only string argument; supplies function as callable
import re
numeric_finder = re.compile(r"[-+]?(?:\d+\.\d*|\.\d+|\d+)(?:[eE][-+]?\d+)?")
def n_extract(s):
if isinstance(s, str):
match = numeric_finder.search(s)
return (float(match.group()),) if match else None
return None
sign("☠️15 men on the dead man's chest☠️", preprocess=n_extract) # Returns sign(15) == 1
# Do you want sign(complex) instead of `TypeError` exception?
def c_prep(z):
if z == 0 or not isinstance(z, complex): return None
# complex z != 0
return (0, z/abs(z))
sign(-1+1j, preprocess=c_prep) # Returns (-0.7071067811865475+0.7071067811865475j)
# numpy flavor: float result for float or Decimal argument; uses recursive call of sign
from decimal import Decimal
ppf2 = lambda a: (a, float(sign(a))) if isinstance(a, (float, Decimal)) else None
sign(-5.0, preprocess=ppf2) # Returns -1.0 instead of -1
🛡️ Exception Safety with if_exc
With this keyword, you can avoid try-except blocks. If sign() encounters an incompatible type, it will return your fallback value instead of raising a TypeError. if_exc should be a tuple that permits you to pass None as the fallback value through if_exc=(None,). (Default if_exc=None is totally different).
from signum import sign # Obligatory for all examples
sign("not a number", if_exc=(-2,)) # Returns -2 instead of `TypeError` exception
You can use both keyword arguments at once
With preprocess, you replace arguments (or even results) in specific cases, while if_exc prevents exceptions for all that remains.
Comfortable 5-way processing with codeshift keyword argument
When innocent people lived in the heavenly world of pure mathematics, the sign function was ternary. The results were -1, 0, +1.
In the meantime, people entered the real world and started programming. In the real world, there is the IEEE 754 standard, which describes the tricky number NaN, that is, ‘Not a Number’. Any function of NaN, according to the rules of good taste, should return NaN.
In the real world, programmers make mistakes. Worse, completely inappropriate data can be caught in endless streams of those. Then the function — alas — stops calculating with an error message.
In the real world of confusing standards and distorted data, our divine ternary sign function has become quinary (5-way).
You cannot process the five possible results of sign uniformly.
To catch an error, you need to write an indecently multi-layered construction try: ... sign(...) ... except TypeError as e: ....
To catch NaN, you need to write if isnan(sign(...)):.
Only the usual results -1, 0, 1 do not cause any trouble: a cascade of if ... elif ... else with checks for ==, or match ... case ... solve the problem.
The keyword argument codeshift converts sign into a uniform 5-way switch. All 5 possible sign results are encoded as integers: TypeError becomes -2; -1, 0, 1 remain unchanged; NaN is encoded by 2. The value of the codeshift argument, which must be an integer, is added to this code, and the resulting number is returned as the result. (Default is codeshift=None: usual processing).
The easiest way to continue is to use the match ... case ... operator. You can also use the result as an index.
Everything aforementioned is summarized in the table:
Quinary way of signum.sign() through codeshift
| Argument | Std result | codeshift=0 |
codeshift=2 |
|---|---|---|---|
| Invalid | TypeError |
-2 | 0 |
| Negative | -1 | -1 | 1 |
| Zero | 0 | 0 | 2 |
| Positive | 1 | 1 | 3 |
| NaN | math.nan | 2 | 4 |
Code Patterns: One Ring Switch to Rule Them All
# The golden match
from signum import sign # Obligatory for all examples
match sign((d := data_input), codeshift=2):
case 0: handle_error(d)
case 1: handle_negative(d)
case 2: handle_zero(d)
case 3: handle_positive(d)
case 4: handle_nan(d)
# Indexing pattern
function_list = [handle_error, handle_negative, handle_zero, handle_positive, handle_nan]
function_list[sign((d := data_input), codeshift=2)](d)
Interaction with other keyword arguments
If there is the if_exc argument, it takes precedence over codeshift: instead of an exception, the if_exc value is returned unchanged. codeshift is applied in the remaining four cases (the results -1, 0, 1, and NaN).
The interaction between preprocess and codeshift is similar. If preprocess returns None or a tuple with one element (x,), then everything goes as usual: codeshift is not about the argument, but about the result. If preprocess returns a tuple with two elements (x, y), it takes precedence over codeshift, and unchanged y is returned as the result.
The general principle is “an explicitly specified special case overrides a more general option”. if_exc is only applicable to exceptions, while codeshift is applicable to all results in general, so codeshift has a lower priority. The same applies to preprocess returning a tuple of length 2: it defines a single specific outcome, which takes precedence over what intercepts and shifts all results and even "no-results".
Why Gold Edition? (v1.2.0)
The Quinary Revolution
- New
codeshiftArgument: The headliner of v1.2.0. It enables effortless 5-way logic (TypeError, -1, 0, 1,NaN) without extra Python-level overhead.
Evolution of Speed (15.9% faster than v1.1.5, 7.1% faster than v1.0.2)
- New in v1.2.0: CPython FastCall. Migration to
METH_FASTCALL. This eliminated the overhead of using temporary tuple and dictionary for argument parsing. - New in v1.2.0: Static Object Caching. The comparison base (Python
int(0)) and all keyword names are now static C-objects, pre-allocated at module load time. - Since v1.1.0: Branchless Logic Remastered. The optimized cascade of ternary switches replaced the bulky 27-way switch.
- Since v1.0.0: Branchless Logic. Our state index allows the CPU to execute core logic in a linear pipeline without conditional branching even when handling edge cases and type errors.
📊 Performance & Quality Assurance
Benchmark Results
Gold Edition v1.2.0 delivers a 15.9% performance boost over v1.1.5 and is 7.1% faster than the original v1.0.2, despite the significantly expanded feature set. Detailed metrics are available "Benchmarking" section in README for tests.
Note: Benchmarking scripts require psutil (for priority management) and sympy (for sympy numeric types and NaN validation).
Reliability
- Memory Safety: Verified with rigorous stress test (0 bytes leaked over 7M iterations).
- Expanded Test Coverage: 121 validation cases (vs 57 for v1.0.2 and 94 for v1.1.0+).
License
This project is licensed under the MIT License. See the LICENSE file for details.
Author
Alexandru Colesnicov: GitHub Profile
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file csignum_fast-1.2.0.tar.gz.
File metadata
- Download URL: csignum_fast-1.2.0.tar.gz
- Upload date:
- Size: 22.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a6dde0c99d012bb33ae720adb2b7e2303802ee6fe35bbf6c703a5d75c16f0d8e
|
|
| MD5 |
49351a775442d84bc4fbe4ce8d988165
|
|
| BLAKE2b-256 |
1281dfa35a54d3f8b694deed7a4ca8290468a5589ad65d32e03cdfdc095d05ce
|
File details
Details for the file csignum_fast-1.2.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 13.9 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a49f20d210deab1a1f3ad02907f57d04c5d327b99877251662001b6343d8dd9f
|
|
| MD5 |
f04e819dbf28c09f28341bbca0ee47ab
|
|
| BLAKE2b-256 |
7d09983c675586c94a639ae64623fef3c1cf1d9f5425f8e08f0bc250a9d335e0
|
File details
Details for the file csignum_fast-1.2.0-cp313-cp313-win32.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp313-cp313-win32.whl
- Upload date:
- Size: 13.6 kB
- Tags: CPython 3.13, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f3bbcf3407028ca5b91611e34319b81529770dd101cb6b0ddbf17a157af71aa
|
|
| MD5 |
080330828a08094ddc65947b9fae4558
|
|
| BLAKE2b-256 |
7b3be177056a656899ba559d63a3faa20c0e55f90f34756d090cf39144f81790
|
File details
Details for the file csignum_fast-1.2.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 12.8 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
baf5bb9cb742031aa9c81c4e0a60dfbfb86eb7d916b0fcd57af808702cd23312
|
|
| MD5 |
b378aeb1cfe97c9c31f6a90176131064
|
|
| BLAKE2b-256 |
7bc13aa1030fbba7986b665999204dae6af233e3adfbc93f60048298b8ab8435
|
File details
Details for the file csignum_fast-1.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 13.0 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d06fb95f15be05c95cfbb959ca16fd59e55850aa72f29c589b5d1cdff9085535
|
|
| MD5 |
501e6472f2be23da253bc0de1972a14b
|
|
| BLAKE2b-256 |
dd288585b744980bbb6424627c6c133fc37549f9ccc3c1a45e49d2c86d0662d8
|
File details
Details for the file csignum_fast-1.2.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 11.3 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d8cb162047cf6248fd2fc7a95012fac9a69d8828fce9e330468e14806ae8fd08
|
|
| MD5 |
357cca4ebf74583e6bbc037262cd76bc
|
|
| BLAKE2b-256 |
e26facda65861049de7f85f64062d62aaa12186140d7120c16b34dabb1515a0d
|
File details
Details for the file csignum_fast-1.2.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 13.9 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf9f1fea6edfe20f21a16c651dddb460bc4ecf53c4470c5584b66cec3f0fdcac
|
|
| MD5 |
ea2a1297ad596a6cd6efd6ce8d89bcf6
|
|
| BLAKE2b-256 |
2d8aeea869827ee1fc9cfba915929e8638b10ea3e8f3fa2ed3920700a6a2224e
|
File details
Details for the file csignum_fast-1.2.0-cp312-cp312-win32.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp312-cp312-win32.whl
- Upload date:
- Size: 13.6 kB
- Tags: CPython 3.12, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c0d810bffa2015ad88f13f3634d2b0e09249db5627c9335ecd49a302604a37a
|
|
| MD5 |
294d8e45509884f83ff166c5d4ccdcd5
|
|
| BLAKE2b-256 |
acad0a7240613828de17a49ad15332cf4f755b9dfe09736ae23709100b654996
|
File details
Details for the file csignum_fast-1.2.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 12.8 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
872b2e4b1f37b2b6fe70f26b79afcac1d250e2e85022a306b36cc465050f1f74
|
|
| MD5 |
c6d5b48905eb9862aa99b407371b9e26
|
|
| BLAKE2b-256 |
04b7b4bafc96d777ec7f53d26436651fb975a349f431ffb0bf3ba73570514fbf
|
File details
Details for the file csignum_fast-1.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 13.0 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f6121cafb5cf7109622e3c1c34d2fe32dfd8485ba0a26436935241ae8e64c8e
|
|
| MD5 |
71a6c4dcfcb2dbd953d4477fe5dfcc93
|
|
| BLAKE2b-256 |
2bcf414c4b7066acde6f75f2b59c4c401ceca67b1b8b6cefb8e6e7b9e6a0df75
|
File details
Details for the file csignum_fast-1.2.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 11.3 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c90bf512071404230283e4e2d269f19d7b4a46ea7bf199e3fa92a39442b0e053
|
|
| MD5 |
24f3f50c0573c9a50e31c4a0eb0868e3
|
|
| BLAKE2b-256 |
26a8d5f26d083f12af69a4fbef848b409e0daea1483cf8f4e9f4c8f6b010ea4a
|
File details
Details for the file csignum_fast-1.2.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 13.9 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5aa1e8670a8f496db4213c809977a854b208c0751e423d5ca45cc7ac828a3371
|
|
| MD5 |
e1f43b329998afe2581e3e885b2ea3d5
|
|
| BLAKE2b-256 |
c43d63355cff5eedb740d80b721a97a7c51223eb14d556c9dd59c8a613e83393
|
File details
Details for the file csignum_fast-1.2.0-cp311-cp311-win32.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp311-cp311-win32.whl
- Upload date:
- Size: 13.5 kB
- Tags: CPython 3.11, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1d3cc918ad1e9bec500753505c884f52d3f0bb431af1016cf45a3756912300e
|
|
| MD5 |
95f3e0e75f37cbe5e8217ecf9dfbc489
|
|
| BLAKE2b-256 |
f5b280c6f67d76c99969757aacd2daa0b4e3f8a8f767501efb67da70524717f4
|
File details
Details for the file csignum_fast-1.2.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 12.6 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1392d2088418b0605e5e87db80c3b01ac5e5c7dcd61408e8415b75bc9b4e6b3
|
|
| MD5 |
35c127ce9d2a75ddc20f643df7335a95
|
|
| BLAKE2b-256 |
c3cc0b1fe5b90b11c9521ba7ada6d73615db5d118da39dc09e9eb1edd93d30b7
|
File details
Details for the file csignum_fast-1.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 12.8 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3660eed55c85a8ceeadc5452624ebefa9ae8fd44d5775cf717f24d73ca72f82
|
|
| MD5 |
feec09b807f1682be3aa9e61cf8955e7
|
|
| BLAKE2b-256 |
1a582c767f0d267ef7acb9729bdc1a613a6a86bd95c8c9d682a00d8f4e6ea5a0
|
File details
Details for the file csignum_fast-1.2.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 11.2 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36d15c36a63ea56e16e77897eb77d89483fd0832cb9a4d44f42ef9b014bf69a9
|
|
| MD5 |
ae3b25c9c3f11613e3c3657eb1dce07d
|
|
| BLAKE2b-256 |
2b0632b607b2428b6a3598df2d5f1a52a1fc547124a88b68dab2ad5c3a4a7bff
|
File details
Details for the file csignum_fast-1.2.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 13.9 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5a6e603b90e6c713ca8c3906848adf4a246c524a6a455d3f2574a339da23a26
|
|
| MD5 |
d6f6282e92c3d4cd128acd53283ee7f0
|
|
| BLAKE2b-256 |
2c0715b4e814adc5f648101a9efb917d06fea37830847b4e9cf3e8612df172e9
|
File details
Details for the file csignum_fast-1.2.0-cp310-cp310-win32.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp310-cp310-win32.whl
- Upload date:
- Size: 13.5 kB
- Tags: CPython 3.10, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6febc0f8c9f151be7528c57bcbf2ef07f7b29a60258e29bc15d57c18b56765d9
|
|
| MD5 |
77a5db0a59c5f30ac181ecf8f53fd547
|
|
| BLAKE2b-256 |
d5a861b0133bb0607fbeb768322bc3af93c9100eb1c858d6d73f41837a61dd2a
|
File details
Details for the file csignum_fast-1.2.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 12.5 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc8d0e6f78cdb38c7742e89c4cd53b8156e89476d8965557da023ce4fb0d4f8d
|
|
| MD5 |
18058662f6cc0c75f6e0dac2be48a7cd
|
|
| BLAKE2b-256 |
f23d318d7cfb3cbd7b294b859c7a4b911fc0de97537eab3e16a7bb810765da82
|
File details
Details for the file csignum_fast-1.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 12.7 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
469276707abbed411ec9c04fed0b4b73a90e5bd48b7a20362c11d6d3185be92c
|
|
| MD5 |
262567ca11da57e8705ba3628244b871
|
|
| BLAKE2b-256 |
4d344196d5401ef868d9f34df3b955240fe90e49639c1e51be12274e7267d5cd
|
File details
Details for the file csignum_fast-1.2.0-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 11.2 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
799368c817c0091378f75aae115d00c5a9bf982001db9a00caa7318e2ca85613
|
|
| MD5 |
07f3d7783c5529bb0b386be03efd31ad
|
|
| BLAKE2b-256 |
86e032f60edc52e60013ebea74b43f1e4b7672344be6a1a4cefb21e2a8b569d3
|
File details
Details for the file csignum_fast-1.2.0-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 13.9 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aca746bad1fbf1ad63cd28578e7313ed5f23b7a4ddb09c996c7700a43b32e67f
|
|
| MD5 |
32022094f56e6172300445f4ff44f60a
|
|
| BLAKE2b-256 |
fbaca05827f332296425e8e25ad979e2f469e9df86a233f02a767e610debf096
|
File details
Details for the file csignum_fast-1.2.0-cp39-cp39-win32.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp39-cp39-win32.whl
- Upload date:
- Size: 13.5 kB
- Tags: CPython 3.9, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2d7c7c9633183add0070d4e63cb9d6ef2c80f685e0bc8d5f31839bd68cc2864
|
|
| MD5 |
0b10b3c063f5485303d62b486b89b7c3
|
|
| BLAKE2b-256 |
5de555a0375b1fd9d7ca314e40cabfdde036bd0822fa2b35bb6d40cea6d3c29c
|
File details
Details for the file csignum_fast-1.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 12.5 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9af8559b593365e8b5f32221eaca4d9e1ded33a8926dd5f8167b1800cf20ddb
|
|
| MD5 |
3050e8abd4a73c2455cb4c9ea1dc9ff7
|
|
| BLAKE2b-256 |
1cd53c91576be6d3f2d41234f5c541bf99faf336018fb43707042ac071e3241c
|
File details
Details for the file csignum_fast-1.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 12.7 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d83429e62f8b29147823905f288107aea38b865add704c2b5ea4582d689766e
|
|
| MD5 |
9e5a797574386f057874cabddbfc7b65
|
|
| BLAKE2b-256 |
2219b66f9ada4db346542222db64e50f73a0e8c30662f71936e952882ede166c
|
File details
Details for the file csignum_fast-1.2.0-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 11.2 kB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58174f05b1f5ce4ae42c54e17f92f9ffe9a6462e143bceffbeee785387881da4
|
|
| MD5 |
4ac20925cd568872fcb7292f7acb7b6f
|
|
| BLAKE2b-256 |
9bb83a0bf4dfa8467c6b0d5dac697ca54060266ad5cf7a5092024d9f95d6ccea
|
File details
Details for the file csignum_fast-1.2.0-cp38-cp38-win_amd64.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp38-cp38-win_amd64.whl
- Upload date:
- Size: 13.8 kB
- Tags: CPython 3.8, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b338ed6667158a3589c41055cb4ea493157574a2ee8387982bda438ddeb6eb8
|
|
| MD5 |
0be8a2c1f6a021575d26fe91e6fe1c03
|
|
| BLAKE2b-256 |
0def557993f6a976cdc5631446ab702ab6b05954bbcc263a2473a355cda30203
|
File details
Details for the file csignum_fast-1.2.0-cp38-cp38-win32.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp38-cp38-win32.whl
- Upload date:
- Size: 13.5 kB
- Tags: CPython 3.8, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26ab0d94d21ae1faafd321322fddd5f9a591e69b17f05c9f8bf938bd0038a213
|
|
| MD5 |
278165ee7677f916d825bc29e2fb32dd
|
|
| BLAKE2b-256 |
65208893ee7bda20f6a02313783fc8c446d7536195f82c4ee6a389c41e49c724
|
File details
Details for the file csignum_fast-1.2.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 12.4 kB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.5+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
653db2112c49fd5f6fd9f3ef90fe7509c90e7a963c73c8455bb916e6eb340e0d
|
|
| MD5 |
7de12212d78303f7fa8f726b91ecde12
|
|
| BLAKE2b-256 |
7f86f1177ad803082f1f7051a1b66b55cfd1d62873ef2a3f8814b55b861bbeb7
|
File details
Details for the file csignum_fast-1.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 12.5 kB
- Tags: CPython 3.8, manylinux: glibc 2.17+ i686, manylinux: glibc 2.5+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67358252be7c501a7c0c6f718348431928919a641a659a15c168552b4b9a164b
|
|
| MD5 |
0c4b1e96c32c57bc682e098bc31882b4
|
|
| BLAKE2b-256 |
269075236af1760c075199b9678d569d37f01d8562a7e257132072ed220ee07b
|
File details
Details for the file csignum_fast-1.2.0-cp38-cp38-macosx_11_0_arm64.whl.
File metadata
- Download URL: csignum_fast-1.2.0-cp38-cp38-macosx_11_0_arm64.whl
- Upload date:
- Size: 11.1 kB
- Tags: CPython 3.8, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80671762740f182840bc897ceece347799d0134f2190c212f18cca38ca052fe9
|
|
| MD5 |
2594c07377162b843d03157d7f51231d
|
|
| BLAKE2b-256 |
4774be552404156e9861d4afe9076d6b23b2778cbe816bb297cdace428977075
|