{"diffoscope-json-version": 1, "source1": "/srv/reproducible-results/rbuild-debian/r-b-build.ZMIYAHYi/b1/python-inline-snapshot_0.19.3-1_armhf.changes", "source2": "/srv/reproducible-results/rbuild-debian/r-b-build.ZMIYAHYi/b2/python-inline-snapshot_0.19.3-1_armhf.changes", "unified_diff": null, "details": [{"source1": "Files", "source2": "Files", "unified_diff": "@@ -1,3 +1,3 @@\n \n- 5e9e10b7a7338770da3507ee82cf26e4 535644 doc optional python-inline-snapshot-doc_0.19.3-1_all.deb\n+ 895e18f08bb9e7a72f17df8a6fbd25a6 535668 doc optional python-inline-snapshot-doc_0.19.3-1_all.deb\n  3ddbc791df9158261eb361c3e0c89846 36476 python optional python3-inline-snapshot_0.19.3-1_all.deb\n"}, {"source1": "python-inline-snapshot-doc_0.19.3-1_all.deb", "source2": "python-inline-snapshot-doc_0.19.3-1_all.deb", "unified_diff": null, "details": [{"source1": "file list", "source2": "file list", "unified_diff": "@@ -1,3 +1,3 @@\n -rw-r--r--   0        0        0        4 2025-01-16 17:36:51.000000 debian-binary\n -rw-r--r--   0        0        0     3020 2025-01-16 17:36:51.000000 control.tar.xz\n--rw-r--r--   0        0        0   532432 2025-01-16 17:36:51.000000 data.tar.xz\n+-rw-r--r--   0        0        0   532456 2025-01-16 17:36:51.000000 data.tar.xz\n"}, {"source1": "control.tar.xz", "source2": "control.tar.xz", "unified_diff": null, "details": [{"source1": "control.tar", "source2": "control.tar", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "unified_diff": null, "details": [{"source1": "./md5sums", "source2": "./md5sums", "comments": ["Files differ"], "unified_diff": null}]}]}]}, {"source1": "data.tar.xz", "source2": "data.tar.xz", "unified_diff": null, "details": [{"source1": "data.tar", "source2": "data.tar", "unified_diff": null, "details": [{"source1": "./usr/share/doc/python-inline-snapshot-doc/html/extra.html", "source2": "./usr/share/doc/python-inline-snapshot-doc/html/extra.html", "unified_diff": "@@ -1052,15 +1052,15 @@\n <a id=\"__codelineno-2-13\" name=\"__codelineno-2-13\" href=\"#__codelineno-2-13\"></a>        <span class=\"nb\">print</span><span class=\"p\">(</span><span class=\"s2\">&quot;some error&quot;</span><span class=\"p\">,</span> <span class=\"n\">file</span><span class=\"o\">=</span><span class=\"n\">sys</span><span class=\"o\">.</span><span class=\"n\">stderr</span><span class=\"p\">)</span>\n </code></pre></div></p>\n </div>\n </div>\n </div>\n \n             <details class=\"quote\">\n-              <summary>Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/extra.py</code></summary>\n+              <summary>Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/extra.py</code></summary>\n               <div class=\"highlight\"><table class=\"highlighttable\"><tr><td class=\"linenos\"><div class=\"linenodiv\"><pre><span></span><span class=\"normal\"><a href=\"#__codelineno-0-63\"> 63</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-64\"> 64</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-65\"> 65</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-66\"> 66</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-67\"> 67</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-68\"> 68</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-69\"> 69</a></span>\n@@ -1265,15 +1265,15 @@\n </span><a id=\"__codelineno-1-7\" name=\"__codelineno-1-7\" href=\"#__codelineno-1-7\"></a>        <span class=\"mi\">1</span> <span class=\"o\">/</span> <span class=\"mi\">0</span>\n </code></pre></div></p>\n </div>\n </div>\n </div>\n \n             <details class=\"quote\">\n-              <summary>Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/extra.py</code></summary>\n+              <summary>Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/extra.py</code></summary>\n               <div class=\"highlight\"><table class=\"highlighttable\"><tr><td class=\"linenos\"><div class=\"linenodiv\"><pre><span></span><span class=\"normal\"><a href=\"#__codelineno-0-17\">17</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-18\">18</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-19\">19</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-20\">20</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-21\">21</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-22\">22</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-23\">23</a></span>\n@@ -1471,15 +1471,15 @@\n </span><a id=\"__codelineno-1-8\" name=\"__codelineno-1-8\" href=\"#__codelineno-1-8\"></a>        <span class=\"n\">warn</span><span class=\"p\">(</span><span class=\"s2\">&quot;some problem&quot;</span><span class=\"p\">)</span>\n </code></pre></div></p>\n </div>\n </div>\n </div>\n \n             <details class=\"quote\">\n-              <summary>Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/extra.py</code></summary>\n+              <summary>Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/extra.py</code></summary>\n               <div class=\"highlight\"><table class=\"highlighttable\"><tr><td class=\"linenos\"><div class=\"linenodiv\"><pre><span></span><span class=\"normal\"><a href=\"#__codelineno-0-136\">136</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-137\">137</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-138\">138</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-139\">139</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-140\">140</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-141\">141</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-142\">142</a></span>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -82,15 +82,15 @@\n def test_prints():\n     with prints(\n         stdout=IsStr(),\n         stderr=snapshot(\"some error\\n\"),\n     ):\n         print(\"hello world\")\n         print(\"some error\", file=sys.stderr)\n-Source code in .pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/\n+Source code in .pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/\n extra.py\n     @contextlib.contextmanager\n _\b _\b6_\b3 def prints(*, stdout: Snapshot[str] = \"\", stderr: Snapshot[str] = \"\"):\n _\b _\b6_\b4     \"\"\"Uses `contextlib.redirect_stderr/stdout` to capture the output and\n _\b _\b6_\b5     compare it with the snapshots. `dirty_equals.IsStr` can be used to\n _\b _\b6_\b6 ignore\n _\b _\b6_\b7     the output if needed.\n@@ -178,15 +178,15 @@\n from inline_snapshot import snapshot\n from inline_snapshot.extra import raises\n \n \n def test_raises():\n     with raises(snapshot(\"ZeroDivisionError: division by zero\")):\n         1 / 0\n-Source code in .pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/\n+Source code in .pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/\n extra.py\n    @contextlib.contextmanager\n _\b1_\b7 def raises(exception: Snapshot[str]):\n _\b1_\b8     \"\"\"Check that an exception is raised.\n _\b1_\b9\n _\b2_\b0     Parameters:\n _\b2_\b1         exception: snapshot which is compared with `#!python f\"{type}:\n@@ -265,15 +265,15 @@\n from warnings import warn\n \n \n def test_warns():\n     with warns(snapshot([(8, \"UserWarning: some problem\")]),\n include_line=True):\n         warn(\"some problem\")\n-Source code in .pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/\n+Source code in .pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/\n extra.py\n     @contextlib.contextmanager\n     def warns(\n         expected_warnings: Snapshot[List[Warning]],\n _\b1_\b3_\b6     /,\n _\b1_\b3_\b7     include_line: bool = False,\n _\b1_\b3_\b8     include_file: bool = False,\n"}]}, {"source1": "./usr/share/doc/python-inline-snapshot-doc/html/outsource.html", "source2": "./usr/share/doc/python-inline-snapshot-doc/html/outsource.html", "unified_diff": "@@ -1169,15 +1169,15 @@\n               </div>\n             </td>\n           </tr>\n       </tbody>\n     </table>\n \n             <details class=\"quote\">\n-              <summary>Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code></summary>\n+              <summary>Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code></summary>\n               <div class=\"highlight\"><table class=\"highlighttable\"><tr><td class=\"linenos\"><div class=\"linenodiv\"><pre><span></span><span class=\"normal\"><a href=\"#__codelineno-0-137\">137</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-138\">138</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-139\">139</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-140\">140</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-141\">141</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-142\">142</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-143\">143</a></span>\n@@ -1285,15 +1285,15 @@\n \n \n \n \n \n \n               <details class=\"quote\">\n-                <summary>Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code></summary>\n+                <summary>Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code></summary>\n                 <div class=\"highlight\"><table class=\"highlighttable\"><tr><td class=\"linenos\"><div class=\"linenodiv\"><pre><span></span><span class=\"normal\"><a href=\"#__codelineno-0-76\"> 76</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-77\"> 77</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-78\"> 78</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-79\"> 79</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-80\"> 80</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-81\"> 81</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-82\"> 82</a></span>\n@@ -1433,15 +1433,15 @@\n \n     <div class=\"doc doc-contents \">\n \n         <p>Two external objects are equal if they have the same hash and\n suffix.</p>\n \n             <details class=\"quote\">\n-              <summary>Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code></summary>\n+              <summary>Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code></summary>\n               <div class=\"highlight\"><table class=\"highlighttable\"><tr><td class=\"linenos\"><div class=\"linenodiv\"><pre><span></span><span class=\"normal\"><a href=\"#__codelineno-0-116\">116</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-117\">117</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-118\">118</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-119\">119</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-120\">120</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-121\">121</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-122\">122</a></span>\n@@ -1519,15 +1519,15 @@\n                 <em>required</em>\n             </td>\n           </tr>\n       </tbody>\n     </table>\n \n             <details class=\"quote\">\n-              <summary>Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code></summary>\n+              <summary>Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code></summary>\n               <div class=\"highlight\"><table class=\"highlighttable\"><tr><td class=\"linenos\"><div class=\"linenodiv\"><pre><span></span><span class=\"normal\"><a href=\"#__codelineno-0-77\">77</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-78\">78</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-79\">79</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-80\">80</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-81\">81</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-82\">82</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-83\">83</a></span>\n@@ -1583,15 +1583,15 @@\n     <div class=\"doc doc-contents \">\n \n         <p>Returns the representation of the external object.</p>\n <p>The length of the hash can be specified in the\n <a href=\"configuration.html\">config</a>.</p>\n \n             <details class=\"quote\">\n-              <summary>Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code></summary>\n+              <summary>Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code></summary>\n               <div class=\"highlight\"><table class=\"highlighttable\"><tr><td class=\"linenos\"><div class=\"linenodiv\"><pre><span></span><span class=\"normal\"><a href=\"#__codelineno-0-103\">103</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-104\">104</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-105\">105</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-106\">106</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-107\">107</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-108\">108</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-109\">109</a></span>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -115,15 +115,15 @@\n                          encoded with \"utf-8\".\n                          overwrite file suffix. The default is \".bin\"\n suffix Optional[str]     if data is an instance of bytes and \".txt\"   None\n                          for str.\n Returns:\n T\bTy\byp\bpe\be     D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn\n _\be_\bx_\bt_\be_\br_\bn_\ba_\bl The external data.\n-Source code in .pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/\n+Source code in .pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/\n _external.py\n     def outsource(data: Union[str, bytes], *, suffix: Optional[str] = None) -\n     > external:\n _\b1_\b3_\b7     \"\"\"Outsource some data into an external file.\n _\b1_\b3_\b8\n _\b1_\b3_\b9     ``` pycon\n _\b1_\b4_\b0     >>> png_data = b\"some_bytes\"  # should be the replaced with your actual\n@@ -167,15 +167,15 @@\n _\b1_\b7_\b8\n _\b1_\b7_\b9     if not storage.lookup_all(name):\n _\b1_\b8_\b0         path = hash + \"-new\" + suffix\n _\b1_\b8_\b1         storage.save(path, data)\n \n         return external(name)\n i\bin\bnl\bli\bin\bne\be_\b_s\bsn\bna\bap\bps\bsh\bho\bot\bt.\b.e\bex\bxt\bte\ber\brn\bna\bal\bl _\b?\b\u00b6\n-Source code in .pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/\n+Source code in .pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/\n _external.py\n     class external:\n         def __init__(self, name: str):\n             \"\"\"External objects are used as a representation for outsourced\n _\b _\b7_\b6 data.\n _\b _\b7_\b7         You should not create them directly.\n _\b _\b7_\b8\n@@ -236,15 +236,15 @@\n _\b1_\b3_\b3         return True\n _\b1_\b3_\b4\n         def _load_value(self):\n             assert storage is not None\n             return storage.read(self._path)\n _\b__\b_e\beq\bq_\b__\b_(\b(o\bot\bth\bhe\ber\br)\b) _\b?\b\u00b6\n Two external objects are equal if they have the same hash and suffix.\n-Source code in .pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/\n+Source code in .pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/\n _external.py\n _\b1_\b1_\b6 def __eq__(self, other):\n _\b1_\b1_\b7     \"\"\"Two external objects are equal if they have the same hash and\n _\b1_\b1_\b8     suffix.\"\"\"\n _\b1_\b1_\b9     if not isinstance(other, external):\n _\b1_\b2_\b0         return NotImplemented\n _\b1_\b2_\b1\n@@ -265,15 +265,15 @@\n containing the Pytest configuration file, if any. To store data in a different\n location, set the storage-dir option in pyproject.toml. Data which is\n outsourced but not referenced in the source code jet has a '-new' suffix in the\n filename.\n Parameters:\n N\bNa\bam\bme\be T\bTy\byp\bpe\be D\bDe\bes\bsc\bcr\bri\bip\bpt\bti\bio\bon\bn                             D\bDe\bef\bfa\bau\bul\blt\bt\n name str  the name of the external stored object. r\bre\beq\bqu\bui\bir\bre\bed\bd\n-Source code in .pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/\n+Source code in .pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/\n _external.py\n    def __init__(self, name: str):\n        \"\"\"External objects are used as a representation for outsourced data.\n _\b7_\b7     You should not create them directly.\n _\b7_\b8\n _\b7_\b9     The external data is by default stored inside\n _\b8_\b0 `<pytest_config_dir>/.inline-snapshot/external`,\n@@ -296,15 +296,15 @@\n _\b9_\b7         raise ValueError(\n                \"path has to be of the form <hash>.<suffix> or\n    <partial_hash>*.<suffix>\"\n            )\n _\b__\b_r\bre\bep\bpr\br_\b__\b_(\b()\b) _\b?\b\u00b6\n Returns the representation of the external object.\n The length of the hash can be specified in the _\bc_\bo_\bn_\bf_\bi_\bg.\n-Source code in .pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/\n+Source code in .pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/\n _external.py\n _\b1_\b0_\b3 def __repr__(self):\n _\b1_\b0_\b4     \"\"\"Returns the representation of the external object.\n _\b1_\b0_\b5\n _\b1_\b0_\b6     The length of the hash can be specified in the\n _\b1_\b0_\b7     [config](configuration.md).\n _\b1_\b0_\b8     \"\"\"\n"}]}, {"source1": "./usr/share/doc/python-inline-snapshot-doc/html/pytest.html", "source2": "./usr/share/doc/python-inline-snapshot-doc/html/pytest.html", "unified_diff": "@@ -969,16 +969,16 @@\n <a id=\"__codelineno-1-4\" name=\"__codelineno-1-4\" href=\"#__codelineno-1-4\"></a><span class=\"k\">def</span> <span class=\"nf\">test_something</span><span class=\"p\">():</span>\n <a id=\"__codelineno-1-5\" name=\"__codelineno-1-5\" href=\"#__codelineno-1-5\"></a>    <span class=\"k\">assert</span> <span class=\"mi\">1</span> <span class=\"o\">==</span> <span class=\"n\">snapshot</span><span class=\"p\">()</span>\n <a id=\"__codelineno-1-6\" name=\"__codelineno-1-6\" href=\"#__codelineno-1-6\"></a>    <span class=\"k\">assert</span> <span class=\"mi\">2</span> <span class=\"o\">&lt;=</span> <span class=\"n\">snapshot</span><span class=\"p\">(</span><span class=\"mi\">5</span><span class=\"p\">)</span>\n </code></pre></div>\n <div class=\"highlight\"><pre><span></span><code><a id=\"__codelineno-0-1\" name=\"__codelineno-0-1\" href=\"#__codelineno-0-1\"></a><span class=\" -Color -Color-Bold -Color-Bold-Blue\">&gt; pytest test_something.py --inline-snapshot=create,report</span>\n <a id=\"__codelineno-0-2\" name=\"__codelineno-0-2\" href=\"#__codelineno-0-2\"></a><span class=\" -Color -Color-Bold\">============================= test session starts ==============================</span>\n <a id=\"__codelineno-0-3\" name=\"__codelineno-0-3\" href=\"#__codelineno-0-3\"></a>platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\n-<a id=\"__codelineno-0-4\" name=\"__codelineno-0-4\" href=\"#__codelineno-0-4\"></a>rootdir: /tmp/tmp.GZGVqEVxWM\n-<a id=\"__codelineno-0-5\" name=\"__codelineno-0-5\" href=\"#__codelineno-0-5\"></a>plugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1\n+<a id=\"__codelineno-0-4\" name=\"__codelineno-0-4\" href=\"#__codelineno-0-4\"></a>rootdir: /tmp/tmp.lpRrqOmrhn\n+<a id=\"__codelineno-0-5\" name=\"__codelineno-0-5\" href=\"#__codelineno-0-5\"></a>plugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9\n <a id=\"__codelineno-0-6\" name=\"__codelineno-0-6\" href=\"#__codelineno-0-6\"></a>collected 1 item\n <a id=\"__codelineno-0-7\" name=\"__codelineno-0-7\" href=\"#__codelineno-0-7\"></a>\n <a id=\"__codelineno-0-8\" name=\"__codelineno-0-8\" href=\"#__codelineno-0-8\"></a>test_something.py <span class=\" -Color -Color-Green\">.                                                      [100%]</span>\n <a id=\"__codelineno-0-9\" name=\"__codelineno-0-9\" href=\"#__codelineno-0-9\"></a>=============================== inline snapshot ================================\n <a id=\"__codelineno-0-10\" name=\"__codelineno-0-10\" href=\"#__codelineno-0-10\"></a>\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Create snapshots \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n <a id=\"__codelineno-0-11\" name=\"__codelineno-0-11\" href=\"#__codelineno-0-11\"></a>+----------------------------- test_something.py ------------------------------+\n <a id=\"__codelineno-0-12\" name=\"__codelineno-0-12\" href=\"#__codelineno-0-12\"></a>| @@ -2,5 +2,5 @@                                                              |\n@@ -1003,51 +1003,51 @@\n <a id=\"__codelineno-0-31\" name=\"__codelineno-0-31\" href=\"#__codelineno-0-31\"></a>| +    assert 2 &lt;= snapshot(2)                                                 |\n <a id=\"__codelineno-0-32\" name=\"__codelineno-0-32\" href=\"#__codelineno-0-32\"></a>+------------------------------------------------------------------------------+\n <a id=\"__codelineno-0-33\" name=\"__codelineno-0-33\" href=\"#__codelineno-0-33\"></a>These changes are not applied.\n <a id=\"__codelineno-0-34\" name=\"__codelineno-0-34\" href=\"#__codelineno-0-34\"></a>Use --inline-snapshot=trim to apply them, or use the interactive mode with \n <a id=\"__codelineno-0-35\" name=\"__codelineno-0-35\" href=\"#__codelineno-0-35\"></a>--inline-snapshot=review\n <a id=\"__codelineno-0-36\" name=\"__codelineno-0-36\" href=\"#__codelineno-0-36\"></a>\n <a id=\"__codelineno-0-37\" name=\"__codelineno-0-37\" href=\"#__codelineno-0-37\"></a>\n-<a id=\"__codelineno-0-38\" name=\"__codelineno-0-38\" href=\"#__codelineno-0-38\"></a><span class=\" -Color -Color-Green\">============================== </span><span class=\" -Color -Color-Bold -Color-Bold-Green\">1 passed</span><span class=\" -Color -Color-Green\"> in 0.51s ===============================</span>\n+<a id=\"__codelineno-0-38\" name=\"__codelineno-0-38\" href=\"#__codelineno-0-38\"></a><span class=\" -Color -Color-Green\">============================== </span><span class=\" -Color -Color-Bold -Color-Bold-Green\">1 passed</span><span class=\" -Color -Color-Green\"> in 0.82s ===============================</span>\n </code></pre></div>\n <h2 id=\"-inline-snapshotshort-report\">--inline-snapshot=short-report<a class=\"headerlink\" href=\"#-inline-snapshotshort-report\" title=\"Permanent link\">&para;</a></h2>\n <p>give a short report over which changes can be made to the snapshots</p>\n <div class=\"highlight\"><pre><span></span><code><a id=\"__codelineno-0-1\" name=\"__codelineno-0-1\" href=\"#__codelineno-0-1\"></a><span class=\" -Color -Color-Bold -Color-Bold-Blue\">&gt; pytest test_something.py --inline-snapshot=short-report</span>\n <a id=\"__codelineno-0-2\" name=\"__codelineno-0-2\" href=\"#__codelineno-0-2\"></a><span class=\" -Color -Color-Bold\">============================= test session starts ==============================</span>\n <a id=\"__codelineno-0-3\" name=\"__codelineno-0-3\" href=\"#__codelineno-0-3\"></a>platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\n-<a id=\"__codelineno-0-4\" name=\"__codelineno-0-4\" href=\"#__codelineno-0-4\"></a>rootdir: /tmp/tmp.GmIm9FDPUH\n-<a id=\"__codelineno-0-5\" name=\"__codelineno-0-5\" href=\"#__codelineno-0-5\"></a>plugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1\n+<a id=\"__codelineno-0-4\" name=\"__codelineno-0-4\" href=\"#__codelineno-0-4\"></a>rootdir: /tmp/tmp.STPxwcG61L\n+<a id=\"__codelineno-0-5\" name=\"__codelineno-0-5\" href=\"#__codelineno-0-5\"></a>plugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9\n <a id=\"__codelineno-0-6\" name=\"__codelineno-0-6\" href=\"#__codelineno-0-6\"></a>collected 1 item\n <a id=\"__codelineno-0-7\" name=\"__codelineno-0-7\" href=\"#__codelineno-0-7\"></a>\n <a id=\"__codelineno-0-8\" name=\"__codelineno-0-8\" href=\"#__codelineno-0-8\"></a>test_something.py <span class=\" -Color -Color-Green\">.</span><span class=\" -Color -Color-Red\">E                                                     [100%]</span>\n <a id=\"__codelineno-0-9\" name=\"__codelineno-0-9\" href=\"#__codelineno-0-9\"></a>\n <a id=\"__codelineno-0-10\" name=\"__codelineno-0-10\" href=\"#__codelineno-0-10\"></a>==================================== ERRORS ====================================\n <a id=\"__codelineno-0-11\" name=\"__codelineno-0-11\" href=\"#__codelineno-0-11\"></a><span class=\" -Color -Color-Bold -Color-Bold-Red\">_____________________ ERROR at teardown of test_something ______________________</span>\n <a id=\"__codelineno-0-12\" name=\"__codelineno-0-12\" href=\"#__codelineno-0-12\"></a>your snapshot is missing one value.\n <a id=\"__codelineno-0-13\" name=\"__codelineno-0-13\" href=\"#__codelineno-0-13\"></a>=============================== inline snapshot ================================\n <a id=\"__codelineno-0-14\" name=\"__codelineno-0-14\" href=\"#__codelineno-0-14\"></a>Info: one snapshot can be trimmed (--inline-snapshot=trim)\n <a id=\"__codelineno-0-15\" name=\"__codelineno-0-15\" href=\"#__codelineno-0-15\"></a>Error: one snapshot is missing a value (--inline-snapshot=create)\n <a id=\"__codelineno-0-16\" name=\"__codelineno-0-16\" href=\"#__codelineno-0-16\"></a>\n <a id=\"__codelineno-0-17\" name=\"__codelineno-0-17\" href=\"#__codelineno-0-17\"></a>You can also use --inline-snapshot=review to approve the changes interactively\n <a id=\"__codelineno-0-18\" name=\"__codelineno-0-18\" href=\"#__codelineno-0-18\"></a><span class=\" -Color -Color-Bold -Color-Bold-Cyan\">=========================== short test summary info ============================</span>\n <a id=\"__codelineno-0-19\" name=\"__codelineno-0-19\" href=\"#__codelineno-0-19\"></a><span class=\" -Color -Color-Red\">ERROR</span> test_something.py::<span class=\" -Color -Color-Bold\">test_something</span> - Failed: your snapshot is missing one value.\n-<a id=\"__codelineno-0-20\" name=\"__codelineno-0-20\" href=\"#__codelineno-0-20\"></a><span class=\" -Color -Color-Red\">========================== </span><span class=\" -Color -Color-Green\">1 passed</span>, <span class=\" -Color -Color-Bold -Color-Bold-Red\">1 error</span><span class=\" -Color -Color-Red\"> in 0.46s ==========================</span>\n+<a id=\"__codelineno-0-20\" name=\"__codelineno-0-20\" href=\"#__codelineno-0-20\"></a><span class=\" -Color -Color-Red\">========================== </span><span class=\" -Color -Color-Green\">1 passed</span>, <span class=\" -Color -Color-Bold -Color-Bold-Red\">1 error</span><span class=\" -Color -Color-Red\"> in 0.80s ==========================</span>\n </code></pre></div>\n <div class=\"admonition info\">\n <p class=\"admonition-title\">Info</p>\n <p>short-report exists mainly to show that snapshots have changed with enabled pytest assert-rewriting.\n This option will be replaced with <em>report</em> when this restriction is lifted.</p>\n </div>\n <h2 id=\"-inline-snapshotreport\">--inline-snapshot=report<a class=\"headerlink\" href=\"#-inline-snapshotreport\" title=\"Permanent link\">&para;</a></h2>\n <p>Shows a diff report over which changes can be made to the snapshots</p>\n <div class=\"highlight\"><pre><span></span><code><a id=\"__codelineno-0-1\" name=\"__codelineno-0-1\" href=\"#__codelineno-0-1\"></a><span class=\" -Color -Color-Bold -Color-Bold-Blue\">&gt; pytest test_something.py --inline-snapshot=report</span>\n <a id=\"__codelineno-0-2\" name=\"__codelineno-0-2\" href=\"#__codelineno-0-2\"></a><span class=\" -Color -Color-Bold\">============================= test session starts ==============================</span>\n <a id=\"__codelineno-0-3\" name=\"__codelineno-0-3\" href=\"#__codelineno-0-3\"></a>platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\n-<a id=\"__codelineno-0-4\" name=\"__codelineno-0-4\" href=\"#__codelineno-0-4\"></a>rootdir: /tmp/tmp.siYONHxJ2N\n-<a id=\"__codelineno-0-5\" name=\"__codelineno-0-5\" href=\"#__codelineno-0-5\"></a>plugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1\n+<a id=\"__codelineno-0-4\" name=\"__codelineno-0-4\" href=\"#__codelineno-0-4\"></a>rootdir: /tmp/tmp.m6vy7VYyQc\n+<a id=\"__codelineno-0-5\" name=\"__codelineno-0-5\" href=\"#__codelineno-0-5\"></a>plugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9\n <a id=\"__codelineno-0-6\" name=\"__codelineno-0-6\" href=\"#__codelineno-0-6\"></a>collected 1 item\n <a id=\"__codelineno-0-7\" name=\"__codelineno-0-7\" href=\"#__codelineno-0-7\"></a>\n <a id=\"__codelineno-0-8\" name=\"__codelineno-0-8\" href=\"#__codelineno-0-8\"></a>test_something.py <span class=\" -Color -Color-Green\">.</span><span class=\" -Color -Color-Red\">E                                                     [100%]</span>\n <a id=\"__codelineno-0-9\" name=\"__codelineno-0-9\" href=\"#__codelineno-0-9\"></a>\n <a id=\"__codelineno-0-10\" name=\"__codelineno-0-10\" href=\"#__codelineno-0-10\"></a>==================================== ERRORS ====================================\n <a id=\"__codelineno-0-11\" name=\"__codelineno-0-11\" href=\"#__codelineno-0-11\"></a><span class=\" -Color -Color-Bold -Color-Bold-Red\">_____________________ ERROR at teardown of test_something ______________________</span>\n <a id=\"__codelineno-0-12\" name=\"__codelineno-0-12\" href=\"#__codelineno-0-12\"></a>your snapshot is missing one value.\n@@ -1079,23 +1079,23 @@\n <a id=\"__codelineno-0-38\" name=\"__codelineno-0-38\" href=\"#__codelineno-0-38\"></a>+------------------------------------------------------------------------------+\n <a id=\"__codelineno-0-39\" name=\"__codelineno-0-39\" href=\"#__codelineno-0-39\"></a>These changes are not applied.\n <a id=\"__codelineno-0-40\" name=\"__codelineno-0-40\" href=\"#__codelineno-0-40\"></a>Use --inline-snapshot=trim to apply them, or use the interactive mode with \n <a id=\"__codelineno-0-41\" name=\"__codelineno-0-41\" href=\"#__codelineno-0-41\"></a>--inline-snapshot=review\n <a id=\"__codelineno-0-42\" name=\"__codelineno-0-42\" href=\"#__codelineno-0-42\"></a>\n <a id=\"__codelineno-0-43\" name=\"__codelineno-0-43\" href=\"#__codelineno-0-43\"></a><span class=\" -Color -Color-Bold -Color-Bold-Cyan\">=========================== short test summary info ============================</span>\n <a id=\"__codelineno-0-44\" name=\"__codelineno-0-44\" href=\"#__codelineno-0-44\"></a><span class=\" -Color -Color-Red\">ERROR</span> test_something.py::<span class=\" -Color -Color-Bold\">test_something</span> - Failed: your snapshot is missing one value.\n-<a id=\"__codelineno-0-45\" name=\"__codelineno-0-45\" href=\"#__codelineno-0-45\"></a><span class=\" -Color -Color-Red\">========================== </span><span class=\" -Color -Color-Green\">1 passed</span>, <span class=\" -Color -Color-Bold -Color-Bold-Red\">1 error</span><span class=\" -Color -Color-Red\"> in 0.46s ==========================</span>\n+<a id=\"__codelineno-0-45\" name=\"__codelineno-0-45\" href=\"#__codelineno-0-45\"></a><span class=\" -Color -Color-Red\">========================== </span><span class=\" -Color -Color-Green\">1 passed</span>, <span class=\" -Color -Color-Bold -Color-Bold-Red\">1 error</span><span class=\" -Color -Color-Red\"> in 0.78s ==========================</span>\n </code></pre></div>\n <h2 id=\"-inline-snapshotreview\">--inline-snapshot=review<a class=\"headerlink\" href=\"#-inline-snapshotreview\" title=\"Permanent link\">&para;</a></h2>\n <p>Shows a diff report for each category and ask if you want to apply the changes</p>\n <div class=\"highlight\"><pre><span></span><code><a id=\"__codelineno-0-1\" name=\"__codelineno-0-1\" href=\"#__codelineno-0-1\"></a><span class=\" -Color -Color-Bold -Color-Bold-Blue\">&gt; pytest test_something.py --inline-snapshot=review</span>\n <a id=\"__codelineno-0-2\" name=\"__codelineno-0-2\" href=\"#__codelineno-0-2\"></a><span class=\" -Color -Color-Bold\">============================= test session starts ==============================</span>\n <a id=\"__codelineno-0-3\" name=\"__codelineno-0-3\" href=\"#__codelineno-0-3\"></a>platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\n-<a id=\"__codelineno-0-4\" name=\"__codelineno-0-4\" href=\"#__codelineno-0-4\"></a>rootdir: /tmp/tmp.pdpnCdJwR4\n-<a id=\"__codelineno-0-5\" name=\"__codelineno-0-5\" href=\"#__codelineno-0-5\"></a>plugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1\n+<a id=\"__codelineno-0-4\" name=\"__codelineno-0-4\" href=\"#__codelineno-0-4\"></a>rootdir: /tmp/tmp.LU2pcziyBH\n+<a id=\"__codelineno-0-5\" name=\"__codelineno-0-5\" href=\"#__codelineno-0-5\"></a>plugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9\n <a id=\"__codelineno-0-6\" name=\"__codelineno-0-6\" href=\"#__codelineno-0-6\"></a>collected 1 item\n <a id=\"__codelineno-0-7\" name=\"__codelineno-0-7\" href=\"#__codelineno-0-7\"></a>\n <a id=\"__codelineno-0-8\" name=\"__codelineno-0-8\" href=\"#__codelineno-0-8\"></a>test_something.py <span class=\" -Color -Color-Green\">.                                                      [100%]</span>\n <a id=\"__codelineno-0-9\" name=\"__codelineno-0-9\" href=\"#__codelineno-0-9\"></a>=============================== inline snapshot ================================\n <a id=\"__codelineno-0-10\" name=\"__codelineno-0-10\" href=\"#__codelineno-0-10\"></a>\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Create snapshots \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n <a id=\"__codelineno-0-11\" name=\"__codelineno-0-11\" href=\"#__codelineno-0-11\"></a>+----------------------------- test_something.py ------------------------------+\n <a id=\"__codelineno-0-12\" name=\"__codelineno-0-12\" href=\"#__codelineno-0-12\"></a>| @@ -2,5 +2,5 @@                                                              |\n@@ -1116,15 +1116,15 @@\n <a id=\"__codelineno-0-27\" name=\"__codelineno-0-27\" href=\"#__codelineno-0-27\"></a>|  def test_something():                                                       |\n <a id=\"__codelineno-0-28\" name=\"__codelineno-0-28\" href=\"#__codelineno-0-28\"></a>|      assert 1 == snapshot(1)                                                 |\n <a id=\"__codelineno-0-29\" name=\"__codelineno-0-29\" href=\"#__codelineno-0-29\"></a>| -    assert 2 &lt;= snapshot(5)                                                 |\n <a id=\"__codelineno-0-30\" name=\"__codelineno-0-30\" href=\"#__codelineno-0-30\"></a>| +    assert 2 &lt;= snapshot(2)                                                 |\n <a id=\"__codelineno-0-31\" name=\"__codelineno-0-31\" href=\"#__codelineno-0-31\"></a>+------------------------------------------------------------------------------+\n <a id=\"__codelineno-0-32\" name=\"__codelineno-0-32\" href=\"#__codelineno-0-32\"></a>do you want to trim these snapshots? [y/n] (n): \n <a id=\"__codelineno-0-33\" name=\"__codelineno-0-33\" href=\"#__codelineno-0-33\"></a>\n-<a id=\"__codelineno-0-34\" name=\"__codelineno-0-34\" href=\"#__codelineno-0-34\"></a><span class=\" -Color -Color-Green\">============================== </span><span class=\" -Color -Color-Bold -Color-Bold-Green\">1 passed</span><span class=\" -Color -Color-Green\"> in 0.49s ===============================</span>\n+<a id=\"__codelineno-0-34\" name=\"__codelineno-0-34\" href=\"#__codelineno-0-34\"></a><span class=\" -Color -Color-Green\">============================== </span><span class=\" -Color -Color-Bold -Color-Bold-Green\">1 passed</span><span class=\" -Color -Color-Green\"> in 0.82s ===============================</span>\n </code></pre></div>\n <h2 id=\"-inline-snapshotdisable\">--inline-snapshot=disable<a class=\"headerlink\" href=\"#-inline-snapshotdisable\" title=\"Permanent link\">&para;</a></h2>\n <p>Disables all the snapshot logic. <code>snapshot(x)</code> will just return <code>x</code>.\n This can be used if you think exclude that snapshot logic causes a problem in your tests, or if you want to speedup your CI.</p>\n <div class=\"admonition info\">\n <p class=\"admonition-title\">deprecation</p>\n <p>This option was previously called <code>--inline-snapshot-disable</code></p>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -66,17 +66,17 @@\n def test_something():\n     assert 1 == snapshot()\n     assert 2 <= snapshot(5)\n > pytest test_something.py --inline-snapshot=create,report\n ============================= test session starts\n ==============================\n platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\n-rootdir: /tmp/tmp.GZGVqEVxWM\n-plugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-\n-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1\n+rootdir: /tmp/tmp.lpRrqOmrhn\n+plugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3,\n+hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9\n collected 1 item\n \n test_something.py .                                                      [100%]\n =============================== inline snapshot\n ================================\n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Create snapshots\n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n@@ -123,25 +123,25 @@\n +------------------------------------------------------------------------------\n +\n These changes are not applied.\n Use --inline-snapshot=trim to apply them, or use the interactive mode with\n --inline-snapshot=review\n \n \n-============================== 1 passed in 0.51s\n+============================== 1 passed in 0.82s\n ===============================\n *\b**\b**\b**\b**\b* -\b--\b-i\bin\bnl\bli\bin\bne\be-\b-s\bsn\bna\bap\bps\bsh\bho\bot\bt=\b=s\bsh\bho\bor\brt\bt-\b-r\bre\bep\bpo\bor\brt\bt_\b?\b\u00b6 *\b**\b**\b**\b**\b*\n give a short report over which changes can be made to the snapshots\n > pytest test_something.py --inline-snapshot=short-report\n ============================= test session starts\n ==============================\n platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\n-rootdir: /tmp/tmp.GmIm9FDPUH\n-plugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-\n-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1\n+rootdir: /tmp/tmp.STPxwcG61L\n+plugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3,\n+hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9\n collected 1 item\n \n test_something.py .E                                                     [100%]\n \n ==================================== ERRORS\n ====================================\n _____________________ ERROR at teardown of test_something\n@@ -153,29 +153,29 @@\n Error: one snapshot is missing a value (--inline-snapshot=create)\n \n You can also use --inline-snapshot=review to approve the changes interactively\n =========================== short test summary info\n ============================\n ERROR test_something.py::test_something - Failed: your snapshot is missing one\n value.\n-========================== 1 passed, 1 error in 0.46s\n+========================== 1 passed, 1 error in 0.80s\n ==========================\n Info\n short-report exists mainly to show that snapshots have changed with enabled\n pytest assert-rewriting. This option will be replaced with r\bre\bep\bpo\bor\brt\bt when this\n restriction is lifted.\n *\b**\b**\b**\b**\b* -\b--\b-i\bin\bnl\bli\bin\bne\be-\b-s\bsn\bna\bap\bps\bsh\bho\bot\bt=\b=r\bre\bep\bpo\bor\brt\bt_\b?\b\u00b6 *\b**\b**\b**\b**\b*\n Shows a diff report over which changes can be made to the snapshots\n > pytest test_something.py --inline-snapshot=report\n ============================= test session starts\n ==============================\n platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\n-rootdir: /tmp/tmp.siYONHxJ2N\n-plugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-\n-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1\n+rootdir: /tmp/tmp.m6vy7VYyQc\n+plugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3,\n+hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9\n collected 1 item\n \n test_something.py .E                                                     [100%]\n \n ==================================== ERRORS\n ====================================\n _____________________ ERROR at teardown of test_something\n@@ -233,25 +233,25 @@\n Use --inline-snapshot=trim to apply them, or use the interactive mode with\n --inline-snapshot=review\n \n =========================== short test summary info\n ============================\n ERROR test_something.py::test_something - Failed: your snapshot is missing one\n value.\n-========================== 1 passed, 1 error in 0.46s\n+========================== 1 passed, 1 error in 0.78s\n ==========================\n *\b**\b**\b**\b**\b* -\b--\b-i\bin\bnl\bli\bin\bne\be-\b-s\bsn\bna\bap\bps\bsh\bho\bot\bt=\b=r\bre\bev\bvi\bie\bew\bw_\b?\b\u00b6 *\b**\b**\b**\b**\b*\n Shows a diff report for each category and ask if you want to apply the changes\n > pytest test_something.py --inline-snapshot=review\n ============================= test session starts\n ==============================\n platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\n-rootdir: /tmp/tmp.pdpnCdJwR4\n-plugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-\n-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1\n+rootdir: /tmp/tmp.LU2pcziyBH\n+plugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3,\n+hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9\n collected 1 item\n \n test_something.py .                                                      [100%]\n =============================== inline snapshot\n ================================\n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 Create snapshots\n \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n@@ -294,15 +294,15 @@\n |\n | +    assert 2 <= snapshot(2)\n |\n +------------------------------------------------------------------------------\n +\n do you want to trim these snapshots? [y/n] (n):\n \n-============================== 1 passed in 0.49s\n+============================== 1 passed in 0.82s\n ===============================\n *\b**\b**\b**\b**\b* -\b--\b-i\bin\bnl\bli\bin\bne\be-\b-s\bsn\bna\bap\bps\bsh\bho\bot\bt=\b=d\bdi\bis\bsa\bab\bbl\ble\be_\b?\b\u00b6 *\b**\b**\b**\b**\b*\n Disables all the snapshot logic. snapshot(x) will just return x. This can be\n used if you think exclude that snapshot logic causes a problem in your tests,\n or if you want to speedup your CI.\n deprecation\n This option was previously called --inline-snapshot-disable\n"}]}, {"source1": "./usr/share/doc/python-inline-snapshot-doc/html/search/search_index.json", "source2": "./usr/share/doc/python-inline-snapshot-doc/html/search/search_index.json", "unified_diff": null, "details": [{"source1": "Pretty-printed", "source2": "Pretty-printed", "comments": ["Similarity: 0.9970878136200718%", "Differences: {\"'docs'\": \"{147: {'text': '<p>Uses <code>contextlib.redirect_stderr/stdout</code> to capture the \"", "           'output and compare it with the snapshots. <code>dirty_equals.IsStr</code> can be used '", "           'to ignore the output if needed.</p> <p>Parameters:</p> Name Type Description Default '", "           '<code>stdout</code> <code>Snapshot[str]</code> <p>snapshot which is compared to the '", "           \"recorded output</p> <code>\\\\'\\\\'</code> <code>stderr</code> <code>Snapshot[str]</code> \"", "           \"<p [\u2026]"], "unified_diff": "@@ -742,25 +742,25 @@\n         {\n             \"location\": \"extra.html#inline_snapshot.extra\",\n             \"text\": \"<p>The following functions are build on top of inline-snapshot and could also be implemented in an extra library.</p> <p>They are part of inline-snapshot because they are general useful and do not depend on other libraries.</p>\",\n             \"title\": \"<code>inline_snapshot.extra</code>\"\n         },\n         {\n             \"location\": \"extra.html#inline_snapshot.extra.prints\",\n-            \"text\": \"<p>Uses <code>contextlib.redirect_stderr/stdout</code> to capture the output and compare it with the snapshots. <code>dirty_equals.IsStr</code> can be used to ignore the output if needed.</p> <p>Parameters:</p> Name Type Description Default <code>stdout</code> <code>Snapshot[str]</code> <p>snapshot which is compared to the recorded output</p> <code>''</code> <code>stderr</code> <code>Snapshot[str]</code> <p>snapshot which is compared to the recorded error output</p> <code>''</code> original--inline-snapshot=createignore stdout <p> <pre><code>from inline_snapshot import snapshot\\nfrom inline_snapshot.extra import prints\\nimport sys\\n\\n\\ndef test_prints():\\n    with prints(stdout=snapshot(), stderr=snapshot()):\\n        print(\\\"hello world\\\")\\n        print(\\\"some error\\\", file=sys.stderr)\\n</code></pre></p> <p> <pre><code>from inline_snapshot import snapshot\\nfrom inline_snapshot.extra import prints\\nimport sys\\n\\n\\ndef test_prints():\\n    with prints(\\n        stdout=snapshot(\\\"hello world\\\\n\\\"), stderr=snapshot(\\\"some error\\\\n\\\")\\n    ):\\n        print(\\\"hello world\\\")\\n        print(\\\"some error\\\", file=sys.stderr)\\n</code></pre></p> <p> <pre><code>from inline_snapshot import snapshot\\nfrom inline_snapshot.extra import prints\\nfrom dirty_equals import IsStr\\nimport sys\\n\\n\\ndef test_prints():\\n    with prints(\\n        stdout=IsStr(),\\n        stderr=snapshot(\\\"some error\\\\n\\\"),\\n    ):\\n        print(\\\"hello world\\\")\\n        print(\\\"some error\\\", file=sys.stderr)\\n</code></pre></p> Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/extra.py</code> <pre><code>@contextlib.contextmanager\\ndef prints(*, stdout: Snapshot[str] = \\\"\\\", stderr: Snapshot[str] = \\\"\\\"):\\n    \\\"\\\"\\\"Uses `contextlib.redirect_stderr/stdout` to capture the output and\\n    compare it with the snapshots. `dirty_equals.IsStr` can be used to ignore\\n    the output if needed.\\n\\n    Parameters:\\n        stdout: snapshot which is compared to the recorded output\\n        stderr: snapshot which is compared to the recorded error output\\n\\n    === \\\"original\\\"\\n\\n        &lt;!-- inline-snapshot: first_block outcome-passed=1 outcome-errors=1 --&gt;\\n        ``` python\\n        from inline_snapshot import snapshot\\n        from inline_snapshot.extra import prints\\n        import sys\\n\\n\\n        def test_prints():\\n            with prints(stdout=snapshot(), stderr=snapshot()):\\n                print(\\\"hello world\\\")\\n                print(\\\"some error\\\", file=sys.stderr)\\n        ```\\n\\n    === \\\"--inline-snapshot=create\\\"\\n\\n        &lt;!-- inline-snapshot: create outcome-passed=1 --&gt;\\n        ``` python hl_lines=\\\"7 8 9\\\"\\n        from inline_snapshot import snapshot\\n        from inline_snapshot.extra import prints\\n        import sys\\n\\n\\n        def test_prints():\\n            with prints(\\n                stdout=snapshot(\\\"hello world\\\\\\\\n\\\"), stderr=snapshot(\\\"some error\\\\\\\\n\\\")\\n            ):\\n                print(\\\"hello world\\\")\\n                print(\\\"some error\\\", file=sys.stderr)\\n        ```\\n\\n    === \\\"ignore stdout\\\"\\n\\n        &lt;!-- inline-snapshot: outcome-passed=1 --&gt;\\n        ``` python hl_lines=\\\"3 9 10\\\"\\n        from inline_snapshot import snapshot\\n        from inline_snapshot.extra import prints\\n        from dirty_equals import IsStr\\n        import sys\\n\\n\\n        def test_prints():\\n            with prints(\\n                stdout=IsStr(),\\n                stderr=snapshot(\\\"some error\\\\\\\\n\\\"),\\n            ):\\n                print(\\\"hello world\\\")\\n                print(\\\"some error\\\", file=sys.stderr)\\n        ```\\n    \\\"\\\"\\\"\\n\\n    with redirect_stdout(io.StringIO()) as stdout_io:\\n        with redirect_stderr(io.StringIO()) as stderr_io:\\n            yield\\n\\n    assert stderr_io.getvalue() == stderr\\n    assert stdout_io.getvalue() == stdout\\n</code></pre>\",\n+            \"text\": \"<p>Uses <code>contextlib.redirect_stderr/stdout</code> to capture the output and compare it with the snapshots. <code>dirty_equals.IsStr</code> can be used to ignore the output if needed.</p> <p>Parameters:</p> Name Type Description Default <code>stdout</code> <code>Snapshot[str]</code> <p>snapshot which is compared to the recorded output</p> <code>''</code> <code>stderr</code> <code>Snapshot[str]</code> <p>snapshot which is compared to the recorded error output</p> <code>''</code> original--inline-snapshot=createignore stdout <p> <pre><code>from inline_snapshot import snapshot\\nfrom inline_snapshot.extra import prints\\nimport sys\\n\\n\\ndef test_prints():\\n    with prints(stdout=snapshot(), stderr=snapshot()):\\n        print(\\\"hello world\\\")\\n        print(\\\"some error\\\", file=sys.stderr)\\n</code></pre></p> <p> <pre><code>from inline_snapshot import snapshot\\nfrom inline_snapshot.extra import prints\\nimport sys\\n\\n\\ndef test_prints():\\n    with prints(\\n        stdout=snapshot(\\\"hello world\\\\n\\\"), stderr=snapshot(\\\"some error\\\\n\\\")\\n    ):\\n        print(\\\"hello world\\\")\\n        print(\\\"some error\\\", file=sys.stderr)\\n</code></pre></p> <p> <pre><code>from inline_snapshot import snapshot\\nfrom inline_snapshot.extra import prints\\nfrom dirty_equals import IsStr\\nimport sys\\n\\n\\ndef test_prints():\\n    with prints(\\n        stdout=IsStr(),\\n        stderr=snapshot(\\\"some error\\\\n\\\"),\\n    ):\\n        print(\\\"hello world\\\")\\n        print(\\\"some error\\\", file=sys.stderr)\\n</code></pre></p> Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/extra.py</code> <pre><code>@contextlib.contextmanager\\ndef prints(*, stdout: Snapshot[str] = \\\"\\\", stderr: Snapshot[str] = \\\"\\\"):\\n    \\\"\\\"\\\"Uses `contextlib.redirect_stderr/stdout` to capture the output and\\n    compare it with the snapshots. `dirty_equals.IsStr` can be used to ignore\\n    the output if needed.\\n\\n    Parameters:\\n        stdout: snapshot which is compared to the recorded output\\n        stderr: snapshot which is compared to the recorded error output\\n\\n    === \\\"original\\\"\\n\\n        &lt;!-- inline-snapshot: first_block outcome-passed=1 outcome-errors=1 --&gt;\\n        ``` python\\n        from inline_snapshot import snapshot\\n        from inline_snapshot.extra import prints\\n        import sys\\n\\n\\n        def test_prints():\\n            with prints(stdout=snapshot(), stderr=snapshot()):\\n                print(\\\"hello world\\\")\\n                print(\\\"some error\\\", file=sys.stderr)\\n        ```\\n\\n    === \\\"--inline-snapshot=create\\\"\\n\\n        &lt;!-- inline-snapshot: create outcome-passed=1 --&gt;\\n        ``` python hl_lines=\\\"7 8 9\\\"\\n        from inline_snapshot import snapshot\\n        from inline_snapshot.extra import prints\\n        import sys\\n\\n\\n        def test_prints():\\n            with prints(\\n                stdout=snapshot(\\\"hello world\\\\\\\\n\\\"), stderr=snapshot(\\\"some error\\\\\\\\n\\\")\\n            ):\\n                print(\\\"hello world\\\")\\n                print(\\\"some error\\\", file=sys.stderr)\\n        ```\\n\\n    === \\\"ignore stdout\\\"\\n\\n        &lt;!-- inline-snapshot: outcome-passed=1 --&gt;\\n        ``` python hl_lines=\\\"3 9 10\\\"\\n        from inline_snapshot import snapshot\\n        from inline_snapshot.extra import prints\\n        from dirty_equals import IsStr\\n        import sys\\n\\n\\n        def test_prints():\\n            with prints(\\n                stdout=IsStr(),\\n                stderr=snapshot(\\\"some error\\\\\\\\n\\\"),\\n            ):\\n                print(\\\"hello world\\\")\\n                print(\\\"some error\\\", file=sys.stderr)\\n        ```\\n    \\\"\\\"\\\"\\n\\n    with redirect_stdout(io.StringIO()) as stdout_io:\\n        with redirect_stderr(io.StringIO()) as stderr_io:\\n            yield\\n\\n    assert stderr_io.getvalue() == stderr\\n    assert stdout_io.getvalue() == stdout\\n</code></pre>\",\n             \"title\": \"<code>prints(*, stdout='', stderr='')</code>\"\n         },\n         {\n             \"location\": \"extra.html#inline_snapshot.extra.raises\",\n-            \"text\": \"<p>Check that an exception is raised.</p> <p>Parameters:</p> Name Type Description Default <code>exception</code> <code>Snapshot[str]</code> <p>snapshot which is compared with <code>f\\\"{type}: {message}\\\"</code> if an exception occured or <code>\\\"&lt;no exception&gt;\\\"</code> if no exception was raised.</p> required original--inline-snapshot=create <p> <pre><code>from inline_snapshot import snapshot\\nfrom inline_snapshot.extra import raises\\n\\n\\ndef test_raises():\\n    with raises(snapshot()):\\n        1 / 0\\n</code></pre></p> <p> <pre><code>from inline_snapshot import snapshot\\nfrom inline_snapshot.extra import raises\\n\\n\\ndef test_raises():\\n    with raises(snapshot(\\\"ZeroDivisionError: division by zero\\\")):\\n        1 / 0\\n</code></pre></p> Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/extra.py</code> <pre><code>@contextlib.contextmanager\\ndef raises(exception: Snapshot[str]):\\n    \\\"\\\"\\\"Check that an exception is raised.\\n\\n    Parameters:\\n        exception: snapshot which is compared with `#!python f\\\"{type}: {message}\\\"` if an exception occured or `#!python \\\"&lt;no exception&gt;\\\"` if no exception was raised.\\n\\n    === \\\"original\\\"\\n\\n        &lt;!-- inline-snapshot: first_block outcome-passed=1 outcome-errors=1 --&gt;\\n        ``` python\\n        from inline_snapshot import snapshot\\n        from inline_snapshot.extra import raises\\n\\n\\n        def test_raises():\\n            with raises(snapshot()):\\n                1 / 0\\n        ```\\n\\n    === \\\"--inline-snapshot=create\\\"\\n\\n        &lt;!-- inline-snapshot: create outcome-passed=1 --&gt;\\n        ``` python hl_lines=\\\"6\\\"\\n        from inline_snapshot import snapshot\\n        from inline_snapshot.extra import raises\\n\\n\\n        def test_raises():\\n            with raises(snapshot(\\\"ZeroDivisionError: division by zero\\\")):\\n                1 / 0\\n        ```\\n    \\\"\\\"\\\"\\n\\n    try:\\n        yield\\n    except Exception as ex:\\n        msg = str(ex)\\n        if \\\"\\\\n\\\" in msg:\\n            assert f\\\"{type(ex).__name__}:\\\\n{ex}\\\" == exception\\n        else:\\n            assert f\\\"{type(ex).__name__}: {ex}\\\" == exception\\n    else:\\n        assert \\\"&lt;no exception&gt;\\\" == exception\\n</code></pre>\",\n+            \"text\": \"<p>Check that an exception is raised.</p> <p>Parameters:</p> Name Type Description Default <code>exception</code> <code>Snapshot[str]</code> <p>snapshot which is compared with <code>f\\\"{type}: {message}\\\"</code> if an exception occured or <code>\\\"&lt;no exception&gt;\\\"</code> if no exception was raised.</p> required original--inline-snapshot=create <p> <pre><code>from inline_snapshot import snapshot\\nfrom inline_snapshot.extra import raises\\n\\n\\ndef test_raises():\\n    with raises(snapshot()):\\n        1 / 0\\n</code></pre></p> <p> <pre><code>from inline_snapshot import snapshot\\nfrom inline_snapshot.extra import raises\\n\\n\\ndef test_raises():\\n    with raises(snapshot(\\\"ZeroDivisionError: division by zero\\\")):\\n        1 / 0\\n</code></pre></p> Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/extra.py</code> <pre><code>@contextlib.contextmanager\\ndef raises(exception: Snapshot[str]):\\n    \\\"\\\"\\\"Check that an exception is raised.\\n\\n    Parameters:\\n        exception: snapshot which is compared with `#!python f\\\"{type}: {message}\\\"` if an exception occured or `#!python \\\"&lt;no exception&gt;\\\"` if no exception was raised.\\n\\n    === \\\"original\\\"\\n\\n        &lt;!-- inline-snapshot: first_block outcome-passed=1 outcome-errors=1 --&gt;\\n        ``` python\\n        from inline_snapshot import snapshot\\n        from inline_snapshot.extra import raises\\n\\n\\n        def test_raises():\\n            with raises(snapshot()):\\n                1 / 0\\n        ```\\n\\n    === \\\"--inline-snapshot=create\\\"\\n\\n        &lt;!-- inline-snapshot: create outcome-passed=1 --&gt;\\n        ``` python hl_lines=\\\"6\\\"\\n        from inline_snapshot import snapshot\\n        from inline_snapshot.extra import raises\\n\\n\\n        def test_raises():\\n            with raises(snapshot(\\\"ZeroDivisionError: division by zero\\\")):\\n                1 / 0\\n        ```\\n    \\\"\\\"\\\"\\n\\n    try:\\n        yield\\n    except Exception as ex:\\n        msg = str(ex)\\n        if \\\"\\\\n\\\" in msg:\\n            assert f\\\"{type(ex).__name__}:\\\\n{ex}\\\" == exception\\n        else:\\n            assert f\\\"{type(ex).__name__}: {ex}\\\" == exception\\n    else:\\n        assert \\\"&lt;no exception&gt;\\\" == exception\\n</code></pre>\",\n             \"title\": \"<code>raises(exception)</code>\"\n         },\n         {\n             \"location\": \"extra.html#inline_snapshot.extra.warns\",\n-            \"text\": \"<p>Captures warnings with <code>warnings.catch_warnings</code> and compares them against expected warnings.</p> <p>Parameters:</p> Name Type Description Default <code>expected_warnings</code> <code>Snapshot[List[Warning]]</code> <p>Snapshot containing a list of expected warnings.</p> required <code>include_line</code> <code>bool</code> <p>If <code>True</code>, each expected warning is a tuple <code>(linenumber, message)</code>.</p> <code>False</code> <code>include_file</code> <code>bool</code> <p>If <code>True</code>, each expected warning is a tuple <code>(filename, message)</code>.</p> <code>False</code> <p>The format of the expected warning:</p> <ul> <li><code>(filename, linenumber, message)</code> if both <code>include_line</code> and <code>include_file</code> are <code>True</code>.</li> <li><code>(linenumber, message)</code> if only <code>include_line</code> is <code>True</code>.</li> <li><code>(filename, message)</code> if only <code>include_file</code> is <code>True</code>.</li> <li>A string <code>message</code> if both are <code>False</code>.</li> </ul> original--inline-snapshot=create <p> <pre><code>from inline_snapshot import snapshot\\nfrom inline_snapshot.extra import warns\\nfrom warnings import warn\\n\\n\\ndef test_warns():\\n    with warns(snapshot(), include_line=True):\\n        warn(\\\"some problem\\\")\\n</code></pre></p> <p> <pre><code>from inline_snapshot import snapshot\\nfrom inline_snapshot.extra import warns\\nfrom warnings import warn\\n\\n\\ndef test_warns():\\n    with warns(snapshot([(8, \\\"UserWarning: some problem\\\")]), include_line=True):\\n        warn(\\\"some problem\\\")\\n</code></pre></p> Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/extra.py</code> <pre><code>@contextlib.contextmanager\\ndef warns(\\n    expected_warnings: Snapshot[List[Warning]],\\n    /,\\n    include_line: bool = False,\\n    include_file: bool = False,\\n):\\n    \\\"\\\"\\\"\\n    Captures warnings with `warnings.catch_warnings` and compares them against expected warnings.\\n\\n    Parameters:\\n        expected_warnings: Snapshot containing a list of expected warnings.\\n        include_line: If `True`, each expected warning is a tuple `(linenumber, message)`.\\n        include_file: If `True`, each expected warning is a tuple `(filename, message)`.\\n\\n    The format of the expected warning:\\n\\n    - `(filename, linenumber, message)` if both `include_line` and `include_file` are `True`.\\n    - `(linenumber, message)` if only `include_line` is `True`.\\n    - `(filename, message)` if only `include_file` is `True`.\\n    - A string `message` if both are `False`.\\n\\n    === \\\"original\\\"\\n\\n        &lt;!-- inline-snapshot: first_block outcome-passed=1 outcome-errors=1 --&gt;\\n        ``` python\\n        from inline_snapshot import snapshot\\n        from inline_snapshot.extra import warns\\n        from warnings import warn\\n\\n\\n        def test_warns():\\n            with warns(snapshot(), include_line=True):\\n                warn(\\\"some problem\\\")\\n        ```\\n\\n    === \\\"--inline-snapshot=create\\\"\\n\\n        &lt;!-- inline-snapshot: create fix outcome-passed=1 --&gt;\\n        ``` python hl_lines=\\\"7\\\"\\n        from inline_snapshot import snapshot\\n        from inline_snapshot.extra import warns\\n        from warnings import warn\\n\\n\\n        def test_warns():\\n            with warns(snapshot([(8, \\\"UserWarning: some problem\\\")]), include_line=True):\\n                warn(\\\"some problem\\\")\\n        ```\\n    \\\"\\\"\\\"\\n    with warnings.catch_warnings(record=True) as result:\\n        warnings.simplefilter(\\\"always\\\")\\n        yield\\n\\n    def make_warning(w):\\n        message = f\\\"{w.category.__name__}: {w.message}\\\"\\n        if not include_line and not include_file:\\n            return message\\n        message = (message,)\\n\\n        if include_line:\\n            message = (w.lineno, *message)\\n        if include_file:\\n            message = (w.filename, *message)\\n\\n        return message\\n\\n    assert [make_warning(w) for w in result] == expected_warnings\\n</code></pre>\",\n+            \"text\": \"<p>Captures warnings with <code>warnings.catch_warnings</code> and compares them against expected warnings.</p> <p>Parameters:</p> Name Type Description Default <code>expected_warnings</code> <code>Snapshot[List[Warning]]</code> <p>Snapshot containing a list of expected warnings.</p> required <code>include_line</code> <code>bool</code> <p>If <code>True</code>, each expected warning is a tuple <code>(linenumber, message)</code>.</p> <code>False</code> <code>include_file</code> <code>bool</code> <p>If <code>True</code>, each expected warning is a tuple <code>(filename, message)</code>.</p> <code>False</code> <p>The format of the expected warning:</p> <ul> <li><code>(filename, linenumber, message)</code> if both <code>include_line</code> and <code>include_file</code> are <code>True</code>.</li> <li><code>(linenumber, message)</code> if only <code>include_line</code> is <code>True</code>.</li> <li><code>(filename, message)</code> if only <code>include_file</code> is <code>True</code>.</li> <li>A string <code>message</code> if both are <code>False</code>.</li> </ul> original--inline-snapshot=create <p> <pre><code>from inline_snapshot import snapshot\\nfrom inline_snapshot.extra import warns\\nfrom warnings import warn\\n\\n\\ndef test_warns():\\n    with warns(snapshot(), include_line=True):\\n        warn(\\\"some problem\\\")\\n</code></pre></p> <p> <pre><code>from inline_snapshot import snapshot\\nfrom inline_snapshot.extra import warns\\nfrom warnings import warn\\n\\n\\ndef test_warns():\\n    with warns(snapshot([(8, \\\"UserWarning: some problem\\\")]), include_line=True):\\n        warn(\\\"some problem\\\")\\n</code></pre></p> Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/extra.py</code> <pre><code>@contextlib.contextmanager\\ndef warns(\\n    expected_warnings: Snapshot[List[Warning]],\\n    /,\\n    include_line: bool = False,\\n    include_file: bool = False,\\n):\\n    \\\"\\\"\\\"\\n    Captures warnings with `warnings.catch_warnings` and compares them against expected warnings.\\n\\n    Parameters:\\n        expected_warnings: Snapshot containing a list of expected warnings.\\n        include_line: If `True`, each expected warning is a tuple `(linenumber, message)`.\\n        include_file: If `True`, each expected warning is a tuple `(filename, message)`.\\n\\n    The format of the expected warning:\\n\\n    - `(filename, linenumber, message)` if both `include_line` and `include_file` are `True`.\\n    - `(linenumber, message)` if only `include_line` is `True`.\\n    - `(filename, message)` if only `include_file` is `True`.\\n    - A string `message` if both are `False`.\\n\\n    === \\\"original\\\"\\n\\n        &lt;!-- inline-snapshot: first_block outcome-passed=1 outcome-errors=1 --&gt;\\n        ``` python\\n        from inline_snapshot import snapshot\\n        from inline_snapshot.extra import warns\\n        from warnings import warn\\n\\n\\n        def test_warns():\\n            with warns(snapshot(), include_line=True):\\n                warn(\\\"some problem\\\")\\n        ```\\n\\n    === \\\"--inline-snapshot=create\\\"\\n\\n        &lt;!-- inline-snapshot: create fix outcome-passed=1 --&gt;\\n        ``` python hl_lines=\\\"7\\\"\\n        from inline_snapshot import snapshot\\n        from inline_snapshot.extra import warns\\n        from warnings import warn\\n\\n\\n        def test_warns():\\n            with warns(snapshot([(8, \\\"UserWarning: some problem\\\")]), include_line=True):\\n                warn(\\\"some problem\\\")\\n        ```\\n    \\\"\\\"\\\"\\n    with warnings.catch_warnings(record=True) as result:\\n        warnings.simplefilter(\\\"always\\\")\\n        yield\\n\\n    def make_warning(w):\\n        message = f\\\"{w.category.__name__}: {w.message}\\\"\\n        if not include_line and not include_file:\\n            return message\\n        message = (message,)\\n\\n        if include_line:\\n            message = (w.lineno, *message)\\n        if include_file:\\n            message = (w.filename, *message)\\n\\n        return message\\n\\n    assert [make_warning(w) for w in result] == expected_warnings\\n</code></pre>\",\n             \"title\": \"<code>warns(expected_warnings, /, include_line=False, include_file=False)</code>\"\n         },\n         {\n             \"location\": \"getitem_snapshot.html\",\n             \"text\": \"\",\n             \"title\": \"snapshot()[key]\"\n         },\n@@ -822,65 +822,65 @@\n         {\n             \"location\": \"outsource.html#api\",\n             \"text\": \"\",\n             \"title\": \"API\"\n         },\n         {\n             \"location\": \"outsource.html#inline_snapshot.outsource\",\n-            \"text\": \"<p>Outsource some data into an external file.</p> <pre><code>&gt;&gt;&gt; png_data = b\\\"some_bytes\\\"  # should be the replaced with your actual data\\n&gt;&gt;&gt; outsource(png_data, suffix=\\\".png\\\")\\nexternal(\\\"212974ed1835*.png\\\")\\n</code></pre> <p>Parameters:</p> Name Type Description Default <code>data</code> <code>Union[str, bytes]</code> <p>data which should be outsourced. strings are encoded with <code>\\\"utf-8\\\"</code>.</p> required <code>suffix</code> <code>Optional[str]</code> <p>overwrite file suffix. The default is <code>\\\".bin\\\"</code> if data is an instance of <code>bytes</code> and <code>\\\".txt\\\"</code> for <code>str</code>.</p> <code>None</code> <p>Returns:</p> Type Description <code>external</code> <p>The external data.</p> Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>def outsource(data: Union[str, bytes], *, suffix: Optional[str] = None) -&gt; external:\\n    \\\"\\\"\\\"Outsource some data into an external file.\\n\\n    ``` pycon\\n    &gt;&gt;&gt; png_data = b\\\"some_bytes\\\"  # should be the replaced with your actual data\\n    &gt;&gt;&gt; outsource(png_data, suffix=\\\".png\\\")\\n    external(\\\"212974ed1835*.png\\\")\\n\\n    ```\\n\\n    Parameters:\\n        data: data which should be outsourced. strings are encoded with `\\\"utf-8\\\"`.\\n\\n        suffix: overwrite file suffix. The default is `\\\".bin\\\"` if data is an instance of `#!python bytes` and `\\\".txt\\\"` for `#!python str`.\\n\\n    Returns:\\n        The external data.\\n    \\\"\\\"\\\"\\n    if isinstance(data, str):\\n        data = data.encode(\\\"utf-8\\\")\\n        if suffix is None:\\n            suffix = \\\".txt\\\"\\n\\n    elif isinstance(data, bytes):\\n        if suffix is None:\\n            suffix = \\\".bin\\\"\\n    else:\\n        raise TypeError(\\\"data has to be of type bytes | str\\\")\\n\\n    if not suffix or suffix[0] != \\\".\\\":\\n        raise ValueError(\\\"suffix has to start with a '.' like '.png'\\\")\\n\\n    m = hashlib.sha256()\\n    m.update(data)\\n    hash = m.hexdigest()\\n\\n    assert storage is not None\\n\\n    name = hash + suffix\\n\\n    if not storage.lookup_all(name):\\n        path = hash + \\\"-new\\\" + suffix\\n        storage.save(path, data)\\n\\n    return external(name)\\n</code></pre>\",\n+            \"text\": \"<p>Outsource some data into an external file.</p> <pre><code>&gt;&gt;&gt; png_data = b\\\"some_bytes\\\"  # should be the replaced with your actual data\\n&gt;&gt;&gt; outsource(png_data, suffix=\\\".png\\\")\\nexternal(\\\"212974ed1835*.png\\\")\\n</code></pre> <p>Parameters:</p> Name Type Description Default <code>data</code> <code>Union[str, bytes]</code> <p>data which should be outsourced. strings are encoded with <code>\\\"utf-8\\\"</code>.</p> required <code>suffix</code> <code>Optional[str]</code> <p>overwrite file suffix. The default is <code>\\\".bin\\\"</code> if data is an instance of <code>bytes</code> and <code>\\\".txt\\\"</code> for <code>str</code>.</p> <code>None</code> <p>Returns:</p> Type Description <code>external</code> <p>The external data.</p> Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>def outsource(data: Union[str, bytes], *, suffix: Optional[str] = None) -&gt; external:\\n    \\\"\\\"\\\"Outsource some data into an external file.\\n\\n    ``` pycon\\n    &gt;&gt;&gt; png_data = b\\\"some_bytes\\\"  # should be the replaced with your actual data\\n    &gt;&gt;&gt; outsource(png_data, suffix=\\\".png\\\")\\n    external(\\\"212974ed1835*.png\\\")\\n\\n    ```\\n\\n    Parameters:\\n        data: data which should be outsourced. strings are encoded with `\\\"utf-8\\\"`.\\n\\n        suffix: overwrite file suffix. The default is `\\\".bin\\\"` if data is an instance of `#!python bytes` and `\\\".txt\\\"` for `#!python str`.\\n\\n    Returns:\\n        The external data.\\n    \\\"\\\"\\\"\\n    if isinstance(data, str):\\n        data = data.encode(\\\"utf-8\\\")\\n        if suffix is None:\\n            suffix = \\\".txt\\\"\\n\\n    elif isinstance(data, bytes):\\n        if suffix is None:\\n            suffix = \\\".bin\\\"\\n    else:\\n        raise TypeError(\\\"data has to be of type bytes | str\\\")\\n\\n    if not suffix or suffix[0] != \\\".\\\":\\n        raise ValueError(\\\"suffix has to start with a '.' like '.png'\\\")\\n\\n    m = hashlib.sha256()\\n    m.update(data)\\n    hash = m.hexdigest()\\n\\n    assert storage is not None\\n\\n    name = hash + suffix\\n\\n    if not storage.lookup_all(name):\\n        path = hash + \\\"-new\\\" + suffix\\n        storage.save(path, data)\\n\\n    return external(name)\\n</code></pre>\",\n             \"title\": \"<code>inline_snapshot.outsource(data, *, suffix=None)</code>\"\n         },\n         {\n             \"location\": \"outsource.html#inline_snapshot.external\",\n-            \"text\": \"Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>class external:\\n    def __init__(self, name: str):\\n        \\\"\\\"\\\"External objects are used as a representation for outsourced data.\\n        You should not create them directly.\\n\\n        The external data is by default stored inside `&lt;pytest_config_dir&gt;/.inline-snapshot/external`,\\n        where `&lt;pytest_config_dir&gt;` is replaced by the directory containing the Pytest configuration file, if any.\\n        To store data in a different location, set the `storage-dir` option in pyproject.toml.\\n        Data which is outsourced but not referenced in the source code jet has a '-new' suffix in the filename.\\n\\n        Parameters:\\n            name: the name of the external stored object.\\n        \\\"\\\"\\\"\\n\\n        m = re.fullmatch(r\\\"([0-9a-fA-F]*)\\\\*?(\\\\.[a-zA-Z0-9]*)\\\", name)\\n\\n        if m:\\n            self._hash, self._suffix = m.groups()\\n        else:\\n            raise ValueError(\\n                \\\"path has to be of the form &lt;hash&gt;.&lt;suffix&gt; or &lt;partial_hash&gt;*.&lt;suffix&gt;\\\"\\n            )\\n\\n    @property\\n    def _path(self):\\n        return f\\\"{self._hash}*{self._suffix}\\\"\\n\\n    def __repr__(self):\\n        \\\"\\\"\\\"Returns the representation of the external object.\\n\\n        The length of the hash can be specified in the\\n        [config](configuration.md).\\n        \\\"\\\"\\\"\\n        hash = self._hash[: _config.config.hash_length]\\n\\n        if len(hash) == 64:\\n            return f'external(\\\"{hash}{self._suffix}\\\")'\\n        else:\\n            return f'external(\\\"{hash}*{self._suffix}\\\")'\\n\\n    def __eq__(self, other):\\n        \\\"\\\"\\\"Two external objects are equal if they have the same hash and\\n        suffix.\\\"\\\"\\\"\\n        if not isinstance(other, external):\\n            return NotImplemented\\n\\n        min_hash_len = min(len(self._hash), len(other._hash))\\n\\n        if self._hash[:min_hash_len] != other._hash[:min_hash_len]:\\n            return False\\n\\n        if self._suffix != other._suffix:\\n            return False\\n\\n        return True\\n\\n    def _load_value(self):\\n        assert storage is not None\\n        return storage.read(self._path)\\n</code></pre>\",\n+            \"text\": \"Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>class external:\\n    def __init__(self, name: str):\\n        \\\"\\\"\\\"External objects are used as a representation for outsourced data.\\n        You should not create them directly.\\n\\n        The external data is by default stored inside `&lt;pytest_config_dir&gt;/.inline-snapshot/external`,\\n        where `&lt;pytest_config_dir&gt;` is replaced by the directory containing the Pytest configuration file, if any.\\n        To store data in a different location, set the `storage-dir` option in pyproject.toml.\\n        Data which is outsourced but not referenced in the source code jet has a '-new' suffix in the filename.\\n\\n        Parameters:\\n            name: the name of the external stored object.\\n        \\\"\\\"\\\"\\n\\n        m = re.fullmatch(r\\\"([0-9a-fA-F]*)\\\\*?(\\\\.[a-zA-Z0-9]*)\\\", name)\\n\\n        if m:\\n            self._hash, self._suffix = m.groups()\\n        else:\\n            raise ValueError(\\n                \\\"path has to be of the form &lt;hash&gt;.&lt;suffix&gt; or &lt;partial_hash&gt;*.&lt;suffix&gt;\\\"\\n            )\\n\\n    @property\\n    def _path(self):\\n        return f\\\"{self._hash}*{self._suffix}\\\"\\n\\n    def __repr__(self):\\n        \\\"\\\"\\\"Returns the representation of the external object.\\n\\n        The length of the hash can be specified in the\\n        [config](configuration.md).\\n        \\\"\\\"\\\"\\n        hash = self._hash[: _config.config.hash_length]\\n\\n        if len(hash) == 64:\\n            return f'external(\\\"{hash}{self._suffix}\\\")'\\n        else:\\n            return f'external(\\\"{hash}*{self._suffix}\\\")'\\n\\n    def __eq__(self, other):\\n        \\\"\\\"\\\"Two external objects are equal if they have the same hash and\\n        suffix.\\\"\\\"\\\"\\n        if not isinstance(other, external):\\n            return NotImplemented\\n\\n        min_hash_len = min(len(self._hash), len(other._hash))\\n\\n        if self._hash[:min_hash_len] != other._hash[:min_hash_len]:\\n            return False\\n\\n        if self._suffix != other._suffix:\\n            return False\\n\\n        return True\\n\\n    def _load_value(self):\\n        assert storage is not None\\n        return storage.read(self._path)\\n</code></pre>\",\n             \"title\": \"<code>inline_snapshot.external</code>\"\n         },\n         {\n             \"location\": \"outsource.html#inline_snapshot.external.__eq__\",\n-            \"text\": \"<p>Two external objects are equal if they have the same hash and suffix.</p> Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>def __eq__(self, other):\\n    \\\"\\\"\\\"Two external objects are equal if they have the same hash and\\n    suffix.\\\"\\\"\\\"\\n    if not isinstance(other, external):\\n        return NotImplemented\\n\\n    min_hash_len = min(len(self._hash), len(other._hash))\\n\\n    if self._hash[:min_hash_len] != other._hash[:min_hash_len]:\\n        return False\\n\\n    if self._suffix != other._suffix:\\n        return False\\n\\n    return True\\n</code></pre>\",\n+            \"text\": \"<p>Two external objects are equal if they have the same hash and suffix.</p> Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>def __eq__(self, other):\\n    \\\"\\\"\\\"Two external objects are equal if they have the same hash and\\n    suffix.\\\"\\\"\\\"\\n    if not isinstance(other, external):\\n        return NotImplemented\\n\\n    min_hash_len = min(len(self._hash), len(other._hash))\\n\\n    if self._hash[:min_hash_len] != other._hash[:min_hash_len]:\\n        return False\\n\\n    if self._suffix != other._suffix:\\n        return False\\n\\n    return True\\n</code></pre>\",\n             \"title\": \"<code>__eq__(other)</code>\"\n         },\n         {\n             \"location\": \"outsource.html#inline_snapshot.external.__init__\",\n-            \"text\": \"<p>External objects are used as a representation for outsourced data. You should not create them directly.</p> <p>The external data is by default stored inside <code>&lt;pytest_config_dir&gt;/.inline-snapshot/external</code>, where <code>&lt;pytest_config_dir&gt;</code> is replaced by the directory containing the Pytest configuration file, if any. To store data in a different location, set the <code>storage-dir</code> option in pyproject.toml. Data which is outsourced but not referenced in the source code jet has a '-new' suffix in the filename.</p> <p>Parameters:</p> Name Type Description Default <code>name</code> <code>str</code> <p>the name of the external stored object.</p> required Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>def __init__(self, name: str):\\n    \\\"\\\"\\\"External objects are used as a representation for outsourced data.\\n    You should not create them directly.\\n\\n    The external data is by default stored inside `&lt;pytest_config_dir&gt;/.inline-snapshot/external`,\\n    where `&lt;pytest_config_dir&gt;` is replaced by the directory containing the Pytest configuration file, if any.\\n    To store data in a different location, set the `storage-dir` option in pyproject.toml.\\n    Data which is outsourced but not referenced in the source code jet has a '-new' suffix in the filename.\\n\\n    Parameters:\\n        name: the name of the external stored object.\\n    \\\"\\\"\\\"\\n\\n    m = re.fullmatch(r\\\"([0-9a-fA-F]*)\\\\*?(\\\\.[a-zA-Z0-9]*)\\\", name)\\n\\n    if m:\\n        self._hash, self._suffix = m.groups()\\n    else:\\n        raise ValueError(\\n            \\\"path has to be of the form &lt;hash&gt;.&lt;suffix&gt; or &lt;partial_hash&gt;*.&lt;suffix&gt;\\\"\\n        )\\n</code></pre>\",\n+            \"text\": \"<p>External objects are used as a representation for outsourced data. You should not create them directly.</p> <p>The external data is by default stored inside <code>&lt;pytest_config_dir&gt;/.inline-snapshot/external</code>, where <code>&lt;pytest_config_dir&gt;</code> is replaced by the directory containing the Pytest configuration file, if any. To store data in a different location, set the <code>storage-dir</code> option in pyproject.toml. Data which is outsourced but not referenced in the source code jet has a '-new' suffix in the filename.</p> <p>Parameters:</p> Name Type Description Default <code>name</code> <code>str</code> <p>the name of the external stored object.</p> required Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>def __init__(self, name: str):\\n    \\\"\\\"\\\"External objects are used as a representation for outsourced data.\\n    You should not create them directly.\\n\\n    The external data is by default stored inside `&lt;pytest_config_dir&gt;/.inline-snapshot/external`,\\n    where `&lt;pytest_config_dir&gt;` is replaced by the directory containing the Pytest configuration file, if any.\\n    To store data in a different location, set the `storage-dir` option in pyproject.toml.\\n    Data which is outsourced but not referenced in the source code jet has a '-new' suffix in the filename.\\n\\n    Parameters:\\n        name: the name of the external stored object.\\n    \\\"\\\"\\\"\\n\\n    m = re.fullmatch(r\\\"([0-9a-fA-F]*)\\\\*?(\\\\.[a-zA-Z0-9]*)\\\", name)\\n\\n    if m:\\n        self._hash, self._suffix = m.groups()\\n    else:\\n        raise ValueError(\\n            \\\"path has to be of the form &lt;hash&gt;.&lt;suffix&gt; or &lt;partial_hash&gt;*.&lt;suffix&gt;\\\"\\n        )\\n</code></pre>\",\n             \"title\": \"<code>__init__(name)</code>\"\n         },\n         {\n             \"location\": \"outsource.html#inline_snapshot.external.__repr__\",\n-            \"text\": \"<p>Returns the representation of the external object.</p> <p>The length of the hash can be specified in the config.</p> Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>def __repr__(self):\\n    \\\"\\\"\\\"Returns the representation of the external object.\\n\\n    The length of the hash can be specified in the\\n    [config](configuration.md).\\n    \\\"\\\"\\\"\\n    hash = self._hash[: _config.config.hash_length]\\n\\n    if len(hash) == 64:\\n        return f'external(\\\"{hash}{self._suffix}\\\")'\\n    else:\\n        return f'external(\\\"{hash}*{self._suffix}\\\")'\\n</code></pre>\",\n+            \"text\": \"<p>Returns the representation of the external object.</p> <p>The length of the hash can be specified in the config.</p> Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_external.py</code> <pre><code>def __repr__(self):\\n    \\\"\\\"\\\"Returns the representation of the external object.\\n\\n    The length of the hash can be specified in the\\n    [config](configuration.md).\\n    \\\"\\\"\\\"\\n    hash = self._hash[: _config.config.hash_length]\\n\\n    if len(hash) == 64:\\n        return f'external(\\\"{hash}{self._suffix}\\\")'\\n    else:\\n        return f'external(\\\"{hash}*{self._suffix}\\\")'\\n</code></pre>\",\n             \"title\": \"<code>__repr__()</code>\"\n         },\n         {\n             \"location\": \"outsource.html#pytest-options\",\n             \"text\": \"<p>It interacts with the following <code>--inline-snapshot</code> flags:</p> <ul> <li><code>trim</code> removes every snapshots form the storage which is not referenced with <code>external(...)</code> in the code.</li> </ul>\",\n             \"title\": \"pytest options\"\n         },\n         {\n             \"location\": \"pytest.html\",\n             \"text\": \"<p>inline-snapshot provides one pytest option with different flags (create, fix, trim, update, short-report, report, disable).</p> <p>Snapshot comparisons return always <code>True</code> if you use one of the flags create, fix or review. This is necessary because the whole test needs to be run to fix all snapshots like in this case:</p> <pre><code>from inline_snapshot import snapshot\\n\\n\\ndef test_something():\\n    assert 1 == snapshot(5)\\n    assert 2 &lt;= snapshot(5)\\n</code></pre> <p>Note</p> <p>Every flag with the exception of disable and short-report disables the pytest assert-rewriting.</p>\",\n             \"title\": \"pytest integration\"\n         },\n         {\n             \"location\": \"pytest.html#-inline-snapshotcreatefixtrimupdate\",\n-            \"text\": \"<p>Approve the changes of the given category. These flags can be combined with report and review.</p> test_something.py<pre><code>from inline_snapshot import snapshot\\n\\n\\ndef test_something():\\n    assert 1 == snapshot()\\n    assert 2 &lt;= snapshot(5)\\n</code></pre> <pre><code>&gt; pytest test_something.py --inline-snapshot=create,report\\n============================= test session starts ==============================\\nplatform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\\nrootdir: /tmp/tmp.GZGVqEVxWM\\nplugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1\\ncollected 1 item\\n\\ntest_something.py .                                                      [100%]\\n=============================== inline snapshot ================================\\n\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500 Create snapshots \\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\n+----------------------------- test_something.py ------------------------------+\\n| @@ -2,5 +2,5 @@                                                              |\\n|                                                                              |\\n|                                                                              |\\n|                                                                              |\\n|  def test_something():                                                       |\\n| -    assert 1 == snapshot()                                                  |\\n| +    assert 1 == snapshot(1)                                                 |\\n|      assert 2 &lt;= snapshot(5)                                                 |\\n+------------------------------------------------------------------------------+\\nThese changes will be applied, because you used --inline-snapshot=create\\n\\n\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500 Trim snapshots \\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\n+----------------------------- test_something.py ------------------------------+\\n| @@ -3,4 +3,4 @@                                                              |\\n|                                                                              |\\n|                                                                              |\\n|  def test_something():                                                       |\\n|      assert 1 == snapshot(1)                                                 |\\n| -    assert 2 &lt;= snapshot(5)                                                 |\\n| +    assert 2 &lt;= snapshot(2)                                                 |\\n+------------------------------------------------------------------------------+\\nThese changes are not applied.\\nUse --inline-snapshot=trim to apply them, or use the interactive mode with \\n--inline-snapshot=review\\n\\n\\n============================== 1 passed in 0.51s ===============================\\n</code></pre>\",\n+            \"text\": \"<p>Approve the changes of the given category. These flags can be combined with report and review.</p> test_something.py<pre><code>from inline_snapshot import snapshot\\n\\n\\ndef test_something():\\n    assert 1 == snapshot()\\n    assert 2 &lt;= snapshot(5)\\n</code></pre> <pre><code>&gt; pytest test_something.py --inline-snapshot=create,report\\n============================= test session starts ==============================\\nplatform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\\nrootdir: /tmp/tmp.lpRrqOmrhn\\nplugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9\\ncollected 1 item\\n\\ntest_something.py .                                                      [100%]\\n=============================== inline snapshot ================================\\n\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500 Create snapshots \\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\n+----------------------------- test_something.py ------------------------------+\\n| @@ -2,5 +2,5 @@                                                              |\\n|                                                                              |\\n|                                                                              |\\n|                                                                              |\\n|  def test_something():                                                       |\\n| -    assert 1 == snapshot()                                                  |\\n| +    assert 1 == snapshot(1)                                                 |\\n|      assert 2 &lt;= snapshot(5)                                                 |\\n+------------------------------------------------------------------------------+\\nThese changes will be applied, because you used --inline-snapshot=create\\n\\n\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500 Trim snapshots \\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\n+----------------------------- test_something.py ------------------------------+\\n| @@ -3,4 +3,4 @@                                                              |\\n|                                                                              |\\n|                                                                              |\\n|  def test_something():                                                       |\\n|      assert 1 == snapshot(1)                                                 |\\n| -    assert 2 &lt;= snapshot(5)                                                 |\\n| +    assert 2 &lt;= snapshot(2)                                                 |\\n+------------------------------------------------------------------------------+\\nThese changes are not applied.\\nUse --inline-snapshot=trim to apply them, or use the interactive mode with \\n--inline-snapshot=review\\n\\n\\n============================== 1 passed in 0.82s ===============================\\n</code></pre>\",\n             \"title\": \"--inline-snapshot=create,fix,trim,update\"\n         },\n         {\n             \"location\": \"pytest.html#-inline-snapshotshort-report\",\n-            \"text\": \"<p>give a short report over which changes can be made to the snapshots</p> <pre><code>&gt; pytest test_something.py --inline-snapshot=short-report\\n============================= test session starts ==============================\\nplatform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\\nrootdir: /tmp/tmp.GmIm9FDPUH\\nplugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1\\ncollected 1 item\\n\\ntest_something.py .E                                                     [100%]\\n\\n==================================== ERRORS ====================================\\n_____________________ ERROR at teardown of test_something ______________________\\nyour snapshot is missing one value.\\n=============================== inline snapshot ================================\\nInfo: one snapshot can be trimmed (--inline-snapshot=trim)\\nError: one snapshot is missing a value (--inline-snapshot=create)\\n\\nYou can also use --inline-snapshot=review to approve the changes interactively\\n=========================== short test summary info ============================\\nERROR test_something.py::test_something - Failed: your snapshot is missing one value.\\n========================== 1 passed, 1 error in 0.46s ==========================\\n</code></pre> <p>Info</p> <p>short-report exists mainly to show that snapshots have changed with enabled pytest assert-rewriting. This option will be replaced with report when this restriction is lifted.</p>\",\n+            \"text\": \"<p>give a short report over which changes can be made to the snapshots</p> <pre><code>&gt; pytest test_something.py --inline-snapshot=short-report\\n============================= test session starts ==============================\\nplatform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\\nrootdir: /tmp/tmp.STPxwcG61L\\nplugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9\\ncollected 1 item\\n\\ntest_something.py .E                                                     [100%]\\n\\n==================================== ERRORS ====================================\\n_____________________ ERROR at teardown of test_something ______________________\\nyour snapshot is missing one value.\\n=============================== inline snapshot ================================\\nInfo: one snapshot can be trimmed (--inline-snapshot=trim)\\nError: one snapshot is missing a value (--inline-snapshot=create)\\n\\nYou can also use --inline-snapshot=review to approve the changes interactively\\n=========================== short test summary info ============================\\nERROR test_something.py::test_something - Failed: your snapshot is missing one value.\\n========================== 1 passed, 1 error in 0.80s ==========================\\n</code></pre> <p>Info</p> <p>short-report exists mainly to show that snapshots have changed with enabled pytest assert-rewriting. This option will be replaced with report when this restriction is lifted.</p>\",\n             \"title\": \"--inline-snapshot=short-report\"\n         },\n         {\n             \"location\": \"pytest.html#-inline-snapshotreport\",\n-            \"text\": \"<p>Shows a diff report over which changes can be made to the snapshots</p> <pre><code>&gt; pytest test_something.py --inline-snapshot=report\\n============================= test session starts ==============================\\nplatform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\\nrootdir: /tmp/tmp.siYONHxJ2N\\nplugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1\\ncollected 1 item\\n\\ntest_something.py .E                                                     [100%]\\n\\n==================================== ERRORS ====================================\\n_____________________ ERROR at teardown of test_something ______________________\\nyour snapshot is missing one value.\\n=============================== inline snapshot ================================\\n\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500 Create snapshots \\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\n+----------------------------- test_something.py ------------------------------+\\n| @@ -2,5 +2,5 @@                                                              |\\n|                                                                              |\\n|                                                                              |\\n|                                                                              |\\n|  def test_something():                                                       |\\n| -    assert 1 == snapshot()                                                  |\\n| +    assert 1 == snapshot(1)                                                 |\\n|      assert 2 &lt;= snapshot(5)                                                 |\\n+------------------------------------------------------------------------------+\\nThese changes are not applied.\\nUse --inline-snapshot=create to apply them, or use the interactive mode with \\n--inline-snapshot=review\\n\\n\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500 Trim snapshots \\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\n+----------------------------- test_something.py ------------------------------+\\n| @@ -3,4 +3,4 @@                                                              |\\n|                                                                              |\\n|                                                                              |\\n|  def test_something():                                                       |\\n|      assert 1 == snapshot()                                                  |\\n| -    assert 2 &lt;= snapshot(5)                                                 |\\n| +    assert 2 &lt;= snapshot(2)                                                 |\\n+------------------------------------------------------------------------------+\\nThese changes are not applied.\\nUse --inline-snapshot=trim to apply them, or use the interactive mode with \\n--inline-snapshot=review\\n\\n=========================== short test summary info ============================\\nERROR test_something.py::test_something - Failed: your snapshot is missing one value.\\n========================== 1 passed, 1 error in 0.46s ==========================\\n</code></pre>\",\n+            \"text\": \"<p>Shows a diff report over which changes can be made to the snapshots</p> <pre><code>&gt; pytest test_something.py --inline-snapshot=report\\n============================= test session starts ==============================\\nplatform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\\nrootdir: /tmp/tmp.m6vy7VYyQc\\nplugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9\\ncollected 1 item\\n\\ntest_something.py .E                                                     [100%]\\n\\n==================================== ERRORS ====================================\\n_____________________ ERROR at teardown of test_something ______________________\\nyour snapshot is missing one value.\\n=============================== inline snapshot ================================\\n\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500 Create snapshots \\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\n+----------------------------- test_something.py ------------------------------+\\n| @@ -2,5 +2,5 @@                                                              |\\n|                                                                              |\\n|                                                                              |\\n|                                                                              |\\n|  def test_something():                                                       |\\n| -    assert 1 == snapshot()                                                  |\\n| +    assert 1 == snapshot(1)                                                 |\\n|      assert 2 &lt;= snapshot(5)                                                 |\\n+------------------------------------------------------------------------------+\\nThese changes are not applied.\\nUse --inline-snapshot=create to apply them, or use the interactive mode with \\n--inline-snapshot=review\\n\\n\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500 Trim snapshots \\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\n+----------------------------- test_something.py ------------------------------+\\n| @@ -3,4 +3,4 @@                                                              |\\n|                                                                              |\\n|                                                                              |\\n|  def test_something():                                                       |\\n|      assert 1 == snapshot()                                                  |\\n| -    assert 2 &lt;= snapshot(5)                                                 |\\n| +    assert 2 &lt;= snapshot(2)                                                 |\\n+------------------------------------------------------------------------------+\\nThese changes are not applied.\\nUse --inline-snapshot=trim to apply them, or use the interactive mode with \\n--inline-snapshot=review\\n\\n=========================== short test summary info ============================\\nERROR test_something.py::test_something - Failed: your snapshot is missing one value.\\n========================== 1 passed, 1 error in 0.78s ==========================\\n</code></pre>\",\n             \"title\": \"--inline-snapshot=report\"\n         },\n         {\n             \"location\": \"pytest.html#-inline-snapshotreview\",\n-            \"text\": \"<p>Shows a diff report for each category and ask if you want to apply the changes</p> <pre><code>&gt; pytest test_something.py --inline-snapshot=review\\n============================= test session starts ==============================\\nplatform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\\nrootdir: /tmp/tmp.pdpnCdJwR4\\nplugins: pytest_freezer-0.4.9, mock-3.14.0, hypothesis-6.124.0, typeguard-4.4.1, time-machine-2.16.0, inline-snapshot-0.19.3, subtests-0.13.1\\ncollected 1 item\\n\\ntest_something.py .                                                      [100%]\\n=============================== inline snapshot ================================\\n\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500 Create snapshots \\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\n+----------------------------- test_something.py ------------------------------+\\n| @@ -2,5 +2,5 @@                                                              |\\n|                                                                              |\\n|                                                                              |\\n|                                                                              |\\n|  def test_something():                                                       |\\n| -    assert 1 == snapshot()                                                  |\\n| +    assert 1 == snapshot(1)                                                 |\\n|      assert 2 &lt;= snapshot(5)                                                 |\\n+------------------------------------------------------------------------------+\\ndo you want to create these snapshots? [y/n] (n): \\n\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500 Trim snapshots \\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\n+----------------------------- test_something.py ------------------------------+\\n| @@ -3,4 +3,4 @@                                                              |\\n|                                                                              |\\n|                                                                              |\\n|  def test_something():                                                       |\\n|      assert 1 == snapshot(1)                                                 |\\n| -    assert 2 &lt;= snapshot(5)                                                 |\\n| +    assert 2 &lt;= snapshot(2)                                                 |\\n+------------------------------------------------------------------------------+\\ndo you want to trim these snapshots? [y/n] (n): \\n\\n============================== 1 passed in 0.49s ===============================\\n</code></pre>\",\n+            \"text\": \"<p>Shows a diff report for each category and ask if you want to apply the changes</p> <pre><code>&gt; pytest test_something.py --inline-snapshot=review\\n============================= test session starts ==============================\\nplatform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0\\nrootdir: /tmp/tmp.LU2pcziyBH\\nplugins: subtests-0.13.1, typeguard-4.4.1, mock-3.14.0, inline-snapshot-0.19.3, hypothesis-6.124.0, time-machine-2.16.0, pytest_freezer-0.4.9\\ncollected 1 item\\n\\ntest_something.py .                                                      [100%]\\n=============================== inline snapshot ================================\\n\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500 Create snapshots \\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\n+----------------------------- test_something.py ------------------------------+\\n| @@ -2,5 +2,5 @@                                                              |\\n|                                                                              |\\n|                                                                              |\\n|                                                                              |\\n|  def test_something():                                                       |\\n| -    assert 1 == snapshot()                                                  |\\n| +    assert 1 == snapshot(1)                                                 |\\n|      assert 2 &lt;= snapshot(5)                                                 |\\n+------------------------------------------------------------------------------+\\ndo you want to create these snapshots? [y/n] (n): \\n\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500 Trim snapshots \\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\n+----------------------------- test_something.py ------------------------------+\\n| @@ -3,4 +3,4 @@                                                              |\\n|                                                                              |\\n|                                                                              |\\n|  def test_something():                                                       |\\n|      assert 1 == snapshot(1)                                                 |\\n| -    assert 2 &lt;= snapshot(5)                                                 |\\n| +    assert 2 &lt;= snapshot(2)                                                 |\\n+------------------------------------------------------------------------------+\\ndo you want to trim these snapshots? [y/n] (n): \\n\\n============================== 1 passed in 0.82s ===============================\\n</code></pre>\",\n             \"title\": \"--inline-snapshot=review\"\n         },\n         {\n             \"location\": \"pytest.html#-inline-snapshotdisable\",\n             \"text\": \"<p>Disables all the snapshot logic. <code>snapshot(x)</code> will just return <code>x</code>. This can be used if you think exclude that snapshot logic causes a problem in your tests, or if you want to speedup your CI.</p> <p>deprecation</p> <p>This option was previously called <code>--inline-snapshot-disable</code></p>\",\n             \"title\": \"--inline-snapshot=disable\"\n         },\n@@ -932,12 +932,12 @@\n         {\n             \"location\": \"types.html#inline_snapshot.Category\",\n             \"text\": \"<p>See categories</p>\",\n             \"title\": \"<code>Category = Literal['update', 'fix', 'create', 'trim']</code>  <code>module-attribute</code>\"\n         },\n         {\n             \"location\": \"types.html#inline_snapshot.Snapshot\",\n-            \"text\": \"<p>Can be used to annotate function arguments which accept snapshot values.</p> <p>You can annotate function arguments with <code>Snapshot[T]</code> to declare that a snapshot-value can be passed as function argument. <code>Snapshot[T]</code> is a type alias for <code>T</code>, which allows you to pass <code>int</code> values instead of <code>int</code> snapshots.</p> <p>Example:</p> <pre><code>from typing import Optional\\nfrom inline_snapshot import snapshot, Snapshot\\n\\n# required snapshots\\n\\n\\ndef check_in_bounds(value, lower: Snapshot[int], upper: Snapshot[int]):\\n    assert lower &lt;= value &lt;= upper\\n\\n\\ndef test_numbers():\\n    for c in \\\"hello world\\\":\\n        check_in_bounds(ord(c), snapshot(32), snapshot(119))\\n\\n    # use with normal values\\n    check_in_bounds(5, 0, 10)\\n\\n\\n# optional snapshots\\n\\n\\ndef check_container(\\n    value,\\n    *,\\n    value_repr: Optional[Snapshot[str]] = None,\\n    length: Optional[Snapshot[int]] = None\\n):\\n    if value_repr is not None:\\n        assert repr(value) == value_repr\\n\\n    if length is not None:\\n        assert len(value) == length\\n\\n\\ndef test_container():\\n    check_container([1, 2], value_repr=snapshot(\\\"[1, 2]\\\"), length=snapshot(2))\\n\\n    check_container({1, 1}, length=snapshot(1))\\n</code></pre> Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_types.py</code> <pre><code>class Snapshot(Generic[T]):\\n    \\\"\\\"\\\"Can be used to annotate function arguments which accept snapshot\\n    values.\\n\\n    You can annotate function arguments with `Snapshot[T]` to declare that a snapshot-value can be passed as function argument.\\n    `Snapshot[T]` is a type alias for `T`, which allows you to pass `int` values instead of `int` snapshots.\\n\\n\\n    Example:\\n    &lt;!-- inline-snapshot: create fix trim first_block outcome-passed=2 --&gt;\\n    ``` python\\n    from typing import Optional\\n    from inline_snapshot import snapshot, Snapshot\\n\\n    # required snapshots\\n\\n\\n    def check_in_bounds(value, lower: Snapshot[int], upper: Snapshot[int]):\\n        assert lower &lt;= value &lt;= upper\\n\\n\\n    def test_numbers():\\n        for c in \\\"hello world\\\":\\n            check_in_bounds(ord(c), snapshot(32), snapshot(119))\\n\\n        # use with normal values\\n        check_in_bounds(5, 0, 10)\\n\\n\\n    # optional snapshots\\n\\n\\n    def check_container(\\n        value,\\n        *,\\n        value_repr: Optional[Snapshot[str]] = None,\\n        length: Optional[Snapshot[int]] = None\\n    ):\\n        if value_repr is not None:\\n            assert repr(value) == value_repr\\n\\n        if length is not None:\\n            assert len(value) == length\\n\\n\\n    def test_container():\\n        check_container([1, 2], value_repr=snapshot(\\\"[1, 2]\\\"), length=snapshot(2))\\n\\n        check_container({1, 1}, length=snapshot(1))\\n    ```\\n    \\\"\\\"\\\"\\n</code></pre>\",\n+            \"text\": \"<p>Can be used to annotate function arguments which accept snapshot values.</p> <p>You can annotate function arguments with <code>Snapshot[T]</code> to declare that a snapshot-value can be passed as function argument. <code>Snapshot[T]</code> is a type alias for <code>T</code>, which allows you to pass <code>int</code> values instead of <code>int</code> snapshots.</p> <p>Example:</p> <pre><code>from typing import Optional\\nfrom inline_snapshot import snapshot, Snapshot\\n\\n# required snapshots\\n\\n\\ndef check_in_bounds(value, lower: Snapshot[int], upper: Snapshot[int]):\\n    assert lower &lt;= value &lt;= upper\\n\\n\\ndef test_numbers():\\n    for c in \\\"hello world\\\":\\n        check_in_bounds(ord(c), snapshot(32), snapshot(119))\\n\\n    # use with normal values\\n    check_in_bounds(5, 0, 10)\\n\\n\\n# optional snapshots\\n\\n\\ndef check_container(\\n    value,\\n    *,\\n    value_repr: Optional[Snapshot[str]] = None,\\n    length: Optional[Snapshot[int]] = None\\n):\\n    if value_repr is not None:\\n        assert repr(value) == value_repr\\n\\n    if length is not None:\\n        assert len(value) == length\\n\\n\\ndef test_container():\\n    check_container([1, 2], value_repr=snapshot(\\\"[1, 2]\\\"), length=snapshot(2))\\n\\n    check_container({1, 1}, length=snapshot(1))\\n</code></pre> Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_types.py</code> <pre><code>class Snapshot(Generic[T]):\\n    \\\"\\\"\\\"Can be used to annotate function arguments which accept snapshot\\n    values.\\n\\n    You can annotate function arguments with `Snapshot[T]` to declare that a snapshot-value can be passed as function argument.\\n    `Snapshot[T]` is a type alias for `T`, which allows you to pass `int` values instead of `int` snapshots.\\n\\n\\n    Example:\\n    &lt;!-- inline-snapshot: create fix trim first_block outcome-passed=2 --&gt;\\n    ``` python\\n    from typing import Optional\\n    from inline_snapshot import snapshot, Snapshot\\n\\n    # required snapshots\\n\\n\\n    def check_in_bounds(value, lower: Snapshot[int], upper: Snapshot[int]):\\n        assert lower &lt;= value &lt;= upper\\n\\n\\n    def test_numbers():\\n        for c in \\\"hello world\\\":\\n            check_in_bounds(ord(c), snapshot(32), snapshot(119))\\n\\n        # use with normal values\\n        check_in_bounds(5, 0, 10)\\n\\n\\n    # optional snapshots\\n\\n\\n    def check_container(\\n        value,\\n        *,\\n        value_repr: Optional[Snapshot[str]] = None,\\n        length: Optional[Snapshot[int]] = None\\n    ):\\n        if value_repr is not None:\\n            assert repr(value) == value_repr\\n\\n        if length is not None:\\n            assert len(value) == length\\n\\n\\n    def test_container():\\n        check_container([1, 2], value_repr=snapshot(\\\"[1, 2]\\\"), length=snapshot(2))\\n\\n        check_container({1, 1}, length=snapshot(1))\\n    ```\\n    \\\"\\\"\\\"\\n</code></pre>\",\n             \"title\": \"<code>Snapshot</code>\"\n         }\n     ]\n }\n"}]}, {"source1": "./usr/share/doc/python-inline-snapshot-doc/html/types.html", "source2": "./usr/share/doc/python-inline-snapshot-doc/html/types.html", "unified_diff": "@@ -1003,15 +1003,15 @@\n \n \n \n \n \n \n               <details class=\"quote\">\n-                <summary>Source code in <code>.pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/_types.py</code></summary>\n+                <summary>Source code in <code>.pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/_types.py</code></summary>\n                 <div class=\"highlight\"><table class=\"highlighttable\"><tr><td class=\"linenos\"><div class=\"linenodiv\"><pre><span></span><span class=\"normal\"><a href=\"#__codelineno-0-21\">21</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-22\">22</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-23\">23</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-24\">24</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-25\">25</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-26\">26</a></span>\n <span class=\"normal\"><a href=\"#__codelineno-0-27\">27</a></span>\n", "details": [{"source1": "html2text {}", "source2": "html2text {}", "unified_diff": "@@ -78,15 +78,15 @@\n         assert len(value) == length\n \n \n def test_container():\n     check_container([1, 2], value_repr=snapshot(\"[1, 2]\"), length=snapshot(2))\n \n     check_container({1, 1}, length=snapshot(1))\n-Source code in .pybuild/cpython3_3.12_inline-snapshot/build/inline_snapshot/\n+Source code in .pybuild/cpython3_3.13_inline-snapshot/build/inline_snapshot/\n _types.py\n    class Snapshot(Generic[T]):\n _\b2_\b1     \"\"\"Can be used to annotate function arguments which accept snapshot\n _\b2_\b2     values.\n _\b2_\b3\n _\b2_\b4     You can annotate function arguments with `Snapshot[T]` to declare that a\n _\b2_\b5 snapshot-value can be passed as function argument.\n"}]}]}]}]}]}