Skip to main content

A DSL for defining source code pretty printers

Project description

typeset-py

An embedded DSL for defining source code pretty printers.

Concept

The layout language is designed such that it fits well over a structurally recursive pass of some inductive data-structure; an abstract representation of the thing you wish to pretty print.

A layout is a tree of text literals composed together with either padded, unpadded compositions or with a line-break. The layout solver will select compositions in a layout and convert them into line-breaks, in order to make the layout fit within a given layout buffer width. It will do this in a greedy way, fitting as many literals on a line as possible. While doing so it will respect the annotated properties that the compositions are constructed under.

The solver being an abstract concept, is concretely implemented via two accompanying functions, a compiler implemented as compile, and a renderer implemented as render. Where the compiler takes a Layout and produces an immutable optimized layout called a Document. The renderer takes a Document along with arguments for indentation and buffer width, and produces the final text output.

Null constructor

Sometimes in a data-structure there can be optional data (e.g. of type 'string option'), which when omitted should not have a layout. To make this case easy to handle, the null element of layout composition is available.

def layout_option(maybe_string: Optional[str]) -> Layout:
  match maybe_string:
    case None: return null()
    case data: return text(data)

The null will be eliminated from the layout by the compiler, and will not be rendered, e.g:

foobar = comp(text('foo'), comp(null(), text('bar'), False, False), False, False)

When rendering foobar, when the layout fits in the layout buffer, the result will be:

       7
       |
foobar |
       |

Word literal constructor

These are the visible terminals that we are typesetting.

foo = text('foo')

When rendering foo, when the layout fits in the layout buffer, the result will be:

    4
    |
foo |
    |

It will simply overflow the buffer when it does not:

  2
  |
fo|o
  |

Fix constructor

Sometimes you need to render a part of some layout as inline, i.e. that its compositions should not be broken; this is what the fix constructor is for. In other words a fixed layout is treated as a literal.

foobar = fix(comp(text('foo'), text('bar'), False, False))

When rendering the fixed layout foobar, when the layout fits in the layout buffer, the result will be:

       7
       |
foobar |
       |

It will overflow the buffer when it does not:

  2
  |
fo|obar
  |

Grp constructor

The grp constructor prevents the solver from breaking its compositions, as long as there are compositions to the left of the group which could still be broken. This is useful when you need part of the layout to be treated as an item.

foobarbaz = comp(text('foo'), grp(comp(text('bar'), text('baz'), False, False)), False, False)

When rendering foobarbaz, when the layout fits in the layout buffer, the result will be:

          10
          |
foobarbaz |
          |

If one of the literals does not fit within the layout buffer, the result will be:

       7
       |
foo    |
barbaz |
       |

In contrast, had the group not been annotated, the result would have been:

       7
       |
foobar |
baz    |
       |

Since the composition between bar and baz was not guarded, and the layout solver is greedy and wants to fit as many literals on the same line as possible without overflowing the buffer. If the group still does not fit within the layout buffer, the group will be broken and the result will be:

    4
    |
foo |
bar |
baz |
    |

Seq constructor

The seq constructor forces the solver to break all of its compositions as soon as one of them is broken. This is useful when you have data that is a sequence or is list-like in nature; when one item in the sequence is put on a new line, then so should the rest of the items in the sequence.

foobarbaz = seq(comp(text('foo'), comp(text('bar'), text('baz'), False, False), False, False))

When rendering foobarbaz, when the layout fits in the layout buffer, the result will be:

          10
          |
foobarbaz |
          |

If one of the literals does not fit within the layout buffer, the result will be:

       7
       |
foo    |
bar    |
baz    |
       |

Since the compositions were part of a sequence; i.e when one of them broke, they all broke.

Nest constructor

The nest constructor is simply there to provide an extra level of indentation for all literals that it ranges over. The width of each level of indentation is given as a parameter to the render function.

foobarbaz = comp(text('foo'), nest(comp(text('bar'), text('baz'), False, False)), False, False)

When rendering foobarbaz with a indentation width of 2, when the layout fits in the layout buffer, the result will be:

          10
          |
foobarbaz |
          |

If one of the literals does not fit within the layout buffer, the result will be;

       7
       |
foobar |
  baz  |
       |

And when the layout buffer will only hold one of the literals, the result will be:

    4
    |
foo |
  ba|r
  ba|z
    |

In this case bar and baz will overflow the layout buffer because of the given indentation.

Pack constructor

The pack constructor defines an indentation level, but implicitly sets the indentation width to the index of the first literal in the layout it annotates. This is e.g. useful if you are pretty printing terms in a lisp-like language, where all other arguments to an application is often 'indented' to the same buffer index as the first argument.

foobarbaz = comp(text('foo'), pack(comp(text('bar'), text('baz'), False, False)), False, False)

When rendering foobarbaz, when the layout fits in the layout buffer, the result will be:

          10
          |
foobarbaz |
          |

When one of the literals do not fit, the result will be:

       7
       |
foobar |
   baz |
       |

When the layout buffer will only hold one literal, the result will be:

    4
    |
foo |
bar |
baz |
    |

The calculation of which buffer index to indent to is:

max((indent_level * indent_width), mark)

I.e the mark index will only be chosen if it is greater than the current indentation.

Forced linebreak composition

The forced linebreak composition does just that, it is a pre-broken composition.

foobar = line(text('foo'), text('bar'))

When rendering foobar, whether or not the layout fits in the layout buffer, the result will be:

        8
        |
foo     |
bar     |
        |

Unpadded composition

The unpadded composition will compose two layouts without any whitespace.

foobar = comp(text('foo'), text('bar'), False, False)

When rendering foobar, when the layout fits in the layout buffer, the result will be:

        8
        |
foobar  |
        |

Padded composition

The padded composition will compose two layouts with whitespace.

foobar = comp(text('foo'), text('bar'), True, False)

When rendering foobar, when the layout fits in the layout buffer, the result will be:

        8
        |
foo bar |
        |

Infix fixed compositions

The infix fixed compositions are syntactic sugar for compositions where the leftmost literal of the left operand, and the rightmost literal of the right operand are fixed together. I.e. the two following layouts are equivalent:

foobarbaz1 = comp(text('foo'), comp(text('bar'), text('baz'), False, True), False, False)
foobarbaz2 = comp(text('foo'), fix(comp(text('bar'), text('baz'), False, False)), False, False)

The example above might make it seem trivial, and that infix fixed compositions do not give you much value; but remember that you are composing layouts, not just literals. As such normalising the infix fixed composition is actually quite challenging since there are many different cases to consider when the fix is 'sunk in place' in the layout tree; this is part of what the compiler is responsible for.

Infix fixed compositions are useful when you need to fix a literal to the beginning or end of some other layout, e.g. separators between items in a sequence or list-like data structure. Without this feature you would again need to use an accumulator variable if you want to fix to the next literal, and probably need continuations if you want to fix to the last literal.

Compiling the layout

Your custom layout function (pretty printer) will build a layout, which you then need to compile and render:

...
document = compile(layout)
result = render(document, 2, 80)
print(result)
...

I.e. the layout should be given to the compiler, which gives you back a document ready for rendering, which you in turn give to the renderer along with arguments for indentation width and layout buffer width; in the above case indentation width is 2 and the layout buffer width is 80.

The reason for splitting the solver into compile and render, is in case the result is to be displayed in a buffer where the width is variable; i.e. you will not need to re-compile the layout between renderings using varying buffer width.

DSL and parsing

Additionally a small DSL has been defined, and a parser implemented, which allow you to write your layouts more succinctly (versus spelling out the full layout tree with the given constructors, which we've so far been doing throughout in this introduction!):

...
layout = parse('{0} @ null @ {1}', fragment1, fragment2)
...

The full grammar is as such:

{i}       (Indexed variable for layout fragment substitution with index i)
null      (Constructor for the empty layout)
"x"       (Constructor for a word/text layout literal over a string x)
fix u     (Constructor for a fixed layout over a layout u)
grp u     (Constructor for a group layout over a layout u)
seq u     (Constructor for a sequence layout over a layout u)
nest u    (Constructor for a indented/nested layout over a layout u)
pack u    (Constructor for a indexed margin layout over a layout u)
u @ v     (Forced linebreak composition of layouts u and v)
u @@ v    (Forced double linebreak composition of layouts u and v)
u & v     (Unpadded composition of layouts u and v)
u !& v    (Infix fixed unpadded composition of layouts u and v)
u + v     (Padded composition of layouts u and v)
u !+ v    (Infix fixed padded composition of layouts u and v)

Examples

For some examples of how to put all these layout constructors together into something more complex and useful, please reference in the examples directory.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

typeset_soren_n-2.1.5.tar.gz (44.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

typeset_soren_n-2.1.5-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl (684.3 kB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.5-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl (752.1 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.5-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl (649.5 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (475.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

typeset_soren_n-2.1.5-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (495.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.5-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (593.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.5-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (476.5 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.5-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (472.6 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.5-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl (684.3 kB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.5-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl (752.2 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.5-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl (649.6 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.5-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (495.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.5-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (592.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.5-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (476.3 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.5-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (472.6 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.5-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl (683.8 kB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.5-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl (752.0 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.5-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl (649.6 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.5-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (495.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.5-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (592.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.5-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (476.4 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (472.0 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.5-cp314-cp314t-musllinux_1_2_x86_64.whl (680.6 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.5-cp314-cp314t-musllinux_1_2_armv7l.whl (748.9 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.5-cp314-cp314t-musllinux_1_2_aarch64.whl (645.0 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl (493.5 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (589.0 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (473.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (468.7 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.5-cp314-cp314-win_amd64.whl (313.8 kB view details)

Uploaded CPython 3.14Windows x86-64

typeset_soren_n-2.1.5-cp314-cp314-win32.whl (296.4 kB view details)

Uploaded CPython 3.14Windows x86

typeset_soren_n-2.1.5-cp314-cp314-musllinux_1_2_x86_64.whl (682.7 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.5-cp314-cp314-musllinux_1_2_armv7l.whl (750.4 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.5-cp314-cp314-musllinux_1_2_aarch64.whl (647.7 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (474.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

typeset_soren_n-2.1.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl (496.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (590.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (475.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (470.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.5-cp314-cp314-macosx_11_0_arm64.whl (421.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

typeset_soren_n-2.1.5-cp314-cp314-macosx_10_12_x86_64.whl (427.4 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

typeset_soren_n-2.1.5-cp313-cp313t-musllinux_1_2_x86_64.whl (680.2 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.5-cp313-cp313t-musllinux_1_2_armv7l.whl (748.1 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.5-cp313-cp313t-musllinux_1_2_aarch64.whl (645.3 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.5-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl (493.5 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.5-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (590.6 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.5-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (473.1 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.5-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (468.7 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.5-cp313-cp313-win_amd64.whl (314.6 kB view details)

Uploaded CPython 3.13Windows x86-64

typeset_soren_n-2.1.5-cp313-cp313-musllinux_1_2_x86_64.whl (682.0 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.5-cp313-cp313-musllinux_1_2_armv7l.whl (750.7 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.5-cp313-cp313-musllinux_1_2_aarch64.whl (646.9 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (474.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

typeset_soren_n-2.1.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl (495.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (589.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (475.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (470.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.5-cp313-cp313-macosx_11_0_arm64.whl (422.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

typeset_soren_n-2.1.5-cp313-cp313-macosx_10_12_x86_64.whl (428.0 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

typeset_soren_n-2.1.5-cp312-cp312-win_amd64.whl (314.8 kB view details)

Uploaded CPython 3.12Windows x86-64

typeset_soren_n-2.1.5-cp312-cp312-musllinux_1_2_x86_64.whl (682.5 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.5-cp312-cp312-musllinux_1_2_armv7l.whl (750.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.5-cp312-cp312-musllinux_1_2_aarch64.whl (647.8 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (474.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

typeset_soren_n-2.1.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (496.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (592.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (475.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (470.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.5-cp312-cp312-macosx_11_0_arm64.whl (422.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

typeset_soren_n-2.1.5-cp312-cp312-macosx_10_12_x86_64.whl (428.4 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

typeset_soren_n-2.1.5-cp311-cp311-win_amd64.whl (314.4 kB view details)

Uploaded CPython 3.11Windows x86-64

typeset_soren_n-2.1.5-cp311-cp311-musllinux_1_2_x86_64.whl (682.5 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.5-cp311-cp311-musllinux_1_2_armv7l.whl (751.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.5-cp311-cp311-musllinux_1_2_aarch64.whl (648.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (474.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

typeset_soren_n-2.1.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (495.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (593.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (476.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (470.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.5-cp311-cp311-macosx_11_0_arm64.whl (424.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

typeset_soren_n-2.1.5-cp311-cp311-macosx_10_12_x86_64.whl (430.4 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

typeset_soren_n-2.1.5-cp310-cp310-win_amd64.whl (314.3 kB view details)

Uploaded CPython 3.10Windows x86-64

typeset_soren_n-2.1.5-cp310-cp310-musllinux_1_2_x86_64.whl (682.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.5-cp310-cp310-musllinux_1_2_armv7l.whl (751.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.5-cp310-cp310-musllinux_1_2_aarch64.whl (648.3 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (474.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

typeset_soren_n-2.1.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (495.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (593.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (476.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (471.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.5-cp39-cp39-musllinux_1_2_x86_64.whl (683.0 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.5-cp39-cp39-musllinux_1_2_armv7l.whl (752.2 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.5-cp39-cp39-musllinux_1_2_aarch64.whl (649.0 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (475.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

typeset_soren_n-2.1.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (496.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (594.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.5-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (476.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (471.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

File details

Details for the file typeset_soren_n-2.1.5.tar.gz.

File metadata

  • Download URL: typeset_soren_n-2.1.5.tar.gz
  • Upload date:
  • Size: 44.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.13.3

File hashes

Hashes for typeset_soren_n-2.1.5.tar.gz
Algorithm Hash digest
SHA256 3be55b0a05b5d074b71b0bc91faeb304b18a5d36f251c63bc05bd035e1b5347b
MD5 e1181968d0be35938b76ad27b70bb320
BLAKE2b-256 8c523dfea640138820c2c0026795a91a258f3f88edab68dae00d07d3581d1fb1

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f81f09a62ef6f7b4f547f5760c9e130abe03ca35aa59537c5a47e388466af9c7
MD5 0fa078aac0b33ad0cf1da8342e6b8eb9
BLAKE2b-256 e99bf790b26cf4996e3bfb9ee55c4bdcf7dfc88e18f552492a32e1041807ecc3

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 e86eec558cf6da8951eca5db1b7788604ba9becd3020f2d17c5a5c4cfa265e08
MD5 ea5e3b46c91fd7cc202badffe4e87c4a
BLAKE2b-256 95bd41e9b511cbc083467a6899342ab6be774d001da02062a163575e32ed9623

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e3eceaee9f561cb0e65bb96ad80b3f84fe5fc2b62e78b37c7c9f4f7932993537
MD5 882c545b6faec0756295142764eedd4d
BLAKE2b-256 a60cc6b748c866f2ca4b26e8a43602f2f6f5043eff521536e77aa04b3fbd46ff

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4008bf38cdcc1c17538ece9cbdf0a2040cbe98989f1acb2c30ffb9c4e8abc0ce
MD5 928dde2659cd77cf23327b25be019e92
BLAKE2b-256 73bc50372811801070a5f7609b50c4e01d5f201555effec3bbf2102e33a72547

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 96ea67977f9ecde71afe6d8c0253823e545209a3e2ed081bc50e09f00c15bdd3
MD5 c5b7bc781797ca910427f7d13820f36c
BLAKE2b-256 ca354998eb928542185c78596631f994f4432318ed8d29b0fc2eed200bbdf4b2

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 d6a6f4eadc1b771e3844c17f74829f0e3ce80dbed7ced3a31a864a3104b59442
MD5 3fc953f289d08844428c6c5d2f8176cf
BLAKE2b-256 3ae3d8702db8b0bb180a4c665969cb81acb21d27b0e4066681fafe1ffcbc2e00

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 25864f8fde2c06f19822e21d04362e0eded05196fbabd3369d2f81e881de00af
MD5 b175fb1b8a324c703c662ce523a9e510
BLAKE2b-256 20fbcc6064e6964b058366386ad23debc45e5228c9bbf3a47a9d738054386fdb

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4f36b0d2534fac6def6321d50370553326c3f6bd470472fd5209f5fc5a5f56eb
MD5 d2bfb7f1a0c7cf9e980c2712c1f01571
BLAKE2b-256 a9faed32c16272d00508b613664cb8d34fff5d89979450f006a5c84a91d89e51

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 adb09ef4853c22a988386e09d679b64767a425d8eec36e3f1ec251cb44849aee
MD5 c61f1833d6ea228f5eab39834b3fd8b0
BLAKE2b-256 3aa94b6c4d50c68beaf84414f0ace2a3318f1b0eff5e9df15258b162c0c3e038

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 0ef0ebc6cbb0235e542c623e2e01d2134a32e08051e033cf66ac98e3d4e7b65d
MD5 4ebf3c8d8ef7ac90c7c24aaf32535e8a
BLAKE2b-256 0debf46bbd15cfff674d4b267c2db198ba7c82e55c87aef2e6af399953adb8a8

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 792ce28fad95bee0c758d80f4d6931ddc343f4bdd6211785511bf7d9bc6b7001
MD5 bd1ddf79e6f0492afef4f951acdab2fb
BLAKE2b-256 7dea91ff7519759f9f3ec2d8ae91575e98271420d7b8bb5d1a9bcc9c23ac7554

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 653c017dc50bd6b013949cbc79e344270fafba79846e7bfbb58db26b46e94b2d
MD5 aec56639b5bb0ff9a5e8f451821c3d6b
BLAKE2b-256 623db308a97c0cdd34844ecb36e0fd716c5266ac6fdf092eb8fae25c247afdf0

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 eebca2e828089a5841c4def0e1593fb87da31e609d9d6ce4ce2df7b83948f8f5
MD5 e93dbe9a6f18e8eab0b65dba2c101047
BLAKE2b-256 4fb77c46fae7202fabeae856f77e5157959f81b989e548d4e273d3724cfbafbf

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 bcd9325c194d0d2e19950dba71b2e5ed847b2efa0e0e714eb6353a416f32aa66
MD5 0541c064f953ab68babbc109704bb88c
BLAKE2b-256 2bdd8c0d7d1a9db9f7c1711ca5cb6d511f8f6f60208354be03b38ac3ac87af5e

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7f9837e2dbe44ad47cff0e9a79c3b04870f46b5cc04b74c0ecf9d61a7af0ecf1
MD5 5de4acfe3f511aca2373384fd3b3b60c
BLAKE2b-256 8416e6b5516f72f06189a07d952e4417272def63b1ff80b2cfb84906bc0b4c37

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a262ef9c55febe87e72388785b2d73b72ed551c3bd09f670225389f421b80a1c
MD5 932358d7cf2587c03a2deaa74064df0e
BLAKE2b-256 621a1d1878c8e949675871bb9cff179a80f820714fa94a9b8f53f43051eab0f8

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 3aa4778f95cd028abc1b43ff6d4da4294a05374954623921fab3bd0a8ec434f3
MD5 f3fe0e0472884ac8f16a35b60040f63b
BLAKE2b-256 9a8ecca0313c8efe6b343413914fd47fc4af4e497b72454ce09c54e521067f0b

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ba2738c498b649fdb0a0606578c5425769af9de51166f9ed7b91290eaffb3034
MD5 88366424289d0cb682601d77907a90aa
BLAKE2b-256 e505968777eb6cc9b1907d323bd9bed1c72626dcf2b0c97b94867836c4af6e5c

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 530e25daa0afaaf8d886ad5c3d64bfde8906f21ddb2e97a1886c0a1f4ed905ab
MD5 270f28cb929aedac318f759f64eda34b
BLAKE2b-256 c40d616ef3169306ac0a7ca86fb549fea495e966e7fdd6cab3d5d7b21610d5a0

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 5197abb65387c202c8ad7987bc8703cdd5f46a42a015d3380f1f4ef5714f45e0
MD5 c2529cea15f2795e2bc0a9ded614700b
BLAKE2b-256 c7551371ba9668f4247071fedfff70376889f1ad753fd3a2797a0e4ac7a8a603

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 d1c0dc6ef109457e12098625e3aeb815f4ad7ce7f1a7a287c4ccbdb0c4ac3383
MD5 70c6e4ae2c0c5ecbc18496b5c36a83c3
BLAKE2b-256 3196b909bf0d1ad72332935d5df3a565f74057ceb1384163c19420292363f679

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 473d2d40429a369c7084aa1b4b4a370afc80ab4d4067e905a421abe32779acd9
MD5 89720e1abf2886228542e36029c6de03
BLAKE2b-256 ccca5c06a791cec4bc402dfaa47edaae7a9dae591ac59ad645cb1ed338798997

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 dbd32bd62b16b5886cd60b533d88359bd53e5dbdb4d1ae27ea3f804b85c75347
MD5 9a06ceebe0353a2d4da8241212cfb3b7
BLAKE2b-256 77dd58303bf769f925163b4ac85ff9670057714244099dda1c06e1d07ec61c99

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp314-cp314t-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp314-cp314t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 eb3960b2f4afb02208d7dc6938507a67a571c383d226abc3991028d6569f84e3
MD5 0d9e201f6ae7d6bf7f314e3e0211ce39
BLAKE2b-256 5ca6b946584af4b54c3c7b3a72c5ad82adc06fc8159fd29ef31764c987df52ae

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 bff6ccec8117a683e49b7fae52b4cadcf53af5028ef3a2ab8949f7986c8e6200
MD5 b894770bc9bca83ce8eeed1a697a656a
BLAKE2b-256 cc0948f23ac08084d0bed34dcb140f67d78633dda34b3e543a86b0a90d8aad2d

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 0b40708f54c77c964fd47dc13695e403e4f2bffaeb9b7980810078b1586d7164
MD5 3b4d38a56b8d29db362b4deb98b1555a
BLAKE2b-256 fe5af30bbed31cb7465ddc54c106946ddf109b1a3738b80e7ee7c7ccfaf6e262

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 04ede0a9b3b1a620899d8d9d372aa60c7739a492ddce9cb7ce09d493080ecf45
MD5 39683960029e6882e9109293de4dd263
BLAKE2b-256 0cd39b935101272eb5c3cbad1369f2284979e7570a7cb1a0739259894aa43204

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 0122f9aeb6ca68dbcf0b7060c553d2b8cea03ee05f3efcaf2d0236024df726b0
MD5 0c1e0beb8b59bd27dd17c4a23a7d7d87
BLAKE2b-256 83067d8645ee1b69127530d8adb45bef35bb5f86e33e0e0b4e2eebdb237590b8

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3818cf47d1d259eec2cc4b71dd14fa5f734e976f32c4205849e0bea6780554ee
MD5 9953c22c454fedbf720502ff910eb372
BLAKE2b-256 2528772f8dbd8c86836a3628f9d540632ae1206edfcbfc66333d5f4ebbc37392

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 0ed2f138958975bb48d393e24fb03675f1957c5d2e7fdd614eec83e468573f18
MD5 ffeac36850a8911d2184881aea5d31d9
BLAKE2b-256 3ebd7eade1c29132cd3899e5b460a08d4c27b3a8a121cc0d50caf453a300eab4

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp314-cp314-win32.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 d255341b8ad09899cd7de52c39d5b251505ce44a379c033b6522d5c23d53c79a
MD5 7c85565f836c387dda6267b13ef29571
BLAKE2b-256 0c282eb5ccef45c95a7ca846dab66a314dc5f8c852c50f407304ca8b3d63e306

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a89081d35c77585a916df53230e2d7cf480aa21abeaba2c3dae75d8f374b745a
MD5 5cbe00bf68d11209a7985b9e1928322f
BLAKE2b-256 681f6d8ef79ce27b6a29fe5bd93ba763c321afa328a7c058ffdf19ca8556f5af

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp314-cp314-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp314-cp314-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 d762c6b6989bd65c4b9fdfd73b87bd3f01e0c19c7beca0e63a41171dc5c9626e
MD5 e1e13a0b13c61400301ba091d9097ae4
BLAKE2b-256 8ec17a061bc45779c70a5c6fb7a6273c9d161b78c4418752d785be73c68af513

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 016dcfe51d315b0678fc099f9aeef06998c7330d0d104b16df8c3b09f1c8dc97
MD5 86141d164dc2976f56a4d6728e8bc99c
BLAKE2b-256 d9db9c0d128e865961750082535d52f816af7e2e17309054dfaef2adaac00031

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 284452bf17828ab3f91a76829e4f3d6107d173391362bb9a97167700db8727b2
MD5 432afa39b5bea3463d5f050887d35cfc
BLAKE2b-256 21f10efa2ca63991e06311f4f3becfe1004811a0a8efbd543d34215634e96ed0

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 2e10f1c31575cb84e9cb16add40e923dc86fe693170f6bc54a5885e966b13e66
MD5 ab01d0ba3ad06025619b2875b1d4003d
BLAKE2b-256 0fb982ea69b91669c72e2624e438362d1e9ac8f7ecd7eb7fc16e3337625212d8

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 557511a5369a4fe10315b8e6cfeb620d0984615b07075867d9b68c3289418b00
MD5 4bb7804f356869fdd66db54850c8cafe
BLAKE2b-256 837350cb6be742c552a8976931b95bc948110f92c7967eedc63efa696bd79bb4

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 ed6a0d3091a314b945bf6033098aa8a7abd2666a1e8ea2f9b4f525e067c3cef8
MD5 34612dd81791eab369156ff8962c708c
BLAKE2b-256 8113c9c39c2de32976698348e59566f922790548bfc52372f81d505f05ce2e49

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b3bb603a10c7a0460f388dd2282e40cf98d0339ed6d0420ca0ac2e822c969451
MD5 ae52830f30f00fd7a132a1dfc9087bed
BLAKE2b-256 d1387d493e46c2ed599df9afaa7f2b75085b707ceb28f5e79f372f22c62e49da

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cbaf49211a934898be24c65ab62ef48b0ad372782217e01794841f8c793b0e0e
MD5 ed3fd410599f0fb516254bbe69d77692
BLAKE2b-256 a7f506a2a7da63eaec02e57510c440f2897e463cd1c740b12ba14c31fd0f4622

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0fbbdf58ca9a6bf52a517040b38ee3f31bb6754cd2a58b4f735bfc313663835b
MD5 0aee8f681ca2d67befc659e379cf94de
BLAKE2b-256 1c1d9530ac1afa04543319d166da12afb3c3cc7c9060f29f3eef6eecc8fab410

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 efd7d31ab0765c9a68ccfdaa3d952baee7e929718b3070591434143d4c0816c2
MD5 ae89f9947149fc3aa259e5f1505c191f
BLAKE2b-256 3d8494c77a177f7af5530bf30aad878627efc5f91b5513d1fbb921363aedbeef

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp313-cp313t-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 e2ca89b8e8377bcb8cf6e66c9e211941af96849637a05197a94bf8fed7e01093
MD5 064fa0af7dfc821d55e996e7bf45fc49
BLAKE2b-256 9d28dc1cc5dc7259fb9d421dc2a854852f25fc90b6f04ef1354a230e546da96f

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5f48123762ad41d149337184b77c9db324c128bbde9645724baac9247cb684e1
MD5 dff2c1ce78fcde4d9acdc1b5ab5396c9
BLAKE2b-256 cd7d24dd0deef4987a2c940693e4d4ea66b6da433b0ac79c0607a7662b5fc5f9

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 990b628a9d2ecb18995d3552105f7214f8faf088d158de16f66e31992eaa2629
MD5 391d87fcd253824998a004e390fa4c4a
BLAKE2b-256 85e59857f21fe892fcdc5d6f63a282556fec218a7901e8824a5cea27d4417c72

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 b3cd5e700a0dfc37bcaaedbb3f7e4b7da7c4c01914339233f0e041172802a4d3
MD5 00d3cc4fcde66fd323137e775ad09cae
BLAKE2b-256 439f36be332964998a39c09bf0ff4771b6ea433a2e93956041a51aa1e6b513b9

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 f389a9115eb7c8df193011c818db5c4f5a3d78a4cbba1a900c0f731fb6e9070b
MD5 146517f330767078019ce4b0aee0f55a
BLAKE2b-256 277039502494ef96a026925a3e29ddf2e230f165cfe406c3c4d10bdfd3908a9a

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 83510c2200010d82edf173b78a5e07bc60cbe126c324cf2bc334e58171ae5482
MD5 b858024ea06bdda8f0d92a0c4b958110
BLAKE2b-256 30e88d4cb84667a7f3a7c63b93fb06b347fae90eaff5ba8e1f9388f646a21263

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 72a831f7ef1cbafe8853dfdf1912164109212d8f91ea914d5a579e58bb4008ca
MD5 126def712c6ff3e733a5ef2d867c2832
BLAKE2b-256 143b5616e0484ee17bfd9042261ad8308bd282c4ee4f8f775a1fb6b7db00b6a1

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1db38b37da6a11f311d55123d22ac2f3cf2658283eba8c4d44ee9b609cedd721
MD5 af857a5944270e3a89edc0d2e9d0dde5
BLAKE2b-256 343fab91d3d197e5c61e347b4a92dccb5ea14d42d8fd10ad2b90795339aabc57

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp313-cp313-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp313-cp313-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 ecdd4375b177198ff98d8596e6ddadbe91ab208c0fa1ef27098527bf284055e6
MD5 c5dc375dd891593c4e99985eb6e7e6b6
BLAKE2b-256 28fb405d6bb9efe5377b4448799b9b39a8d63288d1483247c392de2b3a2c87ff

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d6a88410f4ca60dc38f9ff2d14e907e11b8721457b7a32198b8b8638fa326f50
MD5 5b48ecf125be952089b01187840940a0
BLAKE2b-256 bab9c6c3591316eca74fe14c0f1c074b757053f9ef8e2485ff2de4ba286db7ef

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6b66a3680c4c62ede5c2a5ae2c8e770ce13ff79a9b044e15dda73a563918d924
MD5 4c2da7c606747c5fd7537235428c34b9
BLAKE2b-256 0d14932a9a6047d7010c8a16cee02b85d4eff3a4469fa6b8e05e4de95ad20a3d

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 c1d48a8c3ea257a62b3c55d4f078e1521bf22cbe365032ce3c7a8a203a10641a
MD5 fa60ae284e90b2adc28ebf67ca8c1d24
BLAKE2b-256 7db64c4345fe093b12548a389a94c63548dcbc707ea8725cfd9bae2a8c97a749

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 039b40605277c7be6074c783cde1dc2db85b699ef70d21c086fb099528f7d35a
MD5 475181f074ca24d2a760ff2fd2c4a70f
BLAKE2b-256 21958d849a70cf77a2483af261be080a7feb6498484565f1b1d9ab7cb9dcb997

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 0c8f8cd1f7d6edb477eb5b831aec94e5d5f27e6360fb29c591c2f2120cfd3e86
MD5 0fd789dafd50c89cc086e3ab0c8ad276
BLAKE2b-256 83a45dcb83da9bd63aab0c9046415070ca19a5adcaed63ef77c3dcfe0ddb0d78

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 896bafa7ca97343afb2199e85d09aad96fc1dc8cb4eb7bb8f572bfda8849260c
MD5 3555e56baec6e918343f05b28c9a1432
BLAKE2b-256 a4b0fcc2737b1f3ee5f5ade21626a396655931640377178b9c1fa15b3014dc85

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7b817a12d559055f177864cb45cdcfc89b3d4fedbeb410c160b7e5de2bbceda8
MD5 7a314a414a8e083a42682656bb660a9b
BLAKE2b-256 dea4ce36d9e9e7624d365e1c6b0b10929967b547929860ef479d3bf5ccbdf8ae

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 72cc92a12c0599953ee900ca1690c2b925e3e3455838639e6de10860b5548a20
MD5 bf97fad0708db42773f38dc4cf32173d
BLAKE2b-256 52494e24fd939f390fcf05b01e7378f90306b97dac8074940b297dcfb68015a6

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a33dff11d5938cc211acf0edb7530194fb72982593c671356c602e354ea8e196
MD5 96c09b123202a0a28573d81399444b30
BLAKE2b-256 fe1bb032f85f0a9a140d585b8c536d3dfed33c4cbd5c59e1a5d2e0525f8b9c66

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9cbbb8fa09fc7128dc1962225d206ba47e0595444630676a9a842a57a26256b2
MD5 68ba97fb7512500e657050e556864261
BLAKE2b-256 14a46e5fc63963ac833d95b947d9123c1d1447cbdb1543fa3d2d1b2c05034bcb

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp312-cp312-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp312-cp312-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 b8e431d49f96efa169d799a1d3bdd47ae187cadd2980327a161f8b43d6b051d1
MD5 a5ebbb586606b2f305c9adc3cfd94861
BLAKE2b-256 f5e8e0dbe1fe8383d1ffad6dc50b0b49bd1bef8062032ca3bf74b8c1d4917b09

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e96bdf9f46ecfc127f017ab15a53237479526a240cb37b92675cb46a181a4946
MD5 08a02fef0f1e4fb702e1430128b909df
BLAKE2b-256 f4b647744ff5edfab5465da35cdc0fae093a18d9825e6893fca7f02dace785fc

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 503aa1fd649bb29da4a884d334f286d1ecae8cac0732a4a22d40bc905623d153
MD5 3add5c231935e08e68205549f44efea4
BLAKE2b-256 ac3161c3785c34578dc1018f2f81f1facb8f367e8c4d8b28d9625725c1295777

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 3629865251670caf3c7ca9fa038ca36871a63053d777ca318715cbbed7efbf8f
MD5 1b19e487932b5f7b31409f5f73a68baa
BLAKE2b-256 cf1d3602a4998efc3f81f75535e66e58a9398524963750d53968561614132c1e

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 034c56afacc551a56f14fd1b83644d6c69b0cd39d3667f1e62bd11b79ec6e12a
MD5 f30aebe97adde4922c63505c3a927915
BLAKE2b-256 1c0197fd92fa7a1708770bd2fa9541bc20f7fd7f9fbecf1d8c4295dc4a2389bd

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 bbd65d98e708e88b429d666d477f23457b929db76a3aead9170c02cee4e483bd
MD5 7d415d3c13e5a819f4274a13e9f2672b
BLAKE2b-256 b393368b03fec1d5e135e6a77a32f82dc02ee585a95ee14d61d6c68d0940c499

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 560db3d739f3d650dce6b4e68d5571dea0ceb301f0b4fbe7acb7f6130f235d29
MD5 7a0aa09c0371ba86647252b354208cde
BLAKE2b-256 8be815b73fe956d0e56a8f2261c5e86424decd61ab6b275a65538e6987a3cbfb

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 32175e151efb8f772631c9dca8ad3652e3c91c0c954800d4d4696f4e78f149b8
MD5 9d744a17ef93a573a1bf6006210219d1
BLAKE2b-256 541011661ec838ad733762793820b45d781abde3fbe2838151553cae2fa9049d

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 e50c2a0c1fb2c414d079a5533fd64088baed467b66fd2984e3b8703f351bc4cd
MD5 7ed5eafb4139ab28b03def130a98d8be
BLAKE2b-256 c088c555d8381d291549eb1819aff5c20ae8d5e593eede6a1effb3f0ab0f35cd

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 43ebff6014946358d8c6d776b5a0d9a291bb28ff880a38bb051e0a738097126f
MD5 97a96c9bd7628575a2cae66e345c0b7a
BLAKE2b-256 0b8e09b50e23cb7e6ada2e55f04750454bb80f9db93503126a0dfa7b29e32eb2

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5832c5ecb334b164d97df42923feac4904e635015a23b7fccfec108719d8a560
MD5 45015cf5ed7a9b5e59af0b31f9b44e5e
BLAKE2b-256 1b1a12807214cf080b7b03610f73abeff30d2ec14476bc9a0c8472f23f2fabf5

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp311-cp311-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp311-cp311-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 b23874284fceaf81dde9415a23f261f5d7fbd90f1affa3e400d083bcac64d24e
MD5 8a889e986c19b69758a25355304c3b88
BLAKE2b-256 3877d4efdba6c0272de314b67f448ac64915e9c7da1fc3e09e1e56f3cc20cc45

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5ea0f43f5700876432c21a2e60728e52399bdc00dec1560638e7c2c7e2e6beeb
MD5 11e281a7e9b5ab53974d80c104c7a2fb
BLAKE2b-256 2dbd0bda816e53d9b1138d941a346d581be82082388fe4f0616a1b4825aba0f1

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 be1564098991dbd0c172d0ac6cc138a74cda2d4ab9dff30481c20c6cb6bcc201
MD5 5cb18d9996b4ae2450ead1e35036c9c3
BLAKE2b-256 9401f34c938e0051e441297f1e7ccface7e2bfbe2abfde45e2c504a21cd2bc61

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 2ad90606f5d2af80a353aff50b44c3bf0d7e7de186da14ac07c2379c9de3db81
MD5 bc844ff27a8550e204c081d069109587
BLAKE2b-256 aa73a1817dea6e29040f710203927bdb128b742e7871ad7f924d8a137a8a7767

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 5eb65d62a2b5bff79868c60ef02dc5a3244cd47898121a6dd57dddf126de2374
MD5 cd30c16c17e4e854918d40883453da08
BLAKE2b-256 65c4ada625ca0a80849bb313cb303c8e8aa7deeb6f168cfbde5850f4ff540895

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 72f66125846b695be58bafd7ef2b3360f5e21df778bd579a7ccd96952bd324f4
MD5 04bff70ca8aa8ffbf525ff910538b9dd
BLAKE2b-256 01608bb277bbb15b56397ffc9337eac23ba91bda9cb5dc9d925ee51db580033c

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0fe9b78597c91ea734db6bad9f0ed1217998c048d176780bc96a65d1955c5641
MD5 f8d94652fdb8920711ab2a9f30669d99
BLAKE2b-256 51c5d5a286efbd4a6ff275c30b37d6267087e206a43889e104944075ce69c15a

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 713dc89c9a8e01addc667d88a02af698f4fa1991d35d2c2fce65d6474ad9b1d8
MD5 2846b535a03dbf4f4b79e87b214ef590
BLAKE2b-256 34c6642631d5e1e5318d1c319be952c37c93ae75adff26b7696124dadf9527f8

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2f3f85b5cb9c7eefbf7c5cd2b17198432af48fb0348945214bbb411cb7883646
MD5 1d38d5684d60c6d76e6fccbc2ee9c07d
BLAKE2b-256 e67faa0eca130499ddb28f2af3b73c3e19b76101ad6163a104da022370e0c4d2

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f0b5c5b639969b258a1b0a8de35ee5226074b4f8601b6366bd2774aa6d36660f
MD5 57039875c0fd2025de0856c1f76a804a
BLAKE2b-256 7c00bb58c273b69b532c821671733b07eff8d5c079c2661a80b70e2ae40e0a25

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 405899bf0d92b8b06013f9a0f3c57079c2534099dbb7733427bf85d0c459b91a
MD5 e9d5fe002a4436361621a54c521ae418
BLAKE2b-256 cfe5eeba0485cc22157a53d240b261b59d9b94f2aa78d8dd264a2390ea4e359e

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp310-cp310-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp310-cp310-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 82a301a24560b94e95dfd59a26645fa086f614450fd19a9fda984bafee7e621d
MD5 41cb026a105583a6a4e6201aa49d93d0
BLAKE2b-256 1620be9bd6908434730cbc776984ff51dfdc257089a0f0e91ddf07a99fa37caf

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 acdaadbc932fd26719f24861b1517b118bd7571889dc92e20b0759e2171a5908
MD5 ed0805b678e55eaede81910ce54093cc
BLAKE2b-256 c9406cc4c296d2c58cba475e81da634b044f76c3ec4a33f60378f667091bdeed

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2e6e970f093f0dab4123532e008a9dda504eabc21b5ddda849309a2145545b64
MD5 65779513edcda87ae45fc67a30384e3b
BLAKE2b-256 1fe810e50d5935b0805b5c5d657317ebb73e644919b488ab39c0f4a904ee1eaa

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 fd45deda5955725a75e0d99afbbdc1f11884a7e9ba655be6c75f5fd01f5908e8
MD5 16dd23fbb967f429a006972a22d31bbe
BLAKE2b-256 907d818a725b14c5fd4ee771d2aec28fc1c507d2eb1f9ec60f50201f2a064374

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 8be3c3768d4a212ca73b878495990c3ad4455f2364afbb41867c96e256a4e62f
MD5 5c62ff0a8a5adcb6b727e948ce8a4f80
BLAKE2b-256 7902280e7d9c2c8ab24c7f33b0bc3621e3da8d337f6c98c314027d77b71a8311

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 b6e5f258251daf7d41e78d1889435b9550c62837533d04b2a48c5f4219b9cc89
MD5 46349064da9bc5bcd9c109d2441dd990
BLAKE2b-256 f923684eeb85456f14f15990dd46a869448740995b9cb6e9937f2024f076b273

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 75a33e64536a9a88ee5b178e7b43f6f03b29e6302c6fd564a3d4db7e345feb83
MD5 a6abed3e4ebee1e05ca0a1387ec0d84d
BLAKE2b-256 4e24b0f5500ec8f3ce202b50564fbc8fdfcbfbad1bf856091f37a974653e6e66

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 578b2ca0c96c517495041e8ac5373851cf4fadb9ae8a53638c7a223cc188c384
MD5 d4098c2cee41aa33e13429e164fa663b
BLAKE2b-256 84a136a7ffdf68e1dd8ca4a358d6a17e82c77b2e9043ff695a926dcd7d0331e7

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp39-cp39-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp39-cp39-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 413f3dd0f5eaeb907bb20c1a794aec1990ee4108098c7096ae3eb18a802cc228
MD5 2660029b8e66dd0620ecd04d9792f620
BLAKE2b-256 2366f4e14e4f7373a610ebcf329f2a1b7383d0a2cb8f8bea1913e99f6bb9d5c4

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6d77fddd7741884810f538ada608ae281f4e35cef4aa0a68417a5913009b0380
MD5 375b89ed4d694a67553f0582c54e4e64
BLAKE2b-256 d75e49daa893dfd18f8290fcb17b54827daec5e9da8e4b7fc02eecd17f45ed66

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e20702f9e8d73a2d59f192eec2a672e29f7aab322a05a0be0f361f15b0758740
MD5 6625e0abc24ba27a318600650e2bd73d
BLAKE2b-256 2ffbf62982786eb04ff921dd764b03e4c9c1d184fd2bf60c18cff96aea4845a8

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 0e768ffdbc34762d406b808840506617abee440f9c2c0b63a4213d466b9abc3b
MD5 7b92e668805bbbfd1f4f7e675e99df63
BLAKE2b-256 aed9b1e8347d89cd7b4667b77697fda36306e655a79ec23f96040cf4e1590ad9

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 b8832dde2b2e8aff53e9a37acd6401622aa1cb81e45336acacef0ec0a5f7b094
MD5 9ba4a73e492d29a5f730ae4b85d60b73
BLAKE2b-256 ffb35e8b3c76b9adc95c26bf1e7df7bc185667814e516be6a8f24a2e62eed0da

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 842f4ba4589addb601f196b320b28c62af266d488629a0ef343ae7f44669fbc1
MD5 a4fed56d67a0b77fa5a833b2eb1f84cd
BLAKE2b-256 6f919ab54360edf1f2c8fc1a253b96f0443cf0f3274e42d9b17250a779498495

See more details on using hashes here.

File details

Details for the file typeset_soren_n-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for typeset_soren_n-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f0ba4f6545647ba621afefd1bcb8a3563809ae4b6e1e806c1e6672154ce9eeb4
MD5 833101bf79073e07f342950633074a9c
BLAKE2b-256 3fb184b887420f74a3d281794af2ef13f213026a4b278f6a8af61f39d534d5cc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page