Skip to main content

cexprtk: Mathematical Expression Parsing and Evaluation in Python

cexprtk is a cython wrapper around the "ExprTK: C++ Mathematical Expression Toolkit Library " by Arash Partow. Using cexprtk a powerful mathematical expression engine can be incorporated into your python project.

Table of Contents

Installation

The latest version of cexprtk can be installed using pip :

	$ pip install cexprtk

Note: Installation requires a compatible C++ compiler to be installed (unless installing from a binary wheel).

Usage

The following examples show the major features of cexprtk.

Example: Evaluate a simple equation

The following shows how the arithmetic expression (5+5) * 23 can be evaluated:

	>>> import cexprtk
	>>> cexprtk.evaluate_expression("(5+5) * 23", {})
	230.0

Example: Using Variables

Variables can be used within expressions by passing a dictionary to the evaluate_expression function. This maps variable names to their values. The expression from the previous example can be re-calculated using variable values:

	>>> import cexprtk
	>>> cexprtk.evaluate_expression("(A+B) * C", {"A" : 5, "B" : 5, "C" : 23})
	230.0

Example: Re-using expressions

When using the evaluate_expression() function, the mathematical expression is parsed, evaluated and then immediately thrown away. This example shows how to re-use an Expression for multiple evaluations.

  • An expression will be defined to calculate the circumference of circle, this will then be re-used to calculate the value for several different radii.
  • First a Symbol_Table is created containing a variable r (for radius), it is also populated with some useful constants such as π.
	>>> import cexprtk
	>>> st = cexprtk.Symbol_Table({'r' : 1.0}, add_constants= True)
  • Now an instance of Expression is created, defining our function:
	>>> circumference = cexprtk.Expression('2*pi*r', st)
  • The Symbol_Table was initialised with r=1, the expression can be evaluated for this radius simply by calling it:
	>>> circumference()
	6.283185307179586
  • Now update the radius to a value of 3.0 using the dictionary like object returned by the Symbol_Table's .variables property:
	>>> st.variables['r'] = 3.0
	>>> circumference()
	18.84955592153876

Example: Defining custom functions

Python functions can be registered with a Symbol_Table then used in an Expression. In this example a custom function will be defined which produces a random number within a given range.

A suitable function exists in the random module, namely random.uniform. As this is an instance method it needs to be wrapped in function:

>>> import random
>>> def rnd(low, high):
...   return random.uniform(low,high)
...

Our rnd function now needs to be registered with a Symbol_Table:

>>> import cexprtk
>>> st = cexprtk.Symbol_Table({})
>>> st.functions["rand"] = rnd

The functions property of the Symbol_Table is accessed like a dictionary. In the preceding code snippet, a symbol table is created and then the rnd function is assigned to the rand key. This key is used as the function's name in a cexprtk expression. The key cannot be the same as an existing variable, constant or reserved function name.

The rand function will now be used in an expression. This expression chooses a random number between 5 and 8 and then multiplies it by 10. The followin snippet shows the instantiation of the Expression which is then evaluated a few times. You will probably get different numbers out of your expression than shown, this is because your random number generator will have been initialised with a different seed than used in the example.

>>> e = cexprtk.Expression("rand(5,8) * 10", st)
>>> e()
61.4668441077191
>>> e()
77.13523163246415
>>> e()
59.14881842716157
>>> e()
69.1476535568958

Example: Defining an unknown symbol resolver

A callback can be passed to the Expression constructor through the unknown_symbol_resolver_callback parameter. This callback is invoked during expression parsing when a variable or constant is encountered that isn't in the Symbol_Table associated with the Expression.

The callback can be used to provide some logic that leads to a new symbol being registered or for an error condition to be flagged.

The Problem: The following example shows a potential use for the symbol resolver:

  • An expression contains variables of the form m_VARIABLENAME and f_VARIABLENAME.
  • m_ or f_ prefix the actual variable name (perhaps indicating gender).
  • VARIABLENAME should be used to look up the desired value in a dictionary.
  • The dictionary value of VARIABLENAME should then be weighted according to its prefix:
    • m_ variables should be multiplied by 0.8.
    • f_ variables should be multiplied by 1.1.

The Solution:

  • First the VARIABLENAME dictionary is defined:

     variable_values = { 'county_a' : 82, 'county_b' : 76}
    
  • Now the callback is defined. This takes a single argument, symbol, which gives the name of the missing variable found in the expression:

     def callback(symbol):
     	# Tokenize the symbol name into prefix and VARIABLENAME components.
     	prefix,variablename = symbol.split("_", 1)
     	# Get the value for this VARIABLENAME from the variable_values dict
     	value = variable_values[variablename]
     	# Find the correct weight for the prefix
     	if prefix == 'm':
     		weight = 0.8
     	elif prefix == 'f':
     		weight = 1.1
     	else:
     		# Flag an error condition if prefix not found.
     		errormsg = "Unknown prefix "+ str(prefix)
     		return (False, cexprtk.USRSymbolType.VARIABLE, 0.0, errormsg)
     	# Apply the weight to the 
     	value *= weight
     	# Indicate success and return value to cexprtk
     	return (True, cexprtk.USRSymbolType.VARIABLE, value, "")
    
  • All that remains is to register the callback with an instance of Expression and to evaluate an expression. The expression to be evaluated is:

    • (m_county_a - f_county_b)
    • This should give a value of (0.8*82) - (1.1*76) = -18
     	>>> st = cexprtk.Symbol_Table({})
     	>>> e = cexprtk.Expression("(m_county_a - f_county_b)", st, callback)
     	>>> e.value()
     	-18.0
    

Example: expressions that contain return statements to produce multiple values

Exprtk expressions can return multiple values the results these expressions can be accessed through the results() method.

The following example shows the result of adding a constant value to a vector containing numbers:

	>>> st = cexprtk.Symbol_Table({})
	>>> e = cexprtk.Expression("var v[3] := {1,2,3}; return [v+1];", st)
	>>> e.value()
	nan
	>>> e.results()
	[[2.0, 3.0, 4.0]]

Note that expression has to be evaluated before calling the results() method.

The value accessed through results() can contain a mixture of strings, vectors and real values:

	>>> st = cexprtk.Symbol_Table({'c' : 3})
	>>> e = cexprtk.Expression("if(c>1){return ['bigger than one', c];} else { return ['not bigger than one',c];};",st)
	>>> e.value()
	nan
	>>> e.results()
	['bigger than one', 3.0]
	>>> st.variables['c']=0.5
	>>> e.value()
	nan
	>>> e.results()
	['not bigger than one', 0.5]

API Reference

For information about expressions supported by cexprtk please refer to the original C++ ExprTK documentation:

Class Reference

class Expression:

Class representing mathematical expression.

  • Following instantiation, the expression is evaluated calling the expression or invoking its value() method.
  • The variable values used by the Expression can be modified through the variables property of the Symbol_Table instance associated with the expression. The Symbol_Table can be accessed using the Expression.symbol_table property.
Defining unknown symbol-resolver:

The unknown_symbol_resolver_callback argument to the Expression constructor accepts a callable which is invoked whenever a symbol (i.e. a variable or a constant), is not found in the Symbol_Table given by the symbol_table argument. The unknown_symbol_resolver_callback can be used to provide a value for the missing value or to set an error condition.

The callable should have following signature:

	def callback(symbol_name):
		...

Where symbol_name is a string identifying the missing symbol.

The callable should return a tuple of the form:

	(HANDLED_FLAG, USR_SYMBOL_TYPE, SYMBOL_VALUE, ERROR_STRING)

Where:

  • HANDLED_FLAG is a boolean:
    • True indicates that callback was able handle the error condition and that SYMBOL_VALUE should be used for the missing symbol.
    • False, flags and error condition, the reason why the unknown symbol could not be resolved by the callback is described by ERROR_STRING.
  • USR_SYMBOL_TYPE gives type of symbol (constant or variable) that should be added to the symbol_table when unkown symbol is resolved. Value should be one of those given in cexprtk.USRSymbolType. e.g.
    • cexprtk.USRSymbolType.VARIABLE
    • cexprtk.USRSymbolType.CONSTANT
  • SYMBOL_VALUE, floating point value that should be used when resolving missing symbol.
  • ERROR_STRING when HANDLED_FLAG is False this can be used to describe error condition.
def init(self, expression, symbol_table, unknown_symbol_resolver_callback = None):

Instantiate Expression from a text string giving formula and Symbol_Table instance encapsulating variables and constants used by the expression.

Parameters:

  • expression (str) String giving expression to be calculated.
  • symbol_table (Symbol_Table) Object defining variables and constants.
  • unknown_symbol_resolver_callback (callable) See description above.
def results(self):

If an expression contains a return [] statement, the returned values are accessed using this method.

A python list is returned which may contain real values, strings or vectors.

Note: the expression should be evaluated by calling value() before trying to access results.

Returns:

  • (list) List of values produced by expression's return statement.
def value(self):

Evaluate expression using variable values currently set within associated Symbol_Table

Returns:

  • (float) Value resulting from evaluation of expression.
def call(self):

Equivalent to calling value() method.

Returns:

  • (float) Value resulting from evaluation of expression.
symbol_table

Read only property that returns Symbol_Table instance associated with this expression.

Returns:

  • (Symbol_Table) Symbol_Table associated with this Expression.

class Symbol_Table:

Class for providing variable and constant values to Expression instances.

def init(self, variables, constants = {}, add_constants = False, functions = {}, string_variables = {}):

Instantiate Symbol_Table defining variables and constants for use with Expression class.

Example:

  • To instantiate a Symbol_Table with:

    • x = 1
    • y = 5
    • define a constant k = 1.3806488e-23
  • The following code would be used:

     	st = cexprtk.Symbol_Table({'x' : 1, 'y' : 5}, {'k'= 1.3806488e-23})
    

Parameters:

  • variables (dict) Mapping between variable name and initial variable value.
  • constants (dict) Dictionary containing values that should be added to Symbol_Table as constants. These can be used a variables within expressions but their values cannot be updated following Symbol_Table instantiation.
  • add_constants (bool) If True, add the standard constants pi, inf, epsilon to the 'constants' dictionary before populating the Symbol_Table
  • functions (dict) Dictionary containing custom functions to be made available to expressions. Dictionary keys specify function names and values should be functions.
  • string_variables (dict) Mapping between variable name and initial variable value for string variables.
variables

Returns dictionary like object containing variable values. Symbol_Table values can be updated through this object.

Example:

	>>> import cexprtk
	>>> st = cexprtk.Symbol_Table({'x' : 5, 'y' : 5})
	>>> expression = cexprtk.Expression('x+y', st)
	>>> expression()
	10.0

Update the value of x in the symbol table and re-evaluate the expression:

	>>> expression.symbol_table.variables['x'] = 11.0
	>>> expression()
	16.0

Returns:

  • Dictionary like giving variables stored in this Symbol_Table. Keys are variables names and these map to variable values.
constants

Property giving constants stored in this Symbol_Table.

Returns:

  • Read-only dictionary like object mapping constant names stored in Symbol_Table to their values.
functions

Returns dictionary like object containing custom python functions to use in expressions.

Returns:

  • Dictionary like giving function stored in this Symbol_Table. Keys are function names (as used in Expression) and these map to python callable objects including functions, functors, and functools.partial.
string_variables

Returns dictionary like object containing string variable values. Symbol_Table values can be updated through this object.

Example:

	>>> import cexprtk
	>>> st = cexprtk.Symbol_Table({})
	>>> st.string_variables['s1'] = 'he'
	>>> st.string_variables['s2'] = 'l'
	>>> st.string_variables['s3'] = 'lo'
	>>> expression = cexprtk.Expression("return[s1+s2+s3+' world']", st)
	>>> expression.value()
	nan
	>>> expression.results()
	['hello world']

Returns:

  • Dictionary like giving the string variables stored in this Symbol_Table. Keys are variables names and these map to string values.

class USRSymbolType:

Defines constant values used to determine symbol type returned by unknown_symbol_resolver_callback (see Expression constructor documentation for more).

VARIABLE

Value that should be returned by an unknown_symbol_resolver_callback to define a variable.

CONSTANT

Value that should be returned by an unknown_symbol_resolver_callback to define a constant.


Utility Functions

def check_expression (expression)

Check that expression can be parsed. If successful do nothing, if unsuccessful raise ParseException.

Parameters:

  • expression (str) Formula to be evaluated

Raises:

  • ParseException: If expression is invalid.

def evaluate_expression (expression, variables)

Evaluate a mathematical formula using the exprtk library and return result.

For more information about supported functions and syntax see the exprtk C++ library website.

Parameters:

  • expression (str) Expression to be evaluated.
  • variables (dict) Dictionary containing variable name, variable value pairs to be used in expression.

Returns:

  • (float): Evaluated expression

Raises:

  • ParseException: if expression is invalid.

Authors

Cython wrapper by Michael Rushton (m.j.d.rushton@gmail.com), although most credit should go to Arash Partow for creating the underlying ExprTK library.

Thanks to:

  • jciskey for adding the Expression.results() support.
  • Caleb Hattingh for getting cexprtk to build using MSVC on Windows.

License

cexprtk is released under the same terms as the ExprTK library the Common Public License Version 1.0 (CPL).

Metadata

Release files for cexprtk 0.4.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cexprtk 0.4.2
File Size Uploaded Provenance Actions
cexprtk-0.4.2.tar.gz 562.3 kB Without provenance Details for cexprtk-0.4.2.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for cexprtk 0.4.2
File Actions
cexprtk-0.4.2-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details for cexprtk-0.4.2-cp314-cp314-win_amd64.whl
cexprtk-0.4.2-cp314-cp314-win32.whl CPython 3.14 CPython 3.14 Windows x86-32 Details for cexprtk-0.4.2-cp314-cp314-win32.whl
cexprtk-0.4.2-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details for cexprtk-0.4.2-cp314-cp314-musllinux_1_2_x86_64.whl
cexprtk-0.4.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for cexprtk-0.4.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
cexprtk-0.4.2-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for cexprtk-0.4.2-cp314-cp314-macosx_11_0_arm64.whl
cexprtk-0.4.2-cp314-cp314-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.15+ x86-64 Details for cexprtk-0.4.2-cp314-cp314-macosx_10_15_x86_64.whl
cexprtk-0.4.2-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for cexprtk-0.4.2-cp313-cp313-win_amd64.whl
cexprtk-0.4.2-cp313-cp313-win32.whl CPython 3.13 CPython 3.13 Windows x86-32 Details for cexprtk-0.4.2-cp313-cp313-win32.whl
cexprtk-0.4.2-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details for cexprtk-0.4.2-cp313-cp313-musllinux_1_2_x86_64.whl
cexprtk-0.4.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details for cexprtk-0.4.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
cexprtk-0.4.2-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for cexprtk-0.4.2-cp313-cp313-macosx_11_0_arm64.whl
cexprtk-0.4.2-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details for cexprtk-0.4.2-cp313-cp313-macosx_10_13_x86_64.whl
cexprtk-0.4.2-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for cexprtk-0.4.2-cp312-cp312-win_amd64.whl
cexprtk-0.4.2-cp312-cp312-win32.whl CPython 3.12 CPython 3.12 Windows x86-32 Details for cexprtk-0.4.2-cp312-cp312-win32.whl
cexprtk-0.4.2-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details for cexprtk-0.4.2-cp312-cp312-musllinux_1_2_x86_64.whl
cexprtk-0.4.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details for cexprtk-0.4.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
cexprtk-0.4.2-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for cexprtk-0.4.2-cp312-cp312-macosx_11_0_arm64.whl
cexprtk-0.4.2-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details for cexprtk-0.4.2-cp312-cp312-macosx_10_13_x86_64.whl
cexprtk-0.4.2-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for cexprtk-0.4.2-cp311-cp311-win_amd64.whl
cexprtk-0.4.2-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details for cexprtk-0.4.2-cp311-cp311-win32.whl
cexprtk-0.4.2-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details for cexprtk-0.4.2-cp311-cp311-musllinux_1_2_x86_64.whl
cexprtk-0.4.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details for cexprtk-0.4.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
cexprtk-0.4.2-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for cexprtk-0.4.2-cp311-cp311-macosx_11_0_arm64.whl
cexprtk-0.4.2-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details for cexprtk-0.4.2-cp311-cp311-macosx_10_9_x86_64.whl
cexprtk-0.4.2-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for cexprtk-0.4.2-cp310-cp310-win_amd64.whl
cexprtk-0.4.2-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details for cexprtk-0.4.2-cp310-cp310-win32.whl
cexprtk-0.4.2-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details for cexprtk-0.4.2-cp310-cp310-musllinux_1_2_x86_64.whl
cexprtk-0.4.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details for cexprtk-0.4.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
cexprtk-0.4.2-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details for cexprtk-0.4.2-cp310-cp310-macosx_11_0_arm64.whl
cexprtk-0.4.2-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details for cexprtk-0.4.2-cp310-cp310-macosx_10_9_x86_64.whl

Total release size: 265.2 MB

Release files / cexprtk-0.4.2.tar.gz

Download URL cexprtk-0.4.2.tar.gz
Size 562.3 kB
Tags Source
SHA-256 checksum
How to use checksums
b012e41dca34bb6884b1d53198f5b638d3ff15ed3ca747ce5492e6cf3dede28b
BLAKE2b-256 checksum
How to use checksums
c5c9a4117543eabce9ef4cf70264da25caaa8e6aecf6067f5f356bff801df576
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp314-cp314-win_amd64.whl

Download URL cexprtk-0.4.2-cp314-cp314-win_amd64.whl
Size 948.6 kB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
2283a0b7a05872ecd65e791c3aba7a37b49e26da53142196ec61788bcb66dc3d
BLAKE2b-256 checksum
How to use checksums
76afd28dc798150cbddab329820d329f48c053ae797b55c1413f0aa6a9681064
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp314-cp314-win32.whl

Download URL cexprtk-0.4.2-cp314-cp314-win32.whl
Size 877.1 kB
Tags CPython 3.14 Windows x86-32
SHA-256 checksum
How to use checksums
13fc45221ffc74b51199025ebd3e6850261a68ea7b39fb608f0438245b570819
BLAKE2b-256 checksum
How to use checksums
10bfd87a77fd0766bb9e264d980a162cfd62ad4a3d746d2345ba683105ed53b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL cexprtk-0.4.2-cp314-cp314-musllinux_1_2_x86_64.whl
Size 22.7 MB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
a45f089442977a172caadd83d9dafe92a6acc64243fff1bb7a8187732733cd95
BLAKE2b-256 checksum
How to use checksums
8fb3b3a8f914cd7727756e8cf020840ec354eee04a3c15635bfe4298c014b1f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL cexprtk-0.4.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 22.9 MB
Tags CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
7dadb1cd09abda8507f35ed97eb6fc3b453aee3c365c42881709df2803d880da
BLAKE2b-256 checksum
How to use checksums
9aa253ec41c5e06ff46c05b2148ca6f7356780d2b8c8966a665d8f86465fac9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp314-cp314-macosx_11_0_arm64.whl

Download URL cexprtk-0.4.2-cp314-cp314-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
611997179130803e46d98b5c30388c734a392f0a26c0cac19615a6519f1e0f89
BLAKE2b-256 checksum
How to use checksums
2242161276bfb9c1a6125ad66bcecd1b13d8c0aa42b256a0a1e419eb4704988f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp314-cp314-macosx_10_15_x86_64.whl

Download URL cexprtk-0.4.2-cp314-cp314-macosx_10_15_x86_64.whl
Size 2.8 MB
Tags CPython 3.14 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
278b833871d445ea2e8a5da23a49c0948f12eb14330f6275f09a825c50737475
BLAKE2b-256 checksum
How to use checksums
4a12886a881242e105751cf2ac2fb564f9ef9f324148081818f7c35ed1cd1799
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp313-cp313-win_amd64.whl

Download URL cexprtk-0.4.2-cp313-cp313-win_amd64.whl
Size 925.4 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
240830b08881f5fd509932a1b2ad808210e74c5dd1fee0f3cd4f0947f6742f23
BLAKE2b-256 checksum
How to use checksums
c028ffb786a6eccce29449eff8dee903a852fcb0dd3eaee3a4f50487d94ac37a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp313-cp313-win32.whl

Download URL cexprtk-0.4.2-cp313-cp313-win32.whl
Size 861.0 kB
Tags CPython 3.13 Windows x86-32
SHA-256 checksum
How to use checksums
c08eaa5d10f83f679cb26377d7c330bb21bb1e4a9205512972ac885c547c2c83
BLAKE2b-256 checksum
How to use checksums
0c93776c49c2807b3533305299da455586179257835061a6fbf1ad551ad1a8ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL cexprtk-0.4.2-cp313-cp313-musllinux_1_2_x86_64.whl
Size 22.8 MB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
305ac294a915f595b44013228cbf5b51bd5c0ad81ccbcfe85c2148e6f260de2a
BLAKE2b-256 checksum
How to use checksums
c2fe49918a7a7a9f1a6323c353db6be0b774bc75c11a8c11dd8c2038a18d2825
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL cexprtk-0.4.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 22.9 MB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
69c5ab68837cb1548823652bc754ff7f1dc209e0ff564828e7d5260ec593c57f
BLAKE2b-256 checksum
How to use checksums
7c2e606dd905270ddf406db2351aa73cdbc28cf80d987c24c6ca155f5b9fc4f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp313-cp313-macosx_11_0_arm64.whl

Download URL cexprtk-0.4.2-cp313-cp313-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
531b9a6184eaad32062f0f718dd47c6ab1a73fa1c7bf7a6f510f6fea6914330c
BLAKE2b-256 checksum
How to use checksums
06f294d6e5550c2e4937de0937ef60affed4beb4989a85d54d01f581324959bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp313-cp313-macosx_10_13_x86_64.whl

Download URL cexprtk-0.4.2-cp313-cp313-macosx_10_13_x86_64.whl
Size 2.8 MB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
94cd0fb15a014c3477ce4e5d642228f243e8fb5d25ae4bfc8bd0e0fbc641dfc9
BLAKE2b-256 checksum
How to use checksums
55cc4598916babd01b44882ff47873aa2458fb0a91445162904d46719ed13627
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp312-cp312-win_amd64.whl

Download URL cexprtk-0.4.2-cp312-cp312-win_amd64.whl
Size 925.6 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
3f1948069a3c472c95120dde8198384481cd745b5b3dd455ae87730eddded701
BLAKE2b-256 checksum
How to use checksums
058612d802cb9473039dfd8cc3b4a0437cbc8c6d8f2428218c23bab072bb1278
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp312-cp312-win32.whl

Download URL cexprtk-0.4.2-cp312-cp312-win32.whl
Size 861.8 kB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
b1840d51461955d3bb8c15c10ab3ec66c6db313ebb8fbeec78f981ced599e391
BLAKE2b-256 checksum
How to use checksums
421a33a993c9f82c0eda5c7865a9a4f3b6b152739cc84bfe865cd7012f03f804
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL cexprtk-0.4.2-cp312-cp312-musllinux_1_2_x86_64.whl
Size 22.8 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
7695006663de876858e433264c2c337525930ee1e72d2f26ffb12ca5314ad46b
BLAKE2b-256 checksum
How to use checksums
3225b2ed5c80c42daaa874583f0d5e7a9f472e03d8737c961e5508c146657d37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL cexprtk-0.4.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 22.9 MB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9c1dcb17163d114489d8a516efea222f7ce8fc4ff57c11c4283b80a73aae8989
BLAKE2b-256 checksum
How to use checksums
80b7fb17e0e1d44c711d931013037f37b31614d83a1d2af79a9dd019a141a640
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp312-cp312-macosx_11_0_arm64.whl

Download URL cexprtk-0.4.2-cp312-cp312-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
970e25f155bfa2ce212dd674175dd6d5662447578b312127ccd7e6cb0b00ee90
BLAKE2b-256 checksum
How to use checksums
ab53855d99187b633dc10ca60162c322db86eab3cb329a0bfe3f9b81758cbbf7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp312-cp312-macosx_10_13_x86_64.whl

Download URL cexprtk-0.4.2-cp312-cp312-macosx_10_13_x86_64.whl
Size 2.8 MB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
c202218fbff3c3ba006dc4113f3b0411acbe96e4fbb4ef0ca85442e2b9007485
BLAKE2b-256 checksum
How to use checksums
1aad793eb0db81b75b87b90c0ca6dd9bb9c5338bb3e15c955e8f80deffccefdf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp311-cp311-win_amd64.whl

Download URL cexprtk-0.4.2-cp311-cp311-win_amd64.whl
Size 925.0 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
0d6a3275f90da211fb2ce8463b36936eab1af783466f58c0ef7f307283492600
BLAKE2b-256 checksum
How to use checksums
e2ce2f9932f959adb44c2ada40c212f892a7c67d7cf1f4bed45b70badd86d956
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp311-cp311-win32.whl

Download URL cexprtk-0.4.2-cp311-cp311-win32.whl
Size 860.9 kB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
b878ab1acfa40d67b57cbd77c4aa7440ee8317a80ffd00342ba6305d0280540a
BLAKE2b-256 checksum
How to use checksums
4b0e825cb4204a5425e88b07239c5aa3cf964fba3e311145580c091111af6ccc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL cexprtk-0.4.2-cp311-cp311-musllinux_1_2_x86_64.whl
Size 22.8 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
3191e1c521106bb39c9f9f1d6c5940a768feb23f35d75ba366b867ac93ae1099
BLAKE2b-256 checksum
How to use checksums
6e8551af4d1d4dd26f467ca4c7438854946daf49bdf6b62d61e8601f41c552ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL cexprtk-0.4.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 22.9 MB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d4a2cd3b3dd43e4785385a6e15ffdd4494c32ab5dfb9cacfb3152dba74409640
BLAKE2b-256 checksum
How to use checksums
5fd304ba39abc188f3a328164f19f382a182c7de86cbdea33ebc09e83250eb72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp311-cp311-macosx_11_0_arm64.whl

Download URL cexprtk-0.4.2-cp311-cp311-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c7131099803342792cfcdfd5a008b79ac2c99edf1c1804a13c18fbb66fd2eb21
BLAKE2b-256 checksum
How to use checksums
d0cc4f6e2993d60ffb7b1c12bc134108f6e690805c85f30cc70e38da027764dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp311-cp311-macosx_10_9_x86_64.whl

Download URL cexprtk-0.4.2-cp311-cp311-macosx_10_9_x86_64.whl
Size 2.8 MB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
eb4bd1397ae2148455c6226596117ace4ec0f93a5d4cca3b02d8a8a0ea264ab6
BLAKE2b-256 checksum
How to use checksums
d9cbe694f4ca7f1b98a1c9b0079193fb5b0151af03a5d6244dc63a3052b23416
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp310-cp310-win_amd64.whl

Download URL cexprtk-0.4.2-cp310-cp310-win_amd64.whl
Size 924.1 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
38424acc315bb58352ec6a77c8d695d382e2acf5f69b3e5aa9d78f1c6e3b4b2d
BLAKE2b-256 checksum
How to use checksums
5fba8568c44804643efcc8a9c5e72602b3a73b84d0cf545675fa6a97183215f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp310-cp310-win32.whl

Download URL cexprtk-0.4.2-cp310-cp310-win32.whl
Size 861.7 kB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
1afa8db9b36811f8cde059fb5a33aeee124211e67e251d0baff610d5cfde0ee5
BLAKE2b-256 checksum
How to use checksums
a74cc9487fdc460ee729b2a9e0e55a8f27c3da080d3c8d0b850d53a7022cf69e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL cexprtk-0.4.2-cp310-cp310-musllinux_1_2_x86_64.whl
Size 22.8 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
7c102a105a138a90234f1e6034773c6d0e4cac03963495bd0d45613a1bea07b1
BLAKE2b-256 checksum
How to use checksums
a36d80c392846baa515d21ab79568342cfa3a0f05ddd6dc21eb7deea13ec7188
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL cexprtk-0.4.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 22.9 MB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
117753a2126fd920fe3016b1abaa1b766507ecc881f079ddef093fedb85f77b0
BLAKE2b-256 checksum
How to use checksums
dae71a1b617e1490909dee35fd7d005910ab739160a4356fcf893063fa5fa578
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp310-cp310-macosx_11_0_arm64.whl

Download URL cexprtk-0.4.2-cp310-cp310-macosx_11_0_arm64.whl
Size 2.7 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5d61250da1027a5161ef7bcb85c9d406046ab79795277ddaf11ae446696d56bf
BLAKE2b-256 checksum
How to use checksums
20027e7dc74297c831ea6798b2da6af328ab9eeae3808443446b6dc7f606f250
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / cexprtk-0.4.2-cp310-cp310-macosx_10_9_x86_64.whl

Download URL cexprtk-0.4.2-cp310-cp310-macosx_10_9_x86_64.whl
Size 2.8 MB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
4ca4c95cfea31fa340744a8091c1f7b42854ce65f14aa7b5c715afeb306349a0
BLAKE2b-256 checksum
How to use checksums
1aa556f469f4ca2d6586e7c28d59315616d30b33feda12b3d4f8705120a52b3e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Security for cexprtk 0.4.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page