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.4.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.4-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl (684.2 kB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.4-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl (752.2 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.4-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl (649.6 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.4-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.4-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.4-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (593.0 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.4-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.4-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (472.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.4-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl (684.2 kB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

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

Uploaded PyPymusllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.4-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl (649.7 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.4-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (495.6 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.4-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (592.6 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.4-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (476.4 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (472.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.4-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.4-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl (752.0 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.4-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl (649.7 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.4-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (495.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.4-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (592.6 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.4-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.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (472.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.4-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.4-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.4-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.4-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl (493.4 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.4-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (588.9 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.4-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (473.5 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.4-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.4-cp314-cp314-win_amd64.whl (313.9 kB view details)

Uploaded CPython 3.14Windows x86-64

typeset_soren_n-2.1.4-cp314-cp314-win32.whl (296.6 kB view details)

Uploaded CPython 3.14Windows x86

typeset_soren_n-2.1.4-cp314-cp314-musllinux_1_2_x86_64.whl (682.6 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.4-cp314-cp314-musllinux_1_2_armv7l.whl (750.5 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.4-cp314-cp314-musllinux_1_2_aarch64.whl (647.6 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.4-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.4-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.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (589.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (475.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.4-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.4-cp314-cp314-macosx_11_0_arm64.whl (421.8 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

typeset_soren_n-2.1.4-cp314-cp314-macosx_10_12_x86_64.whl (427.5 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

typeset_soren_n-2.1.4-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.4-cp313-cp313t-musllinux_1_2_armv7l.whl (748.2 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.4-cp313-cp313t-musllinux_1_2_aarch64.whl (645.4 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.4-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl (493.4 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.4-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (590.5 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.4-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.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (468.6 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.4-cp313-cp313-win_amd64.whl (314.7 kB view details)

Uploaded CPython 3.13Windows x86-64

typeset_soren_n-2.1.4-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.4-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.4-cp313-cp313-musllinux_1_2_aarch64.whl (647.0 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.4-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.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl (495.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (589.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (475.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (470.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

typeset_soren_n-2.1.4-cp313-cp313-macosx_10_12_x86_64.whl (428.1 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

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

Uploaded CPython 3.12Windows x86-64

typeset_soren_n-2.1.4-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.4-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.4-cp312-cp312-musllinux_1_2_aarch64.whl (648.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.4-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.4-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.4-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.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (474.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (470.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.4-cp312-cp312-macosx_11_0_arm64.whl (422.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

typeset_soren_n-2.1.4-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.4-cp311-cp311-win_amd64.whl (314.4 kB view details)

Uploaded CPython 3.11Windows x86-64

typeset_soren_n-2.1.4-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.4-cp311-cp311-musllinux_1_2_armv7l.whl (751.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.4-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.4-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.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (496.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (593.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.4-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.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (471.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.4-cp311-cp311-macosx_11_0_arm64.whl (424.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

typeset_soren_n-2.1.4-cp311-cp311-macosx_10_12_x86_64.whl (430.6 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

typeset_soren_n-2.1.4-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.4-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.4-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.4-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.4-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.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (592.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (476.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (471.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.4-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.4-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.4-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.4-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.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (496.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (594.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.4-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.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (471.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

File details

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

File metadata

  • Download URL: typeset_soren_n-2.1.4.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.4.tar.gz
Algorithm Hash digest
SHA256 25a5efd068db4fdc0d9a98e62f1770a020a144c079fbf9df74af1a54da7e10a2
MD5 288c0224d51d341f9e148b2d22808c5d
BLAKE2b-256 d9c18c1f90d46ef55fe5085f94211efb70f8b13b276bafeb25fa0e8bba765533

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 71fa04ca00a3241ba80f3d53233ce57d9b7724bd21084f680116d177a18edd3e
MD5 fd86e016606536d0c9c807c8011d6580
BLAKE2b-256 4a0663ad4ba186b16776c6b3fc0ea02c11b7070d4045e4c9510c06e76b787037

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 4d4a65c386d4317a718c12eca48fc782fc3634eea43c6489f254be4ce1ba21e7
MD5 b476da7ad6cc8fabac21cb66f5a08652
BLAKE2b-256 cef7b916d91b6ba64551cbe72be06f1ab6e65e7d189459c25fd05eb6435c8777

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5539076473e0d256ebc5d9edeb7e8e70cd2a9a4c181d30e6d99ce0d1cdc09ce0
MD5 c9591870e8d74e8c70ca3efadb1c6eee
BLAKE2b-256 c796367f782e467090eeb7f33107bcc913763e46621237c5ea208ee37b707d4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 de9099b122c6b2d758c5a2a6089aaee3a5fcb58d9749d6dacfa8706a653cea82
MD5 00f37a1addf045270fbf4d4ce2c911c2
BLAKE2b-256 9248d55dd5c30418b98f12a2c13534028662e92c8769e313d5ebef7dbc94f97a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 78b7a2557cd8c614b22535f03190cb2212c326e903fda81f1241afd226272602
MD5 3e85d5f2b3948dba304fc6097bc43194
BLAKE2b-256 9d6e4fb517798d93998961fd8f3a0d24131ab9d21015a5f941d53a9e83712bde

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 3077e483df7b5b84932468ac19d700b2e561cb0b2447fcb7e76c2b2c86504dfd
MD5 0024f405752bed96e301b40316a79843
BLAKE2b-256 d2fb4015ef67234ed644cef5b657102f129508c8f2189c9dea89cda9d1e72e7d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 fdb6189f5b33af0bd5bd2fa108b95444044879c7b3464603023243f4eae19cb8
MD5 7253259197d851fe6d3ad7339f73544f
BLAKE2b-256 e320906fd10359130c3920bdff2bda103c33a59f56093ccd8541f8828aece872

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 20218e5107732f3832f6845d9b0bb96b33a226afb34e4e776e55561a7f5aa8c9
MD5 fe5afe91d1ad697599f4e81c45aa6756
BLAKE2b-256 2ccb10e95b88154232db5bda669cacf5ef4d0e7c5851c5bf62ce7494bed9a29a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 18b8c095ec2b424801517df9758119409a46d731b06c9931257e6a30d4b41829
MD5 3d2304500292697ce280b85174c80b1c
BLAKE2b-256 ff9a217d30460da8935a8e8f81c11796e64c932fe9d172291933d956f7b04598

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 f05f3c7a286b90fff77b7bd0180bf9ae3ff0ec2da29d4051191f560333b06135
MD5 c094b6990ac0c04dc4f1f3adc0c2eff9
BLAKE2b-256 67dc156daa1e87fce03c8e9484cedb16dac198eb96a40a643c06ab79d4784c36

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 cdae2acccfc9a94e5c6a047b66fd5bec6096c31958aca8f4b28a020d73c6fa96
MD5 f0e9753af72cbf62b3edc2e56d807b40
BLAKE2b-256 6aff803bb6a906c956c24c81f15565a96c920603ce47dea77ca7fec5153ff75b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 387ce395f57113ca88f2d12bd094b7cdcd63f5ede68afc07f9e96443a3f91e0a
MD5 ecd2396b2b16df7a83a05cd0a733a822
BLAKE2b-256 a63357707e448fb2c5a7ac30dddddbf874b9fda6c83d7be79bac90ed52de4f71

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 9df478c66e11566747877db7ed23f27869da637b51120a6e21d4e8d7149000f3
MD5 4ea7776bdb2b0cd30c050832d075237d
BLAKE2b-256 f2e7932584e913f435e51d694106f3ca72636f4892ddb3a8dcf23e979aabae1c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 2793a1c44018e1cb217274077b31d58aa9e8c6d5463d44f3b3e987a9666ee9a7
MD5 ff0e6a96b1e1f93b3571e9f875a4da64
BLAKE2b-256 1a45334b67f69563579b04d44c1caedccc6a7cc4542697c927736a2173129544

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 abbde1c4df4b48ec05bef515b1946b7b842813c3dd9b299788fb16525ded23f1
MD5 5396c83464fd71950044131b649efc1e
BLAKE2b-256 ab4027234ee3ffd445d34672f238c0a732696250ddda83977fc634f6e6438cb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2bcb3926b19d67cdb977791a84712d30610a160579453e3feb91806a208f0f7d
MD5 f73f684adb5ff0b91062da399a264166
BLAKE2b-256 a424c3260f3c0bab32b3d1adbd691077a7c9762176f19425ec245b2a9a542b4f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 cbc63cbedbcda1de9a267b5306d5aea8f0801a4e2bf384d8e23525a6938d20c7
MD5 00627a5a525c605e0d4e016cc437a24e
BLAKE2b-256 5c80d2e3e5d0ceda735dc9ce6204ac87c10dea8fceaffceec2b5f43a59314d52

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0bb0eed17ab4e835551c82eb46fe24fb299adde9d69425129376ba1e2d6c1da2
MD5 5304c758c8d0a02c726f977050e2962d
BLAKE2b-256 5c98b5c7c63a123c9f9b70e4d506e50e0189505fccb46078e24e30aca8093c3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 2af6166419cda595bf97ff74a075910282bfe3fd0df522f3c4799164ff2cae43
MD5 1fa68843ff330aa3c252f8eee1b54b46
BLAKE2b-256 0de96580f9737307800c66dd62a66a10b6199a172f1f84bbb236612ae4504f93

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 88279d61f36c8502972e9f9a633b0df549c4844b18f41c28b8af2096a04a7d95
MD5 aa68ea6521f3d716744a2e2b881afd97
BLAKE2b-256 416c637e330e4c449c209eaf61b5ebe369df910d56e0c9e275ec7f6dcda89abe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 5c6057c65a2d4ffd5d5027dcb7d85eb3e8ff84f98e82ba42688b574021f7b031
MD5 845620e5af85d52dc427119790229e2a
BLAKE2b-256 50ba3bf04e3f4a046be3e2f7dd5a83f91ef5dc9e945fb9bc650fcdad6176c7ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a3edb91f15db47be62d2907ab9e3b10da0978ba37cf315a3a8996df206b9da88
MD5 04882d440ad85ddd4937037558697f9e
BLAKE2b-256 44abf015d132b8a0a7a70cb60005b91b9e244cd841faead1d58e69604bccaffb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c905188a7cb37fa842467aa9395a073be7673e693e61a75823dede8ac0651362
MD5 179f72ff57311515d1336ca8fb93a8cb
BLAKE2b-256 212340f348628910b89371ed2fd01e7768c2a274ddfb597714d37717e5f5d387

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp314-cp314t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 d9792783d9d605610a4e5a2a131361ead926bcea605b222b6a195412471dea38
MD5 aba272fc8590561a061b02d571867b4d
BLAKE2b-256 1a90ca1a478207cfab217b83de7ac603dccfd55b491b8fe96bbff8d1de8ff1a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f50c0bf2ca0369a65983e127365f102113127b39e0d37d503fd41f109050bbb7
MD5 5fc9cb315336cec50c803337e97605ba
BLAKE2b-256 b323fa9b909af973edc9cf8133fda28386a274634e99681ef9df1d2bb1250e6a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 f132d5a5aff649008d47eb3b7d3695e3d25390a165e6b464c7aa60ee6c722417
MD5 6a1b50f6fa01fed1aa6b76895096a6f9
BLAKE2b-256 2a37fac4f8690ed94e76a724fedb23e663c7a8b1fd48bd475f504187962c0d59

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 4c58a9624874e727490ef9eba46151695d447b6ceb404e268f22ff24e75a4619
MD5 bf49dd4cdb639e0f2853a9db4a84954c
BLAKE2b-256 133ae25d0b0981d9c9be6b45573fff1bd41ffebae07760d0a6f4b03d701a33ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 866ccbf6dda6bb32c61a0edf68b1b5fcc0270c2aaedb8c6d30b455d619296d90
MD5 8ce7308fb1aa3c7dc6f5a4110421dd82
BLAKE2b-256 2c1f861c5c9c72a320ac13caf363d707add2d7e28b1f139bdea1c005ad9d0216

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 90da16be9ed8c291fe45a81c348366a0048657d3e0a8c05c924c00eabf26332a
MD5 f77522295368a80f8750ff56d23f04c1
BLAKE2b-256 6b393859200656e89d2547cfe475353fefe9a7dd4d11893a7e8c97822ce2fd9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 7206baedcd8265a72f5b30121c7761f7602b65d8c05a5b165da8fd252edade96
MD5 43d2095cc7d585cc06ec7d0630c5dbe5
BLAKE2b-256 5cca8de22d80fa5ec0a6dc46991b95998b2507bbf48e4bae81355c5335c9343d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 c6076b32d85247206192c4f15b5d5251f8c177691b693f9bd6d05d38de9d9331
MD5 44b5047469858ed620affc9490969aae
BLAKE2b-256 5e3006c04eb2110c27f607776604b7f1f8b66a9ede5007ead2832e881f3e0592

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 feee336118c00ef833c8fc5951f7d2c12249d83923ec7f25a7b75ed47a2b277f
MD5 5f26b72d621dcb5e2913487d67e9795a
BLAKE2b-256 3d78cb116c140fb2c059a31c1626716aff2e596a064f1c031759a7f3e3e8b9f8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp314-cp314-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 83757e3f2cbb5cb044e69da42ecc4a41d01ffc1a629eadbcb7844f9acd3416d5
MD5 c33a40c50f6620d2486f0e064103aa5d
BLAKE2b-256 7a659f6520a356b356da82f8cb56e42b7f0c7cff2a8cf19aac1fc216ac182f1e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 052991de1b406608620d2a6addcb86faa2642d1ce5e9cd98151a230acb474f4d
MD5 1da6dcb4d1d4b8befe3b5d6257d8a162
BLAKE2b-256 b0df17a096fbc77de07fc3057f4cdceafa46bf59fc457e29e44f579de30c1e57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a2a7501352a99947b85bc73fc80185bb9962a234abe195a75408a4e74d06f876
MD5 7f4d12379849a6855fb7fe2ba2471828
BLAKE2b-256 f090990c57d7402d81a972cde5348b71b28280f49bb37a07722341de74450d3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 fb197f5900a380eb6d4c9858c2a69a67761c29a55f589672218a742debe2381e
MD5 ffcb3cddb9b5bbf492ebc9758c079d0b
BLAKE2b-256 d271946efb1610962e9eb40cb5553fef96eb64fa175333d21c89edb3e1ce41c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 42bd453bdd7060fd9d2bf0b0bfe2b001a088cc4f987e72f379dcede4d52758d9
MD5 087a0b971cb87c4246069cb83fbd523f
BLAKE2b-256 bb41f6b343dd36cb87536e1b9ac7c11a75a4d4f7c30bae34bc4f35775de47bc1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 5970423a8ffd760e03a7453e7def05cf31771bdd3b3b7a734d524c0420f8a13d
MD5 f2e41a6a2c71e36a6dce60cf830028d6
BLAKE2b-256 fab4ef14f5f0103da082636c51a20c336291e3627b0d354481b17321beb2e277

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8922b0684716eaf5c6ccdf762dd9d4e61501053e92dc8d761803abc42b54281a
MD5 421c273e8fe54123ec5dcf38b5a511fa
BLAKE2b-256 dafc8c269c33c805e8f1a1df0aef148beceffd4d4080d3dfdf76d8fe25aae6dc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b9451ac2cee4ee4b63d828c1c46256029fe2f6e36a004ca128c3706ae0b4af47
MD5 0d20615dab1ba1c4c37ece86c7c6b00e
BLAKE2b-256 d4e5dfb2261e3f9a0e65d3f0cf238d458f2d43e6c1b7fb2c53950b8f0fac34c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 aaa3a6d4bcd87a8f866ea7e69989ec6297834e2e36f1a9c45a95b44080ff8757
MD5 2fc547371f2b8a60c5b8fa79b3d8bc3b
BLAKE2b-256 8ac277b5b938aca72f5c4ff039b79c8f48bbc6e89a5be528b2d32a91f2c753e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 da0f1e86fd5288065d20312af6dc38077a8d5a7eb0970782eb57d6a9d3f9c149
MD5 b3c290ae669bb0bb57f943e0724e10eb
BLAKE2b-256 83083d790af931bcd6458f76b184f54bd92a1ba54f86c2841a0c93909c2c8c76

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 0322b3212367832f9ad10266e2b54eafeca4267a69fa664f7bc0b151dc8065d7
MD5 96b65a921acdb2389d15a42a3d0ebb1c
BLAKE2b-256 434fb38fc17993d2e703c23917fa01dbcb0bcb9aa80170d508dd4c361ec21527

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8b45e18a217308e7c31daae4f95d8326d6d03f6b57fb5552beb5252838c1e509
MD5 410e2d3f16b921dddf630f8358cf25aa
BLAKE2b-256 e8f745ae698e4948d70ce532ebdfb69d63e0e18005478286657a0b996b2c8aef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 3b0233f562e3ab023ebde402d788c664b077b7685956870f5c57a30e8214b5bf
MD5 d648ebc35f55efb7ddfb5db2ec91ebde
BLAKE2b-256 dcdde652786cbb68d513c5d56a385d9f4427073b0aa4bf6d481618bd8f05dcb9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 dfadf2e235d00cc25b9423a34a1bedf770ae8535f5a769931f60fe49fc122e00
MD5 8b33cda718d3708a55911467182cee66
BLAKE2b-256 16ec85a7841e1909e6299d2961ff3e786af9365e499283d04cfb0e8671a825d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 f07be96fd0030c2300247ab094ec147d586aad5b056c2110127091f7c50312b4
MD5 8227cb7506cd0d77054e4bb6aa05dcbc
BLAKE2b-256 fc800ff04f11aba1b3b784bdc6b1ade8e180ec280fee4b0333bc1fdcc7afe26f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6359d8f240f72535bd8763bd968e252b3f55dd8f2176ec669b72604fafb9bbed
MD5 02094d7cbed61656d0703e04bfc98e17
BLAKE2b-256 4a7972e32cf68f78414babe6ab64072a7edd882214d4091f1ed1ef50d868d3a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 49f3c7cb6a63af38707e1b0567eb2ca8a2e0184d3c4c6379c3b055898cf77d26
MD5 b830caaf5742d494b14a5de78fe2306f
BLAKE2b-256 b34b62ab9c7f6d32bb5b02cba387810bd43a44b993f849c724f3ae806263fe29

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 29340c6c8a9d2805a6141ac833bf5a924ba5dd40aa9843790cf0abeeb77515b2
MD5 d416666dd4a7a84cd4f64bad6cbfa406
BLAKE2b-256 ef2cdb5546534525fc49fa3df934696276ee2c8680510f343523e02c64c45a39

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp313-cp313-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 0a4f3bd5c107c8ee80068e20e1d0385aa3e91f86d5798e4f90494b42c5287e3d
MD5 8efb3d52d97405979441aa3771516385
BLAKE2b-256 4740d1ae42846d33816566b31c472b8fc7af26c741f971c77e5f8af3678958ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1bd745e5f5bd850df6fd02eb5c5c51940d7b968bba0614e2b21982e4e9424939
MD5 46d90618ebbf9a3f7a767e1880b98f4a
BLAKE2b-256 2f5dd49c9c644c90380701515c9aaeb9c8a5822ff96fd9daf301b5101ebacb84

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 34ee748800f00513fb0ccbd00725cf8d5e0da01435a707e0ba7b2fe59b7acc21
MD5 6d6ef3495805344f82a30d5c10114936
BLAKE2b-256 7f633caaf17093e888ab306b369cb193954da35b509e479f171a5c29620e3ce2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 a4f7dac658246c65cbf3e256485a2faa3608f663521529a77d703fe5ff55a492
MD5 0726967ded6208ce73891637895bff67
BLAKE2b-256 44e761c203de854ef1962934ad02428e7715737f4ed18afcacb7be1d4ad382cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 c5062ef0e7a1d3df66f85d88e8a64cf3a7c95a457e89bb8aa889d38f6a3f4b9d
MD5 73fc1cb79833f4009033ba3ccfa019c4
BLAKE2b-256 6e06d7b84556d8cd2cb37b24ea31dea588db27d9cd5cb6404ad065c7e62ff203

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 a423089e4aeea9250a8c23193b7e298bc146dd9b09f2d1376038fad0162fb661
MD5 42ab5b7371da38a5dd162d491ac067ff
BLAKE2b-256 5e3fb1ea1f3bb6fb1c8a260af70e853a44b6ef406c57ff0037592ad4b0e909cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c9f466d13fbe6e0980ecabadd2a2c7c6cbb633987a89daa4ae9bbb6504c9dc5a
MD5 008fca7bc7952f31ebd467eab6697b67
BLAKE2b-256 529a8843d8245906a87da76da499bcd2ce316deb144b763850a5959d1796e818

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b5d12aec92e3ee8fa9eafeb31dc67a5d4e9db6b5d19c024a5354ad7d345c000c
MD5 b02c4355111221c7caa46c617d0eeace
BLAKE2b-256 793a08666415b4e5096a938969bb038c4576556357b135ec537705f3ca327fce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7757352eca82e28dda5a09d4753ec1a587a2d83fe420080c1a555f70bb7fe7a2
MD5 8cbf7dddf53653fd8c6240bb8bbe8ccc
BLAKE2b-256 eb9c4bde25ace120ec4182b301216581a521e5fcb77589b81e7efcb899bebb90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 bd737cf468832864d92099c2d7eab871eeaf908c8d0c67cc8a9b59c7333e02da
MD5 6400e8cf5f64f8386424fedf640edf77
BLAKE2b-256 2c7a07ed7235252add355cb2ba811bfe5733a71ef4355820748ebabef941fcdc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3a689100973cd7b6be20c82f1a8cd4a41b1de9bc0c4dadacd7d810b1e26b83b7
MD5 03705185c795e583eaea6ef051102144
BLAKE2b-256 ecb6d73262b9663b1d2f431529bb8a6e050eb13e54a882e1692ce82c85476743

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp312-cp312-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 31faecd56989cc5816462b793f0236d8c7ba162ba3ddbcdeeba13e98713b4289
MD5 f7e1ce12cd045572b427c51e72cc8a1d
BLAKE2b-256 c6c2613a5aa3d36fd3f625b993404a72cb9ba3b8e623c1c9c3077492cb66bbb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9bbc6487a2a7874ff4a5cc17d1f46698ec956b9aa6ccafebfb3b429e5e13a730
MD5 1489438e11b74d982e1442d8af2b228c
BLAKE2b-256 247b233f9ead5c7d5b2b4e4d371615bb571cec252101aab2b5d17b08fbae202b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d1184a069d00dac8e15b44e50e8fd91fee23fbab9b1cd3bbd38a7c5f4019dc4e
MD5 841d955bc5eb0459c00d6d7fed45aa05
BLAKE2b-256 8686ce30a1ad7e5026af53d6c942890966acc72a8b58cb28da3cc410492e4a65

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 e5850d16f5e665e05632d83b9df69785fe36fcb35e415648a2e82c806c0a95f0
MD5 8fcb6e943121aea0ac1bda0b21b60a90
BLAKE2b-256 8f125605fb48e5d228fcd4c3116b97679fc55b78b068440fc34560023c102e3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 208429bfd53bde8fd890e90bf990a553f1deb459163d35e56356bc9e0dbcf1c5
MD5 b55b48be5017b23d93a06ecab0002f44
BLAKE2b-256 7c09b61dc821df5af404716f12b1da6a2c9dec0dff8b7e08c5253e2fd5aa4b05

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 ef1db232c75a4d2b6091ce6a5fb99c016ec1fb4cba5daceafc07cd8a643450dd
MD5 c17b4b4d323bc18fa9fd63599c70f59c
BLAKE2b-256 4c01b53177cc62ccf4058f34e670d478197a11b529ba38e055f3c1c2392ac1e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9223c7ad51a0dbe2500f0fcb3f929ef88251c8415434d02f976b03205a5c50fa
MD5 c5d369373d938d59a58d715b89c8494d
BLAKE2b-256 b37ea9f01516ab2088165bd22ca343b7234acdd72cccd58f0ac7e6038f8ccb44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2f4b30963897e13684fd4a89f8b4b437dcaf2d631b75d0ad4966e7a9c57c969b
MD5 f6bc0c686a6eff0b563c9ece5b2ddcc1
BLAKE2b-256 af39d98797204b3a9837d7043bdca8356575674c217d1f31a9b5219c411be1f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 77555b3ec2c534ca63a1a2f609fc75fe90b72bfd2ed8c039270f0dc2c40e774d
MD5 127561ee4e8ab0e86dfc919493d7f993
BLAKE2b-256 80689c24260c05a0fb8051bfed0024de740a5a1556a2948fa7fd72b551c2fd4e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 102c270871c730ce7dc67ecae967a746736e811e997d383f66590ce0694b19fd
MD5 41fe5b8366e7e467615876f47316979f
BLAKE2b-256 2dc1668f55c54f4ca0b74c614f61f1f8567b4dd3001121ebb2992d3002d99686

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b7c720c764c90b918009ea62d62b3c88abd5a7e6febb2bc76e9f478c2f4ee7aa
MD5 11f1021bddc8b3ea3a8e2a1eaf5f938b
BLAKE2b-256 b7d5496611fdabb51e940241a3a60d89cbe45e8804a896f02617eb0618343872

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp311-cp311-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 2cb78b598679e814e80be4347622413ce350a7ce48dd529f7f1c88002c27dafc
MD5 29424d9dc1ed17fda2d6b0325e70ca64
BLAKE2b-256 b8fd64a2720902a28a14085d639118395910452f8b40221d4313f7f24752b4e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9aa4984141e350eaa2ffe617edef082e629caf449194d888b979f3507c71f8be
MD5 a627857fe539205fd9409b000b73fe15
BLAKE2b-256 e88fd2dffc6583d453ee2f76e3daa7977574a09c38f7816ad32684ad427de17e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 449d89acbb55ccda3a9f1df9ae5ff88e8ea4f115ef8b5a2d41e0eead86de887c
MD5 d3556f01cf91b2989f0bdb58fcdfc58e
BLAKE2b-256 c0b47fe6af68fee12005fbc13db4d6acb054652d8068e830fb5d96ee30ad1114

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 01fa27f3a5564d57dbdaf5b368d129362117eaac663605d23065da04e8f86d5d
MD5 d0b563d4ffbee0c55d7f5fe4be9f1096
BLAKE2b-256 c1d12ee272c3720922ca02c35397864b52ffbbb15b2b00e8f74c973671dd93e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 f42f0456a183d9557527cc1612a60c5fc79e7bea53a2df08a251ff1f608472c0
MD5 64ac2e2c6976b2bdee2e96339b62b83e
BLAKE2b-256 5c6627c0e5c42e045205fc1d8b1ae922f7aca4c27b831fe41024015cdf2ce5a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 90541d5388158f63cc840ba7fc94d3b12124de661901416b0ddab9e688fe401f
MD5 2254120555f63a07fecbf4a4698df533
BLAKE2b-256 fc17497478d9ef5ed3eb92e7b8dacf1ffc272ff033059dffefddc7c656edc4b5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 33b2a778129a7d5b76e9d9c835073bbea6f1212bb5d8c93c6cc51068150f1781
MD5 38942fc04cacb54f29be61b218b5a2f9
BLAKE2b-256 bd32e8fa65af519a5086c5d9d75a9e599e34be4bb1eb973dae90985000c04879

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f8a01f2b6b609a443be659fc60853525f005c8a4329529710da3e5ade8a1416d
MD5 453181a80062c96bac145275e4e42479
BLAKE2b-256 4ac9a4032eaa9f8f25df8b40f98427cd077d7d8f0900e093d83adf9786375bc9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 648b3df1f47c7664b90fb671c782598cda1448a58cdebaf824ecd1ef964e6261
MD5 a2f61ca3613e061fd901ace4af109483
BLAKE2b-256 61c8fe783c02f929b97206253bf70c243dec0412ff64e65574452c604141c85c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 26c7e42a671a0e84b6e2d18124e6997c0830c9047034cfc6b1fc342375d71c42
MD5 c422bd47cad1017284dd88101c9b7bf2
BLAKE2b-256 31af766339c2087c2162cefea26e329670856ae4010ca257160a8f5e173f1d24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ef37477bd287f0f8b58dfed67fa3ed0230a2054893fb5e2b621a5d9b155c94c5
MD5 0b6fc1327a9074512fc1c73c0715376d
BLAKE2b-256 7df2024e5a16d65cd14d00b7a4cdebac883bb0df8089016146824386d1b1459c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp310-cp310-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 c943e2529fa461112fa201a10f58602b68113cf0de03a020644a67158b43c9a5
MD5 aedfbfd939d046e17d634c0628a6fe1f
BLAKE2b-256 58a4b9890048cadb74d846422e36811f14d1fc824179674e06e97be70ff54dde

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e34b9dcc395337ee0af813611c718e703a3912f2e9fb345880f5e0e1fd49431a
MD5 a8dce1b78a1a0d10216d25dcbe75869e
BLAKE2b-256 eb7589908aba4f8a3abde8fd4b601843cac2472f434e07d568facfd4497d8f66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c2e0945fcfb2dc837216d4ee268ed29d1a053cd8c96c5f8fa4499b8c4b54c426
MD5 fa26ecb46fc9e793fe36f4b1f242d7f3
BLAKE2b-256 940134eec55fede9dc22a8ac40e17f3b41f43ffd6c4061c1afae20d65f748b37

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 e9f97c19da2b5ffb6cb6d5de5174f9cdee8a59f546627f8eb772db26c02a4a29
MD5 76a11c20c3081fd286d3558e32f9fbbf
BLAKE2b-256 0b50b71273bc040be390e1359cad1561f676b8418e02a671228a65bb6155a8e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 630379f412986764458423c1cbea60eb5d70c114439565d6e2d0d285d57e47b4
MD5 883b046dd14c8707f99ec952f618d3b8
BLAKE2b-256 d0632acd8ebb717cdf00327b264219dce8f66d432e05fa9c7f6df170222653ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 3bdc55a86b9f12a09f1b895510190a7fa807ad4267f0f551f56603a320f56cdc
MD5 661a0103155eab7f46e415bb7b49bf39
BLAKE2b-256 533b50812cd04f9cdb1d97443b12216b049a11b7253bff21687c965ea780b196

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 303d1e51f46e1f79dd988804e2c81cb0f0a730f2c28e17f9c26418a02ebed813
MD5 14241a4141aab50d52f5240794671dac
BLAKE2b-256 29d9d1593d875f3caefbf050abd52da3a10887d186ffa4c7b250336817bc037a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a5503ea22664ff787644c0cf97667f77a0e8594eab9c6f2584f2ca6c4143bae4
MD5 be1e0de8bbfe602a9c047950f9467236
BLAKE2b-256 56fa7215d156d73998390a2dcedebf5419e9c7f4bcd6427b379bd9eea587b108

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp39-cp39-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 d43f92aaa3138ff6624df4b75357cd64c71c5612769c6d1d42251f4a733bba12
MD5 e655971fe1c1cf33e4be4a6f715e0dd4
BLAKE2b-256 c686a28c34f37aea7878451db0e7692d7f05024614a3cd5bfdaad5cebb830ec6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8a4e7182abae1f17d006460f0e0abd5c281f5eded5bb90815db97f4e0fdd34f4
MD5 2bcbf1a64ea18fc3c05c152846a7ef63
BLAKE2b-256 38fdfca800909b392d573f8cf4d613398feff857b8583a2c29a760342482d75f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 75befd33cc055e088b9d1450a573eb39df6dd4a384cf6db9e280be0e883c57b9
MD5 2c8c03dec9241083ba5ed2bdd69ce566
BLAKE2b-256 330335a453be3087090a1cbd77d20eebaf82263101bff433193031f158fc1ce3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 3d266ecf703c3013187f82854c192b9c895d8b148860233e41aa9504c29490f6
MD5 23aba10f25aa4835e76fea3ed893b211
BLAKE2b-256 ba6db85c8e3819501ffa6bfef1546852c288c3cfd6b8629a7806936196403984

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 00a1d82560d152b855d59fbbc69f649d6c28c4a7fcb0ea0d3a8c121d69fffce4
MD5 d72fd432178252c13cc761bb72bf5687
BLAKE2b-256 e73f2ce9c4477d715ee0591e38fb985aa50b0a60e70b8bae514fd77cb111ea20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 cc3e3bf8f2afe4775d3ba13f66521b5b29744a59d3a2e54443a1a3a119a535ad
MD5 c88549ef4aab846859932635f5f07b08
BLAKE2b-256 a4f4ae0c6f1a3831fefbac9eb66acd2bcf9dd01f9107d382e0c698618290a5f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bd3c9df17d6c9c2c505d24cb202b91979519942bffed43b033bd3aaff72707ec
MD5 55e077ed678f10975b60e0fcf6770e3c
BLAKE2b-256 dc2775afbe30431c319ce99df8d709142a81cb812547f4ab175052d2ac1857bd

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