diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 1bef3adc..c95e5dfc 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -121,8 +121,11 @@ jobs: - name: Ingest run: | coverage run -a -m papyri install ~/.papyri/data/*.zip + - name: Relink + run: | coverage run -a -m papyri relink - coverage run -a -m papyri render --ascii + - name: Render + python -m papyri render --ascii ls -al - name: Convert .coverage sql to xml for upload diff --git a/Procfile b/Procfile deleted file mode 100644 index 28a51ff2..00000000 --- a/Procfile +++ /dev/null @@ -1 +0,0 @@ -web: python -m papyri serve diff --git a/app.json b/app.json deleted file mode 100644 index e7e8ea1e..00000000 --- a/app.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "Papyri", - "description": "A barebones Python app, which can easily be deployed to Heroku.", - "image": "heroku/python", - "keywords": ["python"], - "addons": [ ], - "env": { - "SECRET_KEY": { - "description": "The secret key for the Django application.", - "generator": "secret" - } - } - "scripts": { - "postdeploy": "flit install", - } -} diff --git a/index.html b/index.html deleted file mode 100644 index 094ec4fe..00000000 --- a/index.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - diff --git a/mypy.ini b/mypy.ini deleted file mode 100644 index 7bae5267..00000000 --- a/mypy.ini +++ /dev/null @@ -1,4 +0,0 @@ -[mypy] -python_version = 3.8 -ignore_missing_imports = True -#follow_imports = silent diff --git a/pyproject.toml b/pyproject.toml index d283ad0f..493e88d8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ classifiers = ["License :: OSI Approved :: MIT License"] readme = "Readme.md" license = {file = "LICENSE"} dynamic = ["version","description"] -requires-python=">=3.8" +requires-python=">=3.10" dependencies = [ "typer", "tomli;python_version>='3.11'", @@ -49,3 +49,7 @@ filterwarnings = "ignore:The module numpy.dual.*:DeprecationWarning" [project.urls] Home = "https://github.com/Carreau/papyri" + +[tool.mypy] +python_version = 3.10 +ignore_missing_imports = true diff --git a/pytest.ini b/pytest.ini deleted file mode 100644 index 62deafe0..00000000 --- a/pytest.ini +++ /dev/null @@ -1,3 +0,0 @@ -[pytest] -addopts = --durations=10 - diff --git a/runtime.txt b/runtime.txt deleted file mode 100644 index 43b47fb4..00000000 --- a/runtime.txt +++ /dev/null @@ -1 +0,0 @@ -python-3.8.5 diff --git a/scipy-2022-proposal b/scipy-2022-proposal deleted file mode 100644 index 17cde416..00000000 --- a/scipy-2022-proposal +++ /dev/null @@ -1,110 +0,0 @@ -> Author Information -> For each author please fill out the form below. Some items on the form are explained here: -> -> Email address will only be used for communication with the authors. It will not appear in public Web pages of this conference. The email address can be omitted for not corresponding authors. These authors will also have no access to the submission page. -> Web page can be used on the conference Web pages, for example, for making the program. It should be a Web page of the author, not the Web page of her or his organization. -> Each author marked as a corresponding author will receive email messages from the system about this submission. There must be at least one corresponding author. -> Author 1 (click here to add yourself) (click here to add an associate) - -> First name†: -Matthias -> Last name: -Bussonnier -> Email: -bussonniermatthias@gmail.com -> Country/region:* -France -> Organization: -Jupyter/Quansight Labs -> Web page: - -> corresponding author -> Author 2 (click here to add yourself) (click here to add an associate) -> First name†:* -> Last name:* -> Email:* -> Country/region:* -> Organization:* -> Web page: -> corresponding author -> Author 3 (click here to add yourself) (click here to add an associate) -> First name†:* -> Last name:* -> Email:* -> Country/region:* -> Organization:* -> Web page: -> corresponding author -> Click here to add more authors -> † Note: leave first name blank if there is no first name. If you are not sure how to divide a name into the first and last name, read the Help article about names. -> -> Title and Abstract: -> The title and the abstract should be entered as plain text, they should not contain HTML elements. -> -> Title:* - -Papyri: Better Documentation for the Scientific Ecosystem in Jupyter - -> Abstract:* - -Python has multiple stories for documentation: docstrings, narrative -documentation built via Sphinx and hosted online, and Dynamic Tutorials by -downloading notebooks. However, none of these offer a complete documentation -experience. Via a reusable framework we call Papyri, we want to offer a -state-of-the-art documentation experience to end-users. We want to show our -progress over the past 9 month after being funded by the Chan Zuckerberg -initiative. The current proof of concept allows library authors to publish a -semantic Intermediate Representation Documentation format (IRD). On users’ -machines, tools can leverage IRD to provide access to the full richness of the -Python Ecosystem documentation. This project represents the key for the -development, quality, ease of use, and discoverability in a growing Python -ecosystem. Additionally, this framework will open the door to several other -valuable features, such as allowing docstrings to be written in the widely-used -markdown format, better configuration of end-user appearance and preferences, -translations and domain-specific alternatives, indexing, and others. - - - -> Keywords -> Type a list of keywords (also known as key phrases or key terms), one per line to characterize your submission. You should specify at least three keywords. - - -> -> Keywords:* - -Jupyter, Documentation, markdown, RST. - -> Other Information and Files -> Short Summary.* A brief description which will appear in the online program and give attendees a basic sense of your talk or poster. This should be around 100 words or less - -In this talk we will demo and discuss the work that is being done on Papyri, a -new framework to provide rich documentation in Jupyter and Terminal IPython -with plots, crosslink, equations. We will describe how libraries can opt-in to -this new framework, what are the trade-off of using it, the current -capabilities and the one planed with current funding, as well as where this -could go in th future. - -> Type of Submission.* Please indicate whether you would like to be considered for a talk slot or poster slot. Please note that talks that are not accepted are automatically considered for a poster slot. -> Talk - -Talk - -> Poster -> Are you (the submitting author) interested in serving on the program committee? Program committee members review submissions for inclusion in the program. -> -> The associated workload is fairly light; last year, each review board member reviewed approximately seven 150 word abstracts, approximately a 2-3 hour time commitment. -> -> -> If you would like to join the program committee, please select the topics below that you feel comfortable reviewing. If you do not wish to join, leave the below checkboxes blank. -> -> Participation will have no impact on whether or not your submission is accepted. -> General -> Machine Learning & Data Science -> Data Life Cycle -> Physics & Astronomy -> Materials & Chemistry -> Computational Social Science and Digital Humanities -> Earth, Ocean, Geo, & Atmospheric Science -> Engineering -> Maintainers -> SciPy Tutorials diff --git a/slides.md b/slides.md deleted file mode 100644 index b1faaa9c..00000000 --- a/slides.md +++ /dev/null @@ -1,227 +0,0 @@ ---- -title: PaPyRi -separator: --- ? -verticalSeparator: \+\+\+ -theme: solarized -revealOptions: - transition: 'fade' ---- - -# Papyri - -+++ - -# What it is - -Papyri is a new python documentation paradigm and a set of tools from libraries and end users. - -- Flexible for libraries -- Richer representation for user in IDEs... -- Opinionated -- A direct attack on Mathemetica good documentation. -- A carrot to more "uniform" documentation conventions - -+++ - -# What is is not - -- A replacement for Sphinx. -- A replacement for writing docstring, tutorial, blogpost, any many other forms of docs. -- A tool that lints docs for you* - ---- - -# Documentation Pain Points - -+++ - -## For Users: - -- Locally: - - Have to read raw docstring, - - or read snippets not as good as online sphinx docs (no graph) - -- Have issue finding actual website with docs for X. - - and the right version. - -- hard to discover new function/libs (e.g: numpy.array does not mention dask.array) - -+++ - -## Maintainers - -- Setting up sphinx - - plugins,. Often need to change code/config.py to change appearance and rebuild all (theme, copy-past button, ...) -- Poor inter-project connectivity. -- Does not impact local version of docs for user (hence many hacks around dynamic __doc__ attributes) -- Hard to advertise (e.g: numpy.array does not mention dask.array) - -+++ - -## Others: - -- Sphinx can run arbitrary code, so security concern. -- You already build and check the docs on CI, why rebuild on RTD ? -- Old docs website update and migration; (this version is deprecated, noindex-no-follow), color is out of fashion... -- difficult to customize for vendors, host for air gapped system. - ---- - -# The idea - - - -Separate "building" the docs from rendering the docs. - -+++ - - -Each project have project specific, compute-intensive, doc discovery and collection, generation. - -Instead of producing HTML / PDF, produce an IR. - -+++ - -- Process this IR in a given context (which other projects you know of, the system you are on, the previous (or future) - versions of this IR to get IR'. - - Links and backreference links - - which links are valid, - -- Get a graph of IR' - -(' because more informations than in basic IR). - - -+++ - -- Render IR' just in time, base on user desire. - - ASCII/color rendering, - - Crosslink navigation don't need to be "URL" (see spyder/jupyterlab inspector). - - can inject vendor specific information. - - much _cheaper_ the dynamic `__doc__`, less performance impact, no arbitrary code exec. - ---- - -# Frontends - -+++ - -# Papyri local - -- `papyri install matplotlib-doc` -or -- dynamically lookup only on `hosted` (analytics?) - -+++ - -- Allow IDEs, IPython to display rich environment specific docs with navigation; crosslinks with other installed project back and - forth links, and example discovery. - -+++ -- As good documentation of _current_ hosted sphinx docs like matplotlib.org, pandas, seaborn, numpy, with inline graphs... but - with rendering that can respect user preference (color, theme, sections order...) - -+++ - -- Can imagine a system of tagging and/or indexing users content to tell them in which projects they are already using - functions/class/... - -+++ - -# Papyri Open Source - -+++ - -- Conda-Forge like model - -+++ - -- Library author or community upload per-library-version doc-bundle built on CI. - -+++ - -- Ingest and create a single-stop-shop website of _trusted_ quality docs, with crosslinks. - -+++ - -- Website can evolve features independently of libraries (re-building) docs - -+++ - -- Can be _efficiently_ updated on new docs (unlike sphinx build-all) - - -+++ - -- Can have much smarter features than sphinx: - - numpydoc.array : "This docstring has not changed between number 1.11 and numpy 1.23" - - IPython.InputSpliter: "This parameter will be marked deprecated in IPython 7.18" - -+++ - -- Can suggest new libraries: - - - sklearnGridSearch is use in `dask.distributed` examples. - - ---- - -# Papyri Pro - -All of Papyri open-source plus, but if login with (institution) credentials - -+++ - -- overwrite or extend give library docs with your own - - e.g: instruction on how to setup Dash ssh cluster directly in dask docs. - -+++ - -- Crosslink with your own private version of your docs & packages. - -+++ - - -- Directly open issues from docs, Links to experts, - -+++ - -- Upload your env.yml and we narrow down the docs to only those packages. - - ---- - -# Papyri hosted - -- Your own hosted version of that for internal use if you don't trust us -- Docs is JSON so no need "rebuild" can just download and audit the rendering code. -- Can still link _outward_ to public Papyri, or just proxy requests. -- Analytics of what you use look at. - - - - - -Notes on -- perf -- discoverability -- extend to non docstring. -- declarative config. - - - - - -- Item 1 -- Item 2 - - - - - -- http://localhost:5000/scipy.integrate.quadpack.quad -> Math -- http://localhost:5000/scipy.integrate.quadrature.cumtrapz for plot. -- numpy.array for back references. -- IPython Audio for fwd ad backref. -- SPyder, -- IPython