├── .flake8 ├── .github ├── dependabot.yml └── workflows │ ├── lint.yml │ ├── papyri-lab-build.yml │ └── python-package.yml ├── .gitignore ├── .gitmodules ├── CONTRIBUTING.md ├── LICENSE ├── Readme.md ├── TODO ├── assets ├── astropy.gif ├── inline_graph.png ├── local_graph_zeroes.png ├── papyri-logo 2.png ├── papyri-logo-white-silhouete.png ├── papyri-nav.gif └── vs_math.png ├── codecov.yml ├── docs ├── crossrefs.rst ├── examples │ └── simple_plot.py └── index.rst ├── examples ├── IPython.toml ├── astropy.toml ├── dask.toml ├── distributed.toml ├── gallery1.py ├── img │ ├── astropy_project_logo.svg │ ├── dask-logo.png │ ├── ipython-logo.png │ ├── logo_pandas.png │ ├── matplotlib_logo.png │ ├── numpy_logo.png │ ├── nx.png │ ├── scipy_logo.png │ ├── skimage-logo.png │ └── xarray.png ├── matplotlib.toml ├── networkx.toml ├── numpy.toml ├── pandas.toml ├── papyri.toml ├── scipy.toml ├── skimage.toml └── xarray.toml ├── frontend ├── README.md ├── craco.config.js ├── package.json ├── public │ └── index.html ├── src │ ├── index.css │ ├── index.js │ └── setupTests.js └── webpack.config.js ├── of_interest ├── papyri-lab ├── .copier-answers.yml ├── .github │ └── workflows │ │ ├── check-release.yml │ │ ├── prep-release.yml │ │ └── publish-release.yml ├── .gitignore ├── .prettierignore ├── .yarnrc.yml ├── CHANGELOG.md ├── LICENSE ├── README.md ├── RELEASE.md ├── babel.config.js ├── conftest.py ├── install.json ├── jest.config.js ├── jupyter-config │ └── server-config │ │ └── papyri_lab.json ├── package.json ├── papyri_lab │ ├── __init__.py │ ├── handlers.py │ └── tests │ │ ├── __init__.py │ │ └── test_handlers.py ├── pyproject.toml ├── schema │ └── plugin.json ├── setup.py ├── src │ ├── __tests__ │ │ └── papyri_lab.spec.ts │ ├── handler.ts │ ├── index.tsx │ ├── kernelspy.ts │ ├── papyri-comp.tsx │ └── widgets.tsx ├── style │ ├── app.css │ ├── base.css │ ├── index.css │ ├── index.js │ └── tailwind.css ├── tailwind.config.js ├── tsconfig.json ├── tsconfig.test.json ├── ui-tests │ ├── README.md │ ├── jupyter_server_test_config.py │ ├── package.json │ ├── playwright.config.js │ ├── tests │ │ └── papyri_lab.spec.ts │ └── yarn.lock └── yarn.lock ├── papyri-logo.png ├── papyri ├── __init__.py ├── __main__.py ├── app │ └── static │ │ ├── css │ │ └── main.e6c13ad2.css │ │ └── js │ │ ├── main.27408fde.js │ │ ├── main.27408fde.js.LICENSE.txt │ │ ├── react-syntax-highlighter │ │ └── lowlight-import.28e4165a.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_abnf.05a76338.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_accesslog.32f749c7.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_actionscript.bb38f24a.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_ada.481ce680.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_angelscript.98c5a3f3.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_apache.2bda4313.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_applescript.a85a925c.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_arcade.37c267c4.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_arduino.f37f4cd6.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_armasm.6f4bc87b.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_asciidoc.bfcbf425.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_aspectj.38a88f9f.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_autohotkey.488322bf.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_autoit.e0391fb1.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_avrasm.f9d85792.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_awk.401bf380.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_axapta.ed0ffd71.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_bash.3431dffb.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_basic.11a5bb09.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_bnf.d82143ed.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_brainfuck.ff2a19f8.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_c.de8c4076.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_cLike.3a7b72e9.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_cal.b19a3bea.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_capnproto.2da1bfd7.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_ceylon.097bcbb4.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_clean.7e2ace20.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_clojure.6b19fe1b.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_clojureRepl.fee2ecf3.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_cmake.fbc00b52.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_coffeescript.f7e5d130.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_coq.fea38f24.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_cos.c90a95c2.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_cpp.72bb40da.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_crmsh.a711828b.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_crystal.d76f8949.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_csharp.f956bcbc.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_csp.7d9d74fc.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_css.4d9a3b0a.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_d.53729672.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_dart.359c2f33.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_delphi.a0b95219.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_diff.80e1515e.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_django.c419cc28.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_dns.04d0d849.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_dockerfile.70aa854a.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_dos.fb0c25a6.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_dsconfig.e5507c1d.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_dts.661e4edb.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_dust.1cd11d28.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_ebnf.554e3c89.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_elixir.33629c57.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_elm.dde0c6f2.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_erb.59785893.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_erlang.28081647.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_erlangRepl.458f6dfd.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_excel.319afc83.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_fix.f41ae848.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_flix.6a14737f.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_fortran.c75e6426.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_fsharp.c9d38c2c.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_gams.5705df03.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_gauss.77bf390e.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_gcode.981fe2a0.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_gherkin.1e7c8975.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_glsl.0c2c0f95.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_gml.025842c4.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_go.803920b3.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_golo.e54d49b7.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_gradle.e4349b6d.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_groovy.a55d9da7.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_haml.6b37b8bf.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_handlebars.4fd9eebb.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_haskell.0681876f.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_haxe.6c2bb1c6.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_hsp.ee45182c.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_htmlbars.57aed14b.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_http.6d5ef38c.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_hy.0dbde1fb.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_inform7.945e3d94.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_ini.a8345944.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_irpf90.513b5683.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_isbl.37a2fcf4.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_java.89223ad9.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_javascript.615ff11f.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_jbossCli.0c636aac.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_json.2b5591d4.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_julia.c6382cee.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_juliaRepl.929db8ed.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_kotlin.aa4cb04d.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_lasso.8ddd84da.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_latex.a58280da.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_ldif.bb2432a2.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_leaf.fb60694e.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_less.688c21fd.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_lisp.ae312241.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_livecodeserver.b4e9709a.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_livescript.591fd028.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_llvm.bbc904df.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_lsl.ed3ce864.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_lua.c97203bb.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_makefile.75b416d5.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_markdown.b1862e6c.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_mathematica.caf10a39.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_matlab.1b4a7780.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_maxima.626e79e2.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_mel.ebd43aa7.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_mercury.ce858630.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_mipsasm.570eb00f.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_mizar.299411a6.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_mojolicious.91daedf6.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_monkey.4c780385.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_moonscript.7475f1dd.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_n1ql.5cf80507.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_nginx.57ff5510.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_nim.5773cb9c.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_nix.18d1ed0f.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_nodeRepl.5b2afe18.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_nsis.ef9d4ce5.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_objectivec.c6741304.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_ocaml.03443415.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_oneC.ea1636d7.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_openscad.8b4b4de9.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_oxygene.779de870.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_parser3.7a220733.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_perl.468f28d5.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_pf.58cf62aa.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_pgsql.c335da74.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_php.b8df94d0.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_phpTemplate.655b7b7b.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_plaintext.63506c87.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_pony.9aaa8c4e.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_powershell.544fad5d.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_processing.1b48c6fe.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_profile.85801a58.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_prolog.08ead49c.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_properties.02f0d3dc.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_protobuf.509fb15f.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_puppet.65299a98.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_purebasic.b4664a7f.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_python.bb4d479c.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_pythonRepl.a4384cad.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_q.b901fb64.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_qml.f83933ad.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_r.3e533a15.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_reasonml.8ed3bbda.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_rib.20ec1216.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_roboconf.dd37e900.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_routeros.2c151751.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_rsl.2775bd4c.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_ruby.d4078499.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_ruleslanguage.fd047883.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_rust.c255d233.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_sas.c18c6f1a.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_scala.be672113.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_scheme.c0925bc2.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_scilab.cd86565d.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_scss.4aa8ac5d.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_shell.7530ec41.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_smali.5319652e.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_smalltalk.fc9ada73.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_sml.79ba2214.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_sqf.1fbca842.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_sql.86dbabd9.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_sqlMore.b7ab7197.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_stan.94605f92.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_stata.f9391b76.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_step21.ff53092d.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_stylus.cce554ed.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_subunit.7e547849.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_swift.e059cbb4.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_taggerscript.98554592.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_tap.0ab5c0b8.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_tcl.a75258c9.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_thrift.734200a7.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_tp.e4863681.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_twig.60629699.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_typescript.60aeb3b3.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_vala.eb8e227e.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_vbnet.c204f922.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_vbscript.01d12d0b.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_vbscriptHtml.5fb6a1e4.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_verilog.af33f882.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_vhdl.3f6dcadf.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_vim.16e170aa.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_x86asm.c8f4e922.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_xl.6c6adc19.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_xml.50111671.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_xquery.06cf698d.chunk.js │ │ ├── react-syntax-highlighter_languages_highlight_yaml.7ef5360b.chunk.js │ │ └── react-syntax-highlighter_languages_highlight_zephir.6431d59e.chunk.js ├── browser.py ├── common_ast.py ├── config.py ├── core.py ├── crosslink.py ├── directives.py ├── errors.py ├── examples.py ├── gen.py ├── graphstore.py ├── ipython.py ├── jlab.py ├── miniserde.py ├── miscs.py ├── myst_ast.py ├── myst_serialiser.py ├── py.types ├── render.py ├── rich_render.py ├── signature.py ├── static │ ├── MathJax.js │ ├── extensions │ │ ├── MathMenu.js │ │ ├── MathZoom.js │ │ └── tex2jax.js │ ├── fa │ │ └── fontawesome.css │ ├── favicon.ico │ ├── graph_canvas.js │ ├── graph_svg.js │ ├── jax │ │ ├── input │ │ │ └── TeX │ │ │ │ └── config.js │ │ └── output │ │ │ └── HTML-CSS │ │ │ └── config.js │ ├── myst.css │ ├── myst.js │ ├── new.css │ ├── papyri-logo.png │ ├── papyri.css │ ├── papyri.tcss │ └── webfonts │ │ ├── fa-solid-900.ttf │ │ ├── fa-solid-900.woff │ │ └── fa-solid-900.woff2 ├── take2.py ├── templates │ ├── 404.tpl.j2 │ ├── examples.tpl.j2 │ ├── gallery.tpl.j2 │ ├── graph.tpl.j2 │ ├── head.tpl.j2 │ ├── html.tpl.j2 │ ├── index.tpl.j2 │ ├── macros.tpl.j2 │ ├── root.tpl.j2 │ ├── skeleton.tpl.j2 │ ├── toctree.tpl.j2 │ └── virtual.j2 ├── tests │ ├── __init__.py │ ├── corpus │ │ ├── no-space-parenthesis.expected.txt │ │ ├── no-space-parenthesis.sample.txt │ │ ├── test.expected.txt │ │ └── test.sample.txt │ ├── expected │ │ ├── numpy:einsum.expected │ │ ├── numpy:linspace.expected │ │ ├── papyri.examples.expected │ │ ├── papyri.examples:annotation_with_hex_addresses.expected │ │ └── papyri.examples:example1.expected │ ├── test_ascii_expected.py │ ├── test_corpus.py │ ├── test_error_collector.py │ ├── test_full_render.py │ ├── test_gen.py │ ├── test_parse.py │ ├── test_signatures.py │ ├── test_take2.py │ └── utils.py ├── textual.py ├── toc.py ├── tree.py ├── ts.py ├── utils.py └── vref.py ├── pyproject.toml ├── requirements-dev.txt ├── requirements.txt └── tools └── vendor_scripts.sh /.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | # References: 3 | # https://flake8.readthedocs.io/en/latest/user/configuration.html 4 | # https://flake8.readthedocs.io/en/latest/user/error-codes.html 5 | # https://pycodestyle.pycqa.org/en/latest/intro.html#error-codes 6 | exclude = node_modules,jupyter_server_test_config.py 7 | ignore = 8 | # bug bear assert False 9 | B011, 10 | # Extra space in brackets 11 | E20, 12 | # Multiple spaces around "," 13 | E231,E241, 14 | # Comments 15 | E26, 16 | # too many black lines 17 | E303, 18 | # Import formatting 19 | E4, 20 | # Comparing types instead of isinstance 21 | E721, 22 | # Assigning lambda expression 23 | E731, 24 | # Ambiguous variable names 25 | E741, 26 | # line break before binary operator 27 | W503, 28 | # line break after binary operator 29 | W504, 30 | # redefinition of unused 'loop' from line 10 31 | F811, 32 | max-line-length = 120 33 | max-complexity = 50 34 | 35 | 36 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # To get started with Dependabot version updates, you'll need to specify which 2 | # package ecosystems to update and where the package manifests are located. 3 | # Please see the documentation for all configuration options: 4 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 5 | 6 | version: 2 7 | updates: 8 | - package-ecosystem: "pip" # See documentation for possible values 9 | directory: "/" # Location of package manifests 10 | schedule: 11 | interval: "weekly" 12 | -------------------------------------------------------------------------------- /.github/workflows/lint.yml: -------------------------------------------------------------------------------- 1 | # This workflow will install Python dependencies, run tests and lint with a variety of Python versions 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions 3 | 4 | name: Linters 5 | 6 | on: 7 | push: 8 | branches: [ main ] 9 | pull_request: 10 | branches: [ main ] 11 | workflow_dispatch: 12 | inputs: 13 | name: 14 | description: 'Reason' 15 | required: false 16 | default: 'Just Cause' 17 | 18 | jobs: 19 | build: 20 | 21 | runs-on: ubuntu-latest 22 | strategy: 23 | matrix: 24 | python-version: [3.11] 25 | 26 | steps: 27 | - uses: actions/checkout@v4 28 | - name: Set up Python ${{ matrix.python-version }} 29 | uses: actions/setup-python@v3 30 | with: 31 | python-version: ${{ matrix.python-version }} 32 | cache: 'pip' 33 | - name: Install dependencies 34 | run: | 35 | python -m pip install --upgrade pip 36 | pip install -r requirements-dev.txt 37 | flit install --symlink 38 | - name: dependency tree 39 | run: | 40 | pipdeptree 41 | - name: dependency tree (reversed) 42 | run: | 43 | pipdeptree -r 44 | - name: Lint with black 45 | run: | 46 | black --check papyri 47 | - name: Lint with flake8 48 | if: always() 49 | run: | 50 | flake8 papyri 51 | - name: Test with mypy 52 | if: always() 53 | run: | 54 | python3 -m pip install types-requests types-cachetools types-toml 55 | mypy papyri 56 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | .pytest_cache/ 3 | papyri/rst.so 4 | cache 5 | htmlcov 6 | .hypothesis 7 | .coverage 8 | html 9 | build 10 | *.lprof 11 | test.dat 12 | test.npy 13 | test.out 14 | node_modules 15 | *.js.map 16 | 17 | papyri/app/asset-manifest.json 18 | papyri/app/index.html 19 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "tree-sitter-rst"] 2 | path = tree-sitter-rst 3 | url = https://github.com/stsewd/tree-sitter-rst.git 4 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to contribute 2 | 3 | Currently most of the community organisation is in issue #1. 4 | Subscribe to it for more news. 5 | 6 | # Try and complain 7 | 8 | The repository is still in it's early stage and might not be usable unless you 9 | like figuring things out. Nothing is in it's final form and if something is 10 | weird it likely need to be fixed. 11 | 12 | First things is to try to follow instructions in the readme and open issues if 13 | something is incorrect or hard to understand. 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2020 Matthias Bussonnier 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /TODO: -------------------------------------------------------------------------------- 1 | - check parsing of IPython.lib.display.audio to make sure bullet list in parameters are ok. 2 | - numpy.core.shape_base._concatenate_shapes might not be complete. 3 | - numpy.errstate seem to have fields alternating between "numpy._ErrDict" and "numpy.dict", 4 | - numpy.histogram_bin_edges has a block math in _content.Notes.children.2.children.0.dd 5 | - numpy.histogram_bin_edges has math not rendered. 6 | - `numpy.core.shape_base._concatenate_shapes` improperly parse 7 | - Issues with `scipy.sparse.data._create_method..method` that likely get conflicting canonical name with another 8 | function tan/float 9 | -------------------------------------------------------------------------------- /assets/astropy.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/assets/astropy.gif -------------------------------------------------------------------------------- /assets/inline_graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/assets/inline_graph.png -------------------------------------------------------------------------------- /assets/local_graph_zeroes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/assets/local_graph_zeroes.png -------------------------------------------------------------------------------- /assets/papyri-logo 2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/assets/papyri-logo 2.png -------------------------------------------------------------------------------- /assets/papyri-logo-white-silhouete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/assets/papyri-logo-white-silhouete.png -------------------------------------------------------------------------------- /assets/papyri-nav.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/assets/papyri-nav.gif -------------------------------------------------------------------------------- /assets/vs_math.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/assets/vs_math.png -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- 1 | coverage: 2 | status: 3 | patch: off 4 | project: 5 | default: false 6 | library: 7 | target: auto 8 | paths: ['!.*/tests/.*'] 9 | threshold: 0.1% 10 | tests: 11 | target: auto 12 | paths: ['.*/tests/.*'] 13 | threshold: 0.1% 14 | codecov: 15 | require_ci_to_pass: false 16 | comment: false 17 | -------------------------------------------------------------------------------- /docs/crossrefs.rst: -------------------------------------------------------------------------------- 1 | .. _crossrefs: 2 | 3 | Crossrefs 4 | ========= 5 | 6 | This page is used to test crossrefs. 7 | You can go back to the :ref:`Index ` 8 | -------------------------------------------------------------------------------- /docs/examples/simple_plot.py: -------------------------------------------------------------------------------- 1 | import matplotlib.pyplot as plt 2 | import numpy as np 3 | 4 | 5 | fig, ax = plt.subplots() 6 | 7 | x = np.arange(0, 10, 0.1) - 5 8 | y = np.sin(x) 9 | 10 | ax.plot(x, y) 11 | ax.plot(y, x) 12 | -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- 1 | .. _index: 2 | 3 | Papyri 4 | ====== 5 | 6 | 7 | .. toctree:: 8 | 9 | crossrefs 10 | 11 | Welcome to Papyri narrative docs. 12 | 13 | This show that papyri can support narrative docs as well as API docs, 14 | though for the time being API docs are better supported. 15 | 16 | If you find issues feel free to `Open and issue on GitHub `__. 17 | 18 | If you are working only on API docs, you can use ``papyri gen --no-api``, to skip the API generation 19 | part. Though be aware that some of the cross linking features will not work. 20 | 21 | .. _examples: 22 | 23 | Examples 24 | -------- 25 | 26 | These are examples of various RST constructs, mostly as a visual test they render 27 | correctly (or not yet). 28 | 29 | 30 | Lists 31 | ----- 32 | 33 | Enumerated lists 34 | ~~~~~~~~~~~~~~~~ 35 | 36 | 1. item 1 37 | 2. item 2 38 | 2. item 3 39 | 40 | 41 | 42 | Bullet Lists 43 | ~~~~~~~~~~~~ 44 | 45 | - Item 46 | - other item 47 | - another one 48 | 49 | 50 | Headers 51 | ------- 52 | 53 | Header 3 54 | ~~~~~~~~ 55 | 56 | Header 4 57 | ^^^^^^^^ 58 | 59 | Header 5 60 | ```````` 61 | 62 | 63 | Directives 64 | ----------- 65 | 66 | Note that directive are not a thing in themselves, and convert to other kind of nodes, 67 | when they are not understood they are currently rendered raw, but will be an error 68 | 69 | 70 | 71 | .. warning:: no title 72 | 73 | This is a warning 74 | 75 | .. versionadded:: 1.2.3 76 | 77 | This was added in version 1.2.3 78 | 79 | .. versionchanged:: 1.2.3 80 | 81 | This was changed in version 1.2.3 82 | 83 | You can now do:: 84 | 85 | >>> This 86 | 87 | Also: 88 | 89 | - That 90 | - Or this 91 | - Or that. 92 | 93 | 94 | 95 | .. currentmodule:: not handled 96 | 97 | .. seealso:: not handled 98 | 99 | .. highlight:: not handled 100 | 101 | .. code:: 102 | 103 | Code block (to be done) 104 | 105 | 106 | This will be math 107 | 108 | 109 | .. math:: 110 | 111 | \int_0^\infty f(x) dx 112 | 113 | -------------------------------------------------------------------------------- /examples/IPython.toml: -------------------------------------------------------------------------------- 1 | [global] 2 | module = 'IPython' 3 | logo = "img/ipython-logo.png" 4 | exec_failure = "fallback" 5 | docs_path = "~/dev/IPython/docs/source" 6 | execute_doctests = true 7 | execute_exclude_patterns = [ 8 | 'IPython.lib.display:Audio', 9 | 'IPython.core.display_functions:display' 10 | ] 11 | exclude = [] 12 | [global.expected_errors] 13 | IncorrectInternalDocsLen = [ 14 | "IPython.core.magics.namespace:NamespaceMagics.xdel", 15 | ] 16 | [global.implied_imports] 17 | get_ipython = 'IPython:get_ipython' 18 | 19 | 20 | [meta] 21 | github_slug = 'IPython/IPython' 22 | tag = '8.2.0' 23 | pypi = 'ipython' 24 | homepage = 'https://ipython.org/' 25 | docspage = 'https://ipython.readthedocs.org/' 26 | -------------------------------------------------------------------------------- /examples/astropy.toml: -------------------------------------------------------------------------------- 1 | [global] 2 | module = 'astropy' 3 | logo = "img/astropy_project_logo.svg" 4 | exclude = [ 5 | # VisitTargetNotImplementedError 6 | "astropy.utils.data:download_file", 7 | #"ExecError-": [ 8 | "astropy.utils.introspection:find_current_module", 9 | "astropy.utils.misc:NumpyRNGContext", 10 | "astropy.utils.decorators:classproperty", 11 | "astropy.utils.decorators:deprecated_renamed_argument", 12 | "astropy.utils.decorators:format_doc", 13 | "astropy.logger:AstropyLogger.log_to_file", 14 | "astropy.logger:AstropyLogger.log_to_list", 15 | "astropy.tests.runner:TestRunnerBase", 16 | "astropy.utils.compat.misc:override__dir__", 17 | "astropy.utils.data:get_pkg_data_filename", 18 | "astropy.utils.data:get_pkg_data_filenames", 19 | "astropy.utils.data:get_pkg_data_fileobj", 20 | "astropy.utils.data:get_pkg_data_fileobjs", 21 | # tree sitter don't like the " `Cards`s 22 | "astropy.io.fits.hdu.base:_CorruptedHDU", 23 | "astropy.extern.configobj.validate:Validator.check", 24 | ] 25 | submodules = [ "io", "io.fits",] 26 | -------------------------------------------------------------------------------- /examples/dask.toml: -------------------------------------------------------------------------------- 1 | [global] 2 | module = 'dask' 3 | logo = "img/dask-logo.png" 4 | submodules = ["array"] 5 | exclude = [ "dask.utils:Dispatch", 6 | # numpydoc parse error 7 | 'dask.typing:_NoDefault', 8 | # target not implemented 9 | 'dask.highlevelgraph:HighLevelGraph.visualize', 10 | 'dask.array.overlap:map_overlap', 11 | # AssertionError : Serialisation proble 12 | "dask.array.routines:matmul", 13 | "dask.array.routines:rot90", 14 | # visit_target not implemented 15 | "dask.array.reshape:reshape", 16 | "dask.array.tiledb_io:to_tiledb", 17 | # visit_comment not implemented 18 | "dask.array.routines:unique", 19 | # misc aseert 20 | "dask.base:replace_name_in_key", 21 | #"ExecError-": [ 22 | "dask.array.core:to_npy_stack", 23 | #"NumpydocError-": [ 24 | "dask.array.slicing:slice_array", 25 | # unbalanced backticks, 26 | # need fix in numpy 27 | "dask.array.ufunc:frexp", # https://github.com/numpy/numpy/pull/21020 28 | # imbalanced backticks, need dask fix. https://github.com/dask/dask/pull/8693 29 | "dask.array.reductions:cumreduction", 30 | # "ErrorHelper1-": [ 31 | "dask.array.routines:tensordot", 32 | "dask.utils:tensordot", 33 | "dask.array.slicing:replace_ellipsis", 34 | "dask.array.overlap:sliding_window_view", 35 | "dask.array.overlap:ensure_minimum_chunksize", 36 | "dask.array.overlap:overlap", 37 | "dask.array.overlap:sliding_window_view" 38 | ] 39 | 40 | 41 | #docs_path = "~/dev/dask/docs/source" 42 | exec_failure = 'fallback' 43 | execute_doctests = false 44 | -------------------------------------------------------------------------------- /examples/distributed.toml: -------------------------------------------------------------------------------- 1 | [global] 2 | module = 'distributed' 3 | logo = "img/dask-logo.png" 4 | exclude = [ 5 | # misc 6 | "distributed.worker:Worker", 7 | "distributed.client:get_task_stream", 8 | "distributed.batched:BatchedSend", 9 | # imbalanced backticks https://github.com/dask/distributed/pull/5784 10 | "distributed.utils_comm:retry", 11 | "distributed._concurrent_futures_thread:ThreadPoolExecutor.__init__", 12 | #"ErrorHelper1-": [ 13 | "distributed.protocol.core:dumps", 14 | "distributed.diagnostics.progress:MultiProgress", 15 | "distributed.diagnostics.progress:Progress", 16 | "distributed.shuffle._disk:DiskShardsBuffer", 17 | "distributed.shuffle._comms:CommShardsBuffer", 18 | ] #docs_path = "~/dev/dask/docs/source" 19 | exec_failure = 'fallback' 20 | execute_doctests = false 21 | 22 | [global.expected_errors] 23 | NumpydocParseError = [ 24 | "distributed.client:default_client", 25 | "distributed.utils:offload", 26 | "distributed.metrics:ContextMeter", 27 | "distributed.utils:run_in_executor_with_context", 28 | ] 29 | -------------------------------------------------------------------------------- /examples/gallery1.py: -------------------------------------------------------------------------------- 1 | import matplotlib.pyplot as plt 2 | import numpy as np 3 | 4 | 5 | fig, ax = plt.subplots() 6 | x = np.arange(0, 10, 0.1) 7 | ax.plot(x, np.sin(x)) 8 | ax.plot(x, np.cos(x)) 9 | -------------------------------------------------------------------------------- /examples/img/dask-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/examples/img/dask-logo.png -------------------------------------------------------------------------------- /examples/img/ipython-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/examples/img/ipython-logo.png -------------------------------------------------------------------------------- /examples/img/logo_pandas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/examples/img/logo_pandas.png -------------------------------------------------------------------------------- /examples/img/matplotlib_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/examples/img/matplotlib_logo.png -------------------------------------------------------------------------------- /examples/img/numpy_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/examples/img/numpy_logo.png -------------------------------------------------------------------------------- /examples/img/nx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/examples/img/nx.png -------------------------------------------------------------------------------- /examples/img/scipy_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/examples/img/scipy_logo.png -------------------------------------------------------------------------------- /examples/img/skimage-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/examples/img/skimage-logo.png -------------------------------------------------------------------------------- /examples/img/xarray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/examples/img/xarray.png -------------------------------------------------------------------------------- /examples/networkx.toml: -------------------------------------------------------------------------------- 1 | [global] 2 | module = 'networkx' 3 | execute_exclude_patterns = [] 4 | 5 | submodules = [] 6 | 7 | # docs_path = '~/dev/numpy/doc/source' 8 | 9 | execute_doctests = true 10 | exclude_jedi = ['networkx.algorithms.planarity.PlanarEmbedding'] 11 | exec_failure = 'fallback' 12 | source = 'https://github.com/networkx/networkx' 13 | exclude = [ 14 | ] 15 | logo = './img/nx.png' 16 | [meta] 17 | github_slug = 'networkx/networkx' 18 | tag = 'networkx-2.7.1' 19 | pypi = 'networkx' 20 | homepage = 'https://networkx.org/' 21 | docspage = 'https://networkx.org/documentation/stable/' 22 | [global.implied_imports] 23 | nx = 'networkx' 24 | it = 'itertools' 25 | 26 | [global.expected_errors] 27 | VisitCitationReferenceNotImplementedError = [ 28 | "networkx.algorithms.distance_measures:barycenter", 29 | "networkx.generators.atlas:graph_atlas_g", 30 | "networkx.algorithms.graphical:is_graphical", 31 | "networkx.algorithms.graphical:is_valid_degree_sequence_erdos_gallai", 32 | "networkx.algorithms.graphical:is_valid_degree_sequence_havel_hakimi", 33 | ] 34 | WrongTypeAtField = [ 35 | "networkx.generators.geometric:geographical_threshold_graph", 36 | "networkx.generators.geometric:waxman_graph", 37 | "networkx.algorithms.cycles:_johnson_cycle_search", 38 | ] 39 | IncorrectInternalDocsLen = [ 40 | "networkx.algorithms.community.louvain:louvain_communities", 41 | ] 42 | -------------------------------------------------------------------------------- /examples/pandas.toml: -------------------------------------------------------------------------------- 1 | [global] 2 | module = 'pandas' 3 | logo = 'img/logo_pandas.png' 4 | exec_failure = "fallback" 5 | submodules = [] 6 | exclude = ["" 7 | ] 8 | execute_doctests = false 9 | [pandas.expected_errors] 10 | IncorrectInternalDocsLen = [ 11 | "pandas.core.indexes.period:PeriodIndex.asof_locs", 12 | "pandas.core.indexes.range:RangeIndex._extended_gcd", 13 | "pandas.core.missing:_rolling_window", 14 | "pandas.io.html:_HtmlFrameParser", 15 | "pandas.io.stata:_dtype_to_default_stata_fmt", 16 | "pandas.io.pytables:Selection.generate", 17 | "pandas.core.internals.managers:BaseBlockManager.take", 18 | ] 19 | NumpydocParseError = [ 20 | "pandas._config.config:CallableDynamicDoc", 21 | "pandas._libs.properties:AxisProperty", 22 | "pandas._libs.properties:CachedProperty", 23 | "pandas.core.arraylike:array_ufunc", 24 | "pandas.core.arraylike:array_ufunc", 25 | "pandas.core.generic:NDFrame.isna", 26 | "pandas.core.generic:NDFrame.isnull", 27 | "pandas.core.generic:NDFrame.notna", 28 | "pandas.core.generic:NDFrame.notnull", 29 | "pandas.core.generic:NDFrame.replace", 30 | "pandas.core.generic:NDFrame.set_axis", 31 | "pandas.io.pytables:Table", 32 | ] 33 | AssertionError = [ 34 | "pandas.core.apply:_make_unique_kwarg_list", 35 | "pandas.core.apply:relabel_result", 36 | ] 37 | ValueError = [ 38 | "pandas.io.gbq:read_gbq", 39 | ] 40 | WrongTypeAtField = [ 41 | "pandas.io.gbq:read_gbq", 42 | "pandas.io.pickle:to_pickle", 43 | "pandas.core.frame:DataFrame.to_gbq", 44 | "pandas.core.resample:Resampler.interpolate", 45 | "pandas.core.generic:NDFrame.to_pickle", 46 | ] 47 | 48 | [global.implied_imports] 49 | pd = 'pandas' 50 | -------------------------------------------------------------------------------- /examples/papyri.toml: -------------------------------------------------------------------------------- 1 | [global] 2 | module = 'papyri' 3 | submodules = ['examples'] 4 | examples_folder = '~/dev/papyri/docs/examples/' 5 | logo = "../papyri-logo.png" 6 | docs_path = "~/dev/papyri/docs" 7 | execute_doctests = true 8 | exec_failure = 'raise' 9 | exclude= ["papyri.utils:FullQual","papyri.utils:Cannonical" ] 10 | [global.directives] 11 | mydirective='papyri.examples:_mydirective_handler' 12 | 13 | 14 | [meta] 15 | github_slug = 'jupyter/papyri' 16 | tag = '{{version}}' 17 | pypi = 'papyri' 18 | -------------------------------------------------------------------------------- /examples/skimage.toml: -------------------------------------------------------------------------------- 1 | [global] 2 | module = 'skimage' 3 | logo = "img/skimage-logo.png" 4 | exec_failure = "fallback" 5 | submodules = [ "morphology", "color", "data", "draw", "exposure", "io", "graph", "segmentation", "transform", "util"] 6 | exclude = [ 7 | ] 8 | exclude_jedi = ['skimage.viewer.plugins.base.Plugin'] 9 | [global.expected_errors] 10 | WrongTypeAtField = [ 11 | "skimage.morphology._skeletonize:medial_axis", 12 | ] 13 | VisitCitationReferenceNotImplementedError = [ 14 | "skimage.morphology._skeletonize:skeletonize", 15 | "skimage.morphology._skeletonize:skeletonize_3d", 16 | "skimage.morphology._skeletonize:skeletonize_2d", 17 | "skimage.morphology._skeletonize_3d_cy", 18 | ] 19 | -------------------------------------------------------------------------------- /examples/xarray.toml: -------------------------------------------------------------------------------- 1 | [global] 2 | module = 'xarray' 3 | execute_exclude_patterns = [] 4 | 5 | submodules = [] 6 | 7 | 8 | execute_doctests = true 9 | exclude = [ 10 | ] 11 | exec_failure = 'fallback' 12 | source = 'https://github.com/pydata/xarray' 13 | logo = './img/xarray.png' 14 | early_error = false 15 | 16 | [meta] 17 | github_slug = 'pydata/xarray' 18 | tag = '2022.3.0' 19 | pypi = 'xarray' 20 | homepage = 'https://docs.xarray.dev/' 21 | docs = 'https://docs.xarray.dev/en/stable/' 22 | 23 | [global.implied_imports] 24 | xr = 'xarray' 25 | pd = 'pandas' 26 | 27 | 28 | [global.expected_errors] 29 | AssertionError = [ 30 | "xarray.core.dataarray:DataArray.drop_vars", 31 | "xarray.core.dataarray:DataArray.convert_calendar", 32 | "xarray.core.dataset:Dataset.convert_calendar", 33 | ] 34 | -------------------------------------------------------------------------------- /frontend/README.md: -------------------------------------------------------------------------------- 1 | # attempt to build a JS rendered based on Myst for papyri. 2 | 3 | ``` 4 | $ npm run build 5 | ``` 6 | 7 | Should put the js/css artifacts in ./build/static/ 8 | 9 | -------------------------------------------------------------------------------- /frontend/craco.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | webpack: { 3 | configure: { 4 | module: { 5 | rules: [ 6 | { 7 | test: /\.m?js$/, 8 | resolve: { 9 | fullySpecified: false, 10 | }, 11 | }, 12 | ], 13 | }, 14 | }, 15 | }, 16 | }; 17 | -------------------------------------------------------------------------------- /frontend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "papyri-frontend", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@testing-library/jest-dom": "^5.17.0", 7 | "@testing-library/react": "^13.4.0", 8 | "@testing-library/user-event": "^13.5.0", 9 | "mdast-util-from-markdown": "^2.0.0", 10 | "myst-to-react": "^0.5.17", 11 | "prettier": "^3.0.3", 12 | "react": "^18.2.0", 13 | "react-dom": "^18.2.0", 14 | "react-scripts": "5.0.1", 15 | "unist-util-visit": "^5.0.0", 16 | "web-vitals": "^2.1.4" 17 | }, 18 | "scripts": { 19 | "start": "craco start", 20 | "build": "BUILD_PATH='../papyri/app/' craco build", 21 | "test": "craco test", 22 | "eject": "react-scripts eject" 23 | }, 24 | "eslintConfig": { 25 | "extends": [ 26 | "react-app", 27 | "react-app/jest" 28 | ] 29 | }, 30 | "browserslist": { 31 | "production": [ 32 | ">0.2%", 33 | "not dead", 34 | "not op_mini all" 35 | ], 36 | "development": [ 37 | "last 1 chrome version", 38 | "last 1 firefox version", 39 | "last 1 safari version" 40 | ] 41 | }, 42 | "devDependencies": { 43 | "@craco/craco": "^7.1.0" 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /frontend/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /frontend/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /frontend/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /frontend/webpack.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | output: { 3 | filename: 'your-custom-name.js', // Set your custom output filename here 4 | }, 5 | }; 6 | -------------------------------------------------------------------------------- /of_interest: -------------------------------------------------------------------------------- 1 | dask.delayed.delayed : multi paragraph in one parameter. 2 | IPython.core.display.Video.__init__: Block Verbatim in params ? 3 | IPython.core.interactiveshell.InteractiveShell.complete: DefListItem 4 | matplotlib.transforms.Bbox: parsing of example is completely incorrect. 5 | matplotlib.axes._axes.Axes.text: misparse example as well. 6 | IPython.core.completer.Completion: item list 7 | matplotlib.figure.Figure.add_subplot: custom double dot example. 8 | matplotlib.colors: unnumbered list with indent. 9 | matplotlib.colors: reference via `.. _palettable: value` and autolink `paletable_` 10 | numpy.npv: hase warning sections. 11 | scipy.signal.ltisys.bode: multiple figure 12 | scipy.signal.barthann: multiple figures 13 | -------------------------------------------------------------------------------- /papyri-lab/.copier-answers.yml: -------------------------------------------------------------------------------- 1 | # Changes here will be overwritten by Copier; NEVER EDIT MANUALLY 2 | _commit: v4.2.4 3 | _src_path: https://github.com/jupyterlab/extension-template 4 | author_email: bussonniermatthias@gmail.com 5 | author_name: Matthias Bussonnier 6 | data_format: string 7 | file_extension: '' 8 | has_binder: false 9 | has_settings: true 10 | kind: frontend 11 | labextension_name: papyri-lab 12 | mimetype: '' 13 | mimetype_name: '' 14 | project_short_description: A JupyterLab extension for papyri 15 | python_name: papyri_lab 16 | repository: https://github.com/jupyter/papyri 17 | test: true 18 | viewer_name: '' 19 | 20 | -------------------------------------------------------------------------------- /papyri-lab/.github/workflows/check-release.yml: -------------------------------------------------------------------------------- 1 | name: Check Release 2 | on: 3 | push: 4 | branches: ["main"] 5 | pull_request: 6 | branches: ["*"] 7 | 8 | jobs: 9 | check_release: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - name: Checkout 13 | uses: actions/checkout@v3 14 | - name: Base Setup 15 | uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 16 | - name: Check Release 17 | uses: jupyter-server/jupyter_releaser/.github/actions/check-release@v2 18 | with: 19 | 20 | token: ${{ secrets.GITHUB_TOKEN }} 21 | 22 | - name: Upload Distributions 23 | uses: actions/upload-artifact@v3 24 | with: 25 | name: papyri_lab-releaser-dist-${{ github.run_number }} 26 | path: .jupyter_releaser_checkout/dist 27 | -------------------------------------------------------------------------------- /papyri-lab/.github/workflows/prep-release.yml: -------------------------------------------------------------------------------- 1 | name: "Step 1: Prep Release" 2 | on: 3 | workflow_dispatch: 4 | inputs: 5 | version_spec: 6 | description: "New Version Specifier" 7 | default: "next" 8 | required: false 9 | branch: 10 | description: "The branch to target" 11 | required: false 12 | post_version_spec: 13 | description: "Post Version Specifier" 14 | required: false 15 | since: 16 | description: "Use PRs with activity since this date or git reference" 17 | required: false 18 | since_last_stable: 19 | description: "Use PRs with activity since the last stable git tag" 20 | required: false 21 | type: boolean 22 | jobs: 23 | prep_release: 24 | runs-on: ubuntu-latest 25 | steps: 26 | - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 27 | 28 | - name: Prep Release 29 | id: prep-release 30 | uses: jupyter-server/jupyter_releaser/.github/actions/prep-release@v2 31 | with: 32 | token: ${{ secrets.ADMIN_GITHUB_TOKEN }} 33 | version_spec: ${{ github.event.inputs.version_spec }} 34 | post_version_spec: ${{ github.event.inputs.post_version_spec }} 35 | branch: ${{ github.event.inputs.branch }} 36 | since: ${{ github.event.inputs.since }} 37 | since_last_stable: ${{ github.event.inputs.since_last_stable }} 38 | 39 | - name: "** Next Step **" 40 | run: | 41 | echo "Optional): Review Draft Release: ${{ steps.prep-release.outputs.release_url }}" 42 | -------------------------------------------------------------------------------- /papyri-lab/.github/workflows/publish-release.yml: -------------------------------------------------------------------------------- 1 | name: "Step 2: Publish Release" 2 | on: 3 | workflow_dispatch: 4 | inputs: 5 | branch: 6 | description: "The target branch" 7 | required: false 8 | release_url: 9 | description: "The URL of the draft GitHub release" 10 | required: false 11 | steps_to_skip: 12 | description: "Comma separated list of steps to skip" 13 | required: false 14 | 15 | jobs: 16 | publish_release: 17 | runs-on: ubuntu-latest 18 | permissions: 19 | # This is useful if you want to use PyPI trusted publisher 20 | # and NPM provenance 21 | id-token: write 22 | steps: 23 | - uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 24 | 25 | - name: Populate Release 26 | id: populate-release 27 | uses: jupyter-server/jupyter_releaser/.github/actions/populate-release@v2 28 | with: 29 | token: ${{ secrets.ADMIN_GITHUB_TOKEN }} 30 | branch: ${{ github.event.inputs.branch }} 31 | release_url: ${{ github.event.inputs.release_url }} 32 | steps_to_skip: ${{ github.event.inputs.steps_to_skip }} 33 | 34 | - name: Finalize Release 35 | id: finalize-release 36 | env: 37 | # The following are needed if you use legacy PyPI set up 38 | # PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} 39 | # PYPI_TOKEN_MAP: ${{ secrets.PYPI_TOKEN_MAP }} 40 | # TWINE_USERNAME: __token__ 41 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 42 | uses: jupyter-server/jupyter_releaser/.github/actions/finalize-release@v2 43 | with: 44 | token: ${{ secrets.ADMIN_GITHUB_TOKEN }} 45 | release_url: ${{ steps.populate-release.outputs.release_url }} 46 | 47 | - name: "** Next Step **" 48 | if: ${{ success() }} 49 | run: | 50 | echo "Verify the final release" 51 | echo ${{ steps.finalize-release.outputs.release_url }} 52 | 53 | - name: "** Failure Message **" 54 | if: ${{ failure() }} 55 | run: | 56 | echo "Failed to Publish the Draft Release Url:" 57 | echo ${{ steps.populate-release.outputs.release_url }} 58 | -------------------------------------------------------------------------------- /papyri-lab/.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | **/node_modules 3 | **/lib 4 | **/package.json 5 | !/package.json 6 | papyri_lab 7 | -------------------------------------------------------------------------------- /papyri-lab/.yarnrc.yml: -------------------------------------------------------------------------------- 1 | nodeLinker: node-modules 2 | -------------------------------------------------------------------------------- /papyri-lab/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /papyri-lab/LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2023, Matthias Bussonnier 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /papyri-lab/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = require('@jupyterlab/testutils/lib/babel.config'); 2 | -------------------------------------------------------------------------------- /papyri-lab/conftest.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | 3 | pytest_plugins = ("pytest_jupyter.jupyter_server",) 4 | 5 | 6 | @pytest.fixture 7 | def jp_server_config(jp_server_config): 8 | return {"ServerApp": {"jpserver_extensions": {"papyri_lab": True}}} 9 | -------------------------------------------------------------------------------- /papyri-lab/install.json: -------------------------------------------------------------------------------- 1 | { 2 | "packageManager": "python", 3 | "packageName": "papyri_lab", 4 | "uninstallInstructions": "Use your Python package manager (pip, conda, etc.) to uninstall the package papyri_lab" 5 | } 6 | -------------------------------------------------------------------------------- /papyri-lab/jest.config.js: -------------------------------------------------------------------------------- 1 | const jestJupyterLab = require('@jupyterlab/testutils/lib/jest-config'); 2 | 3 | const esModules = [ 4 | '@codemirror', 5 | '@jupyter/ydoc', 6 | '@jupyterlab/', 7 | 'lib0', 8 | 'nanoid', 9 | 'vscode-ws-jsonrpc', 10 | 'y-protocols', 11 | 'y-websocket', 12 | 'yjs' 13 | ].join('|'); 14 | 15 | const baseConfig = jestJupyterLab(__dirname); 16 | 17 | module.exports = { 18 | ...baseConfig, 19 | automock: false, 20 | collectCoverageFrom: [ 21 | 'src/**/*.{ts,tsx}', 22 | '!src/**/*.d.ts', 23 | '!src/**/.ipynb_checkpoints/*' 24 | ], 25 | coverageReporters: ['lcov', 'text'], 26 | testRegex: 'src/.*/.*.spec.ts[x]?$', 27 | transformIgnorePatterns: [`/node_modules/(?!${esModules}).+`] 28 | }; 29 | -------------------------------------------------------------------------------- /papyri-lab/jupyter-config/server-config/papyri_lab.json: -------------------------------------------------------------------------------- 1 | { 2 | "ServerApp": { 3 | "jpserver_extensions": { 4 | "papyri_lab": true 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /papyri-lab/papyri_lab/__init__.py: -------------------------------------------------------------------------------- 1 | try: 2 | from ._version import __version__ 3 | except ModuleNotFoundError: 4 | # Fallback when using the package in dev mode without installing 5 | # in editable mode with pip. It is highly recommended to install 6 | # the package from a stable release or in editable mode: 7 | # https://pip.pypa.io/en/stable/topics/local-project-installs/#editable-installs 8 | import warnings 9 | 10 | warnings.warn("Importing 'papyri_lab' outside a proper installation.") 11 | __version__ = "dev" 12 | from .handlers import setup_handlers 13 | 14 | 15 | def _jupyter_labextension_paths(): 16 | return [{"src": "labextension", "dest": "papyri-lab"}] 17 | 18 | 19 | def _jupyter_server_extension_points(): 20 | return [{"module": "papyri_lab"}] 21 | 22 | 23 | def _load_jupyter_server_extension(server_app): 24 | """Registers the API handler to receive HTTP requests from the frontend extension. 25 | 26 | Parameters 27 | ---------- 28 | server_app: jupyterlab.labapp.LabApp 29 | JupyterLab application instance 30 | """ 31 | setup_handlers(server_app.web_app) 32 | name = "papyri_lab" 33 | server_app.log.info(f"Registered {name} server extension") 34 | -------------------------------------------------------------------------------- /papyri-lab/papyri_lab/handlers.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | from jupyter_server.base.handlers import APIHandler 4 | from jupyter_server.utils import url_path_join 5 | import tornado 6 | 7 | from papyri.crosslink import GraphStore, ingest_dir 8 | from papyri.render import HtmlRenderer, encoder 9 | 10 | 11 | class RouteHandler(APIHandler): 12 | # The following decorator should be present on all verb methods (head, get, post, 13 | # patch, put, delete, options) to ensure only authorized user can request the 14 | # Jupyter server 15 | @tornado.web.authenticated 16 | def post(self): 17 | body_data = self.request.body.decode() 18 | g = GraphStore(ingest_dir) 19 | self.log.error(body_data) 20 | candidates = [k for k in g.glob((None, None, None, body_data + "*"))] 21 | the_one = [k for k in candidates if k.path == body_data] 22 | 23 | renderer = HtmlRenderer(g, sidebar=False, prefix="/p/", trailing_html=False) 24 | if len(the_one) == 1: 25 | gbytes, backward, forward = g.get_all(the_one[0]) 26 | doc_blob = encoder.decode(gbytes) 27 | root = renderer._myst_root(doc_blob) 28 | body = root.to_dict() 29 | else: 30 | body = None 31 | 32 | self.finish( 33 | json.dumps( 34 | { 35 | "data": [c.path for c in candidates[:50]], 36 | "body": body, 37 | } 38 | ) 39 | ) 40 | 41 | @tornado.web.authenticated 42 | def get(self): 43 | g = GraphStore(ingest_dir) 44 | self.finish( 45 | json.dumps({"data": [k.path for k in g.glob((None, None, None, "p*"))]}) 46 | ) 47 | 48 | 49 | def setup_handlers(web_app): 50 | host_pattern = ".*$" 51 | 52 | base_url = web_app.settings["base_url"] 53 | route_pattern = url_path_join(base_url, "papyri-lab", "get-example") 54 | handlers = [(route_pattern, RouteHandler)] 55 | web_app.add_handlers(host_pattern, handlers) 56 | -------------------------------------------------------------------------------- /papyri-lab/papyri_lab/tests/__init__.py: -------------------------------------------------------------------------------- 1 | """Python unit tests for papyri_lab.""" 2 | -------------------------------------------------------------------------------- /papyri-lab/papyri_lab/tests/test_handlers.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | 4 | async def test_get_example(jp_fetch): 5 | # When 6 | response = await jp_fetch("papyri-lab", "get-example") 7 | 8 | # Then 9 | assert response.code == 200 10 | payload = json.loads(response.body) 11 | assert "papyri" in payload["data"] 12 | assert len(payload["data"]) >= 400, "we have at least 400 papyri items" 13 | -------------------------------------------------------------------------------- /papyri-lab/schema/plugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "jupyter.lab.shortcuts": [], 3 | "title": "papyri-lab", 4 | "description": "papyri-lab settings.", 5 | "type": "object", 6 | "properties": {}, 7 | "additionalProperties": false 8 | } 9 | -------------------------------------------------------------------------------- /papyri-lab/setup.py: -------------------------------------------------------------------------------- 1 | __import__("setuptools").setup() 2 | -------------------------------------------------------------------------------- /papyri-lab/src/__tests__/papyri_lab.spec.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Example of [Jest](https://jestjs.io/docs/getting-started) unit tests 3 | */ 4 | 5 | describe('papyri-lab', () => { 6 | it('should be tested', () => { 7 | expect(1 + 1).toEqual(2); 8 | }); 9 | }); 10 | -------------------------------------------------------------------------------- /papyri-lab/src/handler.ts: -------------------------------------------------------------------------------- 1 | import { URLExt } from '@jupyterlab/coreutils'; 2 | import { ServerConnection } from '@jupyterlab/services'; 3 | 4 | /** 5 | * Call the API extension 6 | * 7 | * @param endPoint API REST end point for the extension 8 | * @param init Initial values for the request 9 | * @returns The response body interpreted as JSON 10 | */ 11 | export async function requestAPI( 12 | endPoint = '', 13 | init: RequestInit = {} 14 | ): Promise { 15 | // Make request to Jupyter API 16 | const settings = ServerConnection.makeSettings(); 17 | const requestUrl = URLExt.join( 18 | settings.baseUrl, 19 | 'papyri-lab', // API Namespace 20 | endPoint 21 | ); 22 | 23 | let response: Response; 24 | try { 25 | response = await ServerConnection.makeRequest(requestUrl, init, settings); 26 | } catch (error) { 27 | throw new ServerConnection.NetworkError(error as any); 28 | } 29 | 30 | let data: any = await response.text(); 31 | 32 | if (data.length > 0) { 33 | try { 34 | data = JSON.parse(data); 35 | } catch (error) { 36 | console.log('Not a JSON response body.', response); 37 | } 38 | } 39 | 40 | if (!response.ok) { 41 | throw new ServerConnection.ResponseError(response, data.message || data); 42 | } 43 | 44 | return data; 45 | } 46 | -------------------------------------------------------------------------------- /papyri-lab/style/base.css: -------------------------------------------------------------------------------- 1 | /* 2 | See the JupyterLab Developer Guide for useful CSS Patterns: 3 | 4 | https://jupyterlab.readthedocs.io/en/stable/developer/css.html 5 | */ 6 | @import 'app.css'; 7 | 8 | div#papyri-browser { 9 | padding: 15px; 10 | } 11 | 12 | code { 13 | color: #db2777; 14 | font-weight: 400; 15 | font-size: 0.875em; 16 | } 17 | 18 | .not-implemented { 19 | border: 1px solid orange; 20 | } 21 | 22 | div#papyri-browser a:hover { 23 | text-decoration: underline; 24 | } 25 | 26 | #papyri-browser a { 27 | font-weight: bold; 28 | } 29 | 30 | #papyri-browser .view { 31 | overflow: scroll; 32 | height: 100%; 33 | } 34 | 35 | #papyri-browser { 36 | & span.signature-separator { 37 | white-space: pre; 38 | } 39 | 40 | & span.default-value { 41 | opacity: 30%; 42 | } 43 | & span.type-ann, 44 | & span.ret-ann { 45 | opacity: 30%; 46 | color: gray; 47 | } 48 | 49 | & span.param-block { 50 | white-space: pre; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /papyri-lab/style/index.css: -------------------------------------------------------------------------------- 1 | @import url('base.css'); 2 | -------------------------------------------------------------------------------- /papyri-lab/style/index.js: -------------------------------------------------------------------------------- 1 | import './base.css'; 2 | -------------------------------------------------------------------------------- /papyri-lab/style/tailwind.css: -------------------------------------------------------------------------------- 1 | @tailwind components; 2 | @tailwind utilities; 3 | 4 | @import '@myst-theme/styles/details.css'; 5 | @import '@myst-theme/styles/citations.css'; 6 | @import '@myst-theme/styles/figures.css'; 7 | @import '@myst-theme/styles/text-spacers.css'; 8 | @import '@myst-theme/styles/code-highlight.css'; 9 | @import '@myst-theme/styles/math.css'; 10 | @import '@myst-theme/styles/cross-references.css'; 11 | @import '@myst-theme/styles/block-styles.css'; 12 | @import '@myst-theme/styles/tasklists.css'; 13 | @import '@myst-theme/styles/hover.css'; 14 | -------------------------------------------------------------------------------- /papyri-lab/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowSyntheticDefaultImports": true, 4 | "composite": true, 5 | "declaration": true, 6 | "esModuleInterop": true, 7 | "incremental": true, 8 | "jsx": "react", 9 | "module": "esnext", 10 | "moduleResolution": "node", 11 | "noEmitOnError": true, 12 | "noImplicitAny": true, 13 | "noUnusedLocals": true, 14 | "preserveWatchOutput": true, 15 | "resolveJsonModule": true, 16 | "outDir": "lib", 17 | "rootDir": "src", 18 | "strict": true, 19 | "strictNullChecks": true, 20 | "target": "ES2018" 21 | }, 22 | "include": ["src/*"] 23 | } 24 | -------------------------------------------------------------------------------- /papyri-lab/tsconfig.test.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig", 3 | "compilerOptions": { 4 | "types": ["jest"] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /papyri-lab/ui-tests/jupyter_server_test_config.py: -------------------------------------------------------------------------------- 1 | """Server configuration for integration tests. 2 | 3 | !! Never use this configuration in production because it 4 | opens the server to the world and provide access to JupyterLab 5 | JavaScript objects through the global window variable. 6 | """ 7 | from jupyterlab.galata import configure_jupyter_server 8 | 9 | configure_jupyter_server(c) # type: ignore [name-defined] 10 | 11 | # Uncomment to set server log level to debug level 12 | # c.ServerApp.log_level = "DEBUG" 13 | -------------------------------------------------------------------------------- /papyri-lab/ui-tests/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "papyri-lab-ui-tests", 3 | "version": "1.0.0", 4 | "description": "JupyterLab papyri-lab Integration Tests", 5 | "private": true, 6 | "scripts": { 7 | "start": "jupyter lab --config jupyter_server_test_config.py", 8 | "test": "jlpm playwright test", 9 | "test:update": "jlpm playwright test --update-snapshots" 10 | }, 11 | "devDependencies": { 12 | "@jupyterlab/galata": "^5.0.5", 13 | "@playwright/test": "^1.37.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /papyri-lab/ui-tests/playwright.config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Configuration for Playwright using default from @jupyterlab/galata 3 | */ 4 | const baseConfig = require('@jupyterlab/galata/lib/playwright-config'); 5 | 6 | module.exports = { 7 | ...baseConfig, 8 | webServer: { 9 | command: 'jlpm start', 10 | url: 'http://localhost:8888/lab', 11 | timeout: 120 * 1000, 12 | reuseExistingServer: !process.env.CI 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /papyri-lab/ui-tests/tests/papyri_lab.spec.ts: -------------------------------------------------------------------------------- 1 | import { expect, test } from '@jupyterlab/galata'; 2 | 3 | /** 4 | * Don't load JupyterLab webpage before running the tests. 5 | * This is required to ensure we capture all log messages. 6 | */ 7 | test.use({ autoGoto: false }); 8 | 9 | test('should emit an activation console message', async ({ page }) => { 10 | const logs: string[] = []; 11 | 12 | page.on('console', message => { 13 | logs.push(message.text()); 14 | }); 15 | 16 | await page.goto(); 17 | 18 | expect( 19 | logs.filter(s => s === 'JupyterLab extension papyri-lab is activated!') 20 | ).toHaveLength(1); 21 | }); 22 | -------------------------------------------------------------------------------- /papyri-lab/ui-tests/yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/papyri-lab/ui-tests/yarn.lock -------------------------------------------------------------------------------- /papyri-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/papyri-logo.png -------------------------------------------------------------------------------- /papyri/__main__.py: -------------------------------------------------------------------------------- 1 | from papyri import app 2 | 3 | app() 4 | -------------------------------------------------------------------------------- /papyri/app/static/css/main.e6c13ad2.css: -------------------------------------------------------------------------------- 1 | body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace} 2 | /*# sourceMappingURL=main.e6c13ad2.css.map*/ -------------------------------------------------------------------------------- /papyri/app/static/js/main.27408fde.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /*! 2 | Copyright (c) 2018 Jed Watson. 3 | Licensed under the MIT License (MIT), see 4 | http://jedwatson.github.io/classnames 5 | */ 6 | 7 | /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ 8 | 9 | /** 10 | * @license React 11 | * react-dom.production.min.js 12 | * 13 | * Copyright (c) Facebook, Inc. and its affiliates. 14 | * 15 | * This source code is licensed under the MIT license found in the 16 | * LICENSE file in the root directory of this source tree. 17 | */ 18 | 19 | /** 20 | * @license React 21 | * react-jsx-runtime.production.min.js 22 | * 23 | * Copyright (c) Facebook, Inc. and its affiliates. 24 | * 25 | * This source code is licensed under the MIT license found in the 26 | * LICENSE file in the root directory of this source tree. 27 | */ 28 | 29 | /** 30 | * @license React 31 | * react.production.min.js 32 | * 33 | * Copyright (c) Facebook, Inc. and its affiliates. 34 | * 35 | * This source code is licensed under the MIT license found in the 36 | * LICENSE file in the root directory of this source tree. 37 | */ 38 | 39 | /** 40 | * @license React 41 | * scheduler.production.min.js 42 | * 43 | * Copyright (c) Facebook, Inc. and its affiliates. 44 | * 45 | * This source code is licensed under the MIT license found in the 46 | * LICENSE file in the root directory of this source tree. 47 | */ 48 | 49 | /** 50 | * @license React 51 | * use-sync-external-store-shim.production.min.js 52 | * 53 | * Copyright (c) Facebook, Inc. and its affiliates. 54 | * 55 | * This source code is licensed under the MIT license found in the 56 | * LICENSE file in the root directory of this source tree. 57 | */ 58 | -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_abnf.05a76338.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[3494],{1290:e=>{function a(){for(var e=arguments.length,a=new Array(e),n=0;n{return(a=e)?"string"===typeof a?a:a.source:null;var a})).join("")}e.exports=function(e){const n={ruleDeclaration:/^[a-zA-Z][a-zA-Z0-9-]*/,unexpectedChars:/[!@#$^&',?+~`|:]/},r=e.COMMENT(/;/,/$/),s={className:"attribute",begin:a(n.ruleDeclaration,/(?=\s*=)/)};return{name:"Augmented Backus-Naur Form",illegal:n.unexpectedChars,keywords:["ALPHA","BIT","CHAR","CR","CRLF","CTL","DIGIT","DQUOTE","HEXDIG","HTAB","LF","LWSP","OCTET","SP","VCHAR","WSP"],contains:[s,r,{className:"symbol",begin:/%b[0-1]+(-[0-1]+|(\.[0-1]+)+){0,1}/},{className:"symbol",begin:/%d[0-9]+(-[0-9]+|(\.[0-9]+)+){0,1}/},{className:"symbol",begin:/%x[0-9A-F]+(-[0-9A-F]+|(\.[0-9A-F]+)+){0,1}/},{className:"symbol",begin:/%[si]/},e.QUOTE_STRING_MODE,e.NUMBER_MODE]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_abnf.05a76338.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_accesslog.32f749c7.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[5406],{5187:e=>{function n(e){return e?"string"===typeof e?e:e.source:null}function a(){for(var e=arguments.length,a=new Array(e),r=0;rn(e))).join("")}function r(){for(var e=arguments.length,a=new Array(e),r=0;rn(e))).join("|")+")"}e.exports=function(e){const n=["GET","POST","HEAD","PUT","DELETE","CONNECT","OPTIONS","PATCH","TRACE"];return{name:"Apache Access Log",contains:[{className:"number",begin:/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?\b/,relevance:5},{className:"number",begin:/\b\d+\b/,relevance:0},{className:"string",begin:a(/"/,r(...n)),end:/"/,keywords:n,illegal:/\n/,relevance:5,contains:[{begin:/HTTP\/[12]\.\d'/,relevance:5}]},{className:"string",begin:/\[\d[^\]\n]{8,}\]/,illegal:/\n/,relevance:1},{className:"string",begin:/\[/,end:/\]/,illegal:/\n/,relevance:0},{className:"string",begin:/"Mozilla\/\d\.\d \(/,end:/"/,illegal:/\n/,relevance:3},{className:"string",begin:/"/,end:/"/,illegal:/\n/,relevance:0}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_accesslog.32f749c7.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_actionscript.bb38f24a.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[2104],{4235:e=>{function n(){for(var e=arguments.length,n=new Array(e),a=0;a{return(n=e)?"string"===typeof n?n:n.source:null;var n})).join("")}e.exports=function(e){const a={className:"rest_arg",begin:/[.]{3}/,end:/[a-zA-Z_$][a-zA-Z0-9_$]*/,relevance:10};return{name:"ActionScript",aliases:["as"],keywords:{keyword:"as break case catch class const continue default delete do dynamic each else extends final finally for function get if implements import in include instanceof interface internal is namespace native new override package private protected public return set static super switch this throw try typeof use var void while with",literal:"true false null undefined"},contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{className:"class",beginKeywords:"package",end:/\{/,contains:[e.TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.TITLE_MODE]},{className:"meta",beginKeywords:"import include",end:/;/,keywords:{"meta-keyword":"import include"}},{className:"function",beginKeywords:"function",end:/[{;]/,excludeEnd:!0,illegal:/\S/,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a]},{begin:n(/:\s*/,/([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)/)}]},e.METHOD_GUARD],illegal:/#/}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_actionscript.bb38f24a.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_ada.481ce680.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[9051],{8985:e=>{e.exports=function(e){const n="\\d(_|\\d)*",s="[eE][-+]?"+n,a="\\b("+(n+"#\\w+(\\.\\w+)?#("+s+")?")+"|"+(n+"(\\."+n+")?("+s+")?")+")",r="[A-Za-z](_?[A-Za-z0-9.])*",i="[]\\{\\}%#'\"",t=e.COMMENT("--","$"),o={begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:i,contains:[{beginKeywords:"loop for declare others",endsParent:!0},{className:"keyword",beginKeywords:"not null constant access function procedure in out aliased exception"},{className:"type",begin:r,endsParent:!0,relevance:0}]};return{name:"Ada",case_insensitive:!0,keywords:{keyword:"abort else new return abs elsif not reverse abstract end accept entry select access exception of separate aliased exit or some all others subtype and for out synchronized array function overriding at tagged generic package task begin goto pragma terminate body private then if procedure type case in protected constant interface is raise use declare range delay limited record when delta loop rem while digits renames with do mod requeue xor",literal:"True False"},contains:[t,{className:"string",begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{className:"string",begin:/'.'/},{className:"number",begin:a,relevance:0},{className:"symbol",begin:"'"+r},{className:"title",begin:"(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?",end:"(is|$)",keywords:"package body",excludeBegin:!0,excludeEnd:!0,illegal:i},{begin:"(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+",end:"(\\bis|\\bwith|\\brenames|\\)\\s*;)",keywords:"overriding function procedure with is renames return",returnBegin:!0,contains:[t,{className:"title",begin:"(\\bwith\\s+)?\\b(function|procedure)\\s+",end:"(\\(|\\s+|$)",excludeBegin:!0,excludeEnd:!0,illegal:i},o,{className:"type",begin:"\\breturn\\s+",end:"(\\s+|;|$)",keywords:"return",excludeBegin:!0,excludeEnd:!0,endsParent:!0,illegal:i}]},{className:"type",begin:"\\b(sub)?type\\s+",end:"\\s+",keywords:"type",excludeBegin:!0,illegal:i},o]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_ada.481ce680.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_angelscript.98c5a3f3.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[3832],{6591:e=>{e.exports=function(e){var n={className:"built_in",begin:"\\b(void|bool|int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|string|ref|array|double|float|auto|dictionary)"},a={className:"symbol",begin:"[a-zA-Z0-9_]+@"},i={className:"keyword",begin:"<",end:">",contains:[n,a]};return n.contains=[i],a.contains=[i],{name:"AngelScript",aliases:["asc"],keywords:"for in|0 break continue while do|0 return if else case switch namespace is cast or and xor not get|0 in inout|10 out override set|0 private public const default|0 final shared external mixin|10 enum typedef funcdef this super import from interface abstract|0 try catch protected explicit property",illegal:"(^using\\s+[A-Za-z0-9_\\.]+;$|\\bfunction\\s*[^\\(])",contains:[{className:"string",begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},{className:"string",begin:'"""',end:'"""'},{className:"string",begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE],relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:"^\\s*\\[",end:"\\]"},{beginKeywords:"interface namespace",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]},{beginKeywords:"class",end:/\{/,illegal:"[;.\\-]",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+",contains:[{begin:"[:,]\\s*",contains:[{className:"symbol",begin:"[a-zA-Z0-9_]+"}]}]}]},n,a,{className:"literal",begin:"\\b(null|true|false)"},{className:"number",relevance:0,begin:"(-?)(\\b0[xXbBoOdD][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?f?|\\.\\d+f?)([eE][-+]?\\d+f?)?)"}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_angelscript.98c5a3f3.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_apache.2bda4313.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[5582],{1957:e=>{e.exports=function(e){const n={className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/};return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,contains:[n,{className:"number",begin:/:\d{1,5}/},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",begin:/\w+/,relevance:0,keywords:{nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}]},n,{className:"number",begin:/\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_apache.2bda4313.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_autohotkey.488322bf.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[4036],{3189:e=>{e.exports=function(e){const a={begin:"`[\\s\\S]"};return{name:"AutoHotkey",case_insensitive:!0,aliases:["ahk"],keywords:{keyword:"Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group",literal:"true false NOT AND OR",built_in:"ComSpec Clipboard ClipboardAll ErrorLevel"},contains:[a,e.inherit(e.QUOTE_STRING_MODE,{contains:[a]}),e.COMMENT(";","$",{relevance:0}),e.C_BLOCK_COMMENT_MODE,{className:"number",begin:e.NUMBER_RE,relevance:0},{className:"variable",begin:"%[a-zA-Z0-9#_$@]+%"},{className:"built_in",begin:"^\\s*\\w+\\s*(,|%)"},{className:"title",variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{className:"meta",begin:"^\\s*#\\w+",end:"$",relevance:0},{className:"built_in",begin:"A_[a-zA-Z0-9]+"},{begin:",\\s*,"}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_autohotkey.488322bf.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_avrasm.f9d85792.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[9943],{2204:r=>{r.exports=function(r){return{name:"AVR Assembly",case_insensitive:!0,keywords:{$pattern:"\\.?"+r.IDENT_RE,keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf",meta:".byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list .listmac .macro .nolist .org .set"},contains:[r.C_BLOCK_COMMENT_MODE,r.COMMENT(";","$",{relevance:0}),r.C_NUMBER_MODE,r.BINARY_NUMBER_MODE,{className:"number",begin:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},r.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"[^\\\\]'",illegal:"[^\\\\][^']"},{className:"symbol",begin:"^[A-Za-z0-9_.$]+:"},{className:"meta",begin:"#",end:"$"},{className:"subst",begin:"@[0-9]+"}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_avrasm.f9d85792.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_awk.401bf380.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[5555],{5014:e=>{e.exports=function(e){return{name:"Awk",keywords:{keyword:"BEGIN END if else while do for in break continue delete next nextfile function func exit|10"},contains:[{className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,relevance:10},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},e.REGEXP_MODE,e.HASH_COMMENT_MODE,e.NUMBER_MODE]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_awk.401bf380.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_axapta.ed0ffd71.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[7498],{5957:e=>{e.exports=function(e){return{name:"X++",aliases:["x++"],keywords:{keyword:["abstract","as","asc","avg","break","breakpoint","by","byref","case","catch","changecompany","class","client","client","common","const","continue","count","crosscompany","delegate","delete_from","desc","display","div","do","edit","else","eventhandler","exists","extends","final","finally","firstfast","firstonly","firstonly1","firstonly10","firstonly100","firstonly1000","flush","for","forceliterals","forcenestedloop","forceplaceholders","forceselectorder","forupdate","from","generateonly","group","hint","if","implements","in","index","insert_recordset","interface","internal","is","join","like","maxof","minof","mod","namespace","new","next","nofetch","notexists","optimisticlock","order","outer","pessimisticlock","print","private","protected","public","readonly","repeatableread","retry","return","reverse","select","server","setting","static","sum","super","switch","this","throw","try","ttsabort","ttsbegin","ttscommit","unchecked","update_recordset","using","validtimestate","void","where","while"],built_in:["anytype","boolean","byte","char","container","date","double","enum","guid","int","int64","long","real","short","str","utcdatetime","var"],literal:["default","false","null","true"]},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"#",end:"$"},{className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0,illegal:":",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_axapta.ed0ffd71.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_basic.11a5bb09.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[728],{1782:E=>{E.exports=function(E){return{name:"BASIC",case_insensitive:!0,illegal:"^.",keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_$%!#]*",keyword:"ABS ASC AND ATN AUTO|0 BEEP BLOAD|10 BSAVE|10 CALL CALLS CDBL CHAIN CHDIR CHR$|10 CINT CIRCLE CLEAR CLOSE CLS COLOR COM COMMON CONT COS CSNG CSRLIN CVD CVI CVS DATA DATE$ DEFDBL DEFINT DEFSNG DEFSTR DEF|0 SEG USR DELETE DIM DRAW EDIT END ENVIRON ENVIRON$ EOF EQV ERASE ERDEV ERDEV$ ERL ERR ERROR EXP FIELD FILES FIX FOR|0 FRE GET GOSUB|10 GOTO HEX$ IF THEN ELSE|0 INKEY$ INP INPUT INPUT# INPUT$ INSTR IMP INT IOCTL IOCTL$ KEY ON OFF LIST KILL LEFT$ LEN LET LINE LLIST LOAD LOC LOCATE LOF LOG LPRINT USING LSET MERGE MID$ MKDIR MKD$ MKI$ MKS$ MOD NAME NEW NEXT NOISE NOT OCT$ ON OR PEN PLAY STRIG OPEN OPTION BASE OUT PAINT PALETTE PCOPY PEEK PMAP POINT POKE POS PRINT PRINT] PSET PRESET PUT RANDOMIZE READ REM RENUM RESET|0 RESTORE RESUME RETURN|0 RIGHT$ RMDIR RND RSET RUN SAVE SCREEN SGN SHELL SIN SOUND SPACE$ SPC SQR STEP STICK STOP STR$ STRING$ SWAP SYSTEM TAB TAN TIME$ TIMER TROFF TRON TO USR VAL VARPTR VARPTR$ VIEW WAIT WHILE WEND WIDTH WINDOW WRITE XOR"},contains:[E.QUOTE_STRING_MODE,E.COMMENT("REM","$",{relevance:10}),E.COMMENT("'","$",{relevance:0}),{className:"symbol",begin:"^[0-9]+ ",relevance:10},{className:"number",begin:"\\b\\d+(\\.\\d+)?([edED]\\d+)?[#!]?",relevance:0},{className:"number",begin:"(&[hH][0-9a-fA-F]{1,4})"},{className:"number",begin:"(&[oO][0-7]{1,6})"}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_basic.11a5bb09.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_bnf.d82143ed.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[9346],{8683:n=>{n.exports=function(n){return{name:"Backus\u2013Naur Form",contains:[{className:"attribute",begin://},{begin:/::=/,end:/$/,contains:[{begin://},n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE]}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_bnf.d82143ed.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_brainfuck.ff2a19f8.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[5536],{9532:e=>{e.exports=function(e){const n={className:"literal",begin:/[+-]/,relevance:0};return{name:"Brainfuck",aliases:["bf"],contains:[e.COMMENT("[^\\[\\]\\.,\\+\\-<> \r\n]","[\\[\\]\\.,\\+\\-<> \r\n]",{returnEnd:!0,relevance:0}),{className:"title",begin:"[\\[\\]]",relevance:0},{className:"string",begin:"[\\.,]",relevance:0},{begin:/(?:\+\+|--)/,contains:[n]},n]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_brainfuck.ff2a19f8.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_cal.b19a3bea.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[7458],{5546:e=>{e.exports=function(e){const n="div mod in and or not xor asserterror begin case do downto else end exit for if of repeat then to until while with var",a=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],r={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},s={className:"string",begin:/(#\d+)+/},i={className:"function",beginKeywords:"procedure",end:/[:;]/,keywords:"procedure|10",contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:n,contains:[r,s]}].concat(a)},o={className:"class",begin:"OBJECT (Table|Form|Report|Dataport|Codeunit|XMLport|MenuSuite|Page|Query) (\\d+) ([^\\r\\n]+)",returnBegin:!0,contains:[e.TITLE_MODE,i]};return{name:"C/AL",case_insensitive:!0,keywords:{keyword:n,literal:"false true"},illegal:/\/\*/,contains:[r,s,{className:"number",begin:"\\b\\d+(\\.\\d+)?(DT|D|T)",relevance:0},{className:"string",begin:'"',end:'"'},e.NUMBER_MODE,o,i]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_cal.b19a3bea.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_capnproto.2da1bfd7.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[3940],{4052:n=>{n.exports=function(n){return{name:"Cap\u2019n Proto",aliases:["capnp"],keywords:{keyword:"struct enum interface union group import using const annotation extends in of on as with from fixed",built_in:"Void Bool Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float32 Float64 Text Data AnyPointer AnyStruct Capability List",literal:"true false"},contains:[n.QUOTE_STRING_MODE,n.NUMBER_MODE,n.HASH_COMMENT_MODE,{className:"meta",begin:/@0x[\w\d]{16};/,illegal:/\n/},{className:"symbol",begin:/@\d+\b/},{className:"class",beginKeywords:"struct enum",end:/\{/,illegal:/\n/,contains:[n.inherit(n.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{className:"class",beginKeywords:"interface",end:/\{/,illegal:/\n/,contains:[n.inherit(n.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_capnproto.2da1bfd7.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_ceylon.097bcbb4.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[8558],{7263:e=>{e.exports=function(e){const a="assembly module package import alias class interface object given value assign void function new of extends satisfies abstracts in out return break continue throw assert dynamic if else switch case for while try catch finally then let this outer super is exists nonempty",n={className:"subst",excludeBegin:!0,excludeEnd:!0,begin:/``/,end:/``/,keywords:a,relevance:10},s=[{className:"string",begin:'"""',end:'"""',relevance:10},{className:"string",begin:'"',end:'"',contains:[n]},{className:"string",begin:"'",end:"'"},{className:"number",begin:"#[0-9a-fA-F_]+|\\$[01_]+|[0-9_]+(?:\\.[0-9_](?:[eE][+-]?\\d+)?)?[kMGTPmunpf]?",relevance:0}];return n.contains=s,{name:"Ceylon",keywords:{keyword:a+" shared abstract formal default actual variable late native deprecated final sealed annotation suppressWarnings small",meta:"doc by license see throws tagged"},illegal:"\\$[^01]|#[^0-9a-fA-F]",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),{className:"meta",begin:'@[a-z]\\w*(?::"[^"]*")?'}].concat(s)}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_ceylon.097bcbb4.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_clean.7e2ace20.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[2087],{3270:e=>{e.exports=function(e){return{name:"Clean",aliases:["icl","dcl"],keywords:{keyword:"if let in with where case of class instance otherwise implementation definition system module from import qualified as special code inline foreign export ccall stdcall generic derive infix infixl infixr",built_in:"Int Real Char Bool",literal:"True False"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{begin:"->|<-[|:]?|#!?|>>=|\\{\\||\\|\\}|:==|=:|<>"}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_clean.7e2ace20.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_clojureRepl.fee2ecf3.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[3610],{7217:e=>{e.exports=function(e){return{name:"Clojure REPL",contains:[{className:"meta",begin:/^([\w.-]+|\s*#_)?=>/,starts:{end:/$/,subLanguage:"clojure"}}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_clojureRepl.fee2ecf3.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_cos.c90a95c2.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[6290],{3979:e=>{e.exports=function(e){return{name:"Cach\xe9 Object Script",case_insensitive:!0,aliases:["cls"],keywords:"property parameter class classmethod clientmethod extends as break catch close continue do d|0 else elseif for goto halt hang h|0 if job j|0 kill k|0 lock l|0 merge new open quit q|0 read r|0 return set s|0 tcommit throw trollback try tstart use view while write w|0 xecute x|0 zkill znspace zn ztrap zwrite zw zzdump zzwrite print zbreak zinsert zload zprint zremove zsave zzprint mv mvcall mvcrt mvdim mvprint zquit zsync ascii",contains:[{className:"number",begin:"\\b(\\d+(\\.\\d*)?|\\.\\d+)",relevance:0},{className:"string",variants:[{begin:'"',end:'"',contains:[{begin:'""',relevance:0}]}]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"comment",begin:/;/,end:"$",relevance:0},{className:"built_in",begin:/(?:\$\$?|\.\.)\^?[a-zA-Z]+/},{className:"built_in",begin:/\$\$\$[a-zA-Z]+/},{className:"built_in",begin:/%[a-z]+(?:\.[a-z]+)*/},{className:"symbol",begin:/\^%?[a-zA-Z][\w]*/},{className:"keyword",begin:/##class|##super|#define|#dim/},{begin:/&sql\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,subLanguage:"sql"},{begin:/&(js|jscript|javascript)/,excludeBegin:!0,excludeEnd:!0,subLanguage:"javascript"},{begin:/&html<\s*\s*>/,subLanguage:"xml"}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_cos.c90a95c2.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_crmsh.a711828b.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[9066],{815:e=>{e.exports=function(e){const t="group clone ms master location colocation order fencing_topology rsc_ticket acl_target acl_group user role tag xml";return{name:"crmsh",aliases:["crm","pcmk"],case_insensitive:!0,keywords:{keyword:"params meta operations op rule attributes utilization read write deny defined not_defined in_range date spec in ref reference attribute type xpath version and or lt gt tag lte gte eq ne \\ number string",literal:"Master Started Slave Stopped start promote demote stop monitor true false"},contains:[e.HASH_COMMENT_MODE,{beginKeywords:"node",starts:{end:"\\s*([\\w_-]+:)?",starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*"}}},{beginKeywords:"primitive rsc_template",starts:{className:"title",end:"\\s*[\\$\\w_][\\w_-]*",starts:{end:"\\s*@?[\\w_][\\w_\\.:-]*"}}},{begin:"\\b("+t.split(" ").join("|")+")\\s+",keywords:t,starts:{className:"title",end:"[\\$\\w_][\\w_-]*"}},{beginKeywords:"property rsc_defaults op_defaults",starts:{className:"title",end:"\\s*([\\w_-]+:)?"}},e.QUOTE_STRING_MODE,{className:"meta",begin:"(ocf|systemd|service|lsb):[\\w_:-]+",relevance:0},{className:"number",begin:"\\b\\d+(\\.\\d+)?(ms|s|h|m)?",relevance:0},{className:"literal",begin:"[-]?(infinity|inf)",relevance:0},{className:"attr",begin:/([A-Za-z$_#][\w_-]+)=/,relevance:0},{className:"tag",begin:"",relevance:0}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_crmsh.a711828b.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_csp.7d9d74fc.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[8521],{5343:e=>{e.exports=function(e){return{name:"CSP",case_insensitive:!1,keywords:{$pattern:"[a-zA-Z][a-zA-Z0-9_-]*",keyword:"base-uri child-src connect-src default-src font-src form-action frame-ancestors frame-src img-src media-src object-src plugin-types report-uri sandbox script-src style-src"},contains:[{className:"string",begin:"'",end:"'"},{className:"attribute",begin:"^Content",end:":",excludeEnd:!0}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_csp.7d9d74fc.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_dart.359c2f33.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[8693],{4881:e=>{e.exports=function(e){const n={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"}]},a={className:"subst",variants:[{begin:/\$\{/,end:/\}/}],keywords:"true false null this is new super"},t={className:"string",variants:[{begin:"r'''",end:"'''"},{begin:'r"""',end:'"""'},{begin:"r'",end:"'",illegal:"\\n"},{begin:'r"',end:'"',illegal:"\\n"},{begin:"'''",end:"'''",contains:[e.BACKSLASH_ESCAPE,n,a]},{begin:'"""',end:'"""',contains:[e.BACKSLASH_ESCAPE,n,a]},{begin:"'",end:"'",illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,n,a]},{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,n,a]}]};a.contains=[e.C_NUMBER_MODE,t];const i=["Comparable","DateTime","Duration","Function","Iterable","Iterator","List","Map","Match","Object","Pattern","RegExp","Set","Stopwatch","String","StringBuffer","StringSink","Symbol","Type","Uri","bool","double","int","num","Element","ElementList"],r=i.map((e=>"".concat(e,"?")));return{name:"Dart",keywords:{keyword:"abstract as assert async await break case catch class const continue covariant default deferred do dynamic else enum export extends extension external factory false final finally for Function get hide if implements import in inferface is late library mixin new null on operator part required rethrow return set show static super switch sync this throw true try typedef var void while with yield",built_in:i.concat(r).concat(["Never","Null","dynamic","print","document","querySelector","querySelectorAll","window"]),$pattern:/[A-Za-z][A-Za-z0-9_]*\??/},contains:[t,e.COMMENT(/\/\*\*(?!\/)/,/\*\//,{subLanguage:"markdown",relevance:0}),e.COMMENT(/\/{3,} ?/,/$/,{contains:[{subLanguage:"markdown",begin:".",end:"$",relevance:0}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"},{begin:"=>"}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_dart.359c2f33.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_delphi.a0b95219.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[5812],{6088:e=>{e.exports=function(e){const a="exports register file shl array record property for mod while set ally label uses raise not stored class safecall var interface or private static exit index inherited to else stdcall override shr asm far resourcestring finalization packed virtual out and protected library do xorwrite goto near function end div overload object unit begin string on inline repeat until destructor write message program with read initialization except default nil if case cdecl in downto threadvar of try pascal const external constructor type public then implementation finally published procedure absolute reintroduce operator as is abstract alias assembler bitpacked break continue cppdecl cvar enumerator experimental platform deprecated unimplemented dynamic export far16 forward generic helper implements interrupt iochecks local name nodefault noreturn nostackframe oldfpccall otherwise saveregisters softfloat specialize strict unaligned varargs ",r=[e.C_LINE_COMMENT_MODE,e.COMMENT(/\{/,/\}/,{relevance:0}),e.COMMENT(/\(\*/,/\*\)/,{relevance:10})],n={className:"meta",variants:[{begin:/\{\$/,end:/\}/},{begin:/\(\*\$/,end:/\*\)/}]},t={className:"string",begin:/'/,end:/'/,contains:[{begin:/''/}]},s={className:"string",begin:/(#\d+)+/},i={begin:e.IDENT_RE+"\\s*=\\s*class\\s*\\(",returnBegin:!0,contains:[e.TITLE_MODE]},o={className:"function",beginKeywords:"function constructor destructor procedure",end:/[:;]/,keywords:"function constructor|10 destructor|10 procedure|10",contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,keywords:a,contains:[t,s,n].concat(r)},n].concat(r)};return{name:"Delphi",aliases:["dpr","dfm","pas","pascal","freepascal","lazarus","lpr","lfm"],case_insensitive:!0,keywords:a,illegal:/"|\$[G-Zg-z]|\/\*|<\/|\|/,contains:[t,s,e.NUMBER_MODE,{className:"number",relevance:0,variants:[{begin:"\\$[0-9A-Fa-f]+"},{begin:"&[0-7]+"},{begin:"%[01]+"}]},i,o,n].concat(r)}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_delphi.a0b95219.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_diff.80e1515e.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[9936],{9682:e=>{e.exports=function(e){return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{begin:/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{begin:/^--- +\d+,\d+ +----$/}]},{className:"comment",variants:[{begin:/Index: /,end:/$/},{begin:/^index/,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^-{3}/,end:/$/},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/^\*{15}$/},{begin:/^diff --git/,end:/$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_diff.80e1515e.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_django.c419cc28.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[8247],{5547:e=>{e.exports=function(e){const t={begin:/\|[A-Za-z]+:?/,keywords:{name:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone"},contains:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE]};return{name:"Django",aliases:["jinja"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT(/\{%\s*comment\s*%\}/,/\{%\s*endcomment\s*%\}/),e.COMMENT(/\{#/,/#\}/),{className:"template-tag",begin:/\{%/,end:/%\}/,contains:[{className:"name",begin:/\w+/,keywords:{name:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim"},starts:{endsWithParent:!0,keywords:"in by as",contains:[t],relevance:0}}]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:[t]}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_django.c419cc28.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_dns.04d0d849.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[1233],{1868:d=>{d.exports=function(d){return{name:"DNS Zone",aliases:["bind","zone"],keywords:{keyword:"IN A AAAA AFSDB APL CAA CDNSKEY CDS CERT CNAME DHCID DLV DNAME DNSKEY DS HIP IPSECKEY KEY KX LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM PTR RRSIG RP SIG SOA SRV SSHFP TA TKEY TLSA TSIG TXT"},contains:[d.COMMENT(";","$",{relevance:0}),{className:"meta",begin:/^\$(TTL|GENERATE|INCLUDE|ORIGIN)\b/},{className:"number",begin:"((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))\\b"},{className:"number",begin:"((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]).){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\b"},d.inherit(d.NUMBER_MODE,{begin:/\b\d+[dhwm]?/})]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_dns.04d0d849.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_dockerfile.70aa854a.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[5341],{1715:e=>{e.exports=function(e){return{name:"Dockerfile",aliases:["docker"],case_insensitive:!0,keywords:"from maintainer expose env arg user onbuild stopsignal",contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell",starts:{end:/[^\\]$/,subLanguage:"bash"}}],illegal:"{e.exports=function(e){const a=e.COMMENT(/^\s*@?rem\b/,/$/,{relevance:10});return{name:"Batch file (DOS)",aliases:["bat","cmd"],case_insensitive:!0,illegal:/\/\*/,keywords:{keyword:"if else goto for in do call exit not exist errorlevel defined equ neq lss leq gtr geq",built_in:"prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux shift cd dir echo setlocal endlocal set pause copy append assoc at attrib break cacls cd chcp chdir chkdsk chkntfs cls cmd color comp compact convert date dir diskcomp diskcopy doskey erase fs find findstr format ftype graftabl help keyb label md mkdir mode more move path pause print popd pushd promt rd recover rem rename replace restore rmdir shift sort start subst time title tree type ver verify vol ping net ipconfig taskkill xcopy ren del"},contains:[{className:"variable",begin:/%%[^ ]|%[^ ]+?%|![^ ]+?!/},{className:"function",begin:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)",end:"goto:eof",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),a]},{className:"number",begin:"\\b\\d+",relevance:0},a]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_dos.fb0c25a6.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_dsconfig.e5507c1d.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[2830],{7572:e=>{e.exports=function(e){return{keywords:"dsconfig",contains:[{className:"keyword",begin:"^dsconfig",end:/\s/,excludeEnd:!0,relevance:10},{className:"built_in",begin:/(list|create|get|set|delete)-(\w+)/,end:/\s/,excludeEnd:!0,illegal:"!@#$%^&*()",relevance:10},{className:"built_in",begin:/--(\w+)/,end:/\s/,excludeEnd:!0},{className:"string",begin:/"/,end:/"/},{className:"string",begin:/'/,end:/'/},{className:"string",begin:/[\w\-?]+:\w+/,end:/\W/,relevance:0},{className:"string",begin:/\w+(\-\w+)*/,end:/(?=\W)/,relevance:0},e.HASH_COMMENT_MODE]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_dsconfig.e5507c1d.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_dts.661e4edb.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[7632],{8829:e=>{e.exports=function(e){const n={className:"string",variants:[e.inherit(e.QUOTE_STRING_MODE,{begin:'((u8?|U)|L)?"'}),{begin:'(u8?|U)?R"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{begin:"'\\\\?.",end:"'",illegal:"."}]},a={className:"number",variants:[{begin:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},{begin:e.C_NUMBER_RE}],relevance:0},s={className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elif endif define undef ifdef ifndef"},contains:[{begin:/\\\n/,relevance:0},{beginKeywords:"include",end:"$",keywords:{"meta-keyword":"include"},contains:[e.inherit(n,{className:"meta-string"}),{className:"meta-string",begin:"<",end:">",illegal:"\\n"}]},n,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},i={className:"variable",begin:/&[a-z\d_]*\b/},d={className:"meta-keyword",begin:"/[a-z][a-z\\d-]*/"},l={className:"symbol",begin:"^\\s*[a-zA-Z_][a-zA-Z\\d_]*:"},r={className:"params",begin:"<",end:">",contains:[a,i]},_={className:"class",begin:/[a-zA-Z_][a-zA-Z\d_@]*\s\{/,end:/[{;=]/,returnBegin:!0,excludeEnd:!0};return{name:"Device Tree",keywords:"",contains:[{className:"class",begin:"/\\s*\\{",end:/\};/,relevance:10,contains:[i,d,l,_,r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,n]},i,d,l,_,r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,n,s,{begin:e.IDENT_RE+"::",keywords:""}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_dts.661e4edb.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_dust.1cd11d28.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[8268],{8378:e=>{e.exports=function(e){return{name:"Dust",aliases:["dst"],case_insensitive:!0,subLanguage:"xml",contains:[{className:"template-tag",begin:/\{[#\/]/,end:/\}/,illegal:/;/,contains:[{className:"name",begin:/[a-zA-Z\.-]+/,starts:{endsWithParent:!0,relevance:0,contains:[e.QUOTE_STRING_MODE]}}]},{className:"template-variable",begin:/\{/,end:/\}/,illegal:/;/,keywords:"if eq ne lt lte gt gte select default math sep"}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_dust.1cd11d28.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_ebnf.554e3c89.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[5396],{1755:n=>{n.exports=function(n){const e=n.COMMENT(/\(\*/,/\*\)/);return{name:"Extended Backus-Naur Form",illegal:/\S/,contains:[e,{className:"attribute",begin:/^[ ]*[a-zA-Z]+([\s_-]+[a-zA-Z]+)*/},{begin:/=/,end:/[.;]/,contains:[e,{className:"meta",begin:/\?.*\?/},{className:"string",variants:[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,{begin:"`",end:"`"}]}]}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_ebnf.554e3c89.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_elm.dde0c6f2.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[7917],{9280:e=>{e.exports=function(e){const n={variants:[e.COMMENT("--","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},i={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},s={begin:"\\(",end:"\\)",illegal:'"',contains:[{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},n]};return{name:"Elm",keywords:"let in if then else case of where module import exposing type alias as infix infixl infixr port effect command subscription",contains:[{beginKeywords:"port effect module",end:"exposing",keywords:"port effect module where command subscription exposing",contains:[s,n],illegal:"\\W\\.|;"},{begin:"import",end:"$",keywords:"import as exposing",contains:[s,n],illegal:"\\W\\.|;"},{begin:"type",end:"$",keywords:"type alias",contains:[i,s,{begin:/\{/,end:/\}/,contains:s.contains},n]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,n]},{begin:"port",end:"$",keywords:"port",contains:[n]},{className:"string",begin:"'\\\\?.",end:"'",illegal:"."},e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,i,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),n,{begin:"->|<-"}],illegal:/;/}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_elm.dde0c6f2.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_erb.59785893.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[8048],{1879:e=>{e.exports=function(e){return{name:"ERB",subLanguage:"xml",contains:[e.COMMENT("<%#","%>"),{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_erb.59785893.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_erlang.28081647.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[3025],{1160:e=>{e.exports=function(e){const n="[a-z'][a-zA-Z0-9_']*",a="("+n+":"+n+"|"+n+")",i={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",literal:"false true"},r=e.COMMENT("%","$"),c={className:"number",begin:"\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)",relevance:0},s={begin:"fun\\s+"+n+"/\\d+"},o={begin:a+"\\(",end:"\\)",returnBegin:!0,relevance:0,contains:[{begin:a,relevance:0},{begin:"\\(",end:"\\)",endsWithParent:!0,returnEnd:!0,relevance:0}]},t={begin:/\{/,end:/\}/,relevance:0},d={begin:"\\b_([A-Z][A-Za-z0-9_]*)?",relevance:0},l={begin:"[A-Z][a-zA-Z0-9_]*",relevance:0},b={begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0,returnBegin:!0,contains:[{begin:"#"+e.UNDERSCORE_IDENT_RE,relevance:0},{begin:/\{/,end:/\}/,relevance:0}]},g={beginKeywords:"fun receive if try case",end:"end",keywords:i};g.contains=[r,s,e.inherit(e.APOS_STRING_MODE,{className:""}),g,o,e.QUOTE_STRING_MODE,c,t,d,l,b];const _=[r,s,g,o,e.QUOTE_STRING_MODE,c,t,d,l,b];o.contains[1].contains=_,t.contains=_,b.contains[1].contains=_;const f={className:"params",begin:"\\(",end:"\\)",contains:_};return{name:"Erlang",aliases:["erl"],keywords:i,illegal:"(",returnBegin:!0,illegal:"\\(|#|//|/\\*|\\\\|:|;",contains:[f,e.inherit(e.TITLE_MODE,{begin:n})],starts:{end:";|\\.",keywords:i,contains:_}},r,{begin:"^-",end:"\\.",relevance:0,excludeEnd:!0,returnBegin:!0,keywords:{$pattern:"-"+e.IDENT_RE,keyword:["-module","-record","-undef","-export","-ifdef","-ifndef","-author","-copyright","-doc","-vsn","-import","-include","-include_lib","-compile","-define","-else","-endif","-file","-behaviour","-behavior","-spec"].map((e=>"".concat(e,"|1.5"))).join(" ")},contains:[f]},c,e.QUOTE_STRING_MODE,b,d,l,t,{begin:/\.$/}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_erlang.28081647.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_erlangRepl.458f6dfd.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[6996],{5217:e=>{function n(){for(var e=arguments.length,n=new Array(e),a=0;a{return(n=e)?"string"===typeof n?n:n.source:null;var n})).join("")}e.exports=function(e){return{name:"Erlang REPL",keywords:{built_in:"spawn spawn_link self",keyword:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},contains:[{className:"meta",begin:"^[0-9]+> ",relevance:10},e.COMMENT("%","$"),{className:"number",begin:"\\b(\\d+(_\\d+)*#[a-fA-F0-9]+(_[a-fA-F0-9]+)*|\\d+(_\\d+)*(\\.\\d+(_\\d+)*)?([eE][-+]?\\d+)?)",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:n(/\?(::)?/,/([A-Z]\w*)/,/((::)[A-Z]\w*)*/)},{begin:"->"},{begin:"ok"},{begin:"!"},{begin:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",relevance:0},{begin:"[A-Z][a-zA-Z0-9_']*",relevance:0}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_erlangRepl.458f6dfd.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_fix.f41ae848.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[3119],{3960:n=>{n.exports=function(n){return{name:"FIX",contains:[{begin:/[^\u2401\u0001]+/,end:/[\u2401\u0001]/,excludeEnd:!0,returnBegin:!0,returnEnd:!1,contains:[{begin:/([^\u2401\u0001=]+)/,end:/=([^\u2401\u0001=]+)/,returnEnd:!0,returnBegin:!1,className:"attr"},{begin:/=/,end:/([\u2401\u0001])/,excludeEnd:!0,excludeBegin:!0,className:"string"}]}],case_insensitive:!0}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_fix.f41ae848.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_flix.6a14737f.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[4849],{6985:e=>{e.exports=function(e){const n={className:"function",beginKeywords:"def",end:/[:={\[(\n;]/,excludeEnd:!0,contains:[{className:"title",relevance:0,begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/}]};return{name:"Flix",keywords:{literal:"true false",keyword:"case class def else enum if impl import in lat rel index let match namespace switch type yield with"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},{className:"string",variants:[{begin:'"',end:'"'}]},n,e.C_NUMBER_MODE]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_flix.6a14737f.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_fsharp.c9d38c2c.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[9845],{9333:e=>{e.exports=function(e){const n={begin:"<",end:">",contains:[e.inherit(e.TITLE_MODE,{begin:/'[a-zA-Z0-9_]+/})]};return{name:"F#",aliases:["fs"],keywords:"abstract and as assert base begin class default delegate do done downcast downto elif else end exception extern false finally for fun function global if in inherit inline interface internal lazy let match member module mutable namespace new null of open or override private public rec return sig static struct then to true try type upcast use val void when while with yield",illegal:/\/\*/,contains:[{className:"keyword",begin:/\b(yield|return|let|do)!/},{className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},{className:"string",begin:'"""',end:'"""'},e.COMMENT("\\(\\*(\\s)","\\*\\)",{contains:["self"]}),{className:"class",beginKeywords:"type",end:"\\(|=|$",excludeEnd:!0,contains:[e.UNDERSCORE_TITLE_MODE,n]},{className:"meta",begin:"\\[<",end:">\\]",relevance:10},{className:"symbol",begin:"\\B('[A-Za-z])\\b",contains:[e.BACKSLASH_ESCAPE]},e.C_LINE_COMMENT_MODE,e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),e.C_NUMBER_MODE]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_fsharp.c9d38c2c.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_gcode.981fe2a0.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[7609],{7285:e=>{e.exports=function(e){const n={$pattern:"[A-Z_][A-Z0-9_.]*",keyword:"IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT EQ LT GT NE GE LE OR XOR"},a=e.inherit(e.C_NUMBER_MODE,{begin:"([-+]?((\\.\\d+)|(\\d+)(\\.\\d*)?))|"+e.C_NUMBER_RE}),s=[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT(/\(/,/\)/),a,e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"name",begin:"([G])([0-9]+\\.?[0-9]?)"},{className:"name",begin:"([M])([0-9]+\\.?[0-9]?)"},{className:"attr",begin:"(VC|VS|#)",end:"(\\d+)"},{className:"attr",begin:"(VZOFX|VZOFY|VZOFZ)"},{className:"built_in",begin:"(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)",contains:[a],end:"\\]"},{className:"symbol",variants:[{begin:"N",end:"\\d+",illegal:"\\W"}]}];return{name:"G-code (ISO 6983)",aliases:["nc"],case_insensitive:!0,keywords:n,contains:[{className:"meta",begin:"%"},{className:"meta",begin:"([O])([0-9]+)"}].concat(s)}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_gcode.981fe2a0.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_gherkin.1e7c8975.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[1167],{2274:e=>{e.exports=function(e){return{name:"Gherkin",aliases:["feature"],keywords:"Feature Background Ability Business Need Scenario Scenarios Scenario Outline Scenario Template Examples Given And Then But When",contains:[{className:"symbol",begin:"\\*",relevance:0},{className:"meta",begin:"@[^@\\s]+"},{begin:"\\|",end:"\\|\\w*$",contains:[{className:"string",begin:"[^|]+"}]},{className:"variable",begin:"<",end:">"},e.HASH_COMMENT_MODE,{className:"string",begin:'"""',end:'"""'},e.QUOTE_STRING_MODE]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_gherkin.1e7c8975.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_go.803920b3.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[6302],{5196:e=>{e.exports=function(e){const n={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",literal:"true false iota nil",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{name:"Go",aliases:["golang"],keywords:n,illegal:"{e.exports=function(e){return{name:"Golo",keywords:{keyword:"println readln print import module function local return let var while for foreach times in case when match with break continue augment augmentation each find filter reduce if then else otherwise try catch finally raise throw orIfNull DynamicObject|10 DynamicVariable struct Observable map set vector list array",literal:"true false null"},contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_golo.e54d49b7.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_gradle.e4349b6d.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[7891],{5909:e=>{e.exports=function(e){return{name:"Gradle",case_insensitive:!0,keywords:{keyword:"task project allprojects subprojects artifacts buildscript configurations dependencies repositories sourceSets description delete from into include exclude source classpath destinationDir includes options sourceCompatibility targetCompatibility group flatDir doLast doFirst flatten todir fromdir ant def abstract break case catch continue default do else extends final finally for if implements instanceof native new private protected public return static switch synchronized throw throws transient try volatile while strictfp package import false null super this true antlrtask checkstyle codenarc copy boolean byte char class double float int interface long short void compile runTime file fileTree abs any append asList asWritable call collect compareTo count div dump each eachByte eachFile eachLine every find findAll flatten getAt getErr getIn getOut getText grep immutable inject inspect intersect invokeMethods isCase join leftShift minus multiply newInputStream newOutputStream newPrintWriter newReader newWriter next plus pop power previous print println push putAt read readBytes readLines reverse reverseEach round size sort splitEachLine step subMap times toInteger toList tokenize upto waitForOrKill withPrintWriter withReader withStream withWriter withWriterAppend write writeLine"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.REGEXP_MODE]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_gradle.e4349b6d.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_groovy.a55d9da7.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[8560],{8018:e=>{function n(e){return function(){for(var e=arguments.length,n=new Array(e),a=0;afunction(e){return e?"string"===typeof e?e:e.source:null}(e))).join("")}("(?=",e,")")}function a(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return n.variants=e,n}e.exports=function(e){const t="[A-Za-z0-9_$]+",r=a([e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]})]),i={className:"regexp",begin:/~?\/[^\/\n]+\//,contains:[e.BACKSLASH_ESCAPE]},s=a([e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]),l=a([{begin:/"""/,end:/"""/},{begin:/'''/,end:/'''/},{begin:"\\$/",end:"/\\$",relevance:10},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE],{className:"string"});return{name:"Groovy",keywords:{built_in:"this super",literal:"true false null",keyword:"byte short char int long boolean float double void def as in assert trait abstract static volatile transient public private protected synchronized final class interface enum if else for while switch case break default continue throw throws try catch finally implements extends new import package return instanceof"},contains:[e.SHEBANG({binary:"groovy",relevance:10}),r,l,i,s,{className:"class",beginKeywords:"class interface trait enum",end:/\{/,illegal:":",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{className:"meta",begin:"@[A-Za-z]+",relevance:0},{className:"attr",begin:t+"[ \t]*:",relevance:0},{begin:/\?/,end:/:/,relevance:0,contains:[r,l,i,s,"self"]},{className:"symbol",begin:"^[ \t]*"+n(t+":"),excludeBegin:!0,end:t+":",relevance:0}],illegal:/#|<\//}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_groovy.a55d9da7.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_haml.6b37b8bf.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[38],{2160:e=>{e.exports=function(e){return{name:"HAML",case_insensitive:!0,contains:[{className:"meta",begin:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",relevance:10},e.COMMENT("^\\s*(!=#|=#|-#|/).*$",!1,{relevance:0}),{begin:"^\\s*(-|=|!=)(?!#)",starts:{end:"\\n",subLanguage:"ruby"}},{className:"tag",begin:"^\\s*%",contains:[{className:"selector-tag",begin:"\\w+"},{className:"selector-id",begin:"#[\\w-]+"},{className:"selector-class",begin:"\\.[\\w-]+"},{begin:/\{\s*/,end:/\s*\}/,contains:[{begin:":\\w+\\s*=>",end:",\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"attr",begin:":\\w+"},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]},{begin:"\\(\\s*",end:"\\s*\\)",excludeEnd:!0,contains:[{begin:"\\w+\\s*=",end:"\\s+",returnBegin:!0,endsWithParent:!0,contains:[{className:"attr",begin:"\\w+",relevance:0},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{begin:"\\w+",relevance:0}]}]}]},{begin:"^\\s*[=~]\\s*"},{begin:/#\{/,starts:{end:/\}/,subLanguage:"ruby"}}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_haml.6b37b8bf.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_haskell.0681876f.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[9060],{8862:e=>{e.exports=function(e){const n={variants:[e.COMMENT("--","$"),e.COMMENT(/\{-/,/-\}/,{contains:["self"]})]},i={className:"meta",begin:/\{-#/,end:/#-\}/},a={className:"meta",begin:"^#",end:"$"},s={className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},l={begin:"\\(",end:"\\)",illegal:'"',contains:[i,a,{className:"type",begin:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TITLE_MODE,{begin:"[_a-z][\\w']*"}),n]};return{name:"Haskell",aliases:["hs"],keywords:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",contains:[{beginKeywords:"module",end:"where",keywords:"module where",contains:[l,n],illegal:"\\W\\.|;"},{begin:"\\bimport\\b",end:"$",keywords:"import qualified as hiding",contains:[l,n],illegal:"\\W\\.|;"},{className:"class",begin:"^(\\s*)?(class|instance)\\b",end:"where",keywords:"class family instance where",contains:[s,l,n]},{className:"class",begin:"\\b(data|(new)?type)\\b",end:"$",keywords:"data family type newtype deriving",contains:[i,s,l,{begin:/\{/,end:/\}/,contains:l.contains},n]},{beginKeywords:"default",end:"$",contains:[s,l,n]},{beginKeywords:"infix infixl infixr",end:"$",contains:[e.C_NUMBER_MODE,n]},{begin:"\\bforeign\\b",end:"$",keywords:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",contains:[s,e.QUOTE_STRING_MODE,n]},{className:"meta",begin:"#!\\/usr\\/bin\\/env runhaskell",end:"$"},i,a,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,s,e.inherit(e.TITLE_MODE,{begin:"^[_a-z][\\w']*"}),n,{begin:"->|<-"}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_haskell.0681876f.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_haxe.6c2bb1c6.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[1361],{6174:e=>{e.exports=function(e){return{name:"Haxe",aliases:["hx"],keywords:{keyword:"break case cast catch continue default do dynamic else enum extern for function here if import in inline never new override package private get set public return static super switch this throw trace try typedef untyped using var while Int Float String Bool Dynamic Void Array ",built_in:"trace this",literal:"true false null _"},contains:[{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE,{className:"subst",begin:"\\$\\{",end:"\\}"},{className:"subst",begin:"\\$",end:/\W\}/}]},e.QUOTE_STRING_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"@:",end:"$"},{className:"meta",begin:"#",end:"$",keywords:{"meta-keyword":"if else elseif end error"}},{className:"type",begin:":[ \t]*",end:"[^A-Za-z0-9_ \t\\->]",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:":[ \t]*",end:"\\W",excludeBegin:!0,excludeEnd:!0},{className:"type",begin:"new *",end:"\\W",excludeBegin:!0,excludeEnd:!0},{className:"class",beginKeywords:"enum",end:"\\{",contains:[e.TITLE_MODE]},{className:"class",beginKeywords:"abstract",end:"[\\{$]",contains:[{className:"type",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"type",begin:"from +",end:"\\W",excludeBegin:!0,excludeEnd:!0},{className:"type",begin:"to +",end:"\\W",excludeBegin:!0,excludeEnd:!0},e.TITLE_MODE],keywords:{keyword:"abstract from to"}},{className:"class",begin:"\\b(class|interface) +",end:"[\\{$]",excludeEnd:!0,keywords:"class interface",contains:[{className:"keyword",begin:"\\b(extends|implements) +",keywords:"extends implements",contains:[{className:"type",begin:e.IDENT_RE,relevance:0}]},e.TITLE_MODE]},{className:"function",beginKeywords:"function",end:"\\(",excludeEnd:!0,illegal:"\\S",contains:[e.TITLE_MODE]}],illegal:/<\//}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_haxe.6c2bb1c6.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_http.6d5ef38c.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[528],{7053:e=>{function n(){for(var e=arguments.length,n=new Array(e),a=0;a{return(n=e)?"string"===typeof n?n:n.source:null;var n})).join("")}e.exports=function(e){const a="HTTP/(2|1\\.[01])",s={className:"attribute",begin:n("^",/[A-Za-z][A-Za-z0-9-]*/,"(?=\\:\\s)"),starts:{contains:[{className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]}},t=[s,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+a+" \\d{3})",end:/$/,contains:[{className:"meta",begin:a},{className:"number",begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:t}},{begin:"(?=^[A-Z]+ (.*?) "+a+"$)",end:/$/,contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:a},{className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:t}},e.inherit(s,{relevance:0})]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_http.6d5ef38c.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_inform7.945e3d94.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[2084],{1510:e=>{e.exports=function(e){return{name:"Inform 7",aliases:["i7"],case_insensitive:!0,keywords:{keyword:"thing room person man woman animal container supporter backdrop door scenery open closed locked inside gender is are say understand kind of rule"},contains:[{className:"string",begin:'"',end:'"',relevance:0,contains:[{className:"subst",begin:"\\[",end:"\\]"}]},{className:"section",begin:/^(Volume|Book|Part|Chapter|Section|Table)\b/,end:"$"},{begin:/^(Check|Carry out|Report|Instead of|To|Rule|When|Before|After)\b/,end:":",contains:[{begin:"\\(This",end:"\\)"}]},{className:"comment",begin:"\\[",end:"\\]",contains:["self"]}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_inform7.945e3d94.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_ini.a8345944.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[5740],{2839:n=>{function e(n){return n?"string"===typeof n?n:n.source:null}function a(){for(var n=arguments.length,a=new Array(n),s=0;se(n))).join("")}n.exports=function(n){const s={className:"number",relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:n.NUMBER_RE}]},i=n.COMMENT();i.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const r={className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},t={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={className:"string",contains:[n.BACKSLASH_ESCAPE],variants:[{begin:"'''",end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[i,t,r,l,s,"self"],relevance:0},o=function(){for(var n=arguments.length,a=new Array(n),s=0;se(n))).join("|")+")"}(/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/);return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,contains:[i,{className:"section",begin:/\[+/,end:/\]+/},{begin:a(o,"(\\s*\\.\\s*",o,")*",a("(?=",/\s*=\s*[^#\s]/,")")),className:"attr",starts:{end:/$/,contains:[i,c,t,r,l,s]}}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_ini.a8345944.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_jbossCli.0c636aac.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[6474],{352:e=>{e.exports=function(e){const n={className:"params",begin:/\(/,end:/\)/,contains:[{begin:/[\w-]+ *=/,returnBegin:!0,relevance:0,contains:[{className:"attr",begin:/[\w-]+/}]}],relevance:0};return{name:"JBoss CLI",aliases:["wildfly-cli"],keywords:{$pattern:"[a-z-]+",keyword:"alias batch cd clear command connect connection-factory connection-info data-source deploy deployment-info deployment-overlay echo echo-dmr help history if jdbc-driver-info jms-queue|20 jms-topic|20 ls patch pwd quit read-attribute read-operation reload rollout-plan run-batch set shutdown try unalias undeploy unset version xa-data-source",literal:"true false"},contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,{className:"params",begin:/--[\w\-=\/]+/},{className:"function",begin:/:[\w\-.]+/,relevance:0},{className:"string",begin:/\B([\/.])[\w\-.\/=]+/},n]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_jbossCli.0c636aac.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_json.2b5591d4.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[9666],{7411:n=>{n.exports=function(n){const e={literal:"true false null"},i=[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],a=[n.QUOTE_STRING_MODE,n.C_NUMBER_MODE],l={end:",",endsWithParent:!0,excludeEnd:!0,contains:a,keywords:e},t={begin:/\{/,end:/\}/,contains:[{className:"attr",begin:/"/,end:/"/,contains:[n.BACKSLASH_ESCAPE],illegal:"\\n"},n.inherit(l,{begin:/:/})].concat(i),illegal:"\\S"},s={begin:"\\[",end:"\\]",contains:[n.inherit(l)],illegal:"\\S"};return a.push(t,s),i.forEach((function(n){a.push(n)})),{name:"JSON",contains:a,keywords:e,illegal:"\\S"}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_json.2b5591d4.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_juliaRepl.929db8ed.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[1958],{6183:e=>{e.exports=function(e){return{name:"Julia REPL",contains:[{className:"meta",begin:/^julia>/,relevance:10,starts:{end:/^(?![ ]{6})/,subLanguage:"julia"},aliases:["jldoctest"]}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_juliaRepl.929db8ed.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_ldif.bb2432a2.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[217],{1151:e=>{e.exports=function(e){return{name:"LDIF",contains:[{className:"attribute",begin:"^dn",end:": ",excludeEnd:!0,starts:{end:"$",relevance:0},relevance:10},{className:"attribute",begin:"^\\w",end:": ",excludeEnd:!0,starts:{end:"$",relevance:0}},{className:"literal",begin:"^-",end:"$"},e.HASH_COMMENT_MODE]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_ldif.bb2432a2.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_leaf.fb60694e.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[6288],{7898:e=>{e.exports=function(e){return{name:"Leaf",contains:[{className:"function",begin:"#+[A-Za-z_0-9]*\\(",end:/ \{/,returnBegin:!0,excludeEnd:!0,contains:[{className:"keyword",begin:"#+"},{className:"title",begin:"[A-Za-z_][A-Za-z_0-9]*"},{className:"params",begin:"\\(",end:"\\)",endsParent:!0,contains:[{className:"string",begin:'"',end:'"'},{className:"variable",begin:"[A-Za-z_][A-Za-z_0-9]*"}]}]}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_leaf.fb60694e.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_lisp.ae312241.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[7287],{2569:e=>{e.exports=function(e){var n="[a-zA-Z_\\-+\\*\\/<=>&#][a-zA-Z0-9_\\-+*\\/<=>&#!]*",a="\\|[^]*?\\|",i="(-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|-)?\\d+)?",s={className:"literal",begin:"\\b(t{1}|nil)\\b"},b={className:"number",variants:[{begin:i,relevance:0},{begin:"#(b|B)[0-1]+(/[0-1]+)?"},{begin:"#(o|O)[0-7]+(/[0-7]+)?"},{begin:"#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?"},{begin:"#(c|C)\\("+i+" +"+i,end:"\\)"}]},l=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),r=e.COMMENT(";","$",{relevance:0}),g={begin:"\\*",end:"\\*"},t={className:"symbol",begin:"[:&]"+n},c={begin:n,relevance:0},d={begin:a},o={contains:[b,l,g,t,{begin:"\\(",end:"\\)",contains:["self",s,l,b,c]},c],variants:[{begin:"['`]\\(",end:"\\)"},{begin:"\\(quote ",end:"\\)",keywords:{name:"quote"}},{begin:"'"+a}]},v={variants:[{begin:"'"+n},{begin:"#'"+n+"(::"+n+")*"}]},f={begin:"\\(\\s*",end:"\\)"},m={endsWithParent:!0,relevance:0};return f.contains=[{className:"name",variants:[{begin:n,relevance:0},{begin:a}]},m],m.contains=[o,v,f,s,b,l,r,g,t,d,c],{name:"Lisp",illegal:/\S/,contains:[b,e.SHEBANG(),s,l,r,o,v,f,c]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_lisp.ae312241.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_lua.c97203bb.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[3881],{9615:e=>{e.exports=function(e){const t="\\[=*\\[",a="\\]=*\\]",n={begin:t,end:a,contains:["self"]},o=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,a,{contains:[n],relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:o.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:o}].concat(o)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:a,contains:[n],relevance:5}])}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_lua.c97203bb.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_makefile.75b416d5.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[3996],{1818:e=>{e.exports=function(e){const n={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%{e.exports=function(e){return{name:"Mizar",keywords:"environ vocabularies notations constructors definitions registrations theorems schemes requirements begin end definition registration cluster existence pred func defpred deffunc theorem proof let take assume then thus hence ex for st holds consider reconsider such that and in provided of as from be being by means equals implies iff redefine define now not or attr is mode suppose per cases set thesis contradiction scheme reserve struct correctness compatibility coherence symmetry assymetry reflexivity irreflexivity connectedness uniqueness commutativity idempotence involutiveness projectivity",contains:[e.COMMENT("::","$")]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_mizar.299411a6.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_mojolicious.91daedf6.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[2134],{8592:e=>{e.exports=function(e){return{name:"Mojolicious",subLanguage:"xml",contains:[{className:"meta",begin:"^__(END|DATA)__$"},{begin:"^\\s*%{1,2}={0,2}",end:"$",subLanguage:"perl"},{begin:"<%{1,2}={0,2}",end:"={0,1}%>",subLanguage:"perl",excludeBegin:!0,excludeEnd:!0}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_mojolicious.91daedf6.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_monkey.4c780385.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[2296],{7653:e=>{e.exports=function(e){const n={className:"number",relevance:0,variants:[{begin:"[$][a-fA-F0-9]+"},e.NUMBER_MODE]};return{name:"Monkey",case_insensitive:!0,keywords:{keyword:"public private property continue exit extern new try catch eachin not abstract final select case default const local global field end if then else elseif endif while wend repeat until forever for to step next return module inline throw import",built_in:"DebugLog DebugStop Error Print ACos ACosr ASin ASinr ATan ATan2 ATan2r ATanr Abs Abs Ceil Clamp Clamp Cos Cosr Exp Floor Log Max Max Min Min Pow Sgn Sgn Sin Sinr Sqrt Tan Tanr Seed PI HALFPI TWOPI",literal:"true false null and or shl shr mod"},illegal:/\/\*/,contains:[e.COMMENT("#rem","#end"),e.COMMENT("'","$",{relevance:0}),{className:"function",beginKeywords:"function method",end:"[(=:]|$",illegal:/\n/,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"class",beginKeywords:"class interface",end:"$",contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{className:"built_in",begin:"\\b(self|super)\\b"},{className:"meta",begin:"\\s*#",end:"$",keywords:{"meta-keyword":"if else elseif endif end then"}},{className:"meta",begin:"^\\s*strict\\b"},{beginKeywords:"alias",end:"=",contains:[e.UNDERSCORE_TITLE_MODE]},e.QUOTE_STRING_MODE,n]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_monkey.4c780385.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_moonscript.7475f1dd.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[3634],{5326:e=>{e.exports=function(e){const n={keyword:"if then not for in while do return else elseif break continue switch and or unless when class extends super local import export from using",literal:"true false nil",built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"},s="[A-Za-z$_][0-9A-Za-z$_]*",a={className:"subst",begin:/#\{/,end:/\}/,keywords:n},t=[e.inherit(e.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",relevance:0}}),{className:"string",variants:[{begin:/'/,end:/'/,contains:[e.BACKSLASH_ESCAPE]},{begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,a]}]},{className:"built_in",begin:"@__"+e.IDENT_RE},{begin:"@"+e.IDENT_RE},{begin:e.IDENT_RE+"\\\\"+e.IDENT_RE}];a.contains=t;const i=e.inherit(e.TITLE_MODE,{begin:s}),r="(\\(.*\\)\\s*)?\\B[-=]>",l={className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,end:/\)/,keywords:n,contains:["self"].concat(t)}]};return{name:"MoonScript",aliases:["moon"],keywords:n,illegal:/\/\*/,contains:t.concat([e.COMMENT("--","$"),{className:"function",begin:"^\\s*"+s+"\\s*=\\s*"+r,end:"[-=]>",returnBegin:!0,contains:[i,l]},{begin:/[\(,:=]\s*/,relevance:0,contains:[{className:"function",begin:r,end:"[-=]>",returnBegin:!0,contains:[l]}]},{className:"class",beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[i]},i]},{className:"name",begin:s+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_moonscript.7475f1dd.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_nginx.57ff5510.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[5755],{6630:e=>{e.exports=function(e){const n={className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/\}/},{begin:/[$@]/+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,keywords:{$pattern:"[a-z/_]+",literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n]},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^",end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},n]};return{name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{begin:e.UNDERSCORE_IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\{/,contains:[{className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|\\{",returnBegin:!0,contains:[{className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}],illegal:"[^\\s\\}]"}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_nginx.57ff5510.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_nim.5773cb9c.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[6922],{9203:e=>{e.exports=function(e){return{name:"Nim",keywords:{keyword:"addr and as asm bind block break case cast const continue converter discard distinct div do elif else end enum except export finally for from func generic if import in include interface is isnot iterator let macro method mixin mod nil not notin object of or out proc ptr raise ref return shl shr static template try tuple type using var when while with without xor yield",literal:"shared guarded stdin stdout stderr result true false",built_in:"int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 float float32 float64 bool char string cstring pointer expr stmt void auto any range array openarray varargs seq set clong culong cchar cschar cshort cint csize clonglong cfloat cdouble clongdouble cuchar cushort cuint culonglong cstringarray semistatic"},contains:[{className:"meta",begin:/\{\./,end:/\.\}/,relevance:10},{className:"string",begin:/[a-zA-Z]\w*"/,end:/"/,contains:[{begin:/""/}]},{className:"string",begin:/([a-zA-Z]\w*)?"""/,end:/"""/},e.QUOTE_STRING_MODE,{className:"type",begin:/\b[A-Z]\w+\b/,relevance:0},{className:"number",relevance:0,variants:[{begin:/\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/},{begin:/\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/},{begin:/\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/},{begin:/\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/}]},e.HASH_COMMENT_MODE]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_nim.5773cb9c.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_nix.18d1ed0f.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[9141],{8373:e=>{e.exports=function(e){const n={keyword:"rec with let in inherit assert if else then",literal:"true false or and null",built_in:"import abort baseNameOf dirOf isNull builtins map removeAttrs throw toString derivation"},i={className:"subst",begin:/\$\{/,end:/\}/,keywords:n},s={className:"string",contains:[i],variants:[{begin:"''",end:"''"},{begin:'"',end:'"'}]},t=[e.NUMBER_MODE,e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s,{begin:/[a-zA-Z0-9-_]+(\s*=)/,returnBegin:!0,relevance:0,contains:[{className:"attr",begin:/\S+/}]}];return i.contains=t,{name:"Nix",aliases:["nixos"],keywords:n,contains:t}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_nix.18d1ed0f.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_nodeRepl.5b2afe18.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[4887],{8824:n=>{n.exports=function(n){return{name:"Node REPL",contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",subLanguage:"javascript"}},variants:[{begin:/^>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_nodeRepl.5b2afe18.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_ocaml.03443415.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[2838],{8036:e=>{e.exports=function(e){return{name:"OCaml",aliases:["ml"],keywords:{$pattern:"[a-z_]\\w*!?",keyword:"and as assert asr begin class constraint do done downto else end exception external for fun function functor if in include inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method mod module mutable new object of open! open or private rec sig struct then to try type val! val virtual when while with parser value",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit in_channel out_channel ref",literal:"true false"},illegal:/\/\/|>>/,contains:[{className:"literal",begin:"\\[(\\|\\|)?\\]|\\(\\)",relevance:0},e.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"type",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*",relevance:0},e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/->/}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_ocaml.03443415.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_openscad.8b4b4de9.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[7433],{6424:e=>{e.exports=function(e){const n={className:"keyword",begin:"\\$(f[asn]|t|vp[rtd]|children)"},r={className:"number",begin:"\\b\\d+(\\.\\d+)?(e-?\\d+)?",relevance:0},s=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),a={className:"function",beginKeywords:"module function",end:/=|\{/,contains:[{className:"params",begin:"\\(",end:"\\)",contains:["self",r,s,n,{className:"literal",begin:"false|true|PI|undef"}]},e.UNDERSCORE_TITLE_MODE]};return{name:"OpenSCAD",aliases:["scad"],keywords:{keyword:"function module include use for intersection_for if else \\%",literal:"false true PI undef",built_in:"circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,r,{className:"meta",keywords:{"meta-keyword":"include use"},begin:"include|use <",end:">"},s,n,{begin:"[*!#%]",relevance:0},a]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_openscad.8b4b4de9.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_oxygene.779de870.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[1968],{9727:e=>{e.exports=function(e){const n={$pattern:/\.?\w+/,keyword:"abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained"},a=e.COMMENT(/\{/,/\}/,{relevance:0}),r=e.COMMENT("\\(\\*","\\*\\)",{relevance:10}),t={className:"string",begin:"'",end:"'",contains:[{begin:"''"}]},s={className:"string",begin:"(#\\d+)+"},i={className:"function",beginKeywords:"function constructor destructor procedure method",end:"[:;]",keywords:"function constructor|10 destructor|10 procedure|10 method|10",contains:[e.TITLE_MODE,{className:"params",begin:"\\(",end:"\\)",keywords:n,contains:[t,s]},a,r]};return{name:"Oxygene",case_insensitive:!0,keywords:n,illegal:'("|\\$[G-Zg-z]|\\/\\*||->)',contains:[a,r,e.C_LINE_COMMENT_MODE,t,s,e.NUMBER_MODE,i,{className:"class",begin:"=\\bclass\\b",end:"end;",keywords:n,contains:[t,s,a,r,e.C_LINE_COMMENT_MODE,i]}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_oxygene.779de870.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_parser3.7a220733.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[4129],{7157:e=>{e.exports=function(e){const a=e.COMMENT(/\{/,/\}/,{contains:["self"]});return{name:"Parser3",subLanguage:"xml",relevance:0,contains:[e.COMMENT("^#","$"),e.COMMENT(/\^rem\{/,/\}/,{relevance:10,contains:[a]}),{className:"meta",begin:"^@(?:BASE|USE|CLASS|OPTIONS)$",relevance:10},{className:"title",begin:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"},{className:"variable",begin:/\$\{?[\w\-.:]+\}?/},{className:"keyword",begin:/\^[\w\-.:]+/},{className:"number",begin:"\\^#[0-9a-fA-F]+"},e.C_NUMBER_MODE]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_parser3.7a220733.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_pf.58cf62aa.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[4047],{450:t=>{t.exports=function(t){return{name:"Packet Filter config",aliases:["pf.conf"],keywords:{$pattern:/[a-z0-9_<>-]+/,built_in:"block match pass load anchor|5 antispoof|10 set table",keyword:"in out log quick on rdomain inet inet6 proto from port os to route allow-opts divert-packet divert-reply divert-to flags group icmp-type icmp6-type label once probability recieved-on rtable prio queue tos tag tagged user keep fragment for os drop af-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robin source-hash static-port dup-to reply-to route-to parent bandwidth default min max qlimit block-policy debug fingerprints hostid limit loginterface optimization reassemble ruleset-optimization basic none profile skip state-defaults state-policy timeout const counters persist no modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppy source-track global rule max-src-nodes max-src-states max-src-conn max-src-conn-rate overload flush scrub|5 max-mss min-ttl no-df|10 random-id",literal:"all any no-route self urpf-failed egress|5 unknown"},contains:[t.HASH_COMMENT_MODE,t.NUMBER_MODE,t.QUOTE_STRING_MODE,{className:"variable",begin:/\$[\w\d#@][\w\d_]*/},{className:"variable",begin:/<(?!\/)/,end:/>/}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_pf.58cf62aa.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_phpTemplate.655b7b7b.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[6549],{2638:n=>{n.exports=function(n){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),n.inherit(n.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_phpTemplate.655b7b7b.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_plaintext.63506c87.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[1666],{7721:e=>{e.exports=function(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_plaintext.63506c87.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_pony.9aaa8c4e.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[9537],{7524:e=>{e.exports=function(e){return{name:"Pony",keywords:{keyword:"actor addressof and as be break class compile_error compile_intrinsic consume continue delegate digestof do else elseif embed end error for fun if ifdef in interface is isnt lambda let match new not object or primitive recover repeat return struct then trait try type until use var where while with xor",meta:"iso val tag trn box ref",literal:"this false true"},contains:[{className:"type",begin:"\\b_?[A-Z][\\w]*",relevance:0},{className:"string",begin:'"""',end:'"""',relevance:10},{className:"string",begin:'"',end:'"',contains:[e.BACKSLASH_ESCAPE]},{className:"string",begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE],relevance:0},{begin:e.IDENT_RE+"'",relevance:0},{className:"number",begin:"(-?)(\\b0[xX][a-fA-F0-9]+|\\b0[bB][01]+|(\\b\\d+(_\\d+)?(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",relevance:0},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_pony.9aaa8c4e.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_profile.85801a58.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[6433],{7568:e=>{e.exports=function(e){return{name:"Python profiler",contains:[e.C_NUMBER_MODE,{begin:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",end:":",excludeEnd:!0},{begin:"(ncalls|tottime|cumtime)",end:"$",keywords:"ncalls tottime|10 cumtime|10 filename",relevance:10},{begin:"function calls",end:"$",contains:[e.C_NUMBER_MODE],relevance:10},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:"\\(",end:"\\)$",excludeBegin:!0,excludeEnd:!0,relevance:0}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_profile.85801a58.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_prolog.08ead49c.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[6301],{696:n=>{n.exports=function(n){const e={begin:/\(/,end:/\)/,relevance:0},a={begin:/\[/,end:/\]/},s={className:"comment",begin:/%/,end:/$/,contains:[n.PHRASAL_WORDS_MODE]},i={className:"string",begin:/`/,end:/`/,contains:[n.BACKSLASH_ESCAPE]},c=[{begin:/[a-z][A-Za-z0-9_]*/,relevance:0},{className:"symbol",variants:[{begin:/[A-Z][a-zA-Z0-9_]*/},{begin:/_[A-Za-z0-9_]*/}],relevance:0},e,{begin:/:-/},a,s,n.C_BLOCK_COMMENT_MODE,n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,i,{className:"string",begin:/0'(\\'|.)/},{className:"string",begin:/0'\\s/},n.C_NUMBER_MODE];return e.contains=c,a.contains=c,{name:"Prolog",contains:c.concat([{begin:/\.$/}])}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_prolog.08ead49c.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_properties.02f0d3dc.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[7892],{4450:e=>{e.exports=function(e){var n="[ \\t\\f]*",a=n+"[:=]"+n,t="[ \\t\\f]+",r="("+a+"|"+t+")",s="([^\\\\\\W:= \\t\\f\\n]|\\\\.)+",i="([^\\\\:= \\t\\f\\n]|\\\\.)+",c={end:r,relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{begin:"\\\\\\\\"},{begin:"\\\\\\n"}]}};return{name:".properties",case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{returnBegin:!0,variants:[{begin:s+a,relevance:1},{begin:s+t,relevance:0}],contains:[{className:"attr",begin:s,endsParent:!0,relevance:0}],starts:c},{begin:i+r,returnBegin:!0,relevance:0,contains:[{className:"meta",begin:i,endsParent:!0,relevance:0}],starts:c},{className:"attr",relevance:0,begin:i+n+"$"}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_properties.02f0d3dc.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_protobuf.509fb15f.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[8346],{8513:e=>{e.exports=function(e){return{name:"Protocol Buffers",keywords:{keyword:"package import option optional required repeated group oneof",built_in:"double float int32 int64 uint32 uint64 sint32 sint64 fixed32 fixed64 sfixed32 sfixed64 bool string bytes",literal:"true false"},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"message enum service",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{className:"function",beginKeywords:"rpc",end:/[{;]/,excludeEnd:!0,keywords:"rpc returns"},{begin:/^\s*[A-Z_]+(?=\s*=[^\n]+;$)/}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_protobuf.509fb15f.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_purebasic.b4664a7f.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[6373],{7215:e=>{e.exports=function(e){return{name:"PureBASIC",aliases:["pb","pbi"],keywords:"Align And Array As Break CallDebugger Case CompilerCase CompilerDefault CompilerElse CompilerElseIf CompilerEndIf CompilerEndSelect CompilerError CompilerIf CompilerSelect CompilerWarning Continue Data DataSection Debug DebugLevel Declare DeclareC DeclareCDLL DeclareDLL DeclareModule Default Define Dim DisableASM DisableDebugger DisableExplicit Else ElseIf EnableASM EnableDebugger EnableExplicit End EndDataSection EndDeclareModule EndEnumeration EndIf EndImport EndInterface EndMacro EndModule EndProcedure EndSelect EndStructure EndStructureUnion EndWith Enumeration EnumerationBinary Extends FakeReturn For ForEach ForEver Global Gosub Goto If Import ImportC IncludeBinary IncludeFile IncludePath Interface List Macro MacroExpandedCount Map Module NewList NewMap Next Not Or Procedure ProcedureC ProcedureCDLL ProcedureDLL ProcedureReturn Protected Prototype PrototypeC ReDim Read Repeat Restore Return Runtime Select Shared Static Step Structure StructureUnion Swap Threaded To UndefineMacro Until Until UnuseModule UseModule Wend While With XIncludeFile XOr",contains:[e.COMMENT(";","$",{relevance:0}),{className:"function",begin:"\\b(Procedure|Declare)(C|CDLL|DLL)?\\b",end:"\\(",excludeEnd:!0,returnBegin:!0,contains:[{className:"keyword",begin:"(Procedure|Declare)(C|CDLL|DLL)?",excludeEnd:!0},{className:"type",begin:"\\.\\w*"},e.UNDERSCORE_TITLE_MODE]},{className:"string",begin:'(~)?"',end:'"',illegal:"\\n"},{className:"symbol",begin:"#[a-zA-Z_]\\w*\\$?"}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_purebasic.b4664a7f.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_pythonRepl.a4384cad.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[6735],{2888:n=>{n.exports=function(n){return{aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_pythonRepl.a4384cad.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_q.b901fb64.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[5592],{4754:e=>{e.exports=function(e){return{name:"Q",aliases:["k","kdb"],keywords:{$pattern:/(`?)[A-Za-z0-9_]+\b/,keyword:"do while select delete by update from",literal:"0b 1b",built_in:"neg not null string reciprocal floor ceiling signum mod xbar xlog and or each scan over prior mmu lsq inv md5 ltime gtime count first var dev med cov cor all any rand sums prds mins maxs fills deltas ratios avgs differ prev next rank reverse iasc idesc asc desc msum mcount mavg mdev xrank mmin mmax xprev rotate distinct group where flip type key til get value attr cut set upsert raze union inter except cross sv vs sublist enlist read0 read1 hopen hclose hdel hsym hcount peach system ltrim rtrim trim lower upper ssr view tables views cols xcols keys xkey xcol xasc xdesc fkeys meta lj aj aj0 ij pj asof uj ww wj wj1 fby xgroup ungroup ej save load rsave rload show csv parse eval min max avg wavg wsum sin cos tan sum",type:"`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid"},contains:[e.C_LINE_COMMENT_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_q.b901fb64.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_rib.20ec1216.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[8983],{5649:e=>{e.exports=function(e){return{name:"RenderMan RIB",keywords:"ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interior LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd",illegal:"{n.exports=function(n){const e="[a-zA-Z-_][^\\n{]+\\{",a={className:"attribute",begin:/[a-zA-Z-_]+/,end:/\s*:/,excludeEnd:!0,starts:{end:";",relevance:0,contains:[{className:"variable",begin:/\.[a-zA-Z-_]+/},{className:"keyword",begin:/\(optional\)/}]}};return{name:"Roboconf",aliases:["graph","instances"],case_insensitive:!0,keywords:"import",contains:[{begin:"^facet "+e,end:/\}/,keywords:"facet",contains:[a,n.HASH_COMMENT_MODE]},{begin:"^\\s*instance of "+e,end:/\}/,keywords:"name count channels instance-data instance-state instance of",illegal:/\S/,contains:["self",a,n.HASH_COMMENT_MODE]},{begin:"^"+e,end:/\}/,contains:[a,n.HASH_COMMENT_MODE]},n.HASH_COMMENT_MODE]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_roboconf.dd37e900.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_rsl.2775bd4c.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[8208],{6009:e=>{e.exports=function(e){return{name:"RenderMan RSL",keywords:{keyword:"float color point normal vector matrix while for if do return else break extern continue",built_in:"abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp faceforward filterstep floor format fresnel incident length lightsource log match max min mod noise normalize ntransform opposite option phong pnoise pow printf ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan texture textureinfo trace transform vtransform xcomp ycomp zcomp"},illegal:"{e.exports=function(e){const n={className:"subst",variants:[{begin:"\\$[A-Za-z0-9_]+"},{begin:/\$\{/,end:/\}/}]},a={className:"string",variants:[{begin:'"""',end:'"""'},{begin:'"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:'[a-z]+"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE,n]},{className:"string",begin:'[a-z]+"""',end:'"""',contains:[n],relevance:10}]},s={className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},t={className:"title",begin:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,relevance:0},i={className:"class",beginKeywords:"class object trait type",end:/[:={\[\n;]/,excludeEnd:!0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{beginKeywords:"extends with",relevance:10},{begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[s]},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,relevance:0,contains:[s]},t]},l={className:"function",beginKeywords:"def",end:/[:={\[(\n;]/,excludeEnd:!0,contains:[t]};return{name:"Scala",keywords:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,a,{className:"symbol",begin:"'\\w[\\w\\d_]*(?!')"},s,l,i,e.C_NUMBER_MODE,{className:"meta",begin:"@[A-Za-z]+"}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_scala.be672113.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_scilab.cd86565d.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[9415],{7422:e=>{e.exports=function(e){const n=[e.C_NUMBER_MODE,{className:"string",begin:"'|\"",end:"'|\"",contains:[e.BACKSLASH_ESCAPE,{begin:"''"}]}];return{name:"Scilab",aliases:["sci"],keywords:{$pattern:/%?\w+/,keyword:"abort break case clear catch continue do elseif else endfunction end for function global if pause return resume select try then while",literal:"%f %F %t %T %pi %eps %inf %nan %e %i %z %s",built_in:"abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp error exec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isempty isinfisnan isvector lasterror length load linspace list listfiles log10 log2 log max min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand real round sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tan type typename warning zeros matrix"},illegal:'("|#|/\\*|\\s+/\\w+)',contains:[{className:"function",beginKeywords:"function",end:"$",contains:[e.UNDERSCORE_TITLE_MODE,{className:"params",begin:"\\(",end:"\\)"}]},{begin:"[a-zA-Z_][a-zA-Z_0-9]*[\\.']+",relevance:0},{begin:"\\[",end:"\\][\\.']*",relevance:0,contains:n},e.COMMENT("//","$")].concat(n)}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_scilab.cd86565d.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_shell.7530ec41.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[4821],{5789:e=>{e.exports=function(e){return{name:"Shell Session",aliases:["console"],contains:[{className:"meta",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#]/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_shell.7530ec41.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_smali.5319652e.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[339],{358:e=>{e.exports=function(e){const n=["add","and","cmp","cmpg","cmpl","const","div","double","float","goto","if","int","long","move","mul","neg","new","nop","not","or","rem","return","shl","shr","sput","sub","throw","ushr","xor"];return{name:"Smali",contains:[{className:"string",begin:'"',end:'"',relevance:0},e.COMMENT("#","$",{relevance:0}),{className:"keyword",variants:[{begin:"\\s*\\.end\\s[a-zA-Z0-9]*"},{begin:"^[ ]*\\.[a-zA-Z]*",relevance:0},{begin:"\\s:[a-zA-Z_0-9]*",relevance:0},{begin:"\\s("+["transient","constructor","abstract","final","synthetic","public","private","protected","static","bridge","system"].join("|")+")"}]},{className:"built_in",variants:[{begin:"\\s("+n.join("|")+")\\s"},{begin:"\\s("+n.join("|")+")((-|/)[a-zA-Z0-9]+)+\\s",relevance:10},{begin:"\\s("+["aget","aput","array","check","execute","fill","filled","goto/16","goto/32","iget","instance","invoke","iput","monitor","packed","sget","sparse"].join("|")+")((-|/)[a-zA-Z0-9]+)*\\s",relevance:10}]},{className:"class",begin:"L[^(;:\n]*;",relevance:0},{begin:"[vp][0-9]+"}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_smali.5319652e.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_smalltalk.fc9ada73.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[8712],{4006:e=>{e.exports=function(e){const n="[a-z][a-zA-Z0-9_]*",a={className:"string",begin:"\\$.{1}"},s={className:"symbol",begin:"#"+e.UNDERSCORE_IDENT_RE};return{name:"Smalltalk",aliases:["st"],keywords:"self super nil true false thisContext",contains:[e.COMMENT('"','"'),e.APOS_STRING_MODE,{className:"type",begin:"\\b[A-Z][A-Za-z0-9_]*",relevance:0},{begin:n+":",relevance:0},e.C_NUMBER_MODE,s,a,{begin:"\\|[ ]*"+n+"([ ]+"+n+")*[ ]*\\|",returnBegin:!0,end:/\|/,illegal:/\S/,contains:[{begin:"(\\|[ ]*)?"+n}]},{begin:"#\\(",end:"\\)",contains:[e.APOS_STRING_MODE,a,e.C_NUMBER_MODE,s]}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_smalltalk.fc9ada73.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_sml.79ba2214.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[6614],{5585:e=>{e.exports=function(e){return{name:"SML (Standard ML)",aliases:["ml"],keywords:{$pattern:"[a-z_]\\w*!?",keyword:"abstype and andalso as case datatype do else end eqtype exception fn fun functor handle if in include infix infixr let local nonfix of op open orelse raise rec sharing sig signature struct structure then type val with withtype where while",built_in:"array bool char exn int list option order real ref string substring vector unit word",literal:"true false NONE SOME LESS EQUAL GREATER nil"},illegal:/\/\/|>>/,contains:[{className:"literal",begin:/\[(\|\|)?\]|\(\)/,relevance:0},e.COMMENT("\\(\\*","\\*\\)",{contains:["self"]}),{className:"symbol",begin:"'[A-Za-z_](?!')[\\w']*"},{className:"type",begin:"`[A-Z][\\w']*"},{className:"type",begin:"\\b[A-Z][\\w']*",relevance:0},{begin:"[a-z_]\\w*'[\\w']*"},e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"number",begin:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",relevance:0},{begin:/[-=]>/}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_sml.79ba2214.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_step21.ff53092d.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[8568],{716:e=>{e.exports=function(e){return{name:"STEP Part 21",aliases:["p21","step","stp"],case_insensitive:!0,keywords:{$pattern:"[A-Z_][A-Z0-9_.]*",keyword:"HEADER ENDSEC DATA"},contains:[{className:"meta",begin:"ISO-10303-21;",relevance:10},{className:"meta",begin:"END-ISO-10303-21;",relevance:10},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT("/\\*\\*!","\\*/"),e.C_NUMBER_MODE,e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"'",end:"'"},{className:"symbol",variants:[{begin:"#",end:"\\d+",illegal:"\\W"}]}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_step21.ff53092d.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_subunit.7e547849.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[7142],{7972:s=>{s.exports=function(s){return{name:"SubUnit",case_insensitive:!0,contains:[{className:"string",begin:"\\[\n(multipart)?",end:"\\]\n"},{className:"string",begin:"\\d{4}-\\d{2}-\\d{2}(\\s+)\\d{2}:\\d{2}:\\d{2}.\\d+Z"},{className:"string",begin:"(\\+|-)\\d+"},{className:"keyword",relevance:10,variants:[{begin:"^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\s+(test)?"},{begin:"^progress(:?)(\\s+)?(pop|push)?"},{begin:"^tags:"},{begin:"^time:"}]}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_subunit.7e547849.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_taggerscript.98554592.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[1895],{8073:e=>{e.exports=function(e){return{name:"Tagger Script",contains:[{className:"comment",begin:/\$noop\(/,end:/\)/,contains:[{begin:/\(/,end:/\)/,contains:["self",{begin:/\\./}]}],relevance:10},{className:"keyword",begin:/\$(?!noop)[a-zA-Z][_a-zA-Z0-9]*/,end:/\(/,excludeEnd:!0},{className:"variable",begin:/%[_a-zA-Z0-9:]*/,end:"%"},{className:"symbol",begin:/\\./}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_taggerscript.98554592.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_tap.0ab5c0b8.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[3289],{5913:e=>{e.exports=function(e){return{name:"Test Anything Protocol",case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"meta",variants:[{begin:"^TAP version (\\d+)$"},{begin:"^1\\.\\.(\\d+)$"}]},{begin:/---$/,end:"\\.\\.\\.$",subLanguage:"yaml",relevance:0},{className:"number",begin:" (\\d+) "},{className:"symbol",variants:[{begin:"^ok"},{begin:"^not ok"}]}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_tap.0ab5c0b8.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_tcl.a75258c9.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[7243],{7125:e=>{function a(){for(var e=arguments.length,a=new Array(e),r=0;r{return(a=e)?"string"===typeof a?a:a.source:null;var a})).join("")}e.exports=function(e){const r=/[a-zA-Z_][a-zA-Z0-9_]*/,t={className:"number",variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]};return{name:"Tcl",aliases:["tk"],keywords:"after append apply array auto_execok auto_import auto_load auto_mkindex auto_mkindex_old auto_qualify auto_reset bgerror binary break catch cd chan clock close concat continue dde dict encoding eof error eval exec exit expr fblocked fconfigure fcopy file fileevent filename flush for foreach format gets glob global history http if incr info interp join lappend|10 lassign|10 lindex|10 linsert|10 list llength|10 load lrange|10 lrepeat|10 lreplace|10 lreverse|10 lsearch|10 lset|10 lsort|10 mathfunc mathop memory msgcat namespace open package parray pid pkg::create pkg_mkIndex platform platform::shell proc puts pwd read refchan regexp registry regsub|10 rename return safe scan seek set socket source split string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter tcl_wordBreakBefore tcltest tclvars tell time tm trace unknown unload unset update uplevel upvar variable vwait while",contains:[e.COMMENT(";[ \\t]*#","$"),e.COMMENT("^[ \\t]*#","$"),{beginKeywords:"proc",end:"[\\{]",excludeEnd:!0,contains:[{className:"title",begin:"[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"[ \\t\\n\\r]",endsWithParent:!0,excludeEnd:!0}]},{className:"variable",variants:[{begin:a(/\$/,(n=/::/,a("(",n,")?")),r,"(::",r,")*")},{begin:"\\$\\{(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",end:"\\}",contains:[t]}]},{className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},t]};var n}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_tcl.a75258c9.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_thrift.734200a7.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[6138],{4938:e=>{e.exports=function(e){const n="bool byte i16 i32 i64 double string binary";return{name:"Thrift",keywords:{keyword:"namespace const typedef struct enum service exception void oneway set list map required optional",built_in:n,literal:"true false"},contains:[e.QUOTE_STRING_MODE,e.NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"class",beginKeywords:"struct enum service exception",end:/\{/,illegal:/\n/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,excludeEnd:!0}})]},{begin:"\\b(set|list|map)\\s*<",end:">",keywords:n,contains:["self"]}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_thrift.734200a7.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_tp.e4863681.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[5672],{9115:e=>{e.exports=function(e){const O={className:"number",begin:"[1-9][0-9]*",relevance:0},R={className:"symbol",begin:":[^\\]]+"};return{name:"TP",keywords:{keyword:"ABORT ACC ADJUST AND AP_LD BREAK CALL CNT COL CONDITION CONFIG DA DB DIV DETECT ELSE END ENDFOR ERR_NUM ERROR_PROG FINE FOR GP GUARD INC IF JMP LINEAR_MAX_SPEED LOCK MOD MONITOR OFFSET Offset OR OVERRIDE PAUSE PREG PTH RT_LD RUN SELECT SKIP Skip TA TB TO TOOL_OFFSET Tool_Offset UF UT UFRAME_NUM UTOOL_NUM UNLOCK WAIT X Y Z W P R STRLEN SUBSTR FINDSTR VOFFSET PROG ATTR MN POS",literal:"ON OFF max_speed LPOS JPOS ENABLE DISABLE START STOP RESET"},contains:[{className:"built_in",begin:"(AR|P|PAYLOAD|PR|R|SR|RSR|LBL|VR|UALM|MESSAGE|UTOOL|UFRAME|TIMER|TIMER_OVERFLOW|JOINT_MAX_SPEED|RESUME_PROG|DIAG_REC)\\[",end:"\\]",contains:["self",O,R]},{className:"built_in",begin:"(AI|AO|DI|DO|F|RI|RO|UI|UO|GI|GO|SI|SO)\\[",end:"\\]",contains:["self",O,e.QUOTE_STRING_MODE,R]},{className:"keyword",begin:"/(PROG|ATTR|MN|POS|END)\\b"},{className:"keyword",begin:"(CALL|RUN|POINT_LOGIC|LBL)\\b"},{className:"keyword",begin:"\\b(ACC|CNT|Skip|Offset|PSPD|RT_LD|AP_LD|Tool_Offset)"},{className:"number",begin:"\\d+(sec|msec|mm/sec|cm/min|inch/min|deg/sec|mm|in|cm)?\\b",relevance:0},e.COMMENT("//","[;$]"),e.COMMENT("!","[;$]"),e.COMMENT("--eg:","$"),e.QUOTE_STRING_MODE,{className:"string",begin:"'",end:"'"},e.C_NUMBER_MODE,{className:"variable",begin:"\\$[A-Za-z0-9_]+"}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_tp.e4863681.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_twig.60629699.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[7592],{8099:e=>{e.exports=function(e){var a="attribute block constant cycle date dump include max min parent random range source template_from_string",n={beginKeywords:a,keywords:{name:a},relevance:0,contains:[{className:"params",begin:"\\(",end:"\\)"}]},t={begin:/\|[A-Za-z_]+:?/,keywords:"abs batch capitalize column convert_encoding date date_modify default escape filter first format inky_to_html inline_css join json_encode keys last length lower map markdown merge nl2br number_format raw reduce replace reverse round slice sort spaceless split striptags title trim upper url_encode",contains:[n]},s="apply autoescape block deprecated do embed extends filter flush for from if import include macro sandbox set use verbatim with";return s=s+" "+s.split(" ").map((function(e){return"end"+e})).join(" "),{name:"Twig",aliases:["craftcms"],case_insensitive:!0,subLanguage:"xml",contains:[e.COMMENT(/\{#/,/#\}/),{className:"template-tag",begin:/\{%/,end:/%\}/,contains:[{className:"name",begin:/\w+/,keywords:s,starts:{endsWithParent:!0,contains:[t,n],relevance:0}}]},{className:"template-variable",begin:/\{\{/,end:/\}\}/,contains:["self",t,n]}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_twig.60629699.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_vala.eb8e227e.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[3680],{1936:e=>{e.exports=function(e){return{name:"Vala",keywords:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override virtual delegate if while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object Gtk Posix",literal:"false true null"},contains:[{className:"class",beginKeywords:"class interface namespace",end:/\{/,excludeEnd:!0,illegal:"[^,:\\n\\s\\.]",contains:[e.UNDERSCORE_TITLE_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",begin:'"""',end:'"""',relevance:5},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.C_NUMBER_MODE,{className:"meta",begin:"^#",end:"$",relevance:2}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_vala.eb8e227e.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_vbscript.01d12d0b.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[3142],{5827:e=>{function t(e){return e?"string"===typeof e?e:e.source:null}function r(){for(var e=arguments.length,r=new Array(e),n=0;nt(e))).join("")}function n(){for(var e=arguments.length,r=new Array(e),n=0;nt(e))).join("|")+")"}e.exports=function(e){const t="lcase month vartype instrrev ubound setlocale getobject rgb getref string weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency conversions csng timevalue second year space abs clng timeserial fixs len asc isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim strcomp int createobject loadpicture tan formatnumber mid split cint sin datepart ltrim sqr time derived eval date formatpercent exp inputbox left ascw chrw regexp cstr err".split(" ");return{name:"VBScript",aliases:["vbs"],case_insensitive:!0,keywords:{keyword:"call class const dim do loop erase execute executeglobal exit for each next function if then else on error option explicit new private property let get public randomize redim rem select case set stop sub while wend with end to elseif is or xor and not class_initialize class_terminate default preserve in me byval byref step resume goto",built_in:["server","response","request","scriptengine","scriptenginebuildversion","scriptengineminorversion","scriptenginemajorversion"],literal:"true false null nothing empty"},illegal:"//",contains:[{begin:r(n(...t),"\\s*\\("),relevance:0,keywords:{built_in:t}},e.inherit(e.QUOTE_STRING_MODE,{contains:[{begin:'""'}]}),e.COMMENT(/'/,/$/,{relevance:0}),e.C_NUMBER_MODE]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_vbscript.01d12d0b.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_vbscriptHtml.5fb6a1e4.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[8884],{1434:n=>{n.exports=function(n){return{name:"VBScript in HTML",subLanguage:"xml",contains:[{begin:"<%",end:"%>",subLanguage:"vbscript"}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_vbscriptHtml.5fb6a1e4.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_vhdl.3f6dcadf.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[3512],{9047:e=>{e.exports=function(e){const r="\\d(_|\\d)*",t="[eE][-+]?"+r,n="\\b("+(r+"#\\w+(\\.\\w+)?#("+t+")?")+"|"+(r+"(\\."+r+")?("+t+")?")+")";return{name:"VHDL",case_insensitive:!0,keywords:{keyword:"abs access after alias all and architecture array assert assume assume_guarantee attribute begin block body buffer bus case component configuration constant context cover disconnect downto default else elsif end entity exit fairness file for force function generate generic group guarded if impure in inertial inout is label library linkage literal loop map mod nand new next nor not null of on open or others out package parameter port postponed procedure process property protected pure range record register reject release rem report restrict restrict_guarantee return rol ror select sequence severity shared signal sla sll sra srl strong subtype then to transport type unaffected units until use variable view vmode vprop vunit wait when while with xnor xor",built_in:"boolean bit character integer time delay_length natural positive string bit_vector file_open_kind file_open_status std_logic std_logic_vector unsigned signed boolean_vector integer_vector std_ulogic std_ulogic_vector unresolved_unsigned u_unsigned unresolved_signed u_signed real_vector time_vector",literal:"false true note warning error failure line text side width"},illegal:/\{/,contains:[e.C_BLOCK_COMMENT_MODE,e.COMMENT("--","$"),e.QUOTE_STRING_MODE,{className:"number",begin:n,relevance:0},{className:"string",begin:"'(U|X|0|1|Z|W|L|H|-)'",contains:[e.BACKSLASH_ESCAPE]},{className:"symbol",begin:"'[A-Za-z](_?[A-Za-z0-9])*",contains:[e.BACKSLASH_ESCAPE]}]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_vhdl.3f6dcadf.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_xl.6c6adc19.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[5257],{8579:e=>{e.exports=function(e){const t={$pattern:/[a-zA-Z][a-zA-Z0-9_?]*/,keyword:"if then else do while until for loop import with is as where when by data constant integer real text name boolean symbol infix prefix postfix block tree",literal:"true false nil",built_in:"in mod rem and or xor not abs sign floor ceil sqrt sin cos tan asin acos atan exp expm1 log log2 log10 log1p pi at text_length text_range text_find text_replace contains page slide basic_slide title_slide title subtitle fade_in fade_out fade_at clear_color color line_color line_width texture_wrap texture_transform texture scale_?x scale_?y scale_?z? translate_?x translate_?y translate_?z? rotate_?x rotate_?y rotate_?z? rectangle circle ellipse sphere path line_to move_to quad_to curve_to theme background contents locally time mouse_?x mouse_?y mouse_buttons ObjectLoader Animate MovieCredits Slides Filters Shading Materials LensFlare Mapping VLCAudioVideo StereoDecoder PointCloud NetworkAccess RemoteControl RegExp ChromaKey Snowfall NodeJS Speech Charts"},n={className:"string",begin:'"',end:'"',illegal:"\\n"},a={beginKeywords:"import",end:"$",keywords:t,contains:[n]},o={className:"function",begin:/[a-z][^\n]*->/,returnBegin:!0,end:/->/,contains:[e.inherit(e.TITLE_MODE,{starts:{endsWithParent:!0,keywords:t}})]};return{name:"XL",aliases:["tao"],keywords:t,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"string",begin:"'",end:"'",illegal:"\\n"},{className:"string",begin:"<<",end:">>"},o,a,{className:"number",begin:"[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?"},e.NUMBER_MODE]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_xl.6c6adc19.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_yaml.7ef5360b.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[925],{7712:e=>{e.exports=function(e){var n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(s,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},t={end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},b={begin:/\{/,end:/\}/,contains:[t],illegal:"\\n",relevance:0},c={begin:"\\[",end:"\\]",contains:[t],illegal:"\\n",relevance:0},r=[{className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type",begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},l,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},b,c,s],g=[...r];return g.pop(),g.push(i),t.contains=g,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:r}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_yaml.7ef5360b.chunk.js.map -------------------------------------------------------------------------------- /papyri/app/static/js/react-syntax-highlighter_languages_highlight_zephir.6431d59e.chunk.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunkpapyri_frontend=self.webpackChunkpapyri_frontend||[]).push([[7907],{5772:e=>{e.exports=function(e){const n={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null})]},a=e.UNDERSCORE_TITLE_MODE,s={variants:[e.BINARY_NUMBER_MODE,e.C_NUMBER_MODE]},i="namespace class interface use extends function return abstract final public protected private static deprecated throw try catch Exception echo empty isset instanceof unset let var new const self require if else elseif switch case default do while loop for continue break likely unlikely __LINE__ __FILE__ __DIR__ __FUNCTION__ __CLASS__ __TRAIT__ __METHOD__ __NAMESPACE__ array boolean float double integer object resource string char long unsigned bool int uint ulong uchar true false null undefined";return{name:"Zephir",aliases:["zep"],keywords:i,contains:[e.C_LINE_COMMENT_MODE,e.COMMENT(/\/\*/,/\*\//,{contains:[{className:"doctag",begin:/@[A-Za-z]+/}]}),{className:"string",begin:/<<<['"]?\w+['"]?$/,end:/^\w+;/,contains:[e.BACKSLASH_ESCAPE]},{begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",beginKeywords:"function fn",end:/[;{]/,excludeEnd:!0,illegal:/\$|\[|%/,contains:[a,{className:"params",begin:/\(/,end:/\)/,keywords:i,contains:["self",e.C_BLOCK_COMMENT_MODE,n,s]}]},{className:"class",beginKeywords:"class interface",end:/\{/,excludeEnd:!0,illegal:/[:($"]/,contains:[{beginKeywords:"extends implements"},a]},{beginKeywords:"namespace",end:/;/,illegal:/[.']/,contains:[a]},{beginKeywords:"use",end:/;/,contains:[a]},{begin:/=>/},n,s]}}}}]); 2 | //# sourceMappingURL=react-syntax-highlighter_languages_highlight_zephir.6431d59e.chunk.js.map -------------------------------------------------------------------------------- /papyri/config.py: -------------------------------------------------------------------------------- 1 | from os.path import expanduser 2 | from pathlib import Path 3 | 4 | base_dir = Path(expanduser("~/.papyri/")) 5 | base_dir.mkdir(parents=True, exist_ok=True) 6 | 7 | html_dir = base_dir / "html" 8 | html_dir.mkdir(parents=True, exist_ok=True) 9 | 10 | ingest_dir = base_dir / "ingest" 11 | ingest_dir.mkdir(parents=True, exist_ok=True) 12 | 13 | 14 | logo = r""" 15 | ___ _ 16 | | _ \__ _ _ __ _ _ _ _(_) 17 | | _/ _` | '_ \ || | '_| | 18 | |_| \__,_| .__/\_, |_| |_| 19 | |_| |__/ 20 | """ 21 | -------------------------------------------------------------------------------- /papyri/core.py: -------------------------------------------------------------------------------- 1 | """ 2 | Core Papyri data structures. 3 | 4 | This should likely be the most stable part of Papyri as it is what handles and validate the intermediate 5 | representation(s) 6 | 7 | It should likely be the modules with the less dependencies as well as being synchronous, to be usable from most context 8 | and minimal installs. 9 | """ 10 | 11 | from __future__ import annotations 12 | 13 | import json 14 | from dataclasses import dataclass 15 | 16 | 17 | class EnhancedJSONEncoder(json.JSONEncoder): 18 | def default(self, o): 19 | if hasattr(o, "__to_json__"): 20 | return o.__to_json__(self) 21 | elif dataclass.is_dataclass(o): 22 | return dataclass.asdict(o) 23 | return super().default(o) 24 | 25 | def decode(self, s): 26 | json.loads(s, object_hook=self.hook) 27 | -------------------------------------------------------------------------------- /papyri/errors.py: -------------------------------------------------------------------------------- 1 | class IncorrectInternalDocsLen(AssertionError): 2 | pass 3 | 4 | 5 | class TextSignatureParsingFailed(ValueError): 6 | pass 7 | 8 | 9 | class NumpydocParseError(ValueError): 10 | pass 11 | 12 | 13 | class ExampleError1(ValueError): 14 | pass 15 | 16 | 17 | class StrictParsingError(Exception): 18 | pass 19 | 20 | 21 | class SpaceAfterBlockDirectiveError(Exception): 22 | pass 23 | 24 | 25 | class VisitSubstitutionDefinitionNotImplementedError(NotImplementedError): 26 | pass 27 | 28 | 29 | class VisitCitationReferenceNotImplementedError(NotImplementedError): 30 | pass 31 | 32 | 33 | class VisitCitationNotImplementedError(NotImplementedError): 34 | pass 35 | 36 | 37 | class SerialisationError(Exception): 38 | pass 39 | 40 | 41 | class UnseenError(Exception): 42 | pass 43 | -------------------------------------------------------------------------------- /papyri/jlab.py: -------------------------------------------------------------------------------- 1 | import sys 2 | 3 | from IPython.core.magic import Magics, line_magic, magics_class 4 | from IPython.display import IFrame 5 | import IPython 6 | 7 | 8 | # The class MUST call this class decorator at creation time 9 | @magics_class 10 | class Papyri(Magics): 11 | def newhelp(self, obj): 12 | mod = obj.__module__ 13 | root = mod.split(".")[0] 14 | fq = mod + "." + obj.__name__ 15 | 16 | version = sys.modules[root].__version__ 17 | return IFrame( 18 | f"http://127.0.0.1:1234/p/{root}/{version}/api/{fq}", "100%", "100%" 19 | ) 20 | 21 | @line_magic 22 | def papyri(self, line): 23 | path0, *path = line.strip().split(".") 24 | obj = self.shell.user_ns[path0] 25 | for p in path: 26 | obj = getattr(obj, p) 27 | return self.newhelp(obj) 28 | 29 | 30 | ip = IPython.get_ipython() 31 | if ip: 32 | ip.register_magics(Papyri) 33 | -------------------------------------------------------------------------------- /papyri/py.types: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/papyri/py.types -------------------------------------------------------------------------------- /papyri/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/papyri/static/favicon.ico -------------------------------------------------------------------------------- /papyri/static/jax/input/TeX/config.js: -------------------------------------------------------------------------------- 1 | /* 2 | * /MathJax-v2/jax/input/TeX/config.js 3 | * 4 | * Copyright (c) 2009-2018 The MathJax Consortium 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | */ 18 | 19 | MathJax.InputJax.TeX=MathJax.InputJax({id:"TeX",version:"2.7.7",directory:MathJax.InputJax.directory+"/TeX",extensionDir:MathJax.InputJax.extensionDir+"/TeX",config:{TagSide:"right",TagIndent:"0.8em",MultLineWidth:"85%",equationNumbers:{autoNumber:"none",formatNumber:function(a){return a},formatTag:function(a){return"("+a+")"},formatID:function(a){return"mjx-eqn-"+String(a).replace(/\s/g,"_")},formatURL:function(b,a){return a+"#"+encodeURIComponent(b)},useLabelIds:true}},resetEquationNumbers:function(){}});MathJax.InputJax.TeX.Register("math/tex");MathJax.InputJax.TeX.loadComplete("config.js"); 20 | -------------------------------------------------------------------------------- /papyri/static/papyri-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/papyri/static/papyri-logo.png -------------------------------------------------------------------------------- /papyri/static/papyri.tcss: -------------------------------------------------------------------------------- 1 | /* This file is used by textual mode */ 2 | 3 | #body { 4 | width: 100%; 5 | } 6 | -------------------------------------------------------------------------------- /papyri/static/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/papyri/static/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /papyri/static/webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/papyri/static/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /papyri/static/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/papyri/static/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /papyri/templates/examples.tpl.j2: -------------------------------------------------------------------------------- 1 | {% extends "skeleton.tpl.j2" %} 2 | 3 | {% set current_type = 'Examples' %} 4 | 5 | {% from 'macros.tpl.j2' import render_II, example, render_myst with context %} 6 | 7 | {%block api %} 8 | 9 | 10 | {% for data in ex.children %} 11 | {%- set type = data.__class__.__name__ -%} 12 | {% if type == 'Fig' %} 13 |
14 | {% elif type[0] == 'M' %} 15 | {{ render_myst(data) }} 16 | {% else %} 17 | {{render_II(data)}} 18 | {% endif %} 19 | 20 | {% endfor %} 21 | 22 | 23 | 24 | {% endblock %} 25 | -------------------------------------------------------------------------------- /papyri/templates/gallery.tpl.j2: -------------------------------------------------------------------------------- 1 | {% extends "skeleton.tpl.j2" %} 2 | {% set current_type = 'Gallery' %} 3 | {%block api%} 4 | {% for m,figs in figmap.items() %} 5 |

{{m}}

6 | {% for impath, link, name in figs %} 7 | {% if loop.changed(link) %} 8 |

{{name}}

9 | {% endif %} 10 | 11 | {%endfor%} 12 | {%endfor%} 13 | {% endblock %} 14 | -------------------------------------------------------------------------------- /papyri/templates/graph.tpl.j2: -------------------------------------------------------------------------------- 1 | {% macro d3script(graph) %} 2 | 3 | 4 | 8 | 11 | 12 | 13 | {% endmacro %} 14 | -------------------------------------------------------------------------------- /papyri/templates/html.tpl.j2: -------------------------------------------------------------------------------- 1 | {%- extends "skeleton.tpl.j2" %} 2 | 3 | {%block api %} 4 |
5 | 6 | 7 | {% from 'macros.tpl.j2' import render_paragraph, example, render_myst_json, render_II with context %} 8 | {% from 'graph.tpl.j2' import d3script with context%} 9 | 10 | 11 | 12 | {{render_myst_json(myst_root)}} 13 | 14 | 15 | {% if graph %} 16 |

Local connectivity graph

17 |

Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.

18 | 19 |

Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows 20 | or text (beyond on hover)

21 | 22 |

SVG is more flexible but power hungry; and does not scale well to 50 + nodes.

23 | 24 | 25 | 26 |

All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted 27 | (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library 28 | they belong to, and scaled with the number of references pointing them

29 | {% endif %} 30 | 31 |
32 | 33 | {%if meta.get('github_slug')%} 34 | GitHub : {{item_file}}#{{item_line}} 35 | {% else %} 36 | File: {{item_file}}#{{item_line}} 37 | {%endif%}
38 | 39 | {% if graph is defined %} 40 | {{d3script(graph)}} 41 | {% endif %} 42 |
43 | {% endblock %} 44 | 45 | 46 | -------------------------------------------------------------------------------- /papyri/templates/index.tpl.j2: -------------------------------------------------------------------------------- 1 | 2 | {% include 'head.tpl.j2' %} 3 | 4 |
5 | 6 | 7 |

The Papyri project attempt to provide most of the scientific Python docs in a single place will cross-projects 8 | bidirectional crosslinking

9 | 10 |

Get started with one of the following projects

11 | 14 |
15 | {% for module, versions, logo in data %} 16 |
17 | 18 |
19 | {% if logo %} 20 | 21 | 22 | Project logo 23 | {% endif %} 24 |
25 |
26 |
27 |

{{module}}

28 |

29 | {% for version in versions %} 30 | {{version}} 31 | {% if not loop.last %} – {% endif %} 32 | {% endfor%} 33 |

34 |
35 |
36 | {% endfor%} 37 |
38 | 39 | -------------------------------------------------------------------------------- /papyri/templates/root.tpl.j2: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Document 6 | 7 | 8 | 9 | 10 | 13 | 16 | 17 | 18 | 19 | 20 | 21 |

PaPyRi

22 |
23 | {% macro branch(entries) -%} 24 | {%- for k,v in entries.items() %} 25 | {% if len(v) == 1 and '__link__' in v %} 26 | {{v['__link__']}}
27 | {% else %} 28 | {% if k == '__link__' %} 29 | {{v}}
30 | 31 | {% else %} 32 |
33 | {{k}} 34 | {{branch(v)}} 35 |
36 | {%endif %} 37 | {%endif %} 38 | 39 | {%endfor %} 40 | {%- endmacro %} 41 | 42 | {{ branch(tree)}} 43 |
44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /papyri/templates/toctree.tpl.j2: -------------------------------------------------------------------------------- 1 | {% extends "skeleton.tpl.j2" %} 2 | {% set current_type = 'TocTree' %} 3 | {% from 'macros.tpl.j2' import render_paragraph, lines, block, myst_directive, example, render_II with context %} 4 | 5 | {% macro tci(obj) -%} 6 | {%if obj.children%} 7 |
8 | {{obj.title}} 9 |
    10 | {% for c in obj.children %} 11 |
  • {{tci(c)}}
  • 12 | {% endfor %} 13 |
14 |
15 | {% else %} 16 | {{obj.title}} 17 | {%endif%} 18 | {% endmacro %} 19 | 20 | {%block api%} 21 |
    22 | {% for toctree in toctrees%} 23 |
  • {{tci(toctree)}}
  • 24 | {% endfor %} 25 |
26 | {% endblock %} 27 | -------------------------------------------------------------------------------- /papyri/templates/virtual.j2: -------------------------------------------------------------------------------- 1 | 2 | {%- extends "skeleton.tpl.j2" %} 3 | -------------------------------------------------------------------------------- /papyri/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jupyter/papyri/7b6ca7430751b9db9fd3def71dc6edfc3d528972/papyri/tests/__init__.py -------------------------------------------------------------------------------- /papyri/tests/corpus/no-space-parenthesis.expected.txt: -------------------------------------------------------------------------------- 1 | [{"type": "Section", "children": [{"type": "paragraph", "children": [{"type": "text", "value": "there should not be spaces ("}, {"type": "inlineCode", "value": "between"}, {"type": "text", "value": ") the parenthesis."}]}], "title": null, "level": 0, "target": null}] -------------------------------------------------------------------------------- /papyri/tests/corpus/no-space-parenthesis.sample.txt: -------------------------------------------------------------------------------- 1 | there should not be spaces (``between``) the parenthesis. 2 | -------------------------------------------------------------------------------- /papyri/tests/corpus/test.expected.txt: -------------------------------------------------------------------------------- 1 | [{"type": "Section", "children": [{"type": "paragraph", "children": [{"type": "text", "value": "This is just text."}]}], "title": null, "level": 0, "target": null}] -------------------------------------------------------------------------------- /papyri/tests/corpus/test.sample.txt: -------------------------------------------------------------------------------- 1 | This is just text. 2 | -------------------------------------------------------------------------------- /papyri/tests/expected/papyri.examples:annotation_with_hex_addresses.expected: -------------------------------------------------------------------------------- 1 | annotation_with_hex_addresses(x: '' = ' at 0x0000>') 3 | ## Summary 4 | 5 | This function is a function for which the signature will have and hexadecimal 6 | addresse. 7 | 8 | ## Extended Summary 9 | 10 | It is included to show that the hex address should be normalized. 11 | -------------------------------------------------------------------------------- /papyri/tests/expected/papyri.examples:example1.expected: -------------------------------------------------------------------------------- 1 | example1(pos: 'int', only: 'None', /, var: 'Union', args='1', *, kwarg, 2 | also='None', **kwargs) 3 | ## Summary 4 | 5 | first example. 6 | -------------------------------------------------------------------------------- /papyri/tests/test_ascii_expected.py: -------------------------------------------------------------------------------- 1 | """ 2 | Various ascii rendering test, where we compare the rendered version to an expected file 3 | """ 4 | 5 | import pytest 6 | from pathlib import Path 7 | from papyri.render import GraphStore, ingest_dir, _rich_ascii 8 | 9 | HERE = Path(__file__).parent 10 | 11 | expected = (HERE / "expected").glob("*") 12 | 13 | 14 | def _get_result_for_name(name): 15 | # WARNING: This test only works if the papyri and numpy docs are generated and 16 | # ingested first 17 | gstore = GraphStore(ingest_dir, {}) 18 | key = next(iter(gstore.glob((None, None, "module", name)))) 19 | 20 | return _rich_ascii(key, gstore) 21 | 22 | 23 | @pytest.mark.postingest 24 | @pytest.mark.parametrize("file", expected) 25 | def test_g(file): 26 | item = file.name[: -len(".expected")] 27 | res = _get_result_for_name(item) 28 | 29 | expected = file.read_text() 30 | assert expected == res 31 | 32 | 33 | if __name__ == "__main__": 34 | gstore = GraphStore(ingest_dir, {}) 35 | for file in expected: 36 | assert file.name.endswith(".expected") 37 | item = file.name[: -len(".expected")] 38 | key = next(iter(gstore.glob((None, None, "module", item)))) 39 | res = _get_result_for_name(item) 40 | print("regen", key) 41 | file.write_text(res) 42 | -------------------------------------------------------------------------------- /papyri/tests/test_corpus.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | 3 | from .utils import _expected_path, SAMPLES, _serialize, _process 4 | 5 | PAIRS = [(s, _expected_path(s)) for s in SAMPLES] 6 | 7 | 8 | @pytest.mark.parametrize("sample, expected", PAIRS) 9 | def test_corpus(sample, expected): 10 | processed = _process(sample) 11 | exported = _serialize(processed) 12 | 13 | assert expected.read_bytes() == exported 14 | -------------------------------------------------------------------------------- /papyri/tests/test_error_collector.py: -------------------------------------------------------------------------------- 1 | from papyri.gen import ErrorCollector 2 | import logging 3 | import pytest 4 | from papyri.errors import UnseenError 5 | 6 | log = logging.getLogger(__name__) 7 | 8 | 9 | class Config: 10 | pass 11 | 12 | 13 | def JustPasses(): 14 | pass 15 | 16 | 17 | def DoesValueError(): 18 | raise ValueError("A") 19 | 20 | 21 | def ShouldValueErrorTypeError(): 22 | raise TypeError("B") 23 | 24 | 25 | def test_capture_correct(): 26 | c = Config() 27 | c.expected_errors = {"ValueError": ["TestIterm"]} 28 | c.early_error = False 29 | c.fail_unseen_error = True 30 | ec = ErrorCollector(c, log) 31 | 32 | with ec("TestItem"): 33 | DoesValueError() 34 | 35 | assert ec._unexpected_errors == {"ValueError": ["TestItem"]} 36 | 37 | 38 | def test_pass_no_collect(): 39 | c = Config() 40 | c.expected_errors = {} 41 | c.early_error = True 42 | c.fail_unseen_error = True 43 | ec = ErrorCollector(c, log) 44 | 45 | with ec("TestItem"): 46 | JustPasses() 47 | 48 | 49 | def test_2(): 50 | c = Config() 51 | c.expected_errors = {"ValueError": ["TestItem"]} 52 | c.early_error = True 53 | c.fail_unseen_error = True 54 | ec = ErrorCollector(c, log) 55 | with pytest.raises(UnseenError): 56 | with ec("TestItem"): 57 | JustPasses() 58 | 59 | 60 | def test_4(): 61 | c = Config() 62 | c.expected_errors = {"ValueError": ["TestItem"]} 63 | c.early_error = False 64 | c.fail_unseen_error = True 65 | ec = ErrorCollector(c, log) 66 | 67 | with ec("TestItem"): 68 | ShouldValueErrorTypeError() 69 | -------------------------------------------------------------------------------- /papyri/tests/test_full_render.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | # from papyri.config import html_dir 4 | # import pytest 5 | 6 | log = logging.getLogger("papyri") 7 | 8 | # PRESENT_PATTERNS = [ 9 | # # removed in upstream numpy 10 | # # ( 11 | # # "p/numpy/1.24.1/api/numpy.html", 12 | # # "Make sure there is no space between verbabim and surrounding words", 13 | # # "profile (ipython -p numpy),", 14 | # # ), 15 | # ] 16 | # 17 | # 18 | # @pytest.mark.parametrize("path, reason, expected", PRESENT_PATTERNS) 19 | # def test_render(path, reason, expected): 20 | # html_path = html_dir / path 21 | # if not html_path.exists(): 22 | # logging.info("papyri render not done, rendering now.") 23 | # from papyri.render import main as m2 24 | # import trio 25 | # 26 | # trio.run(m2, False, True, False, True, True, False) 27 | # text = html_path.read_text() 28 | # assert expected in text, reason 29 | -------------------------------------------------------------------------------- /papyri/tests/test_take2.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | 3 | from papyri.ts import parse 4 | 5 | from ..myst_ast import UnprocessedDirective 6 | from ..take2 import ( 7 | dedent_but_first, 8 | get_object, 9 | ) 10 | 11 | 12 | @pytest.mark.parametrize( 13 | "target, type_, number", 14 | [ 15 | ("numpy", UnprocessedDirective, 0), 16 | ("numpy.linspace", UnprocessedDirective, 2), 17 | ], 18 | ) 19 | def test_parse_blocks(target, type_, number): 20 | sections = parse(dedent_but_first(get_object(target).__doc__).encode(), "test") 21 | filtered = [b for section in sections for b in section.children if type(b) == type_] 22 | assert len(filtered) == number 23 | -------------------------------------------------------------------------------- /papyri/tests/utils.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | import json 3 | from papyri.tree import DVR 4 | from papyri.ts import parse 5 | import sys 6 | 7 | HERE = Path(__file__).parent 8 | CORP = HERE / "corpus" 9 | SAMPLES = CORP.glob("*.sample.txt") 10 | 11 | 12 | def _expected_path(sample_path: Path) -> Path: 13 | return CORP / sample_path.name.replace(".sample.", ".expected.") 14 | 15 | 16 | def _serialize(data) -> bytes: 17 | processed = [s.to_dict() for s in data] 18 | return json.dumps(processed).encode() 19 | 20 | 21 | def _process(sample: Path): 22 | bytes_ = sample.read_bytes() 23 | data = parse(bytes_, sample) 24 | dv = DVR( 25 | str(sample), 26 | frozenset(), 27 | local_refs=set(), 28 | aliases={}, 29 | version="TestSuite", 30 | config={}, 31 | ) 32 | return [dv.visit(s) for s in data] 33 | 34 | 35 | if __name__ == "__main__": 36 | targets = [Path(p) for p in sys.argv[1:]] 37 | for p in targets: 38 | if CORP not in p.resolve().parents: 39 | print(p, "not in corpus", CORP, p.parents) 40 | else: 41 | print("process...", p) 42 | data = _process(p) 43 | bytes_ = _serialize(data) 44 | Path(_expected_path(p)).write_bytes(bytes_) 45 | -------------------------------------------------------------------------------- /papyri/toc.py: -------------------------------------------------------------------------------- 1 | from typing import Dict 2 | 3 | 4 | def flatten(dct): 5 | return {k: [s for sub in toc for s in sub] for k, toc in dct.items()} 6 | 7 | 8 | def dotdotcount(path): 9 | n = 0 10 | acc = [] 11 | leading = True 12 | for it in path: 13 | if it == "..": 14 | assert leading is True, path 15 | n += 1 16 | else: 17 | leading = False 18 | acc.append(it) 19 | return n, acc 20 | 21 | 22 | def _tree(current_path, unnest, counter, depth=0) -> Dict: 23 | if current_path not in counter: 24 | print("Warning, ", current_path, "not in Counter") 25 | counter[current_path] = 0 26 | counter[current_path] += 1 27 | children = {} 28 | children_path = unnest.get(current_path, []) 29 | directory = current_path.split(":")[:-1] 30 | # print(' '*depth*4, 'dir', directory, f'({current_path})') 31 | for cp in children_path: 32 | if not cp: 33 | continue 34 | 35 | # assert not cp.startswith("/"), breakpoint() 36 | if cp.startswith("/"): 37 | print("skip absolute path", cp, "in", current_path) 38 | continue 39 | if cp.endswith("/"): 40 | cp = cp + "index" 41 | 42 | if cp.startswith("https://"): 43 | continue 44 | 45 | n, sub = dotdotcount(cp.split("/")) 46 | directory = current_path.split(":")[: -1 - n] 47 | p = ":".join(directory + sub) 48 | 49 | if p.endswith(".rst"): 50 | p = p[:-4] 51 | assert p != current_path 52 | # print(' '*depth*4,cp, '->', p) 53 | assert p not in children 54 | if p not in counter: 55 | print("skip Path", p, "in", current_path, repr(cp)) 56 | continue 57 | children[p] = _tree(p, unnest, depth=depth + 1, counter=counter) 58 | 59 | return children 60 | 61 | 62 | def make_tree(data): 63 | data = {k: v for k, v in data.items()} 64 | data = flatten(data) 65 | data = {k: [i[1] for i in v] for k, v in data.items()} 66 | c = {k: 0 for k in data.keys()} 67 | my_tree = _tree("index", data, c) 68 | return my_tree 69 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["flit_core >=3.2,<4"] 3 | build-backend = "flit_core.buildapi" 4 | 5 | [project] 6 | name = "papyri" 7 | authors = [{name = "Matthias Bussonnier", email = "bussonniermatthias@gmail.com"}] 8 | classifiers = ["License :: OSI Approved :: MIT License"] 9 | readme = "Readme.md" 10 | license = {file = "LICENSE"} 11 | dynamic = ["version","description"] 12 | requires-python=">=3.11" 13 | dependencies = [ 14 | "black", 15 | "flatlatex", 16 | "httpx", 17 | "ipython", 18 | "jedi", 19 | "jinja2>=3.1.2", 20 | "numpydoc", 21 | "pygments", 22 | "quart-trio>=0.6.0", 23 | "quart>=0.18.4", 24 | "rich", 25 | "tomli_w", 26 | "typer>=0.9", 27 | "urwid", 28 | "velin", 29 | # "tree_sitter", # tree sitter does not currently provide builds for all platform. tree-sitter-builds is an 30 | # alternative build that provide more wheels. 31 | "tree-sitter-builds", 32 | "tree_sitter_languages>=1.5", 33 | # 34 | "matplotlib", 35 | "cbor2", 36 | "minify_html", 37 | "textual", 38 | "emoji", 39 | ] 40 | 41 | [project.scripts] 42 | papyri = "papyri:app" 43 | 44 | [tool.pytest.ini_options] 45 | addopts = "--durations=10 --ignore=papyri-lab" 46 | filterwarnings = "ignore:The module numpy.dual.*:DeprecationWarning" 47 | 48 | [project.urls] 49 | Home = "https://github.com/Jupyter/papyri" 50 | 51 | [tool.mypy] 52 | python_version = '3.11' 53 | ignore_missing_imports = true 54 | -------------------------------------------------------------------------------- /requirements-dev.txt: -------------------------------------------------------------------------------- 1 | pytest 2 | pytest-cov 3 | flit 4 | matplotlib 5 | pytest-trio 6 | coverage 7 | jinja2==3.1.4 8 | pipdeptree 9 | black 10 | mypy 11 | flake8<8 12 | scipy 13 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | emoji 2 | flit 3 | jedi 4 | matplotlib 5 | numpydoc 6 | pygments 7 | quart-trio 8 | requests 9 | rich 10 | textual 11 | there 12 | tree_sitter 13 | typer 14 | -------------------------------------------------------------------------------- /tools/vendor_scripts.sh: -------------------------------------------------------------------------------- 1 | mkdir papyri/static/fa/ 2 | curl -L -o papyri/static/fa/fontawesome.css https://use.fontawesome.com/releases/v5.8.1/css/all.css 3 | 4 | mkdir papyri/static/webfonts/ 5 | curl -L -o papyri/static/webfonts/fa-solid-900.woff2 https://use.fontawesome.com/releases/v5.8.1/webfonts/fa-solid-900.woff2 6 | curl -L -o papyri/static/webfonts/fa-solid-900.woff https://use.fontawesome.com/releases/v5.8.1/webfonts/fa-solid-900.woff 7 | curl -L -o papyri/static/webfonts/fa-solid-900.ttf https://use.fontawesome.com/releases/v5.8.1/webfonts/fa-solid-900.ttf 8 | 9 | 10 | curl -L -o papyri/static/new.css https://cdn.jsdelivr.net/npm/@exampledev/new.css@1.1.2/new.min.css 11 | 12 | 13 | mkdir -p papyri/static/jax/input/TeX 14 | 15 | mkdir papyri/static/extensions 16 | curl -L -o papyri/static/MathJax.js https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/MathJax.js 17 | 18 | mkdir -p papyri/static/jax 19 | mkdir -p papyri/static/jax/extensions 20 | mkdir -p papyri/static/jax/input 21 | mkdir -p papyri/static/jax/input/TeX 22 | mkdir -p papyri/static/jax/output 23 | mkdir -p papyri/static/jax/output/HTML-CSS/ 24 | curl -L -o 'papyri/static/extensions/MathMenu.js' https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/extensions/MathMenu.js 25 | curl -L -o 'papyri/static/extensions/MathZoom.js' https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/extensions/MathZoom.js 26 | curl -L -o 'papyri/static/jax/input/TeX/config.js' https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/jax/input/TeX/config.js 27 | curl -L -o 'papyri/static/jax/output/HTML-CSS/config.js' https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/jax/output/HTML-CSS/config.js 28 | curl -L -o 'papyri/static/extensions/tex2jax.js' https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/extensions/tex2jax.js 29 | 30 | curl -o papyri/static/myst.js https://unpkg.com/mystjs@0.0.15/dist/myst.min.js 31 | --------------------------------------------------------------------------------