Files
mlx/docs/build/doctrees/python/random.doctree

70 lines
18 KiB
Plaintext
Raw Normal View History

2024-01-17 17:15:29 -08:00
<EFBFBD><05><>H<00>sphinx.addnodes<65><73>document<6E><74><EFBFBD>)<29><>}<7D>(<28> rawsource<63><65><00><>children<65>]<5D>(<28>docutils.nodes<65><73>target<65><74><EFBFBD>)<29><>}<7D>(h<05> .. _random:<3A>h]<5D><>
attributes<EFBFBD>}<7D>(<28>ids<64>]<5D><>classes<65>]<5D><>names<65>]<5D><>dupnames<65>]<5D><>backrefs<66>]<5D><>refid<69><64>random<6F>u<EFBFBD>tagname<6D>h
<EFBFBD>line<6E>K<01>parent<6E>h<03> _document<6E>h<03>source<63><65>6/Users/awnihannun/repos/mlx/docs/src/python/random.rst<73>ubh <09>section<6F><6E><EFBFBD>)<29><>}<7D>(hhh]<5D>(h <09>title<6C><65><EFBFBD>)<29><>}<7D>(h<05>Random<6F>h]<5D>h <09>Text<78><74><EFBFBD><EFBFBD>Random<6F><6D><EFBFBD><EFBFBD><EFBFBD>}<7D>(h h+h!hh"NhNubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh)h h&h!hh"h#hKubh <09> paragraph<70><68><EFBFBD>)<29><>}<7D>(h<05><>Random sampling functions in MLX use an implicit global PRNG state by default.
However, all function take an optional ``key`` keyword argument for when more
fine-grained control or explicit state management is needed.<2E>h]<5D>(h0<68>vRandom sampling functions in MLX use an implicit global PRNG state by default.
However, all function take an optional <20><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h h=h!hh"NhNubh <09>literal<61><6C><EFBFBD>)<29><>}<7D>(h<05>``key``<60>h]<5D>h0<68>key<65><79><EFBFBD><EFBFBD><EFBFBD>}<7D>(h hGh!hh"NhNubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhhEh h=ubh0<68>\ keyword argument for when more
fine-grained control or explicit state management is needed.<2E><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h h=h!hh"NhNubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh;h"h#hKh h&h!hubh<)<29><>}<7D>(h<05>2For example, you can generate random numbers with:<3A>h]<5D>h0<68>2For example, you can generate random numbers with:<3A><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h h_h!hh"NhNubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh;h"h#hK
h h&h!hubh <09> literal_block<63><6B><EFBFBD>)<29><>}<7D>(h<05>/for _ in range(3):
print(mx.random.uniform())<29>h]<5D>h0<68>/for _ in range(3):
print(mx.random.uniform())<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>h hosbah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><> xml:space<63><65>preserve<76><65>force<63><65><EFBFBD>language<67><65>python<6F><6E>highlight_args<67>}<7D>uhhmh"h#hK h h&h!hubh<)<29><>}<7D>(h<05>jwhich will print a sequence of unique pseudo random numbers. Alternatively you
can explicitly set the key:<3A>h]<5D>h0<68>jwhich will print a sequence of unique pseudo random numbers. Alternatively you
can explicitly set the key:<3A><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h h<>h!hh"NhNubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh;h"h#hKh h&h!hubhn)<29><>}<7D>(h<05>Mkey = mx.random.key(0)
for _ in range(3):
print(mx.random.uniform(key=key))<29>h]<5D>h0<68>Mkey = mx.random.key(0)
for _ in range(3):
print(mx.random.uniform(key=key))<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>h h<>sbah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>h}h~h<68>h<EFBFBD><68>python<6F>h<EFBFBD>}<7D>uhhmh"h#hKh h&h!hubh<)<29><>}<7D>(h<05>Awhich will yield the same pseudo random number at each iteration.<2E>h]<5D>h0<68>Awhich will yield the same pseudo random number at each iteration.<2E><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h h<>h!hh"NhNubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh;h"h#hKh h&h!hubh<)<29><>}<7D>(h<05><>Following `JAX's PRNG design <https://jax.readthedocs.io/en/latest/jep/263-prng.html>`_
we use a splittable version of Threefry, which is a counter-based PRNG.<2E>h]<5D>(h0<68>
Following <20><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h h<>h!hh"NhNubh <09> reference<63><65><EFBFBD>)<29><>}<7D>(h<05>M`JAX's PRNG design <https://jax.readthedocs.io/en/latest/jep/263-prng.html>`_<>h]<5D>h0<68>JAXs PRNG design<67><6E><EFBFBD><EFBFBD><EFBFBD>}<7D>(h h<>h!hh"NhNubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>name<6D><65>JAX's PRNG design<67><6E>refuri<72><69>6https://jax.readthedocs.io/en/latest/jep/263-prng.html<6D>uhh<>h h<>ubh )<29><>}<7D>(h<05>9 <https://jax.readthedocs.io/en/latest/jep/263-prng.html><3E>h]<5D>h}<7D>(h]<5D><>jax-s-prng-design<67>ah]<5D>h]<5D><>jax's prng design<67>ah]<5D>h]<5D><>refuri<72>h<EFBFBD>uhh
<EFBFBD>
referenced<EFBFBD>Kh h<>ubh0<68>H
we use a splittable version of Threefry, which is a counter-based PRNG.<2E><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h h<>h!hh"NhNubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh;h"h#hKh h&h!hubh<00>tabular_col_spec<65><63><EFBFBD>)<29><>}<7D>(hhh]<5D>h}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>spec<65><63>\X{1}{2}\X{1}{2}<7D>uhh<>h h&h!hh"<22>G/Users/awnihannun/repos/mlx/docs/src/python/random.rst:45:<autosummary><3E>hNub<75>sphinx.ext.autosummary<72><79>autosummary_table<6C><65><EFBFBD>)<29><>}<7D>(hX<>
bernoulli([p, shape, key, stream])
Generate Bernoulli random values.
categorical(logits[, axis, shape, ...])
Sample from a categorical distribution.
gumbel([shape, dtype, stream, key])
Sample from the standard Gumbel distribution.
key(seed)
Get a PRNG key from a seed.
normal([shape, dtype, key, stream])
Generate normally distributed random numbers.
randint(low, high[, shape, dtype, key, stream])
Generate random integers from the given interval.
seed(seed)
Seed the global PRNG.
split(key[, num, stream])
Split a PRNG key into sub keys.
truncated_normal(lower, upper[, shape, ...])
Generate values from a truncated normal distribution.
uniform([low, high, shape, dtype, key, stream])
Generate uniformly distributed random numbers.<2E>h]<5D>h <09>table<6C><65><EFBFBD>)<29><>}<7D>(hhh]<5D>h <09>tgroup<75><70><EFBFBD>)<29><>}<7D>(hhh]<5D>(h <09>colspec<65><63><EFBFBD>)<29><>}<7D>(hhh]<5D>h}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>colwidth<74>K
uhjh jubj)<29><>}<7D>(hhh]<5D>h}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>colwidth<74>KZuhjh jubh <09>tbody<64><79><EFBFBD>)<29><>}<7D>(hhh]<5D>(h <09>row<6F><77><EFBFBD>)<29><>}<7D>(hhh]<5D>(h <09>entry<72><79><EFBFBD>)<29><>}<7D>(hhh]<5D>h<)<29><>}<7D>(h<05>Q:py:obj:`bernoulli <mlx.core.random.bernoulli>`\ \(\[p\, shape\, key\, stream\]\)<29>h]<5D>(h<00> pending_xref<65><66><EFBFBD>)<29><>}<7D>(h<05>/:py:obj:`bernoulli <mlx.core.random.bernoulli>`<60>h]<5D>hF)<29><>}<7D>(hj0h]<5D>h0<68> bernoulli<6C><69><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j2h!hh"NhNubah}<7D>(h]<5D>h]<5D>(<28>xref<65><66>py<70><79>py-obj<62>eh]<5D>h]<5D>h]<5D>uhhEh j.ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>refdoc<6F><63> python/random<6F><6D> refdomain<69>j=<00>reftype<70><65>obj<62><6A> refexplicit<69><74><EFBFBD>refwarn<72><6E><EFBFBD> py:module<6C><65>mlx.core.random<6F><6D>py:class<73>N<EFBFBD> reftarget<65><74>mlx.core.random.bernoulli<6C>uhj,h"<22>G/Users/awnihannun/repos/mlx/docs/src/python/random.rst:45:<autosummary><3E>hKh j(ubh0<68>([p, shape, key, stream])<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j(h!hh"NhNubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh;h"jThKh j%ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhj#h j ubj$)<29><>}<7D>(hhh]<5D>h<)<29><>}<7D>(h<05>!Generate Bernoulli random values.<2E>h]<5D>h0<68>!Generate Bernoulli random values.<2E><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h jhh!hh"NhNubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh;h"<22>G/Users/awnihannun/repos/mlx/docs/src/python/random.rst:45:<autosummary><3E>hKh jeubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhj#h j ubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhjh jubj)<29><>}<7D>(hhh]<5D>(j$)<29><>}<7D>(hhh]<5D>h<)<29><>}<7D>(h<05>X:py:obj:`categorical <mlx.core.random.categorical>`\ \(logits\[\, axis\, shape\, ...\]\)<29>h]<5D>(j-)<29><>}<7D>(h<05>3:py:obj:`categorical <mlx.core.random.categorical>`<60>h]<5D>hF)<29><>}<7D>(hj<>h]<5D>h0<68> categorical<61><6C><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j<>h!hh"NhNubah}<7D>(h]<5D>h]<5D>(j<<00>py<70><79>py-obj<62>eh]<5D>h]<5D>h]<5D>uhhEh j<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>refdoc<6F>jI<00> refdomain<69>j<EFBFBD><00>reftype<70><65>obj<62><6A> refexplicit<69><74><EFBFBD>refwarn<72><6E>jOjPjQNjR<00>mlx.core.random.categorical<61>uhj,h"<22>G/Users/awnihannun/repos/mlx/docs/src/python/random.rst:45:<autosummary><3E>hKh j<>ubh0<68>(logits[, axis, shape, ...])<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j<>h!hh"NhNubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh;h"j<>hKh j<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhj#h j<>ubj$)<29><>}<7D>(hhh]<5D>h<)<29><>}<7D>(h<05>'Sample from a categorical distribution.<2E>h]<5D>h0<68>'Sample from a categorical distribution.<2E><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j<>h!hh"NhNubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh;h"<22>G/Users/awnihannun/repos/mlx/docs/src/python/random.rst:45:<autosummary><3E>hKh j<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhj#h j<>ubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhjh jubj)<29><>}<7D>(hhh]<5D>(j$)<29><>}<7D>(hhh]<5D>h<)<29><>}<7D>(h<05>O:py:obj:`gumbel <mlx.core.random.gumbel>`\ \(\[shape\, dtype\, stream\, key\]\)<29>h]<5D>(j-)<29><>}<7D>(h<05>):py:obj:`gumbel <mlx.core.random.gumbel>`<60>h]<5D>hF)<29><>}<7D>(hj<>h]<5D>h0<68>gumbel<65><6C><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j<>h!hh"NhNubah}<7D>(h]<5D>h]<5D>(j<<00>py<70><79>py-obj<62>eh]<5D>h]<5D>h]<5D>uhhEh j<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>refdoc<6F>jI<00> refdomain<69>j<EFBFBD><00>reftype<70><65>obj<62><6A> refexplicit<69><74><EFBFBD>refwarn<72><6E>jOjPjQNjR<00>mlx.core.random.gumbel<65>uhj,h"<22>G/Users/awnihannun/repos/mlx/docs/src/python/random.rst:45:<autosummary><3E>hKh j<>ubh0<68>([shape, dtype, stream, key])<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j<>h!hh"NhNubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh;h"jhKh j<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhj#h j<>ubj$)<29><>}<7D>(hhh]<5D>h<)<29><>}<7D>(h<05>-Sample from the standard Gumbel distribution.<2E>h]<5D>h0<68>-Sample from the standard Gumbel distribution.<2E><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h jh!hh"NhNubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh;h"<22>G/Users/awnihannun/repos/mlx/docs/src/python/random.rst:45:<autosummary><3E>hKh jubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhj#h j<>ubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhjh jubj)<29><>}<7D>(hhh]<5D>(j$)<29><>}<7D>(hhh]<5D>h<)<29><>}<7D>(h<05>-:py:obj:`key <mlx.core.random.key>`\ \(seed\)<29>h]<5D>(j-)<29><>}<7D>(h<05>#:py:obj:`key <mlx.core.random.key>`<60>h]<5D>hF)<29><>}<7D>(hjAh]<5D>h0<68>key<65><79><EFBFBD><EFBFBD><EFBFBD>}<7D>(h jCh!hh"NhNubah}<7D>(h]<5D>h]<5D>(j<<00>py<70><79>py-obj<62>eh]<5D>h]<5D>h]<5D>uhhEh j?ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>refdoc<6F>jI<00> refdomain<69>jM<00>reftype<70><65>obj<62><6A> refexplicit<69><74><EFBFBD>refwarn<72><6E>jOjPjQNjR<00>mlx.core.random.key<65>uhj,h"<22>G/Users/awnihannun/repos/mlx/docs/src/python/random.rst:45:<autosummary><3E>hKh j;ubh0<68>(seed)<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j;h!hh"NhNubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh;h"j_hKh j8ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhj#h j5ubj$)<29><>}<7D>(hhh]<5D>h<)<29><>}<7D>(h<05>Get a PRNG k
<00>reftype<70><65>obj<62><6A> refexplicit<69><74><EFBFBD>refwarn<72><6E>jOjPjQNjR<00> mlx.core.random.truncated_normal<61>uhj,h"<22>G/Users/awnihannun/repos/mlx/docs/src/python/random.rst:45:<autosummary><3E>hKh j<>ubh0<68>(lower, upper[, shape, ...])<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j<>h!hh"NhNubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh;h"jhKh j<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhj#h j<>ubj$)<29><>}<7D>(hhh]<5D>h<)<29><>}<7D>(h<05>5Generate values from a truncated normal distribution.<2E>h]<5D>h0<68>5Generate values from a truncated normal distribution.<2E><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j0h!hh"NhNubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh;h"<22>G/Users/awnihannun/repos/mlx/docs/src/python/random.rst:45:<autosummary><3E>hKh j-ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhj#h j<>ubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhjh jubj)<29><>}<7D>(hhh]<5D>(j$)<29><>}<7D>(hhh]<5D>h<)<29><>}<7D>(h<05>^:py:obj:`uniform <mlx.core.random.uniform>`\ \(\[low\, high\, shape\, dtype\, key\, stream\]\)<29>h]<5D>(j-)<29><>}<7D>(h<05>+:py:obj:`uniform <mlx.core.random.uniform>`<60>h]<5D>hF)<29><>}<7D>(hjWh]<5D>h0<68>uniform<72><6D><EFBFBD><EFBFBD><EFBFBD>}<7D>(h jYh!hh"NhNubah}<7D>(h]<5D>h]<5D>(j<<00>py<70><79>py-obj<62>eh]<5D>h]<5D>h]<5D>uhhEh jUubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>refdoc<6F>jI<00> refdomain<69>jc<00>reftype<70><65>obj<62><6A> refexplicit<69><74><EFBFBD>refwarn<72><6E>jOjPjQNjR<00>mlx.core.random.uniform<72>uhj,h"<22>G/Users/awnihannun/repos/mlx/docs/src/python/random.rst:45:<autosummary><3E>hKh jQubh0<68>(([low, high, shape, dtype, key, stream])<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h jQh!hh"NhNubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh;h"juhKh jNubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhj#h jKubj$)<29><>}<7D>(hhh]<5D>h<)<29><>}<7D>(h<05>.Generate uniformly distributed random numbers.<2E>h]<5D>h0<68>.Generate uniformly distributed random numbers.<2E><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j<>h!hh"NhNubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh;h"h<>hKh j<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhj#h jKubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhjh jubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhjh jubeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>cols<6C>Kuhh<>h h<>ubah}<7D>(h]<5D>h]<5D><>autosummary longtable<6C>ah]<5D>h]<5D>h]<5D>uhh<>h h<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>h}h~uhh<>h h&h!hh"h<>hNubh<62><68>autosummary_toc<6F><63><EFBFBD>)<29><>}<7D>(hhh]<5D>h<00>toctree<65><65><EFBFBD>)<29><>}<7D>(hhh]<5D>h}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><> includefiles<65>]<5D>(<28>-python/_autosummary/mlx.core.random.bernoulli<6C><69>/python/_autosummary/mlx.core.random.categorical<61><6C>*python/_autosummary/mlx.core.random.gumbel<65><6C>'python/_autosummary/mlx.core.random.key<65><79>*python/_autosummary/mlx.core.random.normal<61><6C>+python/_autosummary/mlx.core.random.randint<6E><74>(python/_autosummary/mlx.core.random.seed<65><64>)python/_autosummary/mlx.core.random.split<69><74>4python/_autosummary/mlx.core.random.truncated_normal<61><6C>+python/_autosummary/mlx.core.random.uniform<72>e<EFBFBD>entries<65>]<5D>(Nj<4E><00><>Nj<4E><00><>Nj<4E><00><>Nj<4E><00><>Nj<4E><00><>Nj<4E><00><>Nj<4E><00><>Nj<4E><00><>Nj<4E><00><>Nj<4E><00><>e<EFBFBD>maxdepth<74>J<EFBFBD><4A><EFBFBD><EFBFBD><EFBFBD>glob<6F>N<EFBFBD>caption<6F>N<EFBFBD>
rawentries<EFBFBD>]<5D>uhj<>h j<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>h}h~uhj<>h h&h!hh"h<>hNubeh}<7D>(h]<5D>(h<1D>id1<64>eh]<5D>h]<5D><>random<6F>ah]<5D><>random<6F>ah]<5D>uhh$h hh!hh"h#hKh<>K<01>expect_referenced_by_name<6D>}<7D>j<EFBFBD>h s<>expect_referenced_by_id<69>}<7D>hh subeh}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>source<63>h#uhh<01>current_source<63>N<EFBFBD> current_line<6E>N<EFBFBD>settings<67><73>docutils.frontend<6E><64>Values<65><73><EFBFBD>)<29><>}<7D>(h)N<> generator<6F>N<EFBFBD> datestamp<6D>N<EFBFBD> source_link<6E>N<EFBFBD>
source_url<EFBFBD>N<EFBFBD> toc_backlinks<6B>j#<00>footnote_backlinks<6B>K<01> sectnum_xform<72>K<01>strip_comments<74>N<EFBFBD>strip_elements_with_classes<65>N<EFBFBD> strip_classes<65>N<EFBFBD> report_level<65>K<02>
halt_level<EFBFBD>K<05>exit_status_level<65>K<05>debug<75>N<EFBFBD>warning_stream<61>N<EFBFBD> traceback<63><6B><EFBFBD>input_encoding<6E><67> utf-8-sig<69><67>input_encoding_error_handler<65><72>strict<63><74>output_encoding<6E><67>utf-8<><38>output_encoding_error_handler<65>j<00>error_encoding<6E><67>utf-8<><38>error_encoding_error_handler<65><72>backslashreplace<63><65> language_code<64><65>en<65><6E>record_dependencies<65>N<EFBFBD>config<69>N<EFBFBD> id_prefix<69>h<06>auto_id_prefix<69><78>id<69><64> dump_settings<67>N<EFBFBD>dump_internals<6C>N<EFBFBD>dump_transforms<6D>N<EFBFBD>dump_pseudo_xml<6D>N<EFBFBD>expose_internals<6C>N<EFBFBD>strict_visitor<6F>N<EFBFBD>_disable_config<69>N<EFBFBD>_source<63>h#<23> _destination<6F>N<EFBFBD> _config_files<65>]<5D><>file_insertion_enabled<65><64><EFBFBD> raw_enabled<65>K<01>line_length_limit<69>M'<27>pep_references<65>N<EFBFBD> pep_base_url<72><6C>https://peps.python.org/<2F><>pep_file_url_template<74><65>pep-%04d<34><64>rfc_references<65>N<EFBFBD> rfc_base_url<72><6C>&https://datatracker.ietf.org/doc/html/<2F><> tab_width<74>K<08>trim_footnote_reference_space<63><65><EFBFBD>syntax_highlight<68><74>long<6E><67> smart_quotes<65><73><EFBFBD>smartquotes_locales<65>]<5D><>character_level_inline_markup<75><70><EFBFBD>doctitle_xform<72><6D><EFBFBD> docinfo_xform<72>K<01>sectsubtitle_xform<72><6D><EFBFBD> image_loading<6E><67>link<6E><6B>embed_stylesheet<65><74><EFBFBD>cloak_email_addresses<65><73><EFBFBD>section_self_link<6E><6B><EFBFBD>env<6E>Nub<75>reporter<65>N<EFBFBD>indirect_targets<74>]<5D><>substitution_defs<66>}<7D><>substitution_names<65>}<7D><>refnames<65>}<7D><>refids<64>}<7D>h]<5D>h as<61>nameids<64>}<7D>(j<>hh<>h<EFBFBD>u<EFBFBD> nametypes<65>}<7D>(j<><00>hՈuh}<7D>(hh&j<>h&h<>h<EFBFBD>u<EFBFBD> footnote_refs<66>}<7D><> citation_refs<66>}<7D><> autofootnotes<65>]<5D><>autofootnote_refs<66>]<5D><>symbol_footnotes<65>]<5D><>symbol_footnote_refs<66>]<5D><> footnotes<65>]<5D><> citations<6E>]<5D><>autofootnote_start<72>K<01>symbol_footnote_start<72>K<00>
id_counter<EFBFBD><EFBFBD> collections<6E><73>Counter<65><72><EFBFBD>}<7D>j-Ks<><73>R<EFBFBD><52>parse_messages<65>]<5D>h <09>system_message<67><65><EFBFBD>)<29><>}<7D>(hhh]<5D>h<)<29><>}<7D>(h<05>)Duplicate implicit target name: "random".<2E>h]<5D>h0<68>-Duplicate implicit target name: “random”.<2E><><EFBFBD><EFBFBD><EFBFBD>}<7D>(h j<>h!hh"NhNubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh;h j<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>j<EFBFBD>a<>level<65>K<01>type<70><65>INFO<46><4F>source<63>h#<23>line<6E>Kuhj<>h h&h!hh"h#hKuba<62>transform_messages<65>]<5D>j<EFBFBD>)<29><>}<7D>(hhh]<5D>h<)<29><>}<7D>(hhh]<5D>h0<68>,Hyperlink target "random" is not referenced.<2E><><EFBFBD><EFBFBD><EFBFBD>}<7D>h j<>sbah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D>uhh;h j<>ubah}<7D>(h]<5D>h]<5D>h]<5D>h]<5D>h]<5D><>level<65>K<01>type<70>j<EFBFBD><00>source<63>h#<23>line<6E>Kuhj<>uba<62> transformer<65>N<EFBFBD> include_log<6F>]<5D><>
decoration<EFBFBD>Nh!hub.