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.6.tar.gz (44.7 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.6-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.6-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl (752.0 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARMv7l

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

Uploaded PyPymusllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.6-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.6-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.6-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.6-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (476.6 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.6-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.6-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.6-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl (752.1 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARMv7l

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

Uploaded PyPymusllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.6-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.6-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.6-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (476.5 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.6-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.6-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.6-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl (751.9 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARMv7l

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

Uploaded PyPymusllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.6-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.6-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (592.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.6-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (476.5 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.6-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.6-cp314-cp314t-musllinux_1_2_x86_64.whl (680.5 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.6-cp314-cp314t-musllinux_1_2_armv7l.whl (748.7 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.6-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.6-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.6-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (589.1 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.6-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.6-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (468.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.6-cp314-cp314-win_amd64.whl (313.9 kB view details)

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.14Windows x86

typeset_soren_n-2.1.6-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.6-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.6-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.6-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.6-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.6-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (589.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.6-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.6-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (470.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.6-cp314-cp314-macosx_11_0_arm64.whl (421.8 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

typeset_soren_n-2.1.6-cp314-cp314-macosx_10_12_x86_64.whl (427.6 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

typeset_soren_n-2.1.6-cp313-cp313t-musllinux_1_2_x86_64.whl (680.4 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.6-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.6-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.6-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.6-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (590.7 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.6-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (473.2 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.6-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.6-cp313-cp313-win_amd64.whl (314.7 kB view details)

Uploaded CPython 3.13Windows x86-64

typeset_soren_n-2.1.6-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.6-cp313-cp313-musllinux_1_2_armv7l.whl (750.6 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.6-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.6-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.6-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.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (588.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.6-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.6-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.6-cp313-cp313-macosx_11_0_arm64.whl (422.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

typeset_soren_n-2.1.6-cp313-cp313-macosx_10_12_x86_64.whl (428.2 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

typeset_soren_n-2.1.6-cp312-cp312-win_amd64.whl (314.9 kB view details)

Uploaded CPython 3.12Windows x86-64

typeset_soren_n-2.1.6-cp312-cp312-musllinux_1_2_x86_64.whl (682.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.6-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.6-cp312-cp312-musllinux_1_2_aarch64.whl (647.9 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.6-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.6-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.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (592.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (475.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.6-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.6-cp312-cp312-macosx_11_0_arm64.whl (422.4 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

typeset_soren_n-2.1.6-cp312-cp312-macosx_10_12_x86_64.whl (428.5 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

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

Uploaded CPython 3.11Windows x86-64

typeset_soren_n-2.1.6-cp311-cp311-musllinux_1_2_x86_64.whl (682.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.6-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.6-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.6-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.6-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.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (593.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.6-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.6-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.6-cp311-cp311-macosx_11_0_arm64.whl (424.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

typeset_soren_n-2.1.6-cp311-cp311-macosx_10_12_x86_64.whl (430.5 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

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

Uploaded CPython 3.10Windows x86-64

typeset_soren_n-2.1.6-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.6-cp310-cp310-musllinux_1_2_armv7l.whl (751.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.6-cp310-cp310-musllinux_1_2_aarch64.whl (648.4 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (474.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

typeset_soren_n-2.1.6-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.6-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.6-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (476.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.6-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.6-cp39-cp39-musllinux_1_2_x86_64.whl (682.8 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.6-cp39-cp39-musllinux_1_2_armv7l.whl (752.1 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.6-cp39-cp39-musllinux_1_2_aarch64.whl (649.1 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.6-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.6-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.6-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.6-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (476.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.6-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.6.tar.gz.

File metadata

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

File hashes

Hashes for typeset_soren_n-2.1.6.tar.gz
Algorithm Hash digest
SHA256 026517b2451c34f2c0ebb0c8fdaa88628d55068637be904adb6ea2bc277211b9
MD5 d175eabfcfe16d9590f3a4868d53aec4
BLAKE2b-256 7b35512b610071c70f71e791e674c8c8c0599a8583048ea96fc5cda595d2bb65

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ade4cae16515765cb1a4a3789437713fe3f72678f3873c882e271c9ef2688d8c
MD5 bc19a0fc3f66e4165b56464c86ff7e47
BLAKE2b-256 90f1535c1e42939cf8879251a83e9baeb6dfa6abff742f0c20fea688e1ff6949

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 8385fd047dc8af9974d644c7eac0a8eba4f6993b2dfb3d8c117bc6e9ebb57985
MD5 44ad1fe48765f132ed61fe00032d94b3
BLAKE2b-256 b116b590337a7285e8307ed7aa486de8ce5dc8a329cc00fbf2089d5a7ced4d9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 80d381154021100445d3f0a834b6ef40fccde57c71f040f5effde0e560afad67
MD5 4a902a7e0c6b52a3fec7d7f0fa9740d1
BLAKE2b-256 1ee3f69a9ac3e336e289b4c90a0717f924f01205a1e85f3b43e48f4b9294a369

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e6d74070b0f501c2c7e7b271d5fd0dffb0718f005d60237fd47e93fb6163ae33
MD5 72851f08df786e467b4c6912a1336431
BLAKE2b-256 b68d9be45554261d9ef17f7feddc633ee9d8c5a3c7fe4d40838571c783176a25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 b7f1e401ded3e2bf7a40634b75bf5abaf7086ec3aa2691793578bbb3da9908f0
MD5 80712de2e0cd7b892e12179a7af69bac
BLAKE2b-256 e5e2e7598a38c21726c6393ce4eaecb7910c03efd3565f15a3cd4d69dc41b6cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 2751a7a7e55fb7955ba0218c304d5702c0cf2e263ddaf69f6041cb17615669a1
MD5 3a3b91448e6c11a6862998d130412fc7
BLAKE2b-256 edcb68c8baa84198dc6926ff1af81885f174a60c327b1166098cb67751ca9ae7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 80e19c917c643d637f9e7838667048ddcd7429865c9928b65f54cf9a726e04b2
MD5 28fed57bf329d9bea17baa15c4692ffd
BLAKE2b-256 482386149e8314b4fa458235098167e63ccbc385da3d49914adf42234c3c11a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9734f67faefe198ffaae261e585db686145168c5cfb75d588b59224d147c918e
MD5 b3457f6ba3eb10467f6bacaecfde6cb2
BLAKE2b-256 e5f58786339280ed5acce9a2ba2c3c7e4984a49d6764245a13d809e2c71e5ea0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d72c6084ffc0172f31f23b6177d1b4df28f85e6833bce149a84286327f27e9d7
MD5 453b07fe203c7a9ee5391c27b0f5fbea
BLAKE2b-256 3eb4ae4462b581d55500194f08201a3c026a91a574b4a79d8b2e35c4df87c069

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 f3b31ec0dabbd779b2360ca252ce4f9682ce059487053e0dc3fff97b99400fb3
MD5 1c62ec3b3512d01ad13230d6e02a65f6
BLAKE2b-256 cc74e1baf36838f8783dc8493aa6d4037dad7c54bceb1bef463673ae88319ad3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d7e30c64eec199bb4260ed76dffb79d9f17f90b616e2062ee0dc8a0e7f636f02
MD5 9860672edbcf4971a84b9887cb49ea50
BLAKE2b-256 b661e9258c70224a79d87170f948a716849fcd12bebc8823d26988f81623bc0a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 399d398af0039ac216e1ab70e1f73bcc678b2afdf393975c36d38238a665f123
MD5 6b5e53bfe783ee83804c8cb838e0b0e3
BLAKE2b-256 dea6aba77876121a88f3bd64f945067d4f4e6b925dc91a0cb0d9e164c6c40881

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 52c1af252628f42a8ad5738e5224219c527825dfb6bd9ce5eaabc484eb881cb3
MD5 342800e2cc179a3ac364628f4094cc80
BLAKE2b-256 c7f91730ae4e2289bf16f1e99efc1586c0e032e1d93f47ffb7104ba43811f61c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 3517ed88069ecf944caef5a0e5713e1214e1eacea903090d7f686cac189faf6a
MD5 0e47103ad5730dfa70e01ce2da0d8156
BLAKE2b-256 6b9ea88b6e9d0fcb74a38bfc3dc053e35ef20602035d6110e67fd213306d55c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0a374cbf64567ea0d91123e6b93e57f439aa6793ef1f684775866f126b1b8398
MD5 9c2ad81fb8345b88b6668cfa880d82d3
BLAKE2b-256 707e6da7faec0ae0d814f3f4fa5ffc2ab29243db4b54e9e2aed27eda755a613f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4802865936d697e5dfe528b3db6c42156544fe581507dcaccac9413cce9f046d
MD5 dd86f7504ee32e3329692bdd58199728
BLAKE2b-256 6f6767694eb798b640afabc50925e6e30b3d2e2d075d047ffee6288fa0749a9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 87a4f87bf5394d8528301711e03e27fe299373ed3b14497df1be052e1135d93b
MD5 cfe246556c3e511d491f900f11550abc
BLAKE2b-256 c43c0890ebc8e7bb151b7b2996dffdda927a07678f835795086059e089c65ff6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0517d77e3d182ed9c5763841a1cf0c0deac43823f32941e2830f62c6f31cb12b
MD5 7477aedf82005eec39aa312ed1bdec07
BLAKE2b-256 ec9fcaac7842eee65cbdbfaa1b9e749028f2efc02ae19b89ea55d6b230d435ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 b2ab8f2ee16a9f97ee4a6043837bc66bc80caa1014d1528f3bba5acbf94d1015
MD5 3b3ebab68ed7cdeb022cadd3bbf93926
BLAKE2b-256 1d2259ddd9aaf1c824a4cc8a5e5809300023ba959894188d611871d7d060bb50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 5fca12fc9da8421ddff265b6f293b4dc308f8416a0c0d38be925bd323aee8ce7
MD5 2cc5e529f9c0e9461502b1c8eb003c0c
BLAKE2b-256 ab84754993834ffc86ce6d301a5a053de670baea495c78d436e6dbe2a62d5d20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 0608b6839a19fbe327aa5e17b3718a3cbdafda45378abecdafc5f06e2f5acc29
MD5 8b96c2accb85028a91048c2268eafd57
BLAKE2b-256 3c8d665a62e592f159ea0cd110ab7282871d9d8aa181ab0dc5e21e4dc3c72095

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 56f437209012724cb32140b996f5be948fbe1dd3fb8a0497ae13bb7447ae4dc7
MD5 f5757d5480838091a957dca2d5678944
BLAKE2b-256 481797f3109ca76bc3f4d1814357f05108eeb0fae314b349113cea070297a554

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 43ef54378a180ed55bfb0aab92d72533cd8b6cdf9f8be4ac981601388c8fe2eb
MD5 2c14b13119cf35726987ccd35f545192
BLAKE2b-256 a7274baadb0a2d28f7b265781933e0ff0a0546c1b340c51e3fe16fb109ac580e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp314-cp314t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 feebf5d40fe874d38fa5d6990234176665c11daff019e47789b4f19e777e2cc5
MD5 c6cdd1869dd9313f4d0906f07160fe68
BLAKE2b-256 8a03c19556852d5239e5f27816d49c385355f1d8f1582eacfa72a45815fb3000

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c08ed797f4f9a3aa83744da6b851a1b60998f004543fd911be9794518cb67723
MD5 aa9c7b54c73cb5ca0f7f789d5493a6af
BLAKE2b-256 156f6ef6770ed1033df63d0106ef73602b93b24118c0b0485235dc30c548da84

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 ffd9e7184cccc6a3d688a597505dcf34c5367ede62161fc2816ef5623cbd0800
MD5 4fe3b08e79c24fe54b8defb308733be5
BLAKE2b-256 857fabdae6d5b69eb4ace1f9dc6ed42ba0563ebe82b3e733e73437ae6a7ef805

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 601354eb957b0d871ebadc7b05c0fd78497639e787b3617d4c184f939c697335
MD5 c7350976b79c31c597806174a2eca20a
BLAKE2b-256 466e1cc65cbd9335fd804bae4f07c4a0e5b515d5f781c914c51883eb5c96b3cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 e581247525213e1620c8d742596a8d333251d5719246a6d16be17377b4191874
MD5 cfdafab27e5501dc4c1cda2067e32ac8
BLAKE2b-256 bd835629c1b4ce160444a87285ed91d6ac9f1cc2e76e1dd0e1a1cef954ee02fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f561160b34e7a2e7891e6c22c6017b0eaccf8301eba76fccde6b4c95f891e1b7
MD5 967093ed5ecdf49f706fe2674afb607c
BLAKE2b-256 d1937c72c53664f0340a55ed18f15baa38f2f329bcd25d948fe95c4360c5a70f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 385fe7f3cc9d4a88a02ad7557518e3109a51442b4c2b3f7c022b5d2edc4af636
MD5 718307f7a85f9ce081ad690507d146b7
BLAKE2b-256 7699d0da0ad15a8bf4740daa22bb7d9ed588095783e27514be47a90031e083b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 9e2283242997ba4232d15e96e867e15bfa0a7e0ccb4f89b75dff7d9b11d1c71e
MD5 ef0fc6c6c8ff0f1e4947ca5ba02d0580
BLAKE2b-256 c73f3cd1f08804348c9c2c7ed6121c8e02d778f7dabd5caaf6cd91b6dc3ff8e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 74bd93ef9ac6a080848145fe07767f310d30c9c675fe62c28caaf6668563cc89
MD5 56c8d5476cc8780f234c51f0ea1fdee3
BLAKE2b-256 c811df67f4a4f34eaf3b865b6b0c721265ddd225c3b297065a781fe7ae170567

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp314-cp314-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 7afe8a8a15171793e628dae779fda66ce62d7880aed80e24fc2fe3ba49954267
MD5 4f7401652c41a74c90a79c66de3a1a55
BLAKE2b-256 edb1a534d5dbf1f7e88ef87ca8928de3376bde9aeec119e89e35c70abc959035

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 acabe974f810851155d0c33aa97f9cac054b16109dfc10d510c5d6c6d1e49b2d
MD5 275275e7d6236b09324cf725968c260c
BLAKE2b-256 4e66f955cec0bb133c10349b470c0fe99e8854728f7f06215cdf0c20f7e03535

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5f0b02148c8faef1606c89b11ddf9d8e198271d50d0506d770034fe0a417ced7
MD5 9ed667caed28505711ee3dd8e372fdd6
BLAKE2b-256 76fc2a495eabdfe8b067d31c3ec79c2f34b0fc60f429f0b96985f639d16760ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 6b8490ab6a499e6afb9dc09dd6de05ba7404e36b0654d68e8cb59aabb1e62e54
MD5 3eb3e9cc86abe3253dddf3247dfb0bed
BLAKE2b-256 deb25961386f82cec522ef8b0978860758a5185443a12cf3d548ef74678bd47f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 2ff4ec9037159d8ccd264e7e54e54bde9a9c6688b7302508ff100240f1324c0c
MD5 bcb21ff2ddea08b3ceea77e657a5037e
BLAKE2b-256 e1c02c4b288b4f854b6dcf7f6d484b5b5e626023cf48387a253c2432b8f2ea07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 f49a01e03587d1220631b5b58afae70242f4d965c9207f97c1f0f50f8e390316
MD5 0f773253e3fdda9be72c218ad2b84892
BLAKE2b-256 ce6ae65756ce10ad761d3ca769001d475fe467d7e69b6cb4e42b6d3fc9942227

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9abc785a99978a1058bae0435cb52b8adc20944db160f91c8f3de58a59af3a72
MD5 0abcf4c421d267e48998933b84fe6280
BLAKE2b-256 5cdc8b2e38dc41dc05c775bec62e83ec7f3a44543b20be97770f89ab71c7e09b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4012299a0d7dfedabe4df18af3661d861481783a261edef7d88ea04a94cb7b82
MD5 7c362ce67bb224dda18165afd8a08bee
BLAKE2b-256 856bfc9de0a58efb078afc44cea7dbc5bf98edf0874e77c542b6491784cba593

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 18edccfdf2abf034ccc57c29e6a9dacd4b1c8e70a18019d9b62a728f1cf4eb5d
MD5 448e51ab55efb908a790bc1991cab9b4
BLAKE2b-256 40b30b43b8707915c63addb604ea3bf3291b03058884ef4d95baeec3c8ae610e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 90bfef79a6c05555ba6d40e23e71dd0c0fcc0d5d8fc13561cb3322a209fe66b5
MD5 89809658499a3bd3e4834d899dcf441f
BLAKE2b-256 248338647ba38a6b9d2111c6ded36fb82075f6661f029aabf94f91b54dcaade8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 aa384d17fa8d0b7491bc30eed9c1e3394df449bbe9c85bb194999ee0da4189d5
MD5 d54bc448afa4f4935c91d641129cd859
BLAKE2b-256 e492036c558c0e8c02a7c7cc4c06237ad47015dc0a490a295e216b053128b058

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4b8778fd3c83fae593ff3881ce79181fcd247e6211a4ac4cfe0e901069b76a70
MD5 c46edca8c309a47368f74c31cc3f494a
BLAKE2b-256 650f72262822d9f17457b5fd4945d6ddae6e07ad24df6dbcde939857565d534f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 163a1fd9053bdc0af0362625dd994c0dcd93224e4c1c4a9232443d63efb53b52
MD5 40c17307eabac3628838c35e93e41216
BLAKE2b-256 4c15bccb38e32f11c6c339c4056b5b0a5eab907fee928912b916ce66eb92de80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 2b7e28493106e2f7db896b1c30856156769cc853e34473edc65c62e517f31c6a
MD5 e1a443c65d63679cc01f99e5697b554a
BLAKE2b-256 4110a374b3fd14afc0a30b61132ccd7fe3bb373678ac8c90783b679ec0fbc3b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 fe0c3576d0ab36ba02c56fce85e68f2bdd4534d21c2de484b5b06c2fe4635b2a
MD5 88862fef88ad31990e2dd26ce291f70a
BLAKE2b-256 aa8321468cf5cf43dd1077ee85d42f91c0c4ff36d94ea816635f18d5d4c54ad3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 144273dc6920c5947e00ff63d4d4e54168079bc17cebe6979d3f639a88786da1
MD5 a2ee70d55fb92df50357550ff8e530db
BLAKE2b-256 f22bffc52c7a2601789b6426c6e43a09ff777c6b7fb8790047e210f3fab46c27

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2e9936bac51511684c47e638c5e72254ce9e9ec70d57ff3e20141fdd18edb37e
MD5 ed229bb4cf87a4bbad801a71e83c1ce6
BLAKE2b-256 866c5e36b488d5dec252070715ad7183b938df15a2b4fa652f243b621afcea47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 05e08a8ce00dca01ec657a893fe951481b554b11d0ac42c44690b751faa52533
MD5 637a680d1ffd0e04ae1a103e2a1ec442
BLAKE2b-256 ea9e6b59c25994d4d0cb49ac22901d7076166240fb6b267ef96ff58d9d4595c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp313-cp313-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 9681be84e1730de4db3eeb76af7137bd0c3732583be9d698c8c1e0c66ca9db4a
MD5 76de96b6c1a9b713e50c9c197d1fb4b6
BLAKE2b-256 9fb5f43b90dd76e3775221c2dd0b7ffca94e8ec0cb892ccdb9a26d938dda75d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 63ffbece443fc0a4f273dc00a9da6bb5b299c1a51841ba301ed9b2e49461266d
MD5 019783908f830926106e2badc42f12d0
BLAKE2b-256 899e8a399511220834fa77d346fed2e0941631318c93c6bf7787f9c29ab2fd3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fdfdd5819b578ff34e3b2515bfe328a934cce07688ad3d1870d73dce3f2def4c
MD5 e78b211014acf24796ca30f8b1b6d994
BLAKE2b-256 54c40c42b4eb43ba1c77425a8fdb7e7fc6b3d889c6ece6a9708629ae2f4f83b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 3bb68babe4e55fdd3548ec01d5d79f5e152207950e04fe772ad7e0ed6487667f
MD5 1fb3ceead4fdad3980155b5e3998e445
BLAKE2b-256 c5a9907dfd20fd89e46df8d0473d73dcacc396b45688674c22f8d0e3b094ff81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 8b2fab1a46dddf7e8d030508bc8c4c333168d81362a8b698730340e3042aeec2
MD5 c86c74902e3b79dfa7d0901029c5f116
BLAKE2b-256 2c04405a80170f444b7a3c5ba96cfa398b3648dd4da09e75330091d1c31edc77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 5bb7b063cb221547d0aa840832cabbf84322a5a3f2a35206242c2f9f065ef215
MD5 c3664faa9be286ec783fe916ff2da316
BLAKE2b-256 816c629d652e4d772e255f709b332f373c804c0c34d95a3ebe239e9656f25525

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d075fcce1a98476f5cf84d4920d11f4fc38fd881406fb828aa3c4c0c2fdb5a78
MD5 c7d9c7fcdfa4cfcd0bc9936221897e26
BLAKE2b-256 c98ea202d721dec23b649b86d7ee13caf3c71761e0b0a66d76f068bf852e2dcf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ac8e3f985fc31aaa984a3a4c2019c8be98c176297ab736de87016e1646c263b5
MD5 cc221872553e69ab8d907153c00c87d0
BLAKE2b-256 454ccd5d9bf933180e3d4161936c7e6896c0de465a53c40913878d9a9c9e2fb8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9f6c0ca892d973ba60d3adc7e4c03ed8f845bdf0f66b6e277319afc0d217152c
MD5 bfc157b788869e173335f8ce3fb1e997
BLAKE2b-256 d03f27ada8d9c9ad790e7ce3d1540aed9560b253a11ed006f8b1c2e9de478387

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1189fe9cba8e867af94fc28042daefc4e11efc70d2a08743ea098d21e5db973b
MD5 3a847f3a9befb88b94c79ae461517281
BLAKE2b-256 c865f5539cd8bdbda80a0f404f21a03116a7c8354275bfa5c8611f297aafc3cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0000549911fec6d99d4db8d3bdbecf81b516afddbfe57835b9596c656f634cec
MD5 7c4bf495cb88f7bd3eb24b02e39dcf1d
BLAKE2b-256 cde82ade829435f5903debb83afb3c234d12b1f2f29f65d1b2bc7f06bbcddb2c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp312-cp312-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 8a6608b4ee083ce36d9417dcc279e5f23e3193c523e9412ff3c209f5bf7ade82
MD5 990641dda18cbbb3a27fd7a5d0b52962
BLAKE2b-256 a1129ea640440d9d30c1b64f95a6f8b9f6f6bf215a6d4795d5dcda2fdf98d0ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1b68e68a70142ba7a0cbdf1e14ee7caff28b58fb07851abb1cee617bfb4aea39
MD5 b6154926a0d30e5255cf19e192f6ede0
BLAKE2b-256 0b27d2af794f133988b8c1965bf003368803f9f58b568a1ad1ee42793a353931

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7c147b62483796d37e95e8e55c3117063e1e10587a32fe60887cf63788c36420
MD5 80867958c82f488ec47a03f745716422
BLAKE2b-256 cc094877a2666ebf551d867b1222796a5dfc2ff05044ec5d78d89f0fe3216aca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 31efcea726d0b757bafae1d7a68bfaa007032206e791723e92bfd8164f09bdea
MD5 c7ac45e6693063ed20c6078f04c16b8b
BLAKE2b-256 57437120a5ad197ed30566d4a54b78904ec15a071f89342b099f664f612e551f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 3b36dbee357f7b36570a71ec56afeb557208e4aae335e6e0041688c02b168cec
MD5 26444a436fb59d5ef6ac2d59e8346079
BLAKE2b-256 1c49fd3a059488e26e777a919210a9eb75eafacc676613d9a6257872ca3ed0be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 afea2225a2ffeedea49242230806ce6046fcb9ca07f75bf1f58001e1f466d1c1
MD5 10072bbe2fa9b10e18ea6ce175a1fa4e
BLAKE2b-256 64f096cc76feff830c0c6b69f61944a1e7277411dbda9e68d55b91f351b82b36

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 614c7ba7e2ffb9e18d7f25b0fd967a0e0e8ee50f428b7b61b43be34a396dc9ac
MD5 827879ef78648e8f42a701963fb0f57d
BLAKE2b-256 e0e28f953111a156e26696fb7365cf09c1624567e5d909ad99227199d4be76ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 da109a571f316d6a51412093e87bb544bace61bec6c64ded1a2c46eb43852d92
MD5 c5ccfb41b3ac87ba6103ef481aa5df47
BLAKE2b-256 cfc337004afc52a5863bc7fa090ef8ab3c3f8a0efba1e344ad681ba15956a6bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8dbf7fe94aa8a48ba4ea0b59531e7ff8c0f1c285167af79d90a1af46814fe889
MD5 df92e431f3d3982bc025364cd0e98f08
BLAKE2b-256 7edb441fc2d930d28a3efb235bb44639bb544bd0d9bb0bab59934f259458964c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 652a16c82e9c94c62df992b7216efbc91673b1924a6c15eefff6635f02582ec0
MD5 42a1f3ccd1995ec471f5dbe4edc5278d
BLAKE2b-256 8bb4671bf581c645cf1ff860fc7809a1ade94bff8680784eb2bd5e85910b78b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1501351f5f29e5c9b5d30979dee799280935a78bcc482aaf77d52dc8bd1c9072
MD5 29005bb9b6c6314144cf3a317ffb1e34
BLAKE2b-256 8118da47e9f89ef745030469eeb59dc2e46c1d0d11e344e5c3fab0723fe4ac2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp311-cp311-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 7961a0335e2c791d31a5abc5de8a8ec7c2bfeb9b233e66e06794ebf397ed5a6a
MD5 8121f79224583f7cae204f47e76e74fb
BLAKE2b-256 98e81c08f887a1c3c9980ad685f99376ec98185bf3df348437f53c1307db1284

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 849a6adb30aef6047b57ed3035d8b6f5b4727a2b0fae04e2278a997d41a98983
MD5 26c9fb2207fc4586002f71141b7b41ca
BLAKE2b-256 c7c33be6ffa71c9e1323f8e1badec81ff67c9f00e39ab9baadbc9de575d409ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 07fdf340e84b9decdc45a252cd42552f6159b62ef8dcad35e5954932e4f42ab0
MD5 aa2e64c591d563d772d6981fc6e643a9
BLAKE2b-256 6d024ff05fcf323bdbcf9f2dc903732e0e265879230577d467dcf8e63b9e2bb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 998909ae6faf13c0d81e689c6dbe2eb133d124c245993e4307da917be80e3978
MD5 23d7d75e584017f0fcd459347be1633c
BLAKE2b-256 6d2db13412b1e1851064a98d4d0d65510cd0626c0f63fb236da92b9880a814d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 5d3555b00d31cd431178ffb230102d52e1a50e2d153b15a43c4f887559951fd8
MD5 6faaab1c6176256b45904ab0a796cb38
BLAKE2b-256 380925d93da40a473f4feacec6bea2e005a9215e146dc59b3694e7f6c4e07f23

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 5b455111cd1e0c95383ca9846c0ff8032cc38021d988c76d5bed9ecce78dfcb2
MD5 cdd83696a90ffa9fdd43361e01b4b360
BLAKE2b-256 e0991f837aa5c5bcd165f862e262f3267c548cb4ffe33230cabf9edc8397af0b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 30f75affb57bd10adb1a9e337f48d18a987606b658174af9707cdc1c49a9ac41
MD5 41d92cbe003fd56af1603a0d01a068ab
BLAKE2b-256 80265926271344b5300af1a12b7f733f04b24d1adfd5f9dfa0894b56f1288a10

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8c2a99e4d6a6a1da870465bb8c35c8794c560fff8f61edbcff48991e5e08a847
MD5 0e9a0aca6411050aaf94f33cd3817b1c
BLAKE2b-256 4da3246154492c9482cdf6786dcf9b9fe76e50c2f233d9fb545d0cdc8dbc9820

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a012e70ae9713c468a865e65e2356a7ddd8a3b90a51d1b8f0fb292363b9c1d1f
MD5 37942dfbeaa6ea5c5d4bb684a6627a15
BLAKE2b-256 862c15f2de7ed1c4367c076e18107e8f257bc5f69b200e1fdb954eec7572332e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 55d77f77b11b0418cd63b1116478bb269c1b742288d8661a0d1afb253923c15a
MD5 28578c6ded83470b5afc7deaa6a97e0a
BLAKE2b-256 8fb7355ac595e4e1a6faa6c6bd09964888c04ad017e57c34fca88ad897c6df1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3a2f5219b3027addb09ea2fafe3f85fffbd2ecf2888ccf180029ddf000706e29
MD5 f5df1d55a3990a723bd09bc2c4c6c492
BLAKE2b-256 31ebc1fc0a20a1862f3858a0ca167308587c97c07aa688c5df7ecadd012eace5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp310-cp310-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 a6797d87acd243cfdb5eff3b3218dc39f9afb5291876a8bfaca5e754488850fc
MD5 df29585614fdd6416c2bc78834b00e08
BLAKE2b-256 c82919588116725cd57dc601e59815db5259eb1ae4f05babc690065021fc2f05

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 dd00cb971ab049760edf8a307a3af74247a4cdc6b9b1c3592c51913bf64173c8
MD5 bf1804082ffceab677255bd2f43738ab
BLAKE2b-256 aac99e941565c4f3fb665f618de511d07711be02df4a8cf0f81320e0d077d85d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 906dc6e9a287e2f87492b97e09b63cebb2c551954277bfcf014fe93d9e0c4c60
MD5 e577740b7dc6a6c0971a6e2672548fdf
BLAKE2b-256 573874d34f373b231bc9b0407d7bc9cfeeab0817e5caf52946b3d085449cae15

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 0fb52b1487810d3c2cfecdf30aba967c589a5fd6303f17cf2c08460f5cf4a19f
MD5 97bef5dd395c8d8f0d59dc9882f48e82
BLAKE2b-256 d1c05fb74f1833d818ad32562356668df32658e79def03e3ef0d5195d01b71e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 0e7b25cc825c51d0042a002da884a3dd5af4e2c119c325c24adbae780801bc9e
MD5 bb61ac81a5e89e91dcd25bc80efac2d4
BLAKE2b-256 7e007c57065a3b67c0a88eb0ab09ecad2901f0ff90d3d020b05a47642678a615

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 c1e57dcd2a125b103c44d3e896535077c32e68d4e7a3eafe515c8260f7b30c4f
MD5 6c383d685b0cb97fad4e459b574bc7da
BLAKE2b-256 91ac3f82c750ad7ef207ed2074c58050828b298956e7c4a62964c9fbd5742a9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ead9971607fd76f7df271cefc37c93020759525ddae7cc3945982fe685567081
MD5 af68fe06f26a56982b4029402d488b24
BLAKE2b-256 03567e7f469ed8847afe896b531d3eedefb1c2be1edb24382ce7454dbd2fa872

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a826640ac1c90ef5339d5a6adee603c11802712cca3ef18c95ad1d573c815f94
MD5 952be33c042c7645d4e071e6517b6ffa
BLAKE2b-256 5b4fe9e9b811c4e7fe9e16a0d92664ee0e806bdd582665d860eafb45a18cb3d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp39-cp39-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 dd49565027262db62fe828fe08e7b919ef96e34589ce70016edb307972c16ebf
MD5 cf392fee551f95c4f603bcda8a8d2d06
BLAKE2b-256 db25eb61444d6779d7acc06c187d7bda76ca25fd5304c7274996bb5e67bd68df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fa0a7e8b9fa963891038dc12f3a477d594a3a4f4ce0c7c3b2b5945ac68cb5eee
MD5 ffe7a34f674a4a4412ccec46df1361ba
BLAKE2b-256 e8bba087e431f5e6b24ca38b2ecb5e0863ec635fd93e16c80b41c36f09c0aed1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c17366463049cefc92ffd5f45952dc6dc8b6a3072381fbc633726bd61579058d
MD5 3bbff571d9d93f80c2b385386cd32d1a
BLAKE2b-256 89c6193e6997cf6cadb10e34655fb419d332a9febcaad91239abe6c875ea0a57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 e20f2ee9baf5af3e4332983c2e75b79db97796a3d9b39b335d7247074fcbae05
MD5 92c0bb03ec628f7f7b7302cbe745af59
BLAKE2b-256 8261d7fa189542f1f6d73d0493788f73c31c7b371fc399465c86cdc8d72df3b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 d5b8773aa810f6062fb527792f4ef6bab9bc57a8bd3cf18f680c9771f298ea41
MD5 2593646e74de5468c33f61aee9624ae9
BLAKE2b-256 5d9f87ad573c270416e3335ae9cba26bf1288e3c5237fefc5f64b74d0128244e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 5dae9a2b70bcfcc23bea093c231f3a93e3abf0b64302877d3f12b91c490d96af
MD5 9f7735c56b22779492d2bc3ebebac9f1
BLAKE2b-256 37f1359ea126c5cf5c4b96041ca1f6c91dd4699e7d487ba733e8a18a0b9a6b3a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5ac420baf3a8de73e1efc65c2ce9bb52ed1d03c5d862fe57943f559ffa6cd11b
MD5 23e04eb530f940136a60c608750a9b3b
BLAKE2b-256 9c4317a0e2d8b5fa96f2ebf641092797c8e7673be9e9f53e90bfc804cb8fccc3

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