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.3.tar.gz (44.1 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.3-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl (687.1 kB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.3-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl (754.5 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.3-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl (649.1 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (479.4 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

typeset_soren_n-2.1.3-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (499.4 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.3-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (599.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.3-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (479.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.3-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (472.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.3-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl (687.0 kB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.3-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl (754.2 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.3-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl (649.2 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.3-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (499.5 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.3-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (599.0 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (478.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (472.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.3-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl (687.0 kB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.3-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl (753.9 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.3-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl (649.8 kB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (499.5 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (599.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (478.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (473.3 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.3-cp314-cp314t-musllinux_1_2_x86_64.whl (684.9 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.3-cp314-cp314t-musllinux_1_2_armv7l.whl (752.4 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.3-cp314-cp314t-musllinux_1_2_aarch64.whl (647.2 kB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.3-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl (497.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.3-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (595.4 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.3-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (477.2 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.3-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (470.5 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.3-cp314-cp314-win_amd64.whl (314.1 kB view details)

Uploaded CPython 3.14Windows x86-64

typeset_soren_n-2.1.3-cp314-cp314-win32.whl (296.5 kB view details)

Uploaded CPython 3.14Windows x86

typeset_soren_n-2.1.3-cp314-cp314-musllinux_1_2_x86_64.whl (686.8 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.3-cp314-cp314-musllinux_1_2_armv7l.whl (753.6 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.3-cp314-cp314-musllinux_1_2_aarch64.whl (649.0 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (479.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

typeset_soren_n-2.1.3-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl (499.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.3-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (599.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.3-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (478.3 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.3-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (472.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.3-cp314-cp314-macosx_11_0_arm64.whl (427.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

typeset_soren_n-2.1.3-cp314-cp314-macosx_10_12_x86_64.whl (434.3 kB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

typeset_soren_n-2.1.3-cp313-cp313t-musllinux_1_2_x86_64.whl (684.9 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.3-cp313-cp313t-musllinux_1_2_armv7l.whl (752.1 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.3-cp313-cp313t-musllinux_1_2_aarch64.whl (647.4 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl (498.0 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (598.6 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (476.6 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (470.5 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.3-cp313-cp313-win_amd64.whl (313.5 kB view details)

Uploaded CPython 3.13Windows x86-64

typeset_soren_n-2.1.3-cp313-cp313-musllinux_1_2_x86_64.whl (686.2 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.3-cp313-cp313-musllinux_1_2_armv7l.whl (753.7 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl (648.7 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (479.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

typeset_soren_n-2.1.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl (499.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (599.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (478.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (472.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.3-cp313-cp313-macosx_11_0_arm64.whl (427.1 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

typeset_soren_n-2.1.3-cp313-cp313-macosx_10_12_x86_64.whl (434.3 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

typeset_soren_n-2.1.3-cp312-cp312-win_amd64.whl (314.3 kB view details)

Uploaded CPython 3.12Windows x86-64

typeset_soren_n-2.1.3-cp312-cp312-musllinux_1_2_x86_64.whl (686.8 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.3-cp312-cp312-musllinux_1_2_armv7l.whl (753.6 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.3-cp312-cp312-musllinux_1_2_aarch64.whl (649.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (479.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

typeset_soren_n-2.1.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (499.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (598.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (478.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (473.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.3-cp312-cp312-macosx_11_0_arm64.whl (427.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

typeset_soren_n-2.1.3-cp312-cp312-macosx_10_12_x86_64.whl (434.4 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

typeset_soren_n-2.1.3-cp311-cp311-win_amd64.whl (314.3 kB view details)

Uploaded CPython 3.11Windows x86-64

typeset_soren_n-2.1.3-cp311-cp311-musllinux_1_2_x86_64.whl (686.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.3-cp311-cp311-musllinux_1_2_armv7l.whl (753.6 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.3-cp311-cp311-musllinux_1_2_aarch64.whl (649.3 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (479.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

typeset_soren_n-2.1.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (499.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (599.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (478.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (473.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.3-cp311-cp311-macosx_11_0_arm64.whl (429.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

typeset_soren_n-2.1.3-cp311-cp311-macosx_10_12_x86_64.whl (437.4 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

typeset_soren_n-2.1.3-cp310-cp310-win_amd64.whl (314.2 kB view details)

Uploaded CPython 3.10Windows x86-64

typeset_soren_n-2.1.3-cp310-cp310-musllinux_1_2_x86_64.whl (686.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.3-cp310-cp310-musllinux_1_2_armv7l.whl (753.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.3-cp310-cp310-musllinux_1_2_aarch64.whl (649.5 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (479.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

typeset_soren_n-2.1.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (499.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (599.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (478.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (473.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

typeset_soren_n-2.1.3-cp39-cp39-musllinux_1_2_x86_64.whl (687.5 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

typeset_soren_n-2.1.3-cp39-cp39-musllinux_1_2_armv7l.whl (754.3 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARMv7l

typeset_soren_n-2.1.3-cp39-cp39-musllinux_1_2_aarch64.whl (650.2 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

typeset_soren_n-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (479.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

typeset_soren_n-2.1.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (500.1 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ s390x

typeset_soren_n-2.1.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (598.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ppc64le

typeset_soren_n-2.1.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (479.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARMv7l

typeset_soren_n-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (473.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

File details

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

File metadata

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

File hashes

Hashes for typeset_soren_n-2.1.3.tar.gz
Algorithm Hash digest
SHA256 3ad381474b3eae462c4d44b9acf5ab75ddac8a319a38493ab796381c7cdcacff
MD5 0d056ee6bc45fe4ae8df480594ebe022
BLAKE2b-256 50abd5936fbc6af5b1ae6fefe8dd6cec4e6f0822efa71efda0bdaa46e5fab593

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fdba58f78889dc2edcc30c7cd1285badfffca7b32b6a1e9db048d164392c25b7
MD5 82ac7b1660bc53fb861bb0ced08336cb
BLAKE2b-256 96725a0700c7ad7635b9ac3665f09b39611ad121ff3bb85abca3e7339c612ffb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 b0bb6b756ec8d8a61ae1520ac852d3944cf68e710ce0e8bb0e724070b0e800c8
MD5 65f33afe6a6b770e4fcb72e02e35f6bc
BLAKE2b-256 0712ca7ae44d26f3938ab767c72a819bbc3e5ef066b30e352ab601b4d5ac1a39

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ec878ec12a4c36ec7f7cdc8cbabb66345e89d9951031b457020ac939babd1007
MD5 25c2ec8a9c412d862bebd9838526e14a
BLAKE2b-256 a3237b4ded02647ee2b48168b9168f6819ca88ffd6238afd25aa07d93543c4e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3447fac5d8a1df976e1067f04c790f08aefd6886209b719a4b97e3782c36e50f
MD5 9db97a2a1fd2c1fc141a6ac35e9e889c
BLAKE2b-256 f65b5c705f2e1638df6aeb4a6d1eda8cfaefe5728f970d598880740f9a40093c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 0dc83675520de33caca72abffb78cc888d27578925eec27cd68004d7f792f2ca
MD5 1d65a9b0ec192f3811ba30f692dc204f
BLAKE2b-256 4b82c2c88728fa33c1e3b2be327385a96448ea7376766723d83a431a66b8062a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 e7a9ad6fe1c8bbda804d907e85de9733b0262368a952b690ebc84bc652ad1058
MD5 81a777ffeaad24ba2fc6fc3f3c355df2
BLAKE2b-256 cb243826c90924cfb43fbbdab5529151d39d221cb0aa3cf5bbb2405af57f2d6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 63d67be5155d2dc9c7643c2d5f29536de444b8120913e3b15bda0bfd7176f7c7
MD5 216761bd0805a48ac9518dba963ee700
BLAKE2b-256 7c1efcaccc7e68851c1a78655b08623b948a43758cc43e357863dbc643d8d141

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4694b221a141cd88cb26383b9a4a22418bce0b36d341a9f15bb4ccf6227c6443
MD5 9424537224a55e62be666719113947c9
BLAKE2b-256 211f2e611864a2c8444a4cf3e5a443850debb15523342371feeb1a0250b6cf7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 112a296f6552b846265d068904cdd769edd67f1cfe5c7c8348e2621f7563ba03
MD5 e53d5e98ad54926c2550de8c19e16927
BLAKE2b-256 15aa1f9ddd26eb42ee515ad1ec2dbeab1f8570eb7b95633845adb15a42600e7d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 5a98a1454e7f4c78b263d90a9a14f674c8a4de1a370e1852f06c5f56e9a1f8fb
MD5 25709667d31a13aac5f2e4d3419a444c
BLAKE2b-256 d6052d270a94d47ede5759fb7052b734c4f81a9d1b663cc9ad5071b4c4df6368

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6e260f22540f1b46796018241768eebfa0e4261c0a5970fdb681ea3b023cee1b
MD5 95074fafb9f94183ce93099f4d30f3b7
BLAKE2b-256 74461ed4f18928e98647165ddb73c787f530493933b2bff0a103ba29aa00ba4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 723eaef1208d88812bef036fe15b95b5b09b1aab6428f37d2f294f7cee7f5075
MD5 454d29a49e576dc0a5a1eda2f571d674
BLAKE2b-256 1bdfe0c950248e34483e5d9d2772151a6ce4c8bb3d297a5c14a3661b67ea8584

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 15d7acd0ce19a4798e35b48937b7093e651b35c7ddb0908312da3d60942d5a2c
MD5 fec94a33fc6e9df437a25ef62e8b576c
BLAKE2b-256 1ea361d45ba4633b48fd2116e6c7aeae69086099901e8a41b9bce5af47bb2d5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 ed8c3c67d7f84d557201b8228588f86c5841234f7eb88b69d54f2ba8545dd4a5
MD5 a2755d253dc56dd97bbd2702cce641c3
BLAKE2b-256 23a3a9e9d47657ba3c5164d11da53b401c2aa92059aefe690d96e641ab2c0794

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0158c2332e6ddf34a65efe5f54cfd11ec19509d3809c1d1854a3b37c7460af6e
MD5 85797e87a8cc6e0b7bcbc92699e6b758
BLAKE2b-256 65a20b464712af66fa720adf10445a2374c64896e2b6646a05c4b552ea02e9e6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c7e2ccab399fb3ab2881e7c90cbd7938447dc844e962f3616f5c3e9b10508e02
MD5 0c6662f61ce3067b9bea18769a2b558c
BLAKE2b-256 48696704f99ec49abf4e5539613761216890e9c8264e38f323bb6f326a771c53

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 4ef4e850438eaf6ffe6e796c9446519ef62f71d63869e0bbfb11eea8acc6c5d5
MD5 53341414df11943850ddf30df4b16b99
BLAKE2b-256 f8c3ff9f09574db20afd482c9a7372bf990b476cdc9541efac66917a51832499

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 47cfccacd4668554753a0ceb3bcef8f1a81a9522f1cdb5935bf2e213b7a2dd94
MD5 604ed930dad75d4d3885ad5ba2e75158
BLAKE2b-256 75661b9a9a2765aa9f838b50a653ded307e45140853d2ca4839f186c5ff912d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 928d96a25431deb67de329d4d56986f32382cfae813da7d872ce7b59019d236a
MD5 eb74024f461585e82b2b8538ba3f29a1
BLAKE2b-256 9bac488027fa8e6b911d8b3a31eb51cc3ca13a6e4c5df07da0660a4747832f13

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 d46e3713e4c9c3a6d8f5ef10f731d1856fcdf76604d7c198d6a418bebd120c64
MD5 7f9d2ee005911a78d2903336f5abcfb9
BLAKE2b-256 826828de96b492f9495dee76673b3a55ef42579c4803a8fd09d22145552d41d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 aa50c213b2aefb6400ed36509b70096dcf631bfe48a9347c4131c6903678d7a2
MD5 2e51efff5f8eed45fe193f443dd78461
BLAKE2b-256 48bbf00dc73a070d2730866c8dc971824acb9dc56d8b6f24828cd93f516b1a9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d8737f935a0c3dd55573d7f802380d45c9ead84937bf563577819781295349ed
MD5 e618793b92b1df3a28d82462f79dfecb
BLAKE2b-256 6b13859cc503c9fd59aa9b4e5d09507d6d3134698525e7f566008883c0096e00

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c09f720693554ce734a633fe65140ff0c84ba03db6469624e35b323461a4d28d
MD5 579e5a377329f2339ce43f31d26bcebf
BLAKE2b-256 b8e8536d675f8f28fe7354b09341209ada39fc8ff8753a06adbe0f049e8610c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp314-cp314t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 03324cfa1b2fa5b97de001ad90f23549faed83034f3eff7ad1141e298bc2c903
MD5 35d2ad3a2ad73545f43bed729fa7f0b3
BLAKE2b-256 8619fad2b81f8cf2d4783742bec654cd092975b26e079302ee7f0c1e10c1fd20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 28511fa40964f5fdb102d51054379e530d94f86b2ad42af7a31cfca2b380397a
MD5 32e3b4d39e965d9e8465844028f5273b
BLAKE2b-256 29207db527555b16651f7e64fc3ca7f7bca8c600a33e04535c6c62b1f23d89d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 4222d63cfaaaa77e5e19301787c788795320a5c0ee32b3aca466bf0b73bc0ddb
MD5 b6e9fb1c47acecc0c8975fb7d5ec9263
BLAKE2b-256 dfb8d601d31f274054ca38c2fc97fbc7d54ccd264018d6269ccb86a5c542b689

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 a853dd02f4e1bb592db46a217bc18938f57a334ab862ba1ee050204222fe7010
MD5 59d7b9b7c21646029c4847de3489d5e2
BLAKE2b-256 a6f43e38ad6583e4fb244483720c673825ba1d99a5f118b87fda4175655ea6a4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 eb8ed5fb5bf19b0ed390778f262b56a457a93f9943969176d5d787e0c5e6239c
MD5 2e9e87f2a9ec5ec4063a537c36ccd83a
BLAKE2b-256 9fbd06374546c753f40d95ad2314f0929e1e80e55e30cb0b37fa3ea4cff76e93

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0e225d42f1a2bde9a9112f5796dc8201d24286e6cd3bdfb61e8b26bbebd9e0bd
MD5 87d617bdac66646b8d8749f87beb7074
BLAKE2b-256 8733f9250ab277bb0f525d00630cd4a8f5e13979453a454c57940afaffdd7673

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 3684b64b06edecef98573d30ae731144fdd35c4a9f6d6c837243929fe87b7143
MD5 8d57782fe3a18dc93ea9b65cc8af5c71
BLAKE2b-256 c24b9c1e773351e3c48523ea01a2942812d9959fd86b629a471496ae7c542d21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 7b47405d114499191936e843133f7bd873860ef0949f14c6e889a095200a4538
MD5 a251269ec379fa6ad2611f5db4edf652
BLAKE2b-256 e3c87364c36b43866f87294c185443df3ce1caeaf4d2f7065aa8584a5993b480

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9bb3e3b810cbf06d4eed549610cb802332a15aebfdb1b86ad34a57176bec885d
MD5 39e14d542595805cba16f764c285192e
BLAKE2b-256 397d6a56f458354a92e4910aac859798762080d1f8701f6c1091bd77a9498265

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp314-cp314-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 e8b57ab95553c606bd50cd55408a8d400388f58ab03d42914cf6c506c051f8ff
MD5 cecfca6d16b8753d70a58aa949059439
BLAKE2b-256 a1610ef5d01e3a590dc80aa0a3f2121c74a75041a4cdca7631ba81c3c1f9d162

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4d440aa4273504399ec93f09a4172e80a00158f1f513c3afcf36d25691396d47
MD5 6043ec6ab2277ab1011f89acdfdf15dc
BLAKE2b-256 724a0623757072e4bc246ad93f1518a65734e21b8373b1202fb5e65798f1865a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0c28b122b13c3f4d68b703d0ef4b99ff558d45006889578f4ac4d22594c6afb8
MD5 acd2f65acacd6d6d6ab00a6605ac6b01
BLAKE2b-256 90469518aeb7a66bf9750823d44f0b6c2b81077113cceb1ce527ee78e0e3059d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 61b146ed8d60ff522c3e98fd62ab95a8fdfc044b05b0593437a77badecb12935
MD5 ca3af41c919583a2ff4109c4513303e4
BLAKE2b-256 74065a5fd93c280ff126938494573618b8daa2ed536904377553c5373de63747

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 38f7f8977873af408c8645930ed7ed4be50047c97e049a01e2dc3cac40124d7a
MD5 0f0fec58251d62bfa57e1d0d262b3a2c
BLAKE2b-256 e3f5862023ca410dfc9ff7bc17f12a18eeb9b0973a4b084d9bfdddedcff6f8b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 c43aa892e04a780180b74b7ddbbaee0a2ae7f718f1ed156a80e26c7076ebfc97
MD5 a5a3cd41e36637ec2048f221cb313cfe
BLAKE2b-256 64dcbc3bf765557b3b2117176076cc8f10a40a775767663465903bcd4ced3b8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4ed85c20f0173ba6ddd241ba081d5471e715347e3b6b3d6d19427f4244319ac0
MD5 293be8c9378e134ad496f1c1bc86905b
BLAKE2b-256 88454f2abc8e1281ca2862e22db485c97cad25045119f3910f090588eb18b3a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 71f72c58fc5194cec9acc631dd189bb8f1865b6e33233e770765852c13343e38
MD5 e4c6194627592cc498bfb6c0b8a2c19a
BLAKE2b-256 8ca68f3470c9845ed3e18ffea13bae1b0badafe4381ac0e66b1a42acc68d7128

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 43c8b8df354eca6aee416071c6e1930b51d42b76bdc33f89efda341e65a4c19f
MD5 d95331254c636f31eaca725c2c947f82
BLAKE2b-256 775131e549b68047da2135563451a912be5df6dac08c6929f455e4506f7a3ac2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 572d684ceb806a9c1a83ff8bd19bf4120be2ac641df4a5b22c5b0ff9b98dd086
MD5 fcaaf4cdd7f3b49ce9aa2689215e232b
BLAKE2b-256 6f6cc0f06054271b1bd2c29f5bbd71bf8a8a5f1cd0455d699fb19f60e21bc234

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 eac710e656e0da31047ab0e525ccc7b30de25b5bf503e84c1c2b080bb54006ec
MD5 8866c749888ffefa41699b7f86886dc8
BLAKE2b-256 1a54c5666f977698887dad7412197f5955d2742f9780321267af6752f8c7096f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ff08abc374fb0b042f1582d78ee2d6aafdad86a8c12463ca0e24969643a9232d
MD5 3686d8811be87c0e19087c01b6cc7408
BLAKE2b-256 901a31222d94a62e8cf4853c2ca01850114821d24881136cc32e37ec3126f5ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 728dee938b90b38d4389bf3eb26f181e046ccbfd253ca7dd3ae4b8c4b68eb080
MD5 7616c52259e15053f5f584a673310375
BLAKE2b-256 3a1380c7c1787201c082b88e1aadc1180e59406f6eabe1cb6a5eb537496a6761

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 c7729b1fd2c4b9eed4ded25926284df62e0918f8522ab0989892408bbbdc09f0
MD5 9729c7ce79ed1139cf056670e69ad200
BLAKE2b-256 eef3cf5ee679d563daa6fefa0bedf3c0c3e260c3f00fdc86d7c0d755bde793cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 32e567ef0bf6dd56971e5184691c500b3a610070692c818f62e0147a6ca26969
MD5 2b0e99889110aaebcbfe0f93ac07a355
BLAKE2b-256 46604272a83da9b6792e2478c6341232080ffa00f9b0aefc3aa0459b72a42a44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1caedc050cad1c2397cf10f8a68f843cb834e3038a7bc4dd2a977e70d03b3a76
MD5 bfda27846312fcb85c2e9bf0e640b91b
BLAKE2b-256 6030bc687a4e3cf704742dc1a1e234ac8b633518524b2334043eb61ab2e3d46e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9574c6f2a932080db50865b0d6fb26d20918f19f9d137effbbc57825a4044100
MD5 7b9c7225118274134237a035bb5ca77f
BLAKE2b-256 6ba3a95d0e07a71ea7239405b5b95a2816ceb9d02a6a699af327cb5dc42bcc3c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d4fca320bd5323c91ca91e874a601dabd83d0bd5b7fc1e7133894bdc771ab315
MD5 e808bd0c272cb6ead5e5b46029e0d0b5
BLAKE2b-256 763c9468546edbbc5e3d2054af3e217de75a88429848880640ea496be4162979

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp313-cp313-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 a5c2ca5050ba6750286034781f070da04a2578c13cdd873d578315562b7f01a3
MD5 9870d14afd4334b8c85f4ddc3eb72371
BLAKE2b-256 cabe8ceb41c884b9de2c35e8373b07dd6cf3649fde5066f856d3a4d68183df9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 504d7d00649a42f3d0f2fcc965f93056a3c64b52cd68112536b2f4a3a2d7d644
MD5 415e08370a4cd078a91954e207ab6070
BLAKE2b-256 86de969da7f25416420ecee1fea2389c9c34c2991b28f50c5c0df291b59f5222

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6f8d5f6d681a73625f6e6001b82ec8c5dfa819561d175ff3aa0ca04ae1161490
MD5 5523673a9198f11027393614488f7847
BLAKE2b-256 3045091416625dfb494baa920bbd8a38fbd747d8e5182fae375416b462d625f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 a1ff0fd547d6023c32ff2979e4ec35a0a660c12912b05d214bb1ac1589c45167
MD5 a76c74aac3f39694ae2cc9faefb507b4
BLAKE2b-256 4ee8ecec1d98d2b97a9a9c7896360404c13f0144cd2a4474099bc8dc168c3753

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 1ebfd5271982d44690a6f1f2135e88ad35c49122b0059aac41a43cbcb1b4abaa
MD5 a2a9bab40a5704f6fa3d2adcfbd46052
BLAKE2b-256 08be845b131a3c300db668d832e9699195668eef27d736a7f60a3bef53c6123e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 ae24bc28c33bb1ee1ee6831d4f5f8cedcfefe637c868b306acfb52ac2ce27cb5
MD5 1d47caddf9755ad2ef5b3761b4722271
BLAKE2b-256 5801cc04b8209c0753af8f45d1b7efd20ad28bdb488e78bfa7ec3f820a2fc7ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f76b872bc2d8b16b411d2910dad5cb693854f9167f757ee7732d509e57296d0a
MD5 b10b5208296394fc51477645f673856d
BLAKE2b-256 b81b9354426978ae3c80567bfd1dfa9adac7ef758a5ad91fe61334a0d9a36494

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 810ae44f396801c42d28fa41c3a9f45a0730950636759a2109aab836d2f38066
MD5 6caf0a0b3db7ba27212bd0f6478b8a59
BLAKE2b-256 66a211196143a01e279e9db02be27548fab41465093bc4ccfce592e4362c0820

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 15d5efa8048e22e63ab3bf6c7c3a78195b7594bc6040f4d9b6690c8eb97a3b3e
MD5 beb5c3f686fcf05933542adc5e914f8e
BLAKE2b-256 2694253561f7f31ed881b6e0a8d8da832039a3c0f021d28cf88dc205121d3cf6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 50d003a414c81a71744c4a373de8fd448011074ee6b650232244c3f521aba590
MD5 c1a6def76d8e1281f58deaafcbb2dc4e
BLAKE2b-256 3f608827e8cbd067b124b863d6181d14c48a29f9a45f1f6c4e451729445dddca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4e52f78fd17b6d4a8372557b5ae5e59746a5e7c1a93deae77db90190deec81c4
MD5 d5a8f6b1cf8ff8621b92c393b0b77532
BLAKE2b-256 0604656553c5b98e4138af1bb288b774f887052950c6dc0e12054f289067592e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp312-cp312-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 661e1f1be562b4b348ab061584a952f76cdef2b703e9e68673811dd505ae86a6
MD5 4f3538440ff8db798480be0c9ecbbf94
BLAKE2b-256 968d61b9719ac18dfb062ee0fabc210bc9c3e49f267ef40d4bad9fa3b33b8a66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0b7b71b780364efef9bfd5d5737dc573b7968fd264a54ca56b97e9d5f0c2db3d
MD5 41c497c2138d878cc2d486dbfd4b935d
BLAKE2b-256 9e04d31c75ca499292e8a0c7e70ab0a06c2eec4c8d5b419497addef513376b34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c47ace8ad980ae3b6e4cfbd7ce73ecbf674a82f660b484fe556389dfa7f8badd
MD5 c1a592a2f0ea29d63a61bf7f124af989
BLAKE2b-256 68362aad07e5b7b6513120eafefb60d85fd15d8df08243f554d30313180030c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 e45bea2f4d4c6ddec8cb9b17716f8f31f17834a4754b1adc007a922e17832bbc
MD5 af221067c82e9816da6a01e838dcbd04
BLAKE2b-256 a548142f46bf72d3cb11eb988c48a7463172274caa5d5468a0428713d499f1d4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 668cdc6a2dfc4f93a05bc8439b1def1e29327bb77232a748704d022c1eedfaa7
MD5 3efe85ba017d53df3273ec49441b7049
BLAKE2b-256 34b594967a4fb1e2d2ef574d9addb6349bb6f1e69e49fcf86f465ee86329de55

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 4c52c37363a11dc46cc6891f450ce42f74a6095797f0c6ad52f3f78e3fca7882
MD5 a721897a9b592b1ac08136bc46b8334f
BLAKE2b-256 a4b918969853c42fb328210699105f19df38ee9429ac53a90611db3d24e5b2af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cac4242d960d38a862bda36c0e4f97d29676634afd9afacaa6569cb6252434a6
MD5 825e0b13b7721651575db194ec208fed
BLAKE2b-256 fec782197aedec3c79192720f4d2ee99324f5588c158dbf6527283e8f62e4d3e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 86fdcb10ded98282725bced1cc26189e9f21f632c41e22e4b3af8bebeb206477
MD5 990527814cb36fdb106b892c31010eee
BLAKE2b-256 3eaabe840abaaf93475de71964f4656141256591e1d98078299a6fa54267861c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a53456e4ad1609464deeb36f428aa12441cf3c25c56fccffc22496cf75272347
MD5 68824c895d2a82c34f34cb419d4612b7
BLAKE2b-256 3a69d6683cdaf1fec093b6aa1995e936028129af9a316fa315dfde926b346839

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ffe80548f57a03113251e2e1cb908895e2e5b235fc885635610d57dd93eb4f0e
MD5 114a6379154e70c4d4660b353cbf4c9e
BLAKE2b-256 7502fef87800e1ae31c895cad259346ea7ef05baba16620d3f6609be4c9209da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1625470626abca98ad83e501c712f3aae8fdde444a3844fead9b0839b81ddd8c
MD5 bf757264528fda85175f8162e09131a2
BLAKE2b-256 c10d2546e12a1040fe97d34d91480afc5c81cb9482df4bb0ca097b18c56ab9d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp311-cp311-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 6de87197a766132d6f9bc950796256e62907bd140674e64c9380c21adaaad8d3
MD5 6aaf0932e4d11042a53279e27b37fcaf
BLAKE2b-256 25ca37337da0dc2c9f53ac10bcaf85f989d3b7f19a7e512aad4b479d5a8c90d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 795f63b0498b929473823e883e2c4797a520fa70926f0493628b74404ba29702
MD5 41c8797bc1c734a311269ba2cdcbff32
BLAKE2b-256 4495aaa52b94c2a383381c68aa3c6c0a1ae163d7e5f19a2176d422c836ce4527

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aca04fa0fe6658f43d5a9831d0517d45aeb015ce4e602ab89b0ce9349a5ac768
MD5 049d18735f9a616322a0aba87cfcc817
BLAKE2b-256 9d0ae5e9150e2e752214ab5fd4f0411b04efb51f78ee0d4a2faa870f5c83b095

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 8d52e737b98b848b2b7133b63f499718cbf85d744c97772fb5e47ff99ff6fc30
MD5 5e1c937b3c42d7943f05b945ce49dd1a
BLAKE2b-256 5999d43daf39f504f709b136f5ccb18993306e35d5f92bfe41d1f3228b879fb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 0e3d0d416687c42a1f2459ac0d631b643b87ccc58bfe345b16896a29de26bb49
MD5 5dc802d6e876822a7243e3cacbaa2586
BLAKE2b-256 712e362d31914063012887fe609e4bd3c3b8db1fd52b0bbec912e2231512b15e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 43f3974e4644208008d033e559d9d6a6ad48320a63e5e5ea183cbce99bdd6ca4
MD5 478bbc71adf572315017909baf2f1b45
BLAKE2b-256 4596d745c71a01e9ced1735490c86fed57877b57bcb35383de606cc4504069da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 16ace75c3ab70229e67951e8f2bd8315357486473816482fd083ee396d7abef8
MD5 569c3f5175969d1dcb86f5cb34fcc15f
BLAKE2b-256 271da4d0a2e8a5b35d81d89e6ea4da58f01f66e11108b47ad6e69f57e40fdfd3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b44b1305de43bcbd3b451d7f1a5f8ffb38565bc23e328ba91d11262fcf755f95
MD5 353e904c090be1a29f51f552bfc16b68
BLAKE2b-256 1bf44289438d3f807079298c895a5e6877f03a8ca4adf503bafe01b86ef5fbca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0f7e6381c0d7cd379cfd87f01034cb5955fee05a91f404c2fd2f7e864c2ce3e9
MD5 90967b84cbb2d620e968ab48c3ab83ea
BLAKE2b-256 34113a1d925e126fea00b5aaca4dd4cac8cd219369cd123ca0729962049a85ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d647b8086269baa2fc2695085f9e6eb33c5394de3367cd869ce62b91d1277cd7
MD5 3da0d6c0b6a74836aa23ee99d94535e9
BLAKE2b-256 ae6c9d40852b906ad9cb8ffa451687f4ab2aaddc7f98a51077191f11980f0b75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 16b5afd1088525cd9125a179f99d898a0f33af2bf710d618bc5a796c2af13119
MD5 4638f240bd0d76f9639233827c24deba
BLAKE2b-256 f14441975e1e069fcf18cf08afb46bd00eaa336450127ba4b67fc2655a6ddc9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp310-cp310-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 04019212fd37563f5170079e722ae51479be2c2eb8eec4227c6c05b099b2e08c
MD5 f4bf11679a95a7c3ff6345a78bfb3546
BLAKE2b-256 f0e6dab469abac55f6995642f0165f7ab2eb98fdd3bf1fbfc8bea136474269db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3baaab55356254fd532ea33f1b1f87774a410022823d848a614b34bc2945bc9f
MD5 8c6531b02de7957131a3b2c395d52228
BLAKE2b-256 f79a551683deb57d368f2cfb6c7533a59015b6d8075e6e2effd71d5af748b90d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b02bb5d5838ffb7dcdd5e26b82ae8a174e3aad5f244601581306b908aa2deb40
MD5 1116c3cb641c57543424662778450ee9
BLAKE2b-256 3ae367272e2119e100befbc042456948a5613540cd81b4d4e53bd5da7a2a2928

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 49deba524e773d44422ca58959cb645d9a65943b53caaf2d043aef59df0ca470
MD5 218eaa866772e07e94773327f0f7c9bf
BLAKE2b-256 ebaac682a4acd2f3d69302bd8acf5af638c3e13e4aeac785151b4ef03341c879

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 d6021d3a7cb8e7f2f1fc3c24a867d2e3a6fe12e410b6cc1c1c4d7c6276e84739
MD5 c9e57a81bac3102b8c201290991a9a86
BLAKE2b-256 9c30aac222a4097a0ae7ed087787b12bb80a5d0ffe8193fab19ca9261c477412

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 0212b6cbf42b686803a8dddf3f49f539cfe768fe1b03bf3fe247f787aaeee57b
MD5 ce79663d30803b225b3c47f79589b0c1
BLAKE2b-256 d2ef81349c06926e19b733a61e2eb08501b9abf1c245e94ca821220631c3de76

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 299a77aa01cdd26ea805c7263a377bc3a52b5ff1d7253718cff31b2e999856a7
MD5 14d44eed35cc53cfcd73a34ee6af6371
BLAKE2b-256 b18d1f98657674da900c7436fa56a61643609b144cf7c8a1208dd63933e9d2bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3f68fa0c8612e96cc0f43936153cb55566e0482bb7a11fd87bacb02a25b1dacd
MD5 9eadfb6ea9d16d0700a97d739661ad6a
BLAKE2b-256 a6df7be0bc0ef11a7a0cd574e07356701dbc89780f42541b8ced3103b89dca7a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp39-cp39-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 2714b81a3bf5e35f29e08d97f6f32cbc33bf85c2e1d0ea4d38460e65bdd45287
MD5 6cfbe7f09d3c4b3721a966c13437a917
BLAKE2b-256 59143bb365009810cc1ffc495f8eb2cf94b098f082be7be71d4c200d8243ab61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3d9f718279fbf90ff157fdfccc13bd0c04473e3a353c50d85f9224388cdce569
MD5 583d2533ba5301899bfcb3cbd56823ee
BLAKE2b-256 a1221f00765ed06bf03446d84b6294085d943db023f617d0952f1c8224b90986

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 82998509f00894a38a5e389e9dfa766db6dea029f17964435ec8e51d05654db8
MD5 26d2e634e4eba9e1ec26eee6f2d8357a
BLAKE2b-256 4537ae2fd205b2210cc86cffc1269e3d0b589149efef087b2b2a3aa09be708ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 5a808127181340485ad44c26b067cbdadd5a83040b8251b5aa0fe26b30640aeb
MD5 2c7d4b8ff452f793620d992ff530a368
BLAKE2b-256 8687e54261bed5ab9fe49d72f6b84202f25e41263b064231bddfbd2179e85058

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 b12b4e78249cd5420106ab403df522da5b50ec0ee8a7e01b6cc8b6701cd99d0a
MD5 0df9d228b69a523171ad1cf758e03932
BLAKE2b-256 b7a28f005a0255c6bfc4028b31137afe8d1ea35c5af52db20ba9450ddbf31fdb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 e1551e7750bf29feb648445864f21fe708aec97c6c2a812b9602ceba9ba67104
MD5 24a0212315aa9124bdd7709180a5aeed
BLAKE2b-256 231b0d3c61cbe0239083f61cb80d2f032a110897a160b33a823790e4330d293c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for typeset_soren_n-2.1.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bd0a3c1224cf5682fb6385bfd8f1c2c11dddccf7f685e2f887651772f94d08e0
MD5 a0fd66c5aca75d08c2681ac8140045b5
BLAKE2b-256 ab0adc75662451a2e3c58845daa3fd69a3fe2f76a65cf1e838c096276db3af3c

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