Git Product home page Git Product logo

mpl-third-party's Introduction

mpl-third-party

List of Matplotlib user-contributed packages. These are served at https://matplotlib.org/mpl-third-party/.

To add your package to the list, create a YAML file your-cool-mpl-package.yml in the packages directory. The file must have the following fields:

name: cmocean
repo: matplotlib/cmocean
section: colormaps and styles
description: Perceptually uniform colormaps for oceanographic variables.
site: https://matplotlib.org/cmocean # optional, default repo site
keywords: [colormaps, styles] # optional
pypi_name: # optional, default repo name
conda_package: # optional
conda_channel: # optional, default conda-forge

Either fork this repo and add the new file there, or navigate into the packages directory above and use the Add File button at the top of the page. Then open a pull request with the new file.

Note: The name of the yml file and the name of the repo should ideally match.

The section entry should be one of the sections listed in ./section_names.yml.

PyPI Classifier

Please add the Framework :: Matplotlib PyPI Trove classifier to your package's setup configuration to be included in a listing of Matplotlib related projects on PyPI.

Development

The list of yml files in packages/ is parsed by python/build.py using template.rst and the result is saved to docs/source/packages.rst. This script is called by docs/Makefile using make html. This runs a sphinx-build and makes the page at build/html/index.html.

This was heavily based on the nice work at https://pyviz.org.

mpl-third-party's People

Contributors

ankitbarik avatar anntzer avatar cphyc avatar ghiffaryr avatar ianhi avatar isaacrobinson2000 avatar jbednar avatar jbusecke avatar jklymak avatar josephbarbierdarnal avatar leejjoon avatar marceloprates avatar melissawm avatar mgrover1 avatar mr-milk avatar nschloe avatar nvictus avatar oscargus avatar pnkraemer avatar ponnhide avatar pre-commit-ci[bot] avatar pysimplegui avatar qulogic avatar rgerum avatar scottshambaugh avatar story645 avatar tacaswell avatar talifargan avatar tfardet avatar timhoffm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mpl-third-party's Issues

mpl navigation links

Currently they don't work if on https://matplotlib.org/mpl-third-party/, which is too bad. Also I noticed one name is different compared to the mpl 3.5 docs ("User guide" vs "Usage guide"). And Sphinx major version in the published build is 2 behind that used in the mpl docs according to the footer.

No sure where to list a related package

Saw the suggestion in this Tweet to let you know about 3rd party packages

image

For quite some time, PySimpleGUI has integrated with matplotlib. There are currently 13 "Demo Programs" that help users get a jump start on adding a GUI to their matplotlib programs.

image

Here's one that shows a number of sample graphs from the matplotlib gallery page.

image

Others spotlight how little code is needed to make a plot.

image

Not sure where to put information like this on this GitHub site. Maybe you can help?

CI broken?

CI no longer triggers on PRs. Seems to work fine for commits...

Add autogenerated sections list

Make it clearer what the section section of the yaml is and point people to the sections list - possibly autogenerated off a dictionary with discription. Also means pulling the sections dict out of build.py

cleanup css

The css is hard coded in template.html currently. Probably should be cleaned up and made proper css...

Provide popularity-related information

Provide popularity-related information for the projects, e.g.

  • github stars GitHub Repo stars
  • PyPI installs PyPI - Downloads

Format and content t.b.d.

This should help users to see whether the project is something substantial or rather a small side-project.

ecosystem landing page

As part of implementing #71, it might be good to pull the external-resources link in https://matplotlib.org/devdocs/users/index.html and instead have the third-party link in the header link out to a landing page that itself links out to the resources and libraries page.

  • con one more layer of indirection 3PP->libraries->library page, 3PP->resources->resources page
  • pros:
    • resources is currently buried in users->guide->resources so linking cost is net zero
    • puts building education resources on equal footing w/ building downstream libraries
    • process to contribute to both will be the same (+/- keywords) & lets us lead w/ make your own (like in the readme, which more or less probably could serve as the landing page)

Categorization of alternative APIs for Matplotlib?

This is a very useful repo, thanks! Would it make sense to have another category "User APIs", which would include plotnine, pandas, xarray, and then holoviews and hvplot once I add those? Right now plotnine is under "Domain specific libraries" and xarray and pandas are under "Plot types", but I don't think plotnine is specific to any particular domain, and xarray and pandas are important for their .plot() APIs, not because they are special plot types. I think a category like "User APIs" would speak more to why a user might want to select any of those libraries, and I'm happy to make a PR to that effect if others agree.

Make section headers linkable

Problem

Currently there is no way to link to a specific section.

Proposed Solution

Modify the HTML so that the section headers can be refered to with something like ...url...#Animations and add a clickable permalink style thing like Github renders for markdown:
image

Have a space for images/gifs

Problem

I think one of the features of the old third party page is the ability to see images that represent what a library can do. I think this makes scanning much easier if you are just trying to discover what is out there. For instance this:
image

is pretty tricky for me to get a sense of what each these really do on a quick scan through if I just wanted to see what is out there.

Proposed Solution

I understand that there shouldn't be images on the main third party page, but what if when you clicked on the headings it took you to a subpage that included images/gifs?

Or perhaps a button that could be clicked to expand and show an image/gif

External learning resources

So got a request to add https://www.python-graph-gallery.com/ to the mpl docs & wondering now if this repo can be used to spawn a second page to replace https://matplotlib.org/stable/resources/index.html#books-chapters-and-articles. or maybe a second version of this repo for that kind of thing, since presumably we want a slightly higher barrier to entry but there are lots of folks building really good learning resources and it might be useful to have a place they can self register.

Merge rules

Um what are the merge rules on this repo? If same as matplotlib, do new yml files count as docs?

Layout improvements

The relatively small fixed column width for the badges makes them awkwardly sized (the text size is different if the version is long). I realize that the full column width is smaller than at https://pyviz.org/tools.html which constrains things, but perhaps you could drop the "Name/Description/Github/..." headers and go for a 2-line-per-project layout?

Name <tab> Description (more likely to fit in a single line now as well)
    (github badge) (pypi badge) (conda badge)

possibly keeping a blank if there's no pypi badge so that conda badges stay aligned.

factor out yaml validation

Would be useful to have a script ./valid package.yml folks could run locally on the yml files they're contributing rather than having to wait for the CI. Or to set this up as a standalone github action when new .yml files in package are contributed.

Either way, would require refactoring the parsing code in build.py into a function that could either be called in the loop in build.py or in a standalone script.

html_permalinks_icon key error in GitHub pages builds

Since #112 it looks like the GitHub pages builds have been failing with a html_permalinks_icon key error (which means the last 4 tools to be merged (microfilm, tueplots, grplot and distinctipy) are not appearing on the docs page.

E.g. see this latest build: https://github.com/matplotlib/mpl-third-party/runs/7224799482?check_suite_focus=true

Exception occurred:
  File "/usr/local/lib/python3.8/site-packages/pydata_sphinx_theme/__init__.py", line 45, in update_config
    icon_default = app.config.values["html_permalinks_icon"]
KeyError: 'html_permalinks_icon'
The full traceback has been saved in /tmp/sphinx-err-kzajtp7a.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
make: *** [Makefile:21: html] Error 2
Traceback (most recent call last):
  File "/entrypoint.py", line 22, in <module>
    action.build_all_docs(github_env, [os.environ.get("INPUT_DOCS-FOLDER")])
  File "/sphinx_action/action.py", line 167, in build_all_docs
    raise RuntimeError("Build failed")
RuntimeError: Build failed

Switch to a single packages.yml

Currently, we have a packages folder with one one file per package.

I propose to put everything together into a single YAML file, that contains a list of all the package infos.

It's easier to add new entries if you can see how the others look like. Also it's checking consistency (e.g. section names) is a bit simpler in a single file.

build_cache.py is broken

While testing #64, I tried to run build_cache.py, but it failed. It started looking for a non-existent cache directory, but even after fixing that, it was looking for a non-existent tools.yml, and I don't know where that went.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.