3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK)

Overview

PyVista

pyvista
Deployment pypi conda
Build Status azure
Metrics codacy codecov
Citation joss zenodo
License MIT
Community slack gitter
3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK)

PyVista is...

  • "VTK for humans": a high-level API to the Visualization Toolkit (VTK)
  • mesh data structures and filtering methods for spatial datasets
  • 3D plotting made simple and built for large/complex data geometries

PyVista is a helper module for the Visualization Toolkit (VTK) that wraps the VTK library through NumPy and direct array access through a variety of methods and classes. This package provides a Pythonic, well-documented interface exposing VTK's powerful visualization backend to facilitate rapid prototyping, analysis, and visual integration of spatially referenced datasets.

This module can be used for scientific plotting for presentations and research papers as well as a supporting module for other mesh 3D rendering dependent Python modules; see Connections for a list of projects that leverage PyVista.

Share this project on Twitter: tweet

Highlights

Head over to the Quick Examples page in the docs to explore our gallery of examples showcasing what PyVista can do! Want to test-drive PyVista? All of the examples from the gallery are live on MyBinder for you to test drive without installing anything locally: Launch on Binder

Overview of Features

  • Extensive gallery of examples (see Quick Examples)
  • Interactive plotting in Jupyter Notebooks (server-side rendering with ipyvtk_simple)
  • Filtering/plotting tools built for interactivity (see Widgets)
  • Direct access to mesh analysis and transformation routines (see Filters)
  • Intuitive plotting routines with matplotlib similar syntax (see Plotting)
  • Import meshes from many common formats (use pyvista.read()). Support for all formats handled by meshio is built-in!
  • Export meshes as VTK, STL, OBJ, or PLY (mesh.save()) file types or any formats supported by meshio (pyvista.save_meshio())

Documentation

Refer to the documentation for detailed installation and usage details.

For general questions about the project, its applications, or about software usage, please create an issue in the pyvista/pyvista-support repository where the community can collectively address your questions. You are also welcome to join us on Slack or send one of the developers an email. The project support team can be reached at [email protected].

Installation

PyVista can be installed from PyPI using pip on Python >= 3.6:

pip install pyvista

You can also visit PyPi, Anaconda, or GitHub to download the source.

See the Installation for more details if the installation through pip doesn't work out.

Connections

PyVista is a powerful tool that researchers can harness to create compelling, integrated visualizations of large datasets in an intuitive, Pythonic manner. Here are a few open-source projects that leverage PyVista:

  • itkwidgets: Interactive Jupyter widgets to visualize images, point sets, and meshes in 2D and 3D. Supports all PyVista mesh types.
  • pyansys: Pythonic interface to ANSYS result, full, and archive files
  • PVGeo: Python package of VTK-based algorithms to analyze geoscientific data and models. PyVista is used to make the inputs and outputs of PVGeo's algorithms more accessible.
  • omfvista: 3D visualization for the Open Mining Format (omf). PyVista provides the foundation for this library's visualization.
  • discretize: Discretization tools for finite volume and inverse problems. discretize provides toVTK methods that return PyVista versions of their data types for creating compelling visualizations.
  • pymeshfix: Python/Cython wrapper of Marco Attene's wonderful, award-winning MeshFix software.
  • tetgen: Python Interface to Hang Si's C++ TetGen Library

Authors

Please take a look at the contributors page and the active list of authors to learn more about the developers of PyVista.

Contributing

We absolutely welcome contributions and we hope that our Contributing Guide will facilitate your ability to make PyVista better. PyVista is mostly maintained on a volunteer basis and thus we need to foster a community that can support user questions and develop new features to make this software a useful tool for all users while encouraging every member of the commutinity to share their ideas. To learn more about contributing to PyVista, please see the Contributing Guide and our Code of Conduct.

Citing PyVista

There is a paper about PyVista!

If you are using PyVista in your scientific research, please help our scientific visibility by citing our work!

Sullivan et al., (2019). PyVista: 3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK). Journal of Open Source Software, 4(37), 1450, https://doi.org/10.21105/joss.01450

BibTex:

@article{sullivan2019pyvista,
  doi = {10.21105/joss.01450},
  url = {https://doi.org/10.21105/joss.01450},
  year = {2019},
  month = {may},
  publisher = {The Open Journal},
  volume = {4},
  number = {37},
  pages = {1450},
  author = {C. Bane Sullivan and Alexander Kaszynski},
  title = {{PyVista}: 3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit ({VTK})},
  journal = {Journal of Open Source Software}
}
Comments
  • Improve testing of Qt plotting

    Improve testing of Qt plotting

    This is a follow-up of https://github.com/pyvista/pyvista/pull/603#issuecomment-586415368 Let's do test driven development.

    :warning: local testing on macOS is required before merging :warning:


    BackgroundPlotter

    AFAIK, there are 5 ways to close BackgroundPlotter:

    1. programmatically with close(), close_all()
    2. X window button
    3. q-key
    4. File > Exit
    5. del finalizer

    I wish for those 5 scenarii to work for a version of PyQt5>5.10.1 on IPython, Python, Jupyter/Spyder on macOs, Windows and Linux. This should be fully covered and tested.

    There is maybe auto_close too but I may need help to understand what it does @banesullivan

    ToDo

    • [x] Add testing for scenario 1)
    • [x] Add testing for scenario 2)
    • [x] Add testing for scenario 3)
    • [x] Add testing for scenario 4)
    • [x] Add testing for scenario 5)
    • [x] Add testing on macOS
    • [x] Use a complex scene with BackgroundPlotter (shape, picking, slider, ...) instead of the default created object. We can go all out on this one, the sooner it breaks, the better it is.
    • [x] Investigate signal_close (suggested in https://github.com/pyvista/pyvista/pull/619#issuecomment-588428387)
    • [x] Investigate main_menu/QMenuBar in macOS (suggested in https://github.com/pyvista/pyvista/pull/619#issuecomment-590056370)

    Fix

    • [x] Tag meshio to 3.3.1 to mitigate https://github.com/pyvista/pyvista/pull/620
    • [x] Refactor the callback creation in fe82e24 to solve Windows issues
    • [x] Stop render_timer and call BasePlotter.close in BackgroundPlotter.close() (report in https://github.com/pyvista/pyvista/pull/619#issuecomment-587559609)
    • [x] Emit signal_close_test (suggested in https://github.com/pyvista/pyvista/pull/619#issuecomment-588396007)
    • [x] Refactor RemoveAllObservers() in 4a75f1dbc0fc91bc388dd4ba1e31851f5d5c99fd
    • [x] Set show=true for FileDialog and ScaleAxesDialog in tests to avoid segfaults in macOS (reported in https://github.com/pyvista/pyvista/pull/619#issuecomment-589624628)
    • [x] Disable native menubar (report in https://github.com/pyvista/pyvista/pull/619#issuecomment-590879215) and add _create_menu_bar (suggested in https://github.com/pyvista/pyvista/pull/619#discussion_r388818770)
    • [x] Use the _closed mark in BackgroundPlotter.__del__ (report in https://github.com/pyvista/pyvista/pull/619#issuecomment-592673685)

    QtInteractor

    ToDo

    • [x] test_qt_interactor segfaults locally during python -m pytest -v --cov pyvista (reported in https://github.com/pyvista/pyvista/pull/619#issuecomment-587503797)
    • [x] Improve testing following test_background_plotting_close example

    Fix

    • [x] Mark the _closed plotters to avoid closing destroyed Qt objets (added in daf1b5b )
    • [x] Refactor TstWindow's menu bar to allow testing by wait_exposed

    FileDialog

    The tests modified in this part are:

    • test_background_plotter_export_files
    • test_background_plotter_export_vtkjs

    ToDo

    • [x] Catch signals and register QWidget objects
    • [x] Parametrize testing to avoid code duplication

    ScaleAxesDialog

    The tests modified in this part are:

    • test_background_plotting_axes_scale

    ToDo

    • [x] Catch signals and register QWidget objects

    Fix

    • [x] Connect self.plotter.app_window.signal_close() to ScaleAxesDialog.close() (reported in https://github.com/pyvista/pyvista/pull/619#issuecomment-595331651)

    Ideas

    • Use super.close() in BackgroundPlotter.close() (suggested in https://github.com/pyvista/pyvista/pull/619#discussion_r381302407)
    • Manage observers with _add_oberver and _remove_observer (suggested in https://github.com/pyvista/pyvista/pull/619#issuecomment-589274665)
    • Remove unnecessary/unused signals/slots
    • Return the QTimer object in add_callback (suggested in https://github.com/pyvista/pyvista/pull/619#discussion_r384467310)
    • Investigate BackgroundPlotter.__del__() shadowing BasePlotter.__del__() (suggested in https://github.com/pyvista/pyvista/pull/619#discussion_r388587146)
    help-wanted proposed-change testing IPython/Jupyter 
    opened by GuillaumeFavelier 103
  • Renaming vtki → PyVista

    Renaming vtki → PyVista

    @akaszynski and I will be renaming vtki to avoid confusion between this library and other similarly named projects as well as to reflect that vtki is not a direct product of VTK or Kitware and to ensure that were are absolutely not using VTK's name to endorse or promote a product derived from VTK.

    Renaming the software will require quite a lot of refactoring both internally and across dependent projects - even so, we feel renaming vtki is necessary.

    Call for Help

    Users of vtki: we would like to solicit your help in making a new name for this software and we welcome any and all suggestions that are compliant with most open-source software licensing terms.

    Please use this issue as a place to post your thoughts on what this software shall be named and be sure to give a +1 (👍) to any suggestions that you like!

    discussion proposed-change 
    opened by banesullivan 81
  • Implement Theme Class

    Implement Theme Class

    pyvista implements global themes using rcParams, which is a reasonably good way for implementing a "style sheet" like approach for setting global plotting defaults. It's very similar to matplotlib and is likely to be somewhat familiar. However, there are a few limitations with this approach.

    • Not self documenting
    • User can set invalid parameters and not realize this until plotting.
    • No code completion, has to actually load the dictionary and inspect it.

    This PR proposes that instead, we implement a Theme class to control global defaults. This was inspired by the discussion in https://github.com/pyansys/pymapdl/issues/425#issuecomment-839126581. To summarize, a different user found it difficult to inspect and use the existing theme setter, and it's clear that a Theme class would be a better implementation.

    opened by akaszynski 59
  • Charts

    Charts

    Overview

    Hi there pyvista devs,

    I have been messing around with the vtk Charts API lately and thought it would make a great addition to pyvista. This is most definitely a WIP, as I have not added any examples/tests/documentation and many plot & chart features of vtk can still be added. However I wanted to show you this prototype already to see whether you would like to see this added to pyvista or not. If so, I can further work on this in my free time. Of course some help/advice from your side would also be very much appreciated! :)

    Details

    • Expose VTK Charts API using a pythonic, matplotlib-like interface
    • Plotting module allows to easily combine 2D charts (as overlays) and 3D meshes/actors in the same renderer (viewport). Interaction with the charts or 3D scene can be toggled through a right click.
    • Support to integrate matplotlib figures into a pyvista plotting window

    Prototype

    Two chart overlays (left: matplotlib figure, right: vtkChartXY) on the same renderer --> see 'chart_overlays.py' example.

    https://user-images.githubusercontent.com/15089458/123146422-1fc5c080-d45e-11eb-99a3-b73dc178766f.mp4

    Task list:

    • [x] Chart2D: Implementation of scatter, line, area, bar & stacked plots
    • [x] ChartPie & ChartBox: Implementation of pie & box plots
    • [x] Chart3D: Implementation of Line, Scatter & Volume plots
    • [x] ChartMPL: Matplotlib support
    • [x] Examples
    • [x] Tests
    • [x] Documentation
    • [x] Fix remaining TODOs

    Known issues:

    • ~~No support for vtk>=9.0 until issue 18122 is fixed (and included in pypi package)~~ OK for latest pypi wheels
    • ~~Misplaced background color for vtk charts, see issue 18238~~ Workaround available for vtk>=9.0
    • ChartPie legend not fully visible when changing the plot's label or drawn behind the chart, requires VTK fix (will be available in VTK 9.2).
    • ChartBox plots and log scale axis not correctly drawn in docs (offscreen rendering), requires VTK fix (will be available in VTK 9.2).

    Note: Only tested on my local pc (Windows 10, python 3.7, vtk 9.0.3)

    enhancement 
    opened by dcbr 54
  • Fix QtInteractor and BackgroundPlotter issues

    Fix QtInteractor and BackgroundPlotter issues

    #548 introduced issues with threading between VTK and PyQt. These changes fix those issues and attempt to address #600

    Detail

    • Fix closing issues where BasePlotter.close() was being called multiple times. It should only be called once.
    • Fix camera lagging issue by removing the Modified callback when moving the camera (this one was on me) and calling Modified on the Renderer anytime the camera's position is set (not moved interactively)
    • Attempt a fix for the q key on the BackgroundPlotter it was totally messed up and even these changes aren't great... I get random segfaults that crash the kernel from time to time with this (but not every time so this is better). Its mostly mitigated.
    • Thread the render call for the QtInteractor class - this was the cause of the segfaults happening during cell picking and other times where VTK modified the renderer.
    • Add segfault handler on __init__ of PyVista to yield tracebacks when segfaults occur (I believe faulthandler is a standard lib package, but I put it in a try statement just in case)
    • Remove all observers of the Renderer and its camera when closing
    • Fix Qt example in the docs to reflect API changes from #548
    • Make sure the _first_time flag is set to false after creating the QtInteractor to make sure render calls aren't blocked (relevant to https://github.com/pyvista/pyvista-support/issues/86)
    • repurpose auto_update to take float time interval for update rate
    review-critical priority-super-duper-high 
    opened by banesullivan 51
  • Unified Color class and color_like type.

    Unified Color class and color_like type.

    Overview

    While working on the Charts API, I noticed VTK uses many different color representations. Until now this was dealt with in the pyvista library using the parse_color method, converting arbitrary user inputs (sequences, strings) to an RGB(A) tuple of floats. This still required further conversions to RGB(A) tuples of ints or more exotic VTK objects such as vtkColor3ub.

    In this PR I propose a new Color class which does all conversions automatically for us. I also created a color_like type alias to make the docs consistent or to be used as a type hint.

    Details

    • Color class to convert between any supported format used by pyvista and vtk.
    • Public 'color getter' methods/properties now return a Color instance instead of a sequence of floats.
    • color_like type alias for anything that's convertible to a Color.
    • color_like docs link to Color class which has an overview of all supported formats and supported color names.

    Questions & remarks

    • [x] I'm unsure about the naming 'f_rgb(a)' and 'i_rgb(a)' I used for now. I'm open for other suggestions, but I would prefer it to remain short though. --> Renamed to float_rgb(a), int_rgb(a) and hex_rgb(a)
    • [x] Python 3.7 required for type alias recognition by the autodoc extension. --> Ok now that #1716 is merged.
    • [x] Conversion of color channel values from floats to integers: truncation or rounding. Before this PR, the conversion that was used by pyvista in some places was truncation (i.e. int(255 * c)). The initial conversion I used in this PR was however rounding to the nearest integer (i.e. int(round(255 * c))). As a result the background colors are changed slightly, causing some tests to fail. In my latest commit I switched back to the old conversion and all tests are passing now, but this breaks some docstring examples (0.5 maps to #7f instead of the usual #80). IMO we should use 'rounding' conversion, but if you want to keep things as they were, we should stick to the 'truncating' conversion. --> Using round(255 * c) for the rounding conversion no longer breaks any tests.
    • [x] Tricky situation encountered in some tests: the comparison pyvista.Color(f_rgba).f_rgba == f_rgba fails for most floating point values because the Color is internally stored in the integer RGBA format. This is straightforward to work around (I changed all failing tests), but might be surprising. --> Surprising, but acceptable. There is now also an __eq__ comparison operator, so the recommended way to compare colors is pyvista.Color(f_rgba) == f_rgba.
    • [x] There's an ambiguous case encountered quite often in code and tests: an integer array with only zeros or ones. Originally this was intended as 'f_rgb(a)' (when parsed by the parse_color method) but now it is interpreted as 'i_rgb(a)' by the new Color class. I think I converted every occurrence to floats, but it's possible I missed some. An alternative would be to default to the float case (parse_color behaviour) and require an extra parameter/flag to interpret it as the int case in the Color class? --> These are all updated now.
    • [x] Add deprecation to parse_color in favor of the new Color class or keep it? --> Deprecation warnings added.
    enhancement documentation 
    opened by dcbr 39
  • Make sure inplace never defaults to True

    Make sure inplace never defaults to True

    Overview

    The default value of inplace should never be True. This cleans up a few methods that slipped by us.

    Addresses issues in #1855

    Details

    See my explanation in https://github.com/pyvista/pyvista/issues/1855#issuecomment-979774232

    The established convention for PyVista filters is:

    result = source.filter(options)
    

    And inplace should always be an opt-in feature and never imposed on a user because of the fact that it would then unintentionally alter the source data.

    @akaszynski, please review

    bug review-critical 
    opened by banesullivan 35
  • Add Reader classes

    Add Reader classes

    Overview

    This PR adds Reader classes that provides more fine-grained control of reading data files. Some classes include the ability to inspect and enable/disable the reading of point and cell arrays.

    closes #1520

    Details

    Future enhancements will include inspecting and setting time points to read, and more specific details for specific readers like vtkOpenFOAMReader, for example the ability to turn on and off the cell data to point data during data read.

    The provided example shows the usage of the new class.

    TODO:

    • [x] Implement all XMLReaders
    • [x] Implement openFOAM Reader
    • [x] Implement GenericEnsightReader
    • [x] Add list of supported file types
    • [x] Tests <- OpenFOAM tested locally and the ".p*" type files not tested
    • [x] ~~Use observer functionality similar to pyvista.read~~ Not needed?
    opened by MatthewFlamm 32
  • Add image_fft and image_rfft

    Add image_fft and image_rfft

    Overview

    Add vtkImageFFT and vtkImageRFFT wrapper.

    Requires:

    • [x] #2773
    • [x] #2770
    • [x] #2763
    • [x] #2441 (displaying frequencies without scaling the dataset)

    Convert rgb to grayscale (see https://en.wikipedia.org/wiki/Grayscale#Luma_coding_in_video_systems).

    r = image["JPEGImage"][:, 0]                                                                                                                                                                                
    g = image["JPEGImage"][:, 1]                                                                                                                                                                                
    b = image["JPEGImage"][:, 2]                                                                                                                                                                                
    image.clear_data()                                                                                                                                                                                          
    image["GrayScale"] = 0.299 * r + 0.587 * g + 0.114 * b                                                                                                                                                      
    pv.global_theme.cmap = "gray"                                                                                                                                                                               
    image.copy().plot(cpos="xy") 
    

    image1

    It is also possible to apply filters to images. The following is the Fast Fourier Transformed image data.

    fft = image.image_fft()                                                                                                                                                                                     
    fft.copy().plot(cpos="xy", log_scale=True)                                                                                                                                                                  
    

    image2

    Once Fast Fourier Transformed, images can also Reverse Fast Fourier Transformed.

    rfft = fft.image_rfft()                                                                                                                                                                                     
    rfft.copy().plot(cpos="xy")
    

    image3

    Details

    • None
    enhancement documentation 
    opened by tkoyama010 31
  • How does PyVista relate to other visualization tools?

    How does PyVista relate to other visualization tools?

    I think it might be useful to get a comparison table going in the docs to compare pyvista to other 3D viz tools out there (Python-based or not).

    Let's use this issue as a place to keep track of all the different tools out there start outlining what sections might be included in the comparison table.

    Example

    Here's an example of what I'm imaging for this:

    While this table outlines the various features available across these tools, it doesn't capture the ease-of-use of those features across the different software packages or other factors such as ease of installation or the Pythonic-ness of the API (how intuitive the API is to a new user)

    | | PyVista | plotly | Mayavi | ipyvolume | vtkplotter | ParaView | |------------------------------------|--------|----------|--------|-------------|--------------|----------| | Python API | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | pip installable | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | | Free & Open-Source | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | Supports 3D | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | Supports Time | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | NumPy Interface | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | | Supports Large Data | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | | Jupyter Notebooks | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | | Exports to VTKjs or X3D | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | | Eye-Dome Lighting (EDL) | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | | Focuses on Finite Element/Volume Types | ✅ | ❌ | ✅ | ❌ | ❌ | ✅ | | Analysis/Filtering Tools | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | | Opacity/Transparency | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | Subplotting | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | | Exports to movie/GIF | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | Supports geometric glyphing | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | | Supports a variety of file formats | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | | Direct access to filtering methods | ✅ | ❌ | ❌ | ❌ | ✅ | -- | | Interactivity/embeddable in Jupyter notebooks | ✅ | ✅| ✅ | ✅ | ✅ | -- |

    documentation priority-high 
    opened by banesullivan 31
  • Make MultiBlock meshes MutableSequence with some dict-like features for setting and getting.

    Make MultiBlock meshes MutableSequence with some dict-like features for setting and getting.

    Breaking Change

    MultiBlock getting and setting behavior now acts more like a list with ability to use some dict-like features for convenience. Non-conforming usages were removed.

    The following examples will no longer be possible:

    • multi[-1] = data # appends data
    • multi = MultiBlock(); multi[5] = data # sets length with an out of bound index
    • multi[1, 'name'] = data # sets key of data using second item of tuple index in setitem
    • multi[['name1', 'name2']] # use lists of str instead of slices
    • multi[[0, 1]] # use lists of int instead of slices
    • multi.next() # get next block

    The following examples should be used instead:

    • multi[-1] = data # access the last data entry.
    • multi.append(data, 'name') is the preferred method for appending and now accepts an optional name.
    • multi['name'] = data will also append if 'name' doesn't yet exist like a dict. It will overwrite the block 'name' if it exists.
    • multi = MultiBlock(); multi.n_blocks = 6, multi[5] = data # don't allow out of bounds indices
    • multi[1] = data; multi.set_block_name(1, 'name') # Use two lines to set name. Prefer to use append.
    • # need to loop over keys names
      for name in ['name1', 'name2']:
          multi[name]
      
    • multi[0:1] = [data1, data2] # now slicing for setting is possible
    • next(multi) # get next block
    • multi.replace(1, data) # replace data, but preserve key name

    Overview

    This partially addresses #1507 and closes #1823. This PR proposes that MultiBlock meshes should act like lists, but we also allow dict like get/set behavior, and some additional feature sugar ontop.

    Details

    Additional behaviors like iter, next, etc. were not addressed in this PR.

    TODO:

    • [x] more testing coverage for unaccepted usage, especially for existing usages that are no longer supported
    • [x] if a tuple ('name', data) is preferred, decide what order should it be in
    • [x] check other methods related to getter/setter, e.g. get, to more closely follow list-like, then dict-like behavior.
    bug enhancement breaking-change 
    opened by MatthewFlamm 30
  • [WIP] Remove star imports, pin down public namespace

    [WIP] Remove star imports, pin down public namespace

    Overview

    In a third-party PR thread it was pointed out that mypy makes some odd, opinionated choices when it handles the --strict flag. In a nutshell: when pyvista is installed as a dependency downstream and someone runs mypy --strict foo.py on a script that uses pyvista, mypy pretends that it doesn't know that pyvista has any attributes. For a bit more context see this mypy issue and this flag in the mypy docs.

    So

    1. since we use star imports in our inits, mypy would refuse to find attributes anyway,
    2. but even if we switch to explicit named imports, we either have to do from subpackage import name as name (over my dead body) or do from subpackage import name, other_name, ... but additionally define __all__ (a list normally used to fine-tune star import behaviour; something our users shouldn't be doing anyway).

    I don't like the necessary workaround with __all__ one bit, but getting rid of star imports is a reasonably noble task, so we might as well add some dirt to make mypy happy, since this would evidently benefit downstream libraries and maybe even some end users.

    Details

    What this is

    This PR (expected to be WIP for a while) is meant as a step to remove the star imports, in order to facilitate discussions concerning concrete implementations. Since there are quite a few heavy design decisions to be made, I figured it's probably easier to talk about this if we have specifics to look at.

    So as of the last commit when this PR was opened (https://github.com/pyvista/pyvista/pull/3764/commits/5ade1f0aa60dfa7acd98484c8a7ea69e77a65dce) this is a first-guess attempt at removing star imports from the pyvista.utilities subpackage tree. I plan to progress with other subpackages in time in this PR, also as a function of any discussion here. For now the implementation intends to keep the API surface the same (especially for the main pyvista namespace), but I would recommend taking the opportunity to scrap whatever we can from the public API to get rid of some bloat.

    Remarks

    In no particular order of importance:

    1. I've kept almost everything from the current pyvista namespace in pyvista.__all__, with the exception of names coming from the standard library or third-party modules (e.g. pyvista.np, pyvista.pi). I have, however, commented out a bunch of private-looking or unnecessary-looking things from the list, with the plan to delete these (and hopefully a bunch of others) before this PR is done.
    2. I've added a new test module with the sole purpose of checking that any __all__s contained in __init__.pys only contain names that actually exist in the given namespace. I think this is useful, but I don't insist on this having its own test module.
    3. For now I've kept duplicate items between pyvista.__all__ and pyvista.utilities.__all__. I think we should ideally only end up with any name being in at most one of these lists: if pyvista.utilities.misc.PyVistaDeprecationWarning is exposed as pyvista.PyVistaDeprecationWarning then we should not add this item to pyvista.utilities.__all__. (See also some of the questions below.)

    (See also remarks below that I'll post as comments in the diff.)

    Open questions

    1. Do we actually want to go ahead with this work, to replace star imports with explicit imports? If yes, do we really want to add __all__s to make mypy happy?
    2. Do we want to add module-level __all__s, e.g. pyvista.utilities.misc.__all__? I think not, because we're not actually trying to facilitate star imports, and mypy can surely figure out what names are available in actual "worker" modules.
    3. As noted in the previous section: should we group each name being exposed into exactly one __all__? This could hint to users to only access a given attribute at the highest level where it's exposed. And this could help reduce the public API surface by explicitly pushing back less-important public attributes to lower-level __all__s.
    4. Alternatively to the previous point: in the higher-level __init__.pys (specifically, pyvista.__init__), do we want to do things like from pyvista.utilities.misc import ... (as it is in this PR when it's opened), or do we want to build up subpackage namespaces level by level, and do from pyvista.utilities import ... (with one large wall of imports per top-level subpackage)? (If we snowball namespaces like this then this is probably a contradictory choice to the previous question. This snowballing would be mostly what we're doing now.)
    5. Bikeshed level, but eventually important none the less: how should we order these huge import walls we'll end up with (meaning the order of names being imported in a given from ... import statement)? Do what isort would do? Group semantically? Group alphabetically, uppercase before/intermixed with lowercase names?
    6. How important is it to preserve subpackage namespaces, e.g. pyvista.utilities.*? Do you think end users might rely on these? I took a glance at pyvistaqt (1.5th party library) and mne-python (3rd party direct dependent), and they don't seem to be doing any weird things, and any subpackages they access are in pyvista.plotting (which we'll probably want to mostly preserve anyway...).
    7. How open are we to paring down the main public namespace at this time? If we want to be cautious we can preserve the status quo (within reason, see e.g. removing stdlib names) for now, and remove names once this PR is done (or later). But we could also take one deep breath and chop while we're here. As always it will be hard to tell in advance how many people might be affected by removing things we never intended to be fully public.

    Example

    Here's a simple script demonstrating the typing issues:

    import pyvista
    
    mesh = pyvista.PolyData
    noise1 = pyvista.perlin_noise
    noise2 = pyvista.utilities.perlin_noise
    noise3 = pyvista.utilities.common.perlin_noise
    

    When I run this function in an env where pyvista is a regular installed package, it runs fine, meaning that all of the above attributes exist in the respective namespaces. Running mypy --strict on the above script on main does

    tmp_mypy.py:3: error: Module has no attribute "PolyData"  [attr-defined]
    tmp_mypy.py:4: error: Module has no attribute "perlin_noise"  [attr-defined]
    tmp_mypy.py:5: error: "Module pyvista.utilities" does not explicitly export attribute "perlin_noise"  [attr-defined]
    Found 3 errors in 1 file (checked 1 source file)
    

    and on this PR's branch (as of opening this PR) it does

    tmp_mypy.py:3: error: Module has no attribute "PolyData"  [attr-defined]
    Found 1 error in 1 file (checked 1 source file)
    

    The reason for this remaining error is that even though we have 'PolyData' in pyvista.__all__, the remaining star import in pyvista.__init__ that pulls in the name from pyvista.core implies that mypy is blind to it. The other errors from earlier were resolved because in each __init__.py there are explicit imports and explicit mentions of 'perlin_noise' in __all__.


    @pyvista/developers please chime in if you have the time and the opinions to decide how to tackle the fine details (and the broad ones) here. Even (especially) if you think we should take a very different road from what I've shown here. And please raise any points I missed.

    discussion maintenance 
    opened by adeak 5
  • Bump sphinx from 5.3.0 to 6.0.0

    Bump sphinx from 5.3.0 to 6.0.0

    Bumps sphinx from 5.3.0 to 6.0.0.

    Release notes

    Sourced from sphinx's releases.

    v6.0.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.0.0b2

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.0.0b1

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    Changelog

    Sourced from sphinx's changelog.

    Release 6.0.0 (released Dec 29, 2022)

    Dependencies

    • #10468: Drop Python 3.6 support
    • #10470: Drop Python 3.7, Docutils 0.14, Docutils 0.15, Docutils 0.16, and Docutils 0.17 support. Patch by Adam Turner

    Incompatible changes

    • #7405: Removed the jQuery and underscore.js JavaScript frameworks.

      These frameworks are no longer be automatically injected into themes from Sphinx 6.0. If you develop a theme or extension that uses the jQuery, $, or $u global objects, you need to update your JavaScript to modern standards, or use the mitigation below.

      The first option is to use the sphinxcontrib.jquery_ extension, which has been developed by the Sphinx team and contributors. To use this, add sphinxcontrib.jquery to the extensions list in conf.py, or call app.setup_extension("sphinxcontrib.jquery") if you develop a Sphinx theme or extension.

      The second option is to manually ensure that the frameworks are present. To re-add jQuery and underscore.js, you will need to copy jquery.js and underscore.js from the Sphinx repository_ to your static directory, and add the following to your layout.html:

      .. code-block:: html+jinja

      {%- block scripts %} {{ super() }} {%- endblock %}

      .. _sphinxcontrib.jquery: https://github.com/sphinx-contrib/jquery/

      Patch by Adam Turner.

    • #10471, #10565: Removed deprecated APIs scheduled for removal in Sphinx 6.0. See :ref:dev-deprecated-apis for details. Patch by Adam Turner.

    • #10901: C Domain: Remove support for parsing pre-v3 style type directives and roles. Also remove associated configuration variables c_allow_pre_v3 and c_warn_on_allowed_pre_v3. Patch by Adam Turner.

    Features added

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    maintenance dependencies 
    opened by dependabot[bot] 2
  • Resolves return_img for Plotter.show()

    Resolves return_img for Plotter.show()

    Overview

    Resolves https://github.com/pyvista/pyvista/issues/3241

    Details

    Now, Plotter.show() with return_img = True works even if return_cpos = False.

    bug 
    opened by beroda 4
  • Fix and improve chart interaction

    Fix and improve chart interaction

    Overview

    Improve chart interaction and partially fixes a chart interaction bug.

    Details

    • Fix chart interaction bug when there are multiple subplots, resolves #3278; but also requires an upstream (VTK) bug fix, see vtk#18763.
    • Support interaction with multiple charts in the same renderer (this was an arbitrary constraint to simplify the initial implementation).
    • Additionally, support enabling chart interaction from code, as requested recently in #3702.
    • Added render event handling in the Renderer class.
    • Added Chart type, to simplify doc string parameter types.

    TODO

    • [ ] Add separate chart border/background properties for when a chart is interactive, to make it visually easier to see which charts are interactive. I'll first finalize #2868 and then come back to this.
    bug enhancement vtk-issue 
    opened by dcbr 0
  • Triangle strips won't work with pythreejs backend

    Triangle strips won't work with pythreejs backend

    Describe the bug, what's wrong, and what you expected.

    When using pv.Tube() with pythreejs backend in google colab, the mesh cannot be added to the plotter, with the error message:

    /usr/local/lib/python3.8/dist-packages/pyvista/jupyter/pv_pythreejs.py:436: UserWarning: Empty or unsupported dataset attached to actor
      warnings.warn('Empty or unsupported dataset attached to actor')
    

    Steps to reproduce the bug.

    In a google colab notebook:

    !pip install pyvista pythreejs
    
    from google.colab import output
    output.enable_custom_widget_manager()
    
    import pyvista as pv
    pv.global_theme.notebook = True
    pv.global_theme.jupyter_backend = 'pythreejs'
    
    import numpy as np
    
    p1 = pv.Plotter()
    p1.add_mesh(pv.Tube(), color = 'cyan')
    p1.show()
    

    System Information

    Mon Dec 26 00:26:17 2022 UTC
    OS	Linux	CPU(s)	2	Machine	x86_64
    Architecture	64bit	RAM	12.7 GiB	Environment	IPython
    GPU Details	error
    Python 3.8.16 (default, Dec 7 2022, 01:12:13) [GCC 7.5.0]
    pyvista	0.34.2	vtk	9.2.2	numpy	1.21.6
    imageio	2.9.0	appdirs	1.4.4	scooby	0.7.0
    matplotlib	3.2.2	IPython	7.9.0	colorcet	3.0.1
    scipy	1.7.3	tqdm	4.64.1
    

    Screenshots

    No response

    Related: https://github.com/pyvista/pyvista/issues/3439

    bug 
    opened by zou000 2
Releases(v0.36.1)
  • v0.36.1(Aug 1, 2022)

  • v0.36.0(Jul 31, 2022)

    What's Changed

    New Features

    • add more mount damavand examples by @akaszynski in https://github.com/pyvista/pyvista/pull/2969
    • Add particles dataset to downloads by @akaszynski in https://github.com/pyvista/pyvista/pull/2984
    • Use has_module by @akaszynski in https://github.com/pyvista/pyvista/pull/3020
    • Add GIF reader and implement tight plotting for 2D by @akaszynski in https://github.com/pyvista/pyvista/pull/3038
    • Add space cubemaps by @akaszynski in https://github.com/pyvista/pyvista/pull/3075
    • Add the ability to remove environment texture by @akaszynski in https://github.com/pyvista/pyvista/pull/3072
    • Add park cubemap by @akaszynski in https://github.com/pyvista/pyvista/pull/3071

    Bug fixes or behavior changes

    • [BUG] Fix clearing point and cell data by @alexrockhill in https://github.com/pyvista/pyvista/pull/2976
    • fix vtk version support by @akaszynski in https://github.com/pyvista/pyvista/pull/2961
    • Fix texture docstring by @jorgepiloto in https://github.com/pyvista/pyvista/pull/2996
    • Fixed docstring explanation for curvature function by @ENIAC-6 in https://github.com/pyvista/pyvista/pull/2997
    • Use Set method insted of On and Off method by @RobPasMue in https://github.com/pyvista/pyvista/pull/3001
    • Fix active plotting scalars for multi-plots by @akaszynski in https://github.com/pyvista/pyvista/pull/2980
    • Add example remove_scalar_bar( ) by @ENIAC-6 in https://github.com/pyvista/pyvista/pull/3005
    • Fix Plotter.export_obj by @RobPasMue in https://github.com/pyvista/pyvista/pull/2999
    • Clear charts when clearing plotters by @adeak in https://github.com/pyvista/pyvista/pull/2991
    • Resolve issues with scalars in cell_data_to_point_data API docs by @RobPasMue in https://github.com/pyvista/pyvista/pull/3011
    • Fix pyvista.plot kwargs by @akaszynski in https://github.com/pyvista/pyvista/pull/2967
    • Fix the flying edges example by @akaszynski in https://github.com/pyvista/pyvista/pull/3014
    • Fix docstring default for log_scale in add_mesh by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/3028
    • Fix command of doctest by @tkoyama010 in https://github.com/pyvista/pyvista/pull/3036
    • Fix Plotter and children for proper garbage collection by @adeak in https://github.com/pyvista/pyvista/pull/3037
    • do not reset camera unless plotter has been shown by @akaszynski in https://github.com/pyvista/pyvista/pull/3022
    • Only support ASCII characters by @tkoyama010 in https://github.com/pyvista/pyvista/pull/3055
    • Add check if the path exists before removing it. by @turejaku in https://github.com/pyvista/pyvista/pull/3048
    • Fix for function from_meshio by @keurfonluu in https://github.com/pyvista/pyvista/pull/3049
    • Add copy_mesh argument to plotter.add_mesh by @p-j-smith in https://github.com/pyvista/pyvista/pull/3088
    • Fix image-fft example by @akaszynski in https://github.com/pyvista/pyvista/pull/3108

    Documentation

    • Delete whitespaces in rst files under doc directory by @GNUSheep in https://github.com/pyvista/pyvista/pull/2966
    • Add movie glyphs example by @akaszynski in https://github.com/pyvista/pyvista/pull/2981
    • remove code of conduct checkbox by @akaszynski in https://github.com/pyvista/pyvista/pull/3006
    • Specify in CONTRIBUTING.rst use of NumPy docstrings by @ENIAC-6 in https://github.com/pyvista/pyvista/pull/3004
    • Add background_color example by @ENIAC-6 in https://github.com/pyvista/pyvista/pull/3013
    • Added link_views example by @charithgunasekara in https://github.com/pyvista/pyvista/pull/3016
    • Add camera position example by @akaszynski in https://github.com/pyvista/pyvista/pull/3019
    • Improve make chart tables for docs by @akaszynski in https://github.com/pyvista/pyvista/pull/3023
    • Add geemap and GmshModel as external examples by @tkoyama010 in https://github.com/pyvista/pyvista/pull/3053
    • Add 10-second intersphinx timeout to doc build by @adeak in https://github.com/pyvista/pyvista/pull/3081
    • Add the Grad-Descent-Visualizer package to the external examples. by @JacobBumgarner in https://github.com/pyvista/pyvista/pull/3089

    Maintenance

    • Update pre-commit hooks by @github-actions in https://github.com/pyvista/pyvista/pull/2963
    • Bump sphinx-notfound-page from 0.8 to 0.8.3 by @dependabot in https://github.com/pyvista/pyvista/pull/2986
    • Bump trimesh from 3.12.7 to 3.12.8 by @dependabot in https://github.com/pyvista/pyvista/pull/2987
    • Use Python 3.9 for codecov by @akaszynski in https://github.com/pyvista/pyvista/pull/2990
    • Update pre-commit hooks by @github-actions in https://github.com/pyvista/pyvista/pull/3008
    • Bump trimesh from 3.12.8 to 3.12.9 by @dependabot in https://github.com/pyvista/pyvista/pull/3025
    • add bool scalars test by @akaszynski in https://github.com/pyvista/pyvista/pull/3021
    • Use static tuple definition for dataset ActiveArrayInfo by @sdransfeld in https://github.com/pyvista/pyvista/pull/3026
    • Bump mypy from 0.961 to 0.971 by @dependabot in https://github.com/pyvista/pyvista/pull/3035
    • Cache apt by @akaszynski in https://github.com/pyvista/pyvista/pull/2985
    • Bump jupyterlab from 3.4.3 to 3.4.4 by @dependabot in https://github.com/pyvista/pyvista/pull/3047
    • Add Breaking Changes section to Release Note by @tkoyama010 in https://github.com/pyvista/pyvista/pull/3044
    • Update pre-commit hooks by @github-actions in https://github.com/pyvista/pyvista/pull/3059
    • Update hypothesis requirement from <6.49.2 to <6.52.5 by @dependabot in https://github.com/pyvista/pyvista/pull/3056
    • Update hypothesis requirement from <6.52.5 to <6.53.1 by @dependabot in https://github.com/pyvista/pyvista/pull/3063
    • Update imageio requirement from <2.20.0 to <2.21.0 by @dependabot in https://github.com/pyvista/pyvista/pull/3076
    • Use f-strings and fix exception types by @erfanhamdi in https://github.com/pyvista/pyvista/pull/3077

    New Contributors

    • @GNUSheep made their first contribution in https://github.com/pyvista/pyvista/pull/2966
    • @alexrockhill made their first contribution in https://github.com/pyvista/pyvista/pull/2976
    • @jorgepiloto made their first contribution in https://github.com/pyvista/pyvista/pull/2996
    • @ENIAC-6 made their first contribution in https://github.com/pyvista/pyvista/pull/2997
    • @RobPasMue made their first contribution in https://github.com/pyvista/pyvista/pull/3001
    • @charithgunasekara made their first contribution in https://github.com/pyvista/pyvista/pull/3016
    • @sdransfeld made their first contribution in https://github.com/pyvista/pyvista/pull/3026
    • @turejaku made their first contribution in https://github.com/pyvista/pyvista/pull/3048
    • @erfanhamdi made their first contribution in https://github.com/pyvista/pyvista/pull/3077

    Full Changelog: https://github.com/pyvista/pyvista/compare/v0.35.2...v0.36.0

    Source code(tar.gz)
    Source code(zip)
  • v0.35.2(Jul 18, 2022)

    This patch release was needed for urgent fixes for MNE as described in https://github.com/mne-tools/mne-python/pull/10913

    This patch release also includes several bug fixes and new examples from the Scipy2022 sprint. Thanks all who participated with their first PRs!

    New contributors

    • @charithgunasekara
    • @ENIAC-6
    • @RobPasMue
    • @jorgepiloto
    • @alexrockhill

    What's Changed

    Bugs

    • #2967 Fix pyvista.plot kwargs bug
    • #2976 [BUG] Fix clearing point and cell data
    • #2980 Fix active plotting scalars for multi-plots bug
    • #2991 Clear charts when clearing plotters
    • #2999 Fix Plotter.export_obj bug documentation

    Documentation

    • #2969 add more mount damavand examples
    • #2981 Add movie glyphs example
    • #2996 Fix texture docstring bug
    • #2997 Fixed docstring explanation for curvature function
    • #3005 Add example remove_scalar_bar( )
    • #3011 Resolve issues with scalars in cell_data_to_point_data API docs
    • #3013 Add background_color example
    • #3014 Fix the flying edges example
    • #3016 Added link_views example
    • #3019 Add camera position example documentation

    Full Changelog: https://github.com/pyvista/pyvista/compare/v0.35.1...v0.35.2

    Source code(tar.gz)
    Source code(zip)
  • v0.35.1(Jul 8, 2022)

    We've added a variety of new features in this release, including wrappers for several VTK filters and widgets. Check out the full release notes below!

    This release includes a variety of new features including

    Special thanks to the 14 new contributors to the project for this release. Thanks for your hard work!

    What's Changed

    New Features

    • modify uniformgrid filters by @njneeteson in https://github.com/pyvista/pyvista/pull/2432
    • add disable picking by @akaszynski in https://github.com/pyvista/pyvista/pull/2450
    • add additional kwargs to open_gif by @akaszynski in https://github.com/pyvista/pyvista/pull/2484
    • add DICOMReader by @adam-grant-hendry in https://github.com/pyvista/pyvista/pull/2460
    • Add many Readers by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2496
    • Fix glyphs when orienting with cell data by @whophil in https://github.com/pyvista/pyvista/pull/2500
    • Add add_ruler to BasePlotter by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2531
    • Added decompose_polyhedra property in OpenFOAMReader by @Failxxx in https://github.com/pyvista/pyvista/pull/2563
    • add dynamic flask example by @akaszynski in https://github.com/pyvista/pyvista/pull/2552
    • Add ".xyz" extension to PointSet.save by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2571
    • Small change to avoid raising exception by @germa89 in https://github.com/pyvista/pyvista/pull/2586
    • Add split sharp edges to theme by @akaszynski in https://github.com/pyvista/pyvista/pull/2575
    • Add import/export VRML by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2451
    • add in warning for anti-aliasing when vtk is compiled with egl by @akaszynski in https://github.com/pyvista/pyvista/pull/2694
    • PolyData.*_normals properties use existing Normals if they exist by @whophil in https://github.com/pyvista/pyvista/pull/2737
    • Add POpenFOAMReader by @Failxxx in https://github.com/pyvista/pyvista/pull/2676
    • Add fill arg to Polygon by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2767
    • Add extrude_trim filter by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2600
    • implement complex dtype for pyvista_ndarray by @akaszynski in https://github.com/pyvista/pyvista/pull/2773
    • Add integrate_data filter by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2790
    • Add orientation to add_text by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2794
    • Add rotation_axis arg to extrude_rotate method by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2791
    • Feat/update bound actor by @JacobBumgarner in https://github.com/pyvista/pyvista/pull/2441
    • allow missing matplotlib when setting themes by @akaszynski in https://github.com/pyvista/pyvista/pull/2824
    • Implement taubin smoothing by @akaszynski in https://github.com/pyvista/pyvista/pull/2829
    • Add skip_zero_time property in OpenFOAMReader by @Failxxx in https://github.com/pyvista/pyvista/pull/2847
    • Add image_fft and image_rfft by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1953
    • add some decimate_pro arguments by @darikg in https://github.com/pyvista/pyvista/pull/2874
    • Plane widget methods support user-defined origin by @banesullivan in https://github.com/pyvista/pyvista/pull/2883
    • Tecplot ascii data reader by @mechajeff in https://github.com/pyvista/pyvista/pull/2875
    • Implement fixes for VTK 9.2.0rc by @akaszynski in https://github.com/pyvista/pyvista/pull/2863
    • Custom widget interaction events by @banesullivan in https://github.com/pyvista/pyvista/pull/2882
    • Add DataSet.cell_point_ids by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2897
    • Add setup and teardown functionality to plot_directive by @adeak in https://github.com/pyvista/pyvista/pull/2907
    • Add method to check if point is inside cell by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2905

    Bug fixes or behavior changes

    • Fix CGNSreader import by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2423
    • Make colors iterable and indexable by @dcbr in https://github.com/pyvista/pyvista/pull/2415
    • Replace SetTimeValue with UpdateTimeStep and add tests by @piyueh in https://github.com/pyvista/pyvista/pull/2485
    • Do not automatically set hidden line removal in document theme by @hakostra in https://github.com/pyvista/pyvista/pull/2488
    • Fix download_single_sphere_animation by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2492
    • Fix UniformGrid.x docstring by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2511
    • Return actor from add_mesh_threshold by @d-chambers in https://github.com/pyvista/pyvista/pull/2516
    • Make VTK version error clear when PointSet is still abstract by @adeak in https://github.com/pyvista/pyvista/pull/2483
    • Update checkbox-widget.py by @yungchidanielcho in https://github.com/pyvista/pyvista/pull/2549
    • fix widget garbage collection by @akaszynski in https://github.com/pyvista/pyvista/pull/2569
    • Fix all_scalars usage in threshold by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2670
    • Include MultipleLines in documentation by @StefRe in https://github.com/pyvista/pyvista/pull/2683
    • Fix typo by @StefRe in https://github.com/pyvista/pyvista/pull/2685
    • Fix generate_cell_offsets test by @StefRe in https://github.com/pyvista/pyvista/pull/2708
    • add linked views for pythreejs by @akaszynski in https://github.com/pyvista/pyvista/pull/2518
    • Clean up documentation build by @akaszynski in https://github.com/pyvista/pyvista/pull/2721
    • Fix use of a slice tuple for numpy 1.23 by @adeak in https://github.com/pyvista/pyvista/pull/2726
    • disable spherical harmonics when using cubemap textures by @akaszynski in https://github.com/pyvista/pyvista/pull/2722
    • fix splitting sharp edges with active cell scalars by @akaszynski in https://github.com/pyvista/pyvista/pull/2695
    • Fix shared array access on init by @banesullivan in https://github.com/pyvista/pyvista/pull/2697
    • Add warning tests of integer vectors by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2664
    • Add gallery building flag to environment variables by @adeak in https://github.com/pyvista/pyvista/pull/2745
    • Refactor StructuredGrid init by @akaszynski in https://github.com/pyvista/pyvista/pull/2740
    • Correct reference to time values by @mcgoldba in https://github.com/pyvista/pyvista/pull/2741
    • Add missing VRML image to cache by @akaszynski in https://github.com/pyvista/pyvista/pull/2765
    • Return correct scalar type for pyvista_ndarray by @akaszynski in https://github.com/pyvista/pyvista/pull/2770
    • Improve download zip by @akaszynski in https://github.com/pyvista/pyvista/pull/2727
    • fix download_zip by @akaszynski in https://github.com/pyvista/pyvista/pull/2787
    • Fix get_array return type by @akaszynski in https://github.com/pyvista/pyvista/pull/2782
    • deep/shallow copy metadata by @akaszynski in https://github.com/pyvista/pyvista/pull/2779
    • Add warning when trying to screenshot while using a jupyter_backend by @banesullivan in https://github.com/pyvista/pyvista/pull/2795
    • Fix garbage collection by @akaszynski in https://github.com/pyvista/pyvista/pull/2754
    • Do not add arrays when plotting by @akaszynski in https://github.com/pyvista/pyvista/pull/2763
    • Change preference strings to singular by @adeak in https://github.com/pyvista/pyvista/pull/2818
    • Prevent AttributeError when deleting a partially initialized Plotter by @adeak in https://github.com/pyvista/pyvista/pull/2819
    • Fix matplotlib backend setting for test suite by @adeak in https://github.com/pyvista/pyvista/pull/2828
    • Do not add scalars when setting scalar bar title by @akaszynski in https://github.com/pyvista/pyvista/pull/2822
    • fix extent documentation and implementation by @akaszynski in https://github.com/pyvista/pyvista/pull/2827
    • Add jupyterlab to Scooby Report by @banesullivan in https://github.com/pyvista/pyvista/pull/2846
    • decrease tol for camera test due to MacOS by @akaszynski in https://github.com/pyvista/pyvista/pull/2836
    • Ensure same name arrays do not shallow copy by @akaszynski in https://github.com/pyvista/pyvista/pull/2872
    • Ensure data remains a shallow copy when added to plotter by @akaszynski in https://github.com/pyvista/pyvista/pull/2888
    • Handle invalid theme on init by @akaszynski in https://github.com/pyvista/pyvista/pull/2917
    • Fix all-triangles checking for polyfilters by @adeak in https://github.com/pyvista/pyvista/pull/2934
    • Improve ChartMPL performance by @dcbr in https://github.com/pyvista/pyvista/pull/2943
    • Enforce scalar output for contour filter by @akaszynski in https://github.com/pyvista/pyvista/pull/2952
    • Fix a few minor contour()-related issues by @adeak in https://github.com/pyvista/pyvista/pull/2951
    • Fix add_mesh_slice_orthogonal() when a name is passed by @banesullivan in https://github.com/pyvista/pyvista/pull/2950

    Documentation

    • DOC: Fix citation bibtex entry and spell out two authors by @adeak in https://github.com/pyvista/pyvista/pull/1292
    • ➕ Fix import of example by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1424
    • ➕ Extra import fix of example by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1425
    • 📝 Add VesselVio to external gallery by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1444
    • 📝 Fix typo by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1458
    • 🎬 Add Create a GIF Movie with updating textures by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1544
    • Add codetriage badge by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1587
    • 👾 Add Alien Monsters example by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1677
    • add truss example by @akaszynski in https://github.com/pyvista/pyvista/pull/1683
    • Add Plotter.add_volume example by @puripant in https://github.com/pyvista/pyvista/pull/1707
    • Add examples for view_* functions by @puripant in https://github.com/pyvista/pyvista/pull/1714
    • Fix resetting _wrappers in sphinx-gallery by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/1721
    • Add examples in plotting module by @AleenaSA in https://github.com/pyvista/pyvista/pull/1715
    • Automated PR: Update Local Intersphinx by @github-actions in https://github.com/pyvista/pyvista/pull/1767
    • Add plot to glyphs example by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1723
    • Fix docstring examples with broken rendering by @adeak in https://github.com/pyvista/pyvista/pull/1770
    • Fix find_closest_cell examples doctest by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/1809
    • ✏️ Fix typo. by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1829
    • ✏️ Fix typo. by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1842
    • ✏️ Fix docstring by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1843
    • Clean up the examples by @banesullivan in https://github.com/pyvista/pyvista/pull/1851
    • Add glyph's docstring and test by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1872
    • Fix interpolate example by @banesullivan in https://github.com/pyvista/pyvista/pull/1881
    • A thank you to @MatthewFlamm and @darikg by @banesullivan in https://github.com/pyvista/pyvista/pull/1901
    • Reset theme in sphinx gallery and reset before and after examples by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/1915
    • 📝Update version of CODE_OF_CONDUCT. by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1916
    • 📝Fix [INSERT CONTACT METHOD] by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1917
    • Use custom VTK with OSMesa wheel to build the docs by @akaszynski in https://github.com/pyvista/pyvista/pull/1942
    • 📝 Add plot to show downloads datasets by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1826
    • Add make uniform grid class init more explicit by @akaszynski in https://github.com/pyvista/pyvista/pull/1783
    • 🎉 HAPPY NEW YEAR 2022 🎉 by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1989
    • 👷 Automate copyright date by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1991
    • ✏️ Fix typos. by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1996
    • Disable highlighting for web search results by @adeak in https://github.com/pyvista/pyvista/pull/2007
    • Fix some links and typos in examples by @adeak in https://github.com/pyvista/pyvista/pull/2030
    • 📝 Add My PyVista artwork to external gallery by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2046
    • Give due credit and close #2049 by @banesullivan in https://github.com/pyvista/pyvista/pull/2086
    • Add slim docker image by @banesullivan in https://github.com/pyvista/pyvista/pull/2091
    • Move Windows CI Tests to GH Actions by @banesullivan in https://github.com/pyvista/pyvista/pull/2083
    • Add reporting extra examples contributing by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2104
    • 📝 Add PteraSoftware to external gallery by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2103
    • Add dataset attributes to the docs by @akaszynski in https://github.com/pyvista/pyvista/pull/2109
    • Improve gif animation examples by @akaszynski in https://github.com/pyvista/pyvista/pull/2119
    • Automated PR: Update Local Intersphinx by @github-actions in https://github.com/pyvista/pyvista/pull/2122
    • Hopf torus by @stla in https://github.com/pyvista/pyvista/pull/2136
    • Minor fix typo by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2148
    • Update ipyvtklink docs by @banesullivan in https://github.com/pyvista/pyvista/pull/2135
    • add build instructions for EGL by @akaszynski in https://github.com/pyvista/pyvista/pull/2151
    • Merge duplicate CONTRIBUTING contents by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2110
    • Fix broken link to contributing guide in documents by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2173
    • Improve comparison language by @banesullivan in https://github.com/pyvista/pyvista/pull/2177
    • Fix link syntax error by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2182
    • Create CITATION.cff by @banesullivan in https://github.com/pyvista/pyvista/pull/2218
    • Fix CONTRIBUTING.rst and mention black by @adeak in https://github.com/pyvista/pyvista/pull/2241
    • Fix CONTRIBUTING.rst some more by @adeak in https://github.com/pyvista/pyvista/pull/2244
    • Add sphinx extension viewcode by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2192
    • Automated PR: Update Local Intersphinx by @github-actions in https://github.com/pyvista/pyvista/pull/2285
    • Fix typo of threshold docstring by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2355
    • Document that default capping changed for extrude* in 0.32 by @adeak in https://github.com/pyvista/pyvista/pull/2339
    • Left click to pick points by @p-j-smith in https://github.com/pyvista/pyvista/pull/2266
    • Update list of connected software by @banesullivan in https://github.com/pyvista/pyvista/pull/2131
    • Automated PR: Update Local Intersphinx by @github-actions in https://github.com/pyvista/pyvista/pull/2406
    • Added CGNSReader in Reader Classes by @Kirito-Excalibur in https://github.com/pyvista/pyvista/pull/2413
    • Fix links in README by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2430
    • Fix small typo by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2431
    • Fix typos by @luzpaz in https://github.com/pyvista/pyvista/pull/2443
    • DOC: Updated wheel building instructions by @larsoner in https://github.com/pyvista/pyvista/pull/2439
    • Update Docker documentation by @banesullivan in https://github.com/pyvista/pyvista/pull/2444
    • Fix small typo by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2449
    • fix example for reading exodus file by @j-bowhay in https://github.com/pyvista/pyvista/pull/2495
    • add polyhedral example by @akaszynski in https://github.com/pyvista/pyvista/pull/2505
    • Use imageio intersphinx links by @adeak in https://github.com/pyvista/pyvista/pull/2489
    • Update OpenFOAM example to reuse Reader by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2530
    • Make intersphinx update script more robust by @adeak in https://github.com/pyvista/pyvista/pull/2534
    • added documentation for getting started with wsl2 on windows by @danielgrzenda in https://github.com/pyvista/pyvista/pull/2553
    • add checkbox widget example by @yungchidanielcho in https://github.com/pyvista/pyvista/pull/2550
    • Added example for show_axes_all by @mbebic in https://github.com/pyvista/pyvista/pull/2551
    • add example for Plotter.bounds by @akaszynski in https://github.com/pyvista/pyvista/pull/2546
    • Clean up numpydoc validation regexen by @adeak in https://github.com/pyvista/pyvista/pull/2525
    • add clip box example to docstring by @yungchidanielcho in https://github.com/pyvista/pyvista/pull/2547
    • Add warning to threshold that it's a cell filter by @adeak in https://github.com/pyvista/pyvista/pull/2597
    • Remove documentation for widget helper by @akaszynski in https://github.com/pyvista/pyvista/pull/2570
    • Add a note in regards to issues when installing pre-commit by @akaszynski in https://github.com/pyvista/pyvista/pull/2709
    • Automated PR: Update Local Intersphinx by @github-actions in https://github.com/pyvista/pyvista/pull/2723
    • Switch to using sphinx keep-going flag by @akaszynski in https://github.com/pyvista/pyvista/pull/2719
    • Update information on the translation project by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2743
    • skip or avoid creating files in doc build by @akaszynski in https://github.com/pyvista/pyvista/pull/2748
    • Small typo fix by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2793
    • Small typo fix by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2802
    • Add notes regarding optional dependencies by @akaszynski in https://github.com/pyvista/pyvista/pull/2826
    • Small typo fix by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2848
    • Fix _version.py file reference in CONTRIBUTING.rst by @adeak in https://github.com/pyvista/pyvista/pull/2861
    • Fix small typo by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2866
    • Fix docs on ipyvtklink usage by @banesullivan in https://github.com/pyvista/pyvista/pull/2887
    • Rotate teapot for flip_z() doctest example by @adeak in https://github.com/pyvista/pyvista/pull/2885
    • Fix the URL link of discretize by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2914
    • Add tags with python commands to avoid misnumbering by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2416
    • Automated PR: Update Local Intersphinx by @github-actions in https://github.com/pyvista/pyvista/pull/2926
    • Update information on the release by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2911

    Maintenance

    • Update hypothesis requirement from <6.31.6 to <6.37.3 by @dependabot in https://github.com/pyvista/pyvista/pull/2258
    • Bump trimesh from 3.10.1 to 3.10.2 by @dependabot in https://github.com/pyvista/pyvista/pull/2265
    • Bump meshio from 5.3.0 to 5.3.2 by @dependabot in https://github.com/pyvista/pyvista/pull/2269
    • Update hypothesis requirement from <6.37.3 to <6.38.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2281
    • Update tqdm requirement from <4.63.0 to <4.64.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2283
    • Bump flake8-black from 0.2.4 to 0.3.2 by @dependabot in https://github.com/pyvista/pyvista/pull/2282
    • Update hypothesis requirement from <6.38.1 to <6.39.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2287
    • Bump jupyterlab from 3.2.9 to 3.3.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2293
    • Update hypothesis requirement from <6.39.1 to <6.39.2 by @dependabot in https://github.com/pyvista/pyvista/pull/2296
    • Update hypothesis requirement from <6.39.2 to <6.39.4 by @dependabot in https://github.com/pyvista/pyvista/pull/2310
    • Exclude deprecated plotting/theme.py from coverage by @adeak in https://github.com/pyvista/pyvista/pull/2261
    • Bump jupyterlab from 3.3.0 to 3.3.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2317
    • Bump meshio from 5.3.2 to 5.3.3 by @dependabot in https://github.com/pyvista/pyvista/pull/2328
    • Bump mypy from 0.931 to 0.940 by @dependabot in https://github.com/pyvista/pyvista/pull/2342
    • Bump meshio from 5.3.3 to 5.3.4 by @dependabot in https://github.com/pyvista/pyvista/pull/2343
    • Update pytest requirement from <7.1.0 to <7.2.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2344
    • Bump mypy from 0.940 to 0.941 by @dependabot in https://github.com/pyvista/pyvista/pull/2351
    • Bump jupyterlab from 3.3.1 to 3.3.2 by @dependabot in https://github.com/pyvista/pyvista/pull/2350
    • Bump pypandoc from 1.7.2 to 1.7.4 by @dependabot in https://github.com/pyvista/pyvista/pull/2357
    • Bump trimesh from 3.10.2 to 3.10.3 by @dependabot in https://github.com/pyvista/pyvista/pull/2358
    • Update hypothesis requirement from <6.39.4 to <6.39.5 by @dependabot in https://github.com/pyvista/pyvista/pull/2356
    • Bump trimesh from 3.10.3 to 3.10.5 by @dependabot in https://github.com/pyvista/pyvista/pull/2362
    • Update incorrectly raised errors to VTKVersionError by @not-so-rabh in https://github.com/pyvista/pyvista/pull/2199
    • Attempt remove flaky windows test skips by @banesullivan in https://github.com/pyvista/pyvista/pull/2321
    • Update ipython requirement from <8.0.0 to <9.0.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2056
    • Replaced pyvista.wrap(alg.GetOutput()) with _get_output(alg). by @harshi1122 in https://github.com/pyvista/pyvista/pull/2228
    • Create PyvistaFutureWarning, use it to warn about extrude capping changes by @adeak in https://github.com/pyvista/pyvista/pull/2364
    • Add auto labeling in releases by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2368
    • fix Jinja requirements by @akaszynski in https://github.com/pyvista/pyvista/pull/2374
    • Bump mypy from 0.941 to 0.942 by @dependabot in https://github.com/pyvista/pyvista/pull/2377
    • Bump trimesh from 3.10.5 to 3.10.7 by @dependabot in https://github.com/pyvista/pyvista/pull/2376
    • Bump panel from 0.12.6 to 0.12.7 by @dependabot in https://github.com/pyvista/pyvista/pull/2382
    • Bump sphinx from 4.4.0 to 4.5.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2385
    • Bump pydata-sphinx-theme from 0.8.0 to 0.8.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2384
    • Update hypothesis requirement from <6.39.5 to <6.39.7 by @dependabot in https://github.com/pyvista/pyvista/pull/2383
    • Bump jinja2 from 3.0.3 to 3.1.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2386
    • Bump black from 22.1.0 to 22.3.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2390
    • Update hypothesis requirement from <6.39.7 to <6.40.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2391
    • switch to pre-commit by @akaszynski in https://github.com/pyvista/pyvista/pull/2392
    • Bump numpydoc from 1.2.0 to 1.2.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2395
    • fix typing - set_active_x supports name=None by @darikg in https://github.com/pyvista/pyvista/pull/2399
    • Bump pytest-sphinx from 0.3.1 to 0.4.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2402
    • Bump param from 1.12.0 to 1.12.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2407
    • Update hypothesis requirement from <6.40.1 to <6.40.2 by @dependabot in https://github.com/pyvista/pyvista/pull/2408
    • Add labels to pre-commit update by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2420
    • Bump pypandoc from 1.7.4 to 1.7.5 by @dependabot in https://github.com/pyvista/pyvista/pull/2427
    • Update tqdm requirement from <4.64.0 to <4.65.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2428
    • Update hypothesis requirement from <6.40.2 to <6.41.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2426
    • Update pre-commit hooks by @github-actions in https://github.com/pyvista/pyvista/pull/2419
    • Bump jupyterlab from 3.3.2 to 3.3.3 by @dependabot in https://github.com/pyvista/pyvista/pull/2442
    • Bump trimesh from 3.10.7 to 3.10.8 by @dependabot in https://github.com/pyvista/pyvista/pull/2445
    • Update pre-commit hooks by @github-actions in https://github.com/pyvista/pyvista/pull/2448
    • Add github-actions's comment when no labels by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2447
    • Update hypothesis requirement from <6.41.1 to <6.42.4 by @dependabot in https://github.com/pyvista/pyvista/pull/2452
    • Update hypothesis requirement from <6.42.4 to <6.43.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2456
    • Bump imageio-ffmpeg from 0.4.5 to 0.4.6 by @dependabot in https://github.com/pyvista/pyvista/pull/2462
    • Default set active vectors for filters by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2433
    • Update hypothesis requirement from <6.43.1 to <6.43.2 by @dependabot in https://github.com/pyvista/pyvista/pull/2465
    • Bump imageio-ffmpeg from 0.4.6 to 0.4.7 by @dependabot in https://github.com/pyvista/pyvista/pull/2470
    • Update pre-commit hooks by @github-actions in https://github.com/pyvista/pyvista/pull/2472
    • Update imageio requirement from <2.17.0 to <2.18.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2476
    • Bump typed-ast from 1.5.2 to 1.5.3 by @dependabot in https://github.com/pyvista/pyvista/pull/2480
    • Bump jupyterlab from 3.3.3 to 3.3.4 by @dependabot in https://github.com/pyvista/pyvista/pull/2479
    • Update hypothesis requirement from <6.43.2 to <6.43.4 by @dependabot in https://github.com/pyvista/pyvista/pull/2481
    • Bump typing-extensions from 4.1.1 to 4.2.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2477
    • Bump panel from 0.12.7 to 0.13.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2478
    • Add dependabot automerge by @akaszynski in https://github.com/pyvista/pyvista/pull/2482
    • Update hypothesis requirement from <6.43.4 to <6.44.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2498
    • Revert "Add github-actions's comment when no labels" by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2501
    • Update hypothesis requirement from <6.44.1 to <6.45.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2507
    • Update imageio requirement from <2.18.0 to <2.19.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2506
    • Bump trimesh from 3.10.8 to 3.11.2 by @dependabot in https://github.com/pyvista/pyvista/pull/2519
    • Update hypothesis requirement from <6.45.1 to <6.45.2 by @dependabot in https://github.com/pyvista/pyvista/pull/2523
    • Bump mypy from 0.942 to 0.950 by @dependabot in https://github.com/pyvista/pyvista/pull/2522
    • Update pre-commit hooks by @github-actions in https://github.com/pyvista/pyvista/pull/2535
    • Update hypothesis requirement from <6.45.2 to <6.46.2 by @dependabot in https://github.com/pyvista/pyvista/pull/2541
    • Bump numpydoc from 1.2.1 to 1.3.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2543
    • Update imageio requirement from <2.19.0 to <2.20.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2542
    • Update hypothesis requirement from <6.46.2 to <6.46.3 by @dependabot in https://github.com/pyvista/pyvista/pull/2554
    • Bump matplotlib from 3.5.1 to 3.5.2 by @dependabot in https://github.com/pyvista/pyvista/pull/2555
    • Bump jupyterlab from 3.3.4 to 3.4.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2558
    • Set default scalars for filters by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2474
    • Bump trimesh from 3.11.2 to 3.12.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2574
    • Update hypothesis requirement from <6.46.3 to <6.46.4 by @dependabot in https://github.com/pyvista/pyvista/pull/2583
    • Bump pypandoc from 1.7.5 to 1.8 by @dependabot in https://github.com/pyvista/pyvista/pull/2584
    • Bump jupyterlab from 3.4.0 to 3.4.2 by @dependabot in https://github.com/pyvista/pyvista/pull/2594
    • Update pre-commit hooks by @github-actions in https://github.com/pyvista/pyvista/pull/2602
    • Add issue forms by @JacobBumgarner in https://github.com/pyvista/pyvista/pull/2601
    • Fix imports of vtkExtractEdges and vtkCellTreeLocator by @hakostra in https://github.com/pyvista/pyvista/pull/2585
    • Update hypothesis requirement from <6.46.4 to <6.46.6 by @dependabot in https://github.com/pyvista/pyvista/pull/2659
    • Update hypothesis requirement from <6.46.6 to <6.46.7 by @dependabot in https://github.com/pyvista/pyvista/pull/2669
    • Bump scipy from 1.8.0 to 1.8.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2674
    • Update hypothesis requirement from <6.46.7 to <6.46.8 by @dependabot in https://github.com/pyvista/pyvista/pull/2673
    • Bump trimesh from 3.12.0 to 3.12.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2672
    • Bump trimesh from 3.12.1 to 3.12.3 by @dependabot in https://github.com/pyvista/pyvista/pull/2678
    • Bump typed-ast from 1.5.3 to 1.5.4 by @dependabot in https://github.com/pyvista/pyvista/pull/2682
    • Bump pypandoc from 1.8 to 1.8.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2681
    • Bump osmnx from 1.1.2 to 1.2.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2687
    • Add .git-blame-ignore-revs file with black PR commit by @adeak in https://github.com/pyvista/pyvista/pull/2684
    • Bump panel from 0.13.0 to 0.13.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2692
    • Update hypothesis requirement from <6.46.8 to <6.46.10 by @dependabot in https://github.com/pyvista/pyvista/pull/2691
    • Bump trimesh from 3.12.3 to 3.12.4 by @dependabot in https://github.com/pyvista/pyvista/pull/2699
    • Bump mypy from 0.950 to 0.960 by @dependabot in https://github.com/pyvista/pyvista/pull/2700
    • Bump trimesh from 3.12.4 to 3.12.5 by @dependabot in https://github.com/pyvista/pyvista/pull/2707
    • Use Readers in fileio module by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2561
    • Update pre-commit hooks by @github-actions in https://github.com/pyvista/pyvista/pull/2712
    • Update hypothesis requirement from <6.46.10 to <6.46.11 by @dependabot in https://github.com/pyvista/pyvista/pull/2725
    • Bump lxml from 4.8.0 to 4.9.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2724
    • Add image cache testing for Mac and Windows by @akaszynski in https://github.com/pyvista/pyvista/pull/2716
    • Update hypothesis requirement from <6.46.11 to <6.46.12 by @dependabot in https://github.com/pyvista/pyvista/pull/2734
    • Improve PyPI link like numpy and pandas by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2742
    • Update hypothesis requirement from <6.46.12 to <6.47.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2751
    • Bump mypy from 0.960 to 0.961 by @dependabot in https://github.com/pyvista/pyvista/pull/2750
    • Bump jupyterlab from 3.4.2 to 3.4.3 by @dependabot in https://github.com/pyvista/pyvista/pull/2753
    • Bump trimesh from 3.12.5 to 3.12.6 by @dependabot in https://github.com/pyvista/pyvista/pull/2759
    • Bump pydata-sphinx-theme from 0.8.1 to 0.9.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2758
    • Bump numpydoc from 1.3.1 to 1.4.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2760
    • Update hypothesis requirement from <6.47.1 to <6.47.2 by @dependabot in https://github.com/pyvista/pyvista/pull/2771
    • Update pre-commit hooks by @github-actions in https://github.com/pyvista/pyvista/pull/2776
    • Fix the error running by CodeQL. by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2772
    • Update hypothesis requirement from <6.47.2 to <6.47.3 by @dependabot in https://github.com/pyvista/pyvista/pull/2780
    • Fail when regression image is missing on CI by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2778
    • Update hypothesis requirement from <6.47.3 to <6.47.4 by @dependabot in https://github.com/pyvista/pyvista/pull/2792
    • Bump osmnx from 1.2.0 to 1.2.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2796
    • Keeping our actions up to date with Dependabot by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2801
    • Bump actions/checkout from 2 to 3 by @dependabot in https://github.com/pyvista/pyvista/pull/2804
    • Bump docker/build-push-action from 2 to 3 by @dependabot in https://github.com/pyvista/pyvista/pull/2807
    • Bump actions/labeler from 3 to 4 by @dependabot in https://github.com/pyvista/pyvista/pull/2806
    • Bump actions/download-artifact from 2 to 3 by @dependabot in https://github.com/pyvista/pyvista/pull/2803
    • Bump actions/upload-artifact from 2 to 3 by @dependabot in https://github.com/pyvista/pyvista/pull/2809
    • Bump actions/setup-python from 1 to 4 by @dependabot in https://github.com/pyvista/pyvista/pull/2805
    • Bump codecov/codecov-action from 2 to 3 by @dependabot in https://github.com/pyvista/pyvista/pull/2810
    • Bump docker/metadata-action from 3 to 4 by @dependabot in https://github.com/pyvista/pyvista/pull/2811
    • Bump docker/login-action from 1 to 2 by @dependabot in https://github.com/pyvista/pyvista/pull/2812
    • Bump peter-evans/create-pull-request from 3 to 4 by @dependabot in https://github.com/pyvista/pyvista/pull/2813
    • Bump actions/cache from 2 to 3 by @dependabot in https://github.com/pyvista/pyvista/pull/2831
    • Bump param from 1.12.1 to 1.12.2 by @dependabot in https://github.com/pyvista/pyvista/pull/2833
    • skip if unable to create a matplotlib figure by @akaszynski in https://github.com/pyvista/pyvista/pull/2823
    • Cancel concurrent workflows by @akaszynski in https://github.com/pyvista/pyvista/pull/2835
    • Update hypothesis requirement from <6.47.4 to <6.47.5 by @dependabot in https://github.com/pyvista/pyvista/pull/2849
    • Bump ubuntu from 20.04 to latest by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2844
    • Add community-reviewed label is need to merge by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2851
    • Revert "Add community-reviewed label is need to merge" by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2860
    • Update pre-commit hooks by @github-actions in https://github.com/pyvista/pyvista/pull/2862
    • Update hypothesis requirement from <6.47.5 to <6.47.6 by @dependabot in https://github.com/pyvista/pyvista/pull/2878
    • Bump jupyter-sphinx from 0.3.2 to 0.4.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2879
    • Remove need for labels. by @akaszynski in https://github.com/pyvista/pyvista/pull/2877
    • Additonal revert of #2877 by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2886
    • Update hypothesis requirement from <6.47.6 to <6.48.2 by @dependabot in https://github.com/pyvista/pyvista/pull/2895
    • Build documentation using Python 3.9 and latest OSMesa wheel by @akaszynski in https://github.com/pyvista/pyvista/pull/2876
    • Additional revert of #2877 by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2893
    • Update hypothesis requirement from <6.48.2 to <6.48.3 by @dependabot in https://github.com/pyvista/pyvista/pull/2918
    • Add py.typed Marker by @adam-grant-hendry in https://github.com/pyvista/pyvista/pull/2904
    • Update pre-commit hooks by @github-actions in https://github.com/pyvista/pyvista/pull/2931
    • Bump trimesh from 3.12.6 to 3.12.7 by @dependabot in https://github.com/pyvista/pyvista/pull/2937
    • Update hypothesis requirement from <6.48.3 to <6.48.4 by @dependabot in https://github.com/pyvista/pyvista/pull/2938
    • Bump typing-extensions from 4.2.0 to 4.3.0 by @dependabot in https://github.com/pyvista/pyvista/pull/2939
    • Bump lxml from 4.9.0 to 4.9.1 by @dependabot in https://github.com/pyvista/pyvista/pull/2936
    • Update hypothesis requirement from <6.48.4 to <6.49.2 by @dependabot in https://github.com/pyvista/pyvista/pull/2942
    • Fix two minor issues causing noise in docs or doc build by @adeak in https://github.com/pyvista/pyvista/pull/2908

    New Contributors

    • @Kirito-Excalibur made their first contribution in https://github.com/pyvista/pyvista/pull/2413
    • @luzpaz made their first contribution in https://github.com/pyvista/pyvista/pull/2443
    • @piyueh made their first contribution in https://github.com/pyvista/pyvista/pull/2485
    • @adam-grant-hendry made their first contribution in https://github.com/pyvista/pyvista/pull/2460
    • @j-bowhay made their first contribution in https://github.com/pyvista/pyvista/pull/2495
    • @yungchidanielcho made their first contribution in https://github.com/pyvista/pyvista/pull/2549
    • @danielgrzenda made their first contribution in https://github.com/pyvista/pyvista/pull/2553
    • @mbebic made their first contribution in https://github.com/pyvista/pyvista/pull/2551
    • @Failxxx made their first contribution in https://github.com/pyvista/pyvista/pull/2563
    • @germa89 made their first contribution in https://github.com/pyvista/pyvista/pull/2586
    • @JacobBumgarner made their first contribution in https://github.com/pyvista/pyvista/pull/2601
    • @StefRe made their first contribution in https://github.com/pyvista/pyvista/pull/2683
    • @mcgoldba made their first contribution in https://github.com/pyvista/pyvista/pull/2741
    • @mechajeff made their first contribution in https://github.com/pyvista/pyvista/pull/2875

    Full Changelog: https://github.com/pyvista/pyvista/compare/v0.34.0...v0.35.1

    Source code(tar.gz)
    Source code(zip)
  • v0.34.2(Jun 30, 2022)

    Add support for Python 3.10, PyVista 9.2.0, and numpy 1.23.

    Includes the following cherry-picked PRs:

    • #2585
    • #2863
    • #2726

    Full Changelog: https://github.com/pyvista/pyvista/compare/v0.34.1...v0.34.2

    Source code(tar.gz)
    Source code(zip)
  • v0.34.0(Apr 1, 2022)

    We've added a variety of new features in this release, including wrappers for several VTK filters and widgets. Check out the full release notes below!

    Special thanks to the 11 new contributors to the project. Thanks for your hard work!

    What's Changed

    New Features

    • Add find_containing_cell by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2036
    • Add return_closest_point as optional parameter for find_closest_cell by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2029
    • ENH: Add render kwarg by @larsoner in https://github.com/pyvista/pyvista/pull/2123
    • Feat/add median filter by @njneeteson in https://github.com/pyvista/pyvista/pull/2150
    • add merge to utilities by @akaszynski in https://github.com/pyvista/pyvista/pull/2176
    • Feat/add image threshold by @njneeteson in https://github.com/pyvista/pyvista/pull/2174
    • add merge_points argument to add_mesh_clip_box by @basnijholt in https://github.com/pyvista/pyvista/pull/2172
    • Add tessellate filter by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2164
    • ENH: Sandbox the GPU info request by @larsoner in https://github.com/pyvista/pyvista/pull/2250
    • Unified Color class and color_like type. by @dcbr in https://github.com/pyvista/pyvista/pull/2175
    • More parameters to configure the axes marker by @liangwang0734 in https://github.com/pyvista/pyvista/pull/2289
    • Add multicomponent threshold options by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2349
    • Add sampling over multiple lines feature by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2304
    • Add wrapper for vtkImageDilateErode3D filter for UniformGrid Datasets by @njneeteson in https://github.com/pyvista/pyvista/pull/2188
    • Crinkle clip by @banesullivan in https://github.com/pyvista/pyvista/pull/2316
    • Add concrete PointSet class by @akaszynski in https://github.com/pyvista/pyvista/pull/2117
    • Replace np.dtype identity check with equivalence by @whophil in https://github.com/pyvista/pyvista/pull/2394
    • Read .cgns files via vtkCGNSReader by @whophil in https://github.com/pyvista/pyvista/pull/2366
    • Read .mha files via vtkMetaImageReader by @jmargeta in https://github.com/pyvista/pyvista/pull/2403
    • add mesh and surface picking by @rodrigomologni in https://github.com/pyvista/pyvista/pull/1178

    Bug fixes or behavior changes

    • Make Plotter.theme's setter actually set the theme by @adeak in https://github.com/pyvista/pyvista/pull/2003
    • fix collections.abc deprecation by @akaszynski in https://github.com/pyvista/pyvista/pull/2108
    • Fix usage of assert in production code by @banesullivan in https://github.com/pyvista/pyvista/pull/2139
    • Fix Syntax error in _toggle_context_style by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2161
    • fix f-string by @Sync271 in https://github.com/pyvista/pyvista/pull/2243
    • ignore mappers not containing datasets by @akaszynski in https://github.com/pyvista/pyvista/pull/2256
    • Fix broken clip_box behavior by @eino in https://github.com/pyvista/pyvista/pull/2314
    • Fix docstring typo in PolyDataFilters.intersection() by @RichardScottOZ in https://github.com/pyvista/pyvista/pull/2326
    • Fix render_window_interactor observers by @dcbr in https://github.com/pyvista/pyvista/pull/2278
    • Fix spelling of "set up" when used as a verb by @RichardScottOZ in https://github.com/pyvista/pyvista/pull/2338
    • Import ABC from collections.abc for Python 3.10 compatibility. by @tirkarthi in https://github.com/pyvista/pyvista/pull/2373
    • fix normals output in gltf export by @akaszynski in https://github.com/pyvista/pyvista/pull/2388
    • Convert to PolyData when exporting to gLTF by @akaszynski in https://github.com/pyvista/pyvista/pull/2404
    • Fix pythreejs indexing issue when number of lines != number of cells by @whophil in https://github.com/pyvista/pyvista/pull/2380

    Documentation

    • Fix chart examples. by @dcbr in https://github.com/pyvista/pyvista/pull/1999
    • Disable highlighting for web search results by @adeak in https://github.com/pyvista/pyvista/pull/2007
    • Fix some links and typos in examples by @adeak in https://github.com/pyvista/pyvista/pull/2030
    • 📝 Add My PyVista artwork to external gallery by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2046
    • Give due credit and close #2049 by @banesullivan in https://github.com/pyvista/pyvista/pull/2086
    • Add slim docker image by @banesullivan in https://github.com/pyvista/pyvista/pull/2091
    • Move Windows CI Tests to GH Actions by @banesullivan in https://github.com/pyvista/pyvista/pull/2083
    • Add reporting extra examples contributing by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2104
    • 📝 Add PteraSoftware to external gallery by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2103
    • Add dataset attributes to the docs by @akaszynski in https://github.com/pyvista/pyvista/pull/2109
    • Improve gif animation examples by @akaszynski in https://github.com/pyvista/pyvista/pull/2119
    • Automated PR: Update Local Intersphinx by @github-actions in https://github.com/pyvista/pyvista/pull/2122
    • Hopf torus by @stla in https://github.com/pyvista/pyvista/pull/2136
    • Minor fix typo by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2148
    • Update ipyvtklink docs by @banesullivan in https://github.com/pyvista/pyvista/pull/2135
    • add build instructions for EGL by @akaszynski in https://github.com/pyvista/pyvista/pull/2151
    • Merge duplicate CONTRIBUTING contents by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2110
    • Fix broken link to contributing guide in documents by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2173
    • Improve comparison language by @banesullivan in https://github.com/pyvista/pyvista/pull/2177
    • Fix link syntax error by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2182
    • Create CITATION.cff by @banesullivan in https://github.com/pyvista/pyvista/pull/2218
    • Fix CONTRIBUTING.rst and mention black by @adeak in https://github.com/pyvista/pyvista/pull/2241
    • Fix CONTRIBUTING.rst some more by @adeak in https://github.com/pyvista/pyvista/pull/2244
    • Add sphinx extension viewcode by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2192
    • Automated PR: Update Local Intersphinx by @github-actions in https://github.com/pyvista/pyvista/pull/2285
    • Fix typo of threshold docstring by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2355
    • Document that default capping changed for extrude* in 0.32 by @adeak in https://github.com/pyvista/pyvista/pull/2339
    • Left click to pick points by @p-j-smith in https://github.com/pyvista/pyvista/pull/2266
    • Update list of connected software by @banesullivan in https://github.com/pyvista/pyvista/pull/2131

    Maintenance

    • fix for vtk<9.1.0 by @akaszynski in https://github.com/pyvista/pyvista/pull/2013
    • 👷 Automate labeling in dependabot by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2017
    • Build and publish Docker image by @banesullivan in https://github.com/pyvista/pyvista/pull/2011
    • Fix chart related warnings during doc building. by @dcbr in https://github.com/pyvista/pyvista/pull/2031
    • use strict version in CI/CD req* by @akaszynski in https://github.com/pyvista/pyvista/pull/2038
    • Use explicit directories for style checks by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2034
    • Do not attempt push to ghcr from forked pull requests by @banesullivan in https://github.com/pyvista/pyvista/pull/2051
    • Build docs on GH Actions by @banesullivan in https://github.com/pyvista/pyvista/pull/1910
    • Remove outdated Dockerfile by @banesullivan in https://github.com/pyvista/pyvista/pull/2081
    • Fix docs workflow triggers and USE_CACHE logic by @banesullivan in https://github.com/pyvista/pyvista/pull/2079
    • Add more labels to labeler by @banesullivan in https://github.com/pyvista/pyvista/pull/2084
    • Add dependencies label to dependabot by @banesullivan in https://github.com/pyvista/pyvista/pull/2085
    • Update labeler action to label based on branch name by @banesullivan in https://github.com/pyvista/pyvista/pull/2088
    • Optimize when docker CI workflow is run on PRs by @banesullivan in https://github.com/pyvista/pyvista/pull/2092
    • Skip action workflows on no-ci/* branches by @banesullivan in https://github.com/pyvista/pyvista/pull/2074
    • Fix Greetings action by @banesullivan in https://github.com/pyvista/pyvista/pull/2087
    • Revert "Skip action workflows on no-ci/* branches" by @banesullivan in https://github.com/pyvista/pyvista/pull/2099
    • Add GitHub Action: Dependabot Auto Merge by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2111
    • [HOTFIX] dependabot auto merge action by @banesullivan in https://github.com/pyvista/pyvista/pull/2112
    • Fix CI conditionals based on branch names by @banesullivan in https://github.com/pyvista/pyvista/pull/2115
    • run docbuild on main by @akaszynski in https://github.com/pyvista/pyvista/pull/2118
    • fix codacy badge by @banesullivan in https://github.com/pyvista/pyvista/pull/2129
    • Use python -m pip in windows ci by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2137
    • Reduce redundant code by adding helper _coerce_points_like_arg by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2070
    • Fix label mismatch of bug-fix and bug by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2143
    • Make label action work for first time contributors by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/2138
    • Remove dependabot automerge by @banesullivan in https://github.com/pyvista/pyvista/pull/2146
    • Use new cross-platform Action to setup headless display by @banesullivan in https://github.com/pyvista/pyvista/pull/2106
    • fix ci report by @akaszynski in https://github.com/pyvista/pyvista/pull/2162
    • Fix Install OS Packages error by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2196
    • Update link to CONTRIBUTING.rst in greetings action by @adeak in https://github.com/pyvista/pyvista/pull/2200
    • Style/black and resolve many flake8 issues by @banesullivan in https://github.com/pyvista/pyvista/pull/2180
    • Fix operater space by black version 22.1.0 by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2212
    • Add flake8-black to dependencies by @banesullivan in https://github.com/pyvista/pyvista/pull/2213
    • Add Maintenance Request template by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2234
    • 🌇 Sunset of Python3.6 by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1716
    • Exclude deprecated plotting/theme.py from coverage by @adeak in https://github.com/pyvista/pyvista/pull/2261
    • Update incorrectly raised errors to VTKVersionError by @not-so-rabh in https://github.com/pyvista/pyvista/pull/2199
    • Attempt remove flaky windows test skips by @banesullivan in https://github.com/pyvista/pyvista/pull/2321
    • Replaced pyvista.wrap(alg.GetOutput()) with _get_output(alg). by @harshi1122 in https://github.com/pyvista/pyvista/pull/2228
    • Create PyvistaFutureWarning, use it to warn about extrude capping changes by @adeak in https://github.com/pyvista/pyvista/pull/2364
    • Add auto labeling in releases by @tkoyama010 in https://github.com/pyvista/pyvista/pull/2368
    • fix Jinja requirements by @akaszynski in https://github.com/pyvista/pyvista/pull/2374
    • switch to pre-commit by @akaszynski in https://github.com/pyvista/pyvista/pull/2392

    New Contributors

    • @stla made their first contribution in https://github.com/pyvista/pyvista/pull/2136
    • @njneeteson made their first contribution in https://github.com/pyvista/pyvista/pull/2150
    • @Sync271 made their first contribution in https://github.com/pyvista/pyvista/pull/2243
    • @basnijholt made their first contribution in https://github.com/pyvista/pyvista/pull/2172
    • @liangwang0734 made their first contribution in https://github.com/pyvista/pyvista/pull/2289
    • @eino made their first contribution in https://github.com/pyvista/pyvista/pull/2314
    • @not-so-rabh made their first contribution in https://github.com/pyvista/pyvista/pull/2199
    • @alexfikl made their first contribution in https://github.com/pyvista/pyvista/pull/2352
    • @harshi1122 made their first contribution in https://github.com/pyvista/pyvista/pull/2228
    • @tirkarthi made their first contribution in https://github.com/pyvista/pyvista/pull/2373
    • @jmargeta made their first contribution in https://github.com/pyvista/pyvista/pull/2403

    Full Changelog: https://github.com/pyvista/pyvista/compare/v0.33.0...v0.34.0

    Source code(tar.gz)
    Source code(zip)
  • v0.33.0(Jan 5, 2022)

    PyVista 0.33.0 Release Notes

    PyVista 0.33.0 is another large release including 96 pull requests from 17 collaborators. Thanks to all who contributed!

    A special thanks to @dcbr in https://github.com/pyvista/pyvista/pull/1432 who extended the vtk Chart API into PyVista.

    What's Changed

    New Features

    • Refactor silhouette from add_mesh by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/1689
    • add plot face normals by @akaszynski in https://github.com/pyvista/pyvista/pull/1686
    • Add plotting cursor by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1700
    • Add find cells along line by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1704
    • Add Platonic solids, clean Cube by default by @adeak in https://github.com/pyvista/pyvista/pull/1692
    • Add find cells within bounds by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1710
    • Add Tube function by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1718
    • Add enable_stereo_render() and disable_stereo_render() by @puripant in https://github.com/pyvista/pyvista/pull/1722
    • UnstructuredGrid add initialization from vtk.vtkPolyData object by @beppo-dd in https://github.com/pyvista/pyvista/pull/1756
    • Binary pickling by @whophil in https://github.com/pyvista/pyvista/pull/1778
    • Implement iadd for meshes by @adeak in https://github.com/pyvista/pyvista/pull/1850
    • Add support for vtkSuperquadric by @janniklasrose in https://github.com/pyvista/pyvista/pull/1844
    • add camera orientation widget by @akaszynski in https://github.com/pyvista/pyvista/pull/1899
    • Support in-memeory screenshot by @banesullivan in https://github.com/pyvista/pyvista/pull/1876
    • Charts by @dcbr in https://github.com/pyvista/pyvista/pull/1432
    • add split sharp edges by @akaszynski in https://github.com/pyvista/pyvista/pull/1685
    • add manifold check by @akaszynski in https://github.com/pyvista/pyvista/pull/1684
    • refactor to warn on int usage by @akaszynski in https://github.com/pyvista/pyvista/pull/1964
    • enforce consistent API by @akaszynski in https://github.com/pyvista/pyvista/pull/1971
    • Add OpenFOAM patch, cell_to_point, and active time support by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/1896

    Bug fixes or behavior changes

    • Fix pythreejs warning by @dstansby in https://github.com/pyvista/pyvista/pull/1668
    • Align vtkDataSetReader usage and add more ReadAll* calls by default by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/1675
    • implement copy on transform by @akaszynski in https://github.com/pyvista/pyvista/pull/1688
    • Fix find_closest_cell not finding closest cells by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/1740
    • Fix race conditions in pyvista.init by @whophil in https://github.com/pyvista/pyvista/pull/1794
    • Add transparency and double side for pythreejs backend by @ssg-aero in https://github.com/pyvista/pyvista/pull/1836
    • Fix PolyData inplace merge by @adeak in https://github.com/pyvista/pyvista/pull/1720
    • Fix MultiBlock Slicing and equality by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/1811
    • Fix shrink filter output by @banesullivan in https://github.com/pyvista/pyvista/pull/1863
    • 🐛 DataSetAttribute should return string array by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1852
    • Fix texture coordinates overwriting bug by @banesullivan in https://github.com/pyvista/pyvista/pull/1873
    • Remove O(n) searches triggering expensive equality testing in MultiBlock creation and lookups by @adeak in https://github.com/pyvista/pyvista/pull/1805
    • Clarify camera distance by @dstansby in https://github.com/pyvista/pyvista/pull/1935
    • Optionally run osmnx-example by @banesullivan in https://github.com/pyvista/pyvista/pull/1867
    • disable warning when using pythreejs backend by @akaszynski in https://github.com/pyvista/pyvista/pull/1952
    • ScalarBars.add_scalar_bar: correct annotation text scaling setting, when fixed font size is given by @beppo-dd in https://github.com/pyvista/pyvista/pull/1750
    • Make sure inplace never defaults to True by @banesullivan in https://github.com/pyvista/pyvista/pull/1860
    • stop overwriting plot theme by @akaszynski in https://github.com/pyvista/pyvista/pull/1963
    • Convert integer point and data arrays to float32 in transform() by @adeak in https://github.com/pyvista/pyvista/pull/1968

    Documentation

    • 👾 Add Alien Monsters example by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1677
    • add truss example by @akaszynski in https://github.com/pyvista/pyvista/pull/1683
    • Add Plotter.add_volume example by @puripant in https://github.com/pyvista/pyvista/pull/1707
    • Add examples for view_* functions by @puripant in https://github.com/pyvista/pyvista/pull/1714
    • Fix resetting _wrappers in sphinx-gallery by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/1721
    • Add examples in plotting module by @AleenaSA in https://github.com/pyvista/pyvista/pull/1715
    • Automated PR: Update Local Intersphinx by @github-actions in https://github.com/pyvista/pyvista/pull/1767
    • Add plot to glyphs example by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1723
    • Fix docstring examples with broken rendering by @adeak in https://github.com/pyvista/pyvista/pull/1770
    • Fix find_closest_cell examples doctest by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/1809
    • ✏️ Fix typo. by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1829
    • ✏️ Fix typo. by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1842
    • ✏️ Fix docstring by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1843
    • Clean up the examples by @banesullivan in https://github.com/pyvista/pyvista/pull/1851
    • Add glyph's docstring and test by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1872
    • Fix interpolate example by @banesullivan in https://github.com/pyvista/pyvista/pull/1881
    • A thank you to @MatthewFlamm and @darikg by @banesullivan in https://github.com/pyvista/pyvista/pull/1901
    • Reset theme in sphinx gallery and reset before and after examples by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/1915
    • 📝Update version of CODE_OF_CONDUCT. by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1916
    • 📝Fix [INSERT CONTACT METHOD] by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1917
    • Use custom VTK with OSMesa wheel to build the docs by @akaszynski in https://github.com/pyvista/pyvista/pull/1942
    • 📝 Add plot to show downloads datasets by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1826
    • Add make uniform grid class init more explicit by @akaszynski in https://github.com/pyvista/pyvista/pull/1783
    • 🎉 HAPPY NEW YEAR 2022 🎉 by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1989
    • 👷 Automate copyright date by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1991
    • ✏️ Fix typos. by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1996

    Maintenance

    • Use larger infinity for orbit controls by @akaszynski in https://github.com/pyvista/pyvista/pull/1657
    • Add typing extensions dependency by @akaszynski in https://github.com/pyvista/pyvista/pull/1658
    • Use built-in typing when possible by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/1663
    • clean parametric objects by default by @akaszynski in https://github.com/pyvista/pyvista/pull/1676
    • cleanup legend by @akaszynski in https://github.com/pyvista/pyvista/pull/1703
    • Remove trailing white space and add CI check by @banesullivan in https://github.com/pyvista/pyvista/pull/1865
    • Major clean up to imports by @banesullivan in https://github.com/pyvista/pyvista/pull/1871
    • Automated PR: Update Local Intersphinx by @github-actions in https://github.com/pyvista/pyvista/pull/1905
    • FIX: Bump version by @larsoner in https://github.com/pyvista/pyvista/pull/1911
    • Maintenance: add vtk 9.0.3 to CI by @MatthewFlamm in https://github.com/pyvista/pyvista/pull/1922
    • make meshio an optional dependency by @nschloe in https://github.com/pyvista/pyvista/pull/1939
    • move doc coverage to makefile and out of pipeline by @akaszynski in https://github.com/pyvista/pyvista/pull/1954
    • add meshio as a doc req by @akaszynski in https://github.com/pyvista/pyvista/pull/1958
    • Add support for meshio >=5.2 by @stefsmeets in https://github.com/pyvista/pyvista/pull/1960
    • add back in missing import by @akaszynski in https://github.com/pyvista/pyvista/pull/1962
    • Use dependabot by @akaszynski in https://github.com/pyvista/pyvista/pull/1972
    • fix codecov reporting by @akaszynski in https://github.com/pyvista/pyvista/pull/1969
    • Partial revert of 1899 - Fix coverage by @akaszynski in https://github.com/pyvista/pyvista/pull/1973
    • 👷 Automate labeling in update intersphinx PR by @tkoyama010 in https://github.com/pyvista/pyvista/pull/1992
    • Automated PR: Update Local Intersphinx by @github-actions in https://github.com/pyvista/pyvista/pull/1990
    • enforce positive coverage by @akaszynski in https://github.com/pyvista/pyvista/pull/1993

    New Contributors

    • @AleenaSA made their first contribution in https://github.com/pyvista/pyvista/pull/1640
    • @github-actions made their first contribution in https://github.com/pyvista/pyvista/pull/1701
    • @puripant made their first contribution in https://github.com/pyvista/pyvista/pull/1707
    • @beppo-dd made their first contribution in https://github.com/pyvista/pyvista/pull/1756
    • @ssg-aero made their first contribution in https://github.com/pyvista/pyvista/pull/1836
    • @janniklasrose made their first contribution in https://github.com/pyvista/pyvista/pull/1844
    • @nschloe made their first contribution in https://github.com/pyvista/pyvista/pull/1939
    • @stefsmeets made their first contribution in https://github.com/pyvista/pyvista/pull/1960
    • @p-j-smith made their first contribution in https://github.com/pyvista/pyvista/pull/1908

    Full Changelog: https://github.com/pyvista/pyvista/compare/0.32.0...v0.33.0

    Source code(tar.gz)
    Source code(zip)
  • 0.32.0(Sep 10, 2021)

    PyVista 0.32.0 Release Notes

    The PyVista 0.32.0 release highlights are:

    • Release of three.js plotting backend using pythreejs in #1557
    • Vast improvements in the documentation in #1571
    • Addition of custom readers in #1617 and #1536
    • Refactor of dataset attributes.
    • Support for exporting to html
    • Import/export gLTF in #1489

    New Features

    • Adaptive subdivision filter in #1375
    • Context managers for handling errors #1382
    • Add reversing geodesic paths #1381
    • Evenly spaced streamlines filter #1441
    • Add progress bars for all available methods in #1519
    • Add Kochanek Spline function in #1603

    Bug fixes or behavior changes

    • Do not return camera position by default in #1478
    • Deprecate DataSet.vectors in #1461
    • Disable warnings on missing xserver #1372
    • Split up filters into individual files in #1385
    • Reset camera clipping when changing position #1446
    • Fix boolean behavior in #1485
    • Refactor MultiBlock in #1506
    • Remove dependency on transforms3d

    Documentation

    • Add Rotate example to the Axes class #1379
    • Use autodocs to match pandas class method documentation style.
    • Add examples to a variety of methods and classes

    Release Contributors

    A huge shout out to all who helped make this release happen, from seasoned veterans reviewing PRs to first time contributors. Thanks!

    • @AleenaSA
    • @MatthewFlamm
    • @RichardScottOZ
    • @adeak
    • @darikg
    • @hakostra
    • @jrwrigh
    • @tkoyama010
    • @whophil
    Source code(tar.gz)
    Source code(zip)
  • 0.31.3(Jun 23, 2021)

    This release includes 1cdcd85480734e9e8065f62cf10b4a46eef174eb from #1411 to fully support usage of the latest VTK wheels, thus (finally) enabling support of Python 3.9 for pyvista.

    Note that to use the pre-release wheels, you must specify the version of the package with:

    pip install vtk==9.0.20210612.dev0
    

    Note that this is unnecessary on Python 3.9 as pip will use unstable or development wheels if they are the only ones available.

    Source code(tar.gz)
    Source code(zip)
  • 0.31.0(Jun 8, 2021)

    PyVista 0.31.0 Release Notes

    This release includes a variety of bug fixes, features, and documentation improvements.

    In addition with this release we're adding VTK wheels, including aarch64 build for with and without EGL, EGL wheels, and Python 3.9 (all around 100 MB and built via https://docs.pyvista.org/extras/building_vtk.html)

    Wheels for Python 3.9 x86_64 and aarch64 (ARM 64) with and without EGL

    Note that vtk-egl wheels are VTK wheels compiled with EGL. They should only be installed on machines where you intend to render only to off_screen. The advantage of these wheels is that they do not require a virtual framebuffer and tend to render better than the vanilla vtk in off_screen mode. These wheels will still be installed as vtk, so if you would like vtk and vtk with EGL installed on the same machine, be prepared to setup a virtual environment.

    Please note that the ARM 64 wheels require a 64-bit OS. Download your Raspberry Pi 64-bit image from: https://downloads.raspberrypi.org/raspios_arm64/images/

    Contributors

    • @adeak
    • @MatthewFlamm
    • @akaszynski
    • @fgallardo-mpie
    • @GuillaumeFavelier
    • @Keou0007
    • @RichardScottOZ
    • @whophil
    • @tkoyama010
    • @darikg

    Pull requests merged

    A total of 28 PRs were merged for this release.

    • #1357 master Do not mutate scalar_ bar_args
    • #1358 Fix markup bug in show() docstring
    • #1354 Fix screenshot things
    • #1352 Add missing parameters and clean up add_scalar_bar docstring
    • #1351 Add to streamlines Example for using IntegrationTime
    • #1347 Remove Scalarbar when removing Actor
    • #1349 Clean up build vtk docs
    • #1348 Add perlin noise example
    • #1334 Add ability to use cell data with glyph filter
    • #1341 Fix streamlines_from_source doc markup and whitespace
    • #1344 improve build notes
    • #1346 fix interpolation documentation
    • #1345 Add note about the f focus key
    • #1342 Add missing examples import to texture_map_to_sphere docs
    • #1323 Faster multi ray trace retry
    • #1329 Add schedule
    • #1330 Fix Returns in docstrings of streamlines and streamlines_from_source
    • #1325 fix/backwards compat ipyvtk
    • #1326 Add local fixtures in test_polydata, minor style fixes
    • #1322 Fix up and clarify plot, show docs
    • #1318 add trivial module for backwards compatability
    • #1287 Allow dataset source for streamlines
    • #1315 Modifying arrays calls Modified() on associated datasets.
    • #1310 Implement Theme Class
    • #1317 Update filters.py
    • #1316 Update compute-normals.py
    • #1314 Update dataset.rst
    • #1312 Fix typo for linking clip_surface
    Source code(tar.gz)
    Source code(zip)
    vtk-9.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(93.00 MB)
    vtk-9.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(93.00 MB)
    vtk-9.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(93.00 MB)
    vtk-9.0.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl(98.62 MB)
    vtk-9.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(93.02 MB)
    vtk-egl-9.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(93.25 MB)
    vtk-egl-9.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(98.58 MB)
    vtk-egl-9.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(93.25 MB)
    vtk-egl-9.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(98.58 MB)
    vtk-egl-9.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(93.25 MB)
    vtk-egl-9.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(98.59 MB)
    vtk-egl-9.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl(93.28 MB)
    vtk-egl-9.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl(98.60 MB)
  • 0.30.0(May 10, 2021)

    This release includes a several new features including better integration with jupyterlab plotting, better documentation, and a variety of fixes.

    The following is a non-comprehensive list of changes, features, and bug-fixes:

    New Features

    • Add shadows
    • Add physically based rendering
    • Add jupyter backends

    Documentation

    • Interactive examples on docs.pyvista.org
    • Use pydata-sphinx-theme
    • Improve pyvista.Camera class documentation.

    API Changes

    • Refactor inplace so it always returns an object.

    Bug Fixes

    • Fix Window Closing
    • Fix docstrings
    • Fix floor coloring
    Source code(tar.gz)
    Source code(zip)
  • 0.29.0(Mar 9, 2021)

    This minor release of pyvista==0.29.0 includes a variety of changes and new features. The most major is improving our load-time by only loading in the VTK libraries used through lazy loading or selective imports using `vtkmodules``. It was quite an overhaul and should improve load time, reduce memory usage, and potentially the size of the frozen package.

    Other new features and bug-fixes include:

    New Features

    • add subdivision option to extract_surface (#1174)
    • Add a silhouette parameter to add_mesh (#1211)
    • add new colors (#1173)
    • Add pickle support to DataObject (#1143)
    • Add where_is in BasePlotter (#1175)
    • Create an explicit structured grid (#1133)

    Documentation

    • Fix and update some sphinx docs (#1149)
    • :memo: Add new function to geometric.rst (#1170)
    • Update what-is-a-mesh.rst (#1176)
    • Fix docstring in add_point_labels (#1188)

    API Changes

    • Improve PolyData Import (#1213)
    • Use vtkTransformFilter in DataSet.transform() (#1166)
    • Improve Exodus Reader (#1191)
    • Add bounds in reset_camera (#1161)
    • Add option to hide plane widget vector (#1150)
    • add origin kwarg to plotter.add_legend (#1153)
    • Expose start_xvfb (#1151)
    • Add render=True in add_point_labels (#1152)
    • add transforms3d (#1142)

    Bug Fixes

    • Fix the "reset camera" effect when parallel projection is enabled/disabled (#1221)
    • Wrap pyvista_ndarray (#1222)
    • Fix vtk not defined (#1217)
    • plot_over_line should fail if scalar name does not exist (#1214)
    • Fix labels (#1201)
    • remove faulthandler (#1187)
    • Fix log scale in scalar bar (#1183)
    • Fix bugs in enable_cell_picking (#1158)
    • fix add_actor (#1182)
    • Fix Binary Writer (#1148)
    • Reimplement Light.copy to get around VTK8.1 bug (#1137)
    • Update enable_cell_picking (#1157)
    • Update the active scalar bar when cmap is changed (#1169)
    • Fix scalar bar moving upward (#1171)

    Miscellaneous/Testing

    • Minor fix of plot_over_line's test #525 (#1216)
    • common --> dataset (#1209)
    • :art: Minor fix of format of the code. (#1199)
    • Fix doctest failure in BasePlotter.where_is (#1192)
    • Use vtkmodules (#1163)
    • Move Common, DataObject to dataset.py, dataobject.py (#1160)
    • Partially add type hints to /core/ (#1145)
    • improve import speed (#1156)

    Contributors (alphabetical)

    • @adeak
    • @akaszynski
    • @banesullivan
    • @d-chambers
    • @GuillaumeFavelier
    • @JevinJ
    • @Keou0007
    • @RichardScottOZ
    • @rodrigomologni
    • @tkoyama010
    • @whophil
    • @yienyien
    Source code(tar.gz)
    Source code(zip)
  • 0.28.0(Mar 7, 2021)

    Release 0.28: Minor API Changes and Various Bug-fixes

    This release, pyvista==0.28.0, is a minor release that captures a variety of bug-fixes and API additions.

    Contributors (alphabetical)

    • @adeak
    • @akaszynski
    • @banesullivan
    • @Boorhin
    • @dcbr
    • @GuillaumeFavelier
    • @JevinJ
    • @Keou0007
    • @larsoner
    • @mglesser
    • @nickvazz
    • @rodrigomologni
    • @sampotter
    • @shakasaki
    • @Sinaxist
    • @Spectre5
    • @tkoyama010
    • @whophil
    • @yngvem

    New Features

    • Add table of glyphs option to DataSetFilters.glyph (#776)
    • Allow picking in notebook with ipyvtk (#996)
    • Rename trans_from_matrix to array_from_vtkmatrix, implement inverse (#1110)
    • Add slicing, concatenation to StructuredGrid (#1106)
    • 🚩 Add option level and quads to function Box (#1103)
    • ✨ Add Pyramid function (#1102)
    • Add make_tri_mesh helper (#1101)
    • Add PolyData intersection filter (#1091)
    • Add read_plot3d, other minor reader improvements (#1081)
    • Add parallel projection and parallel scale properties to Renderer and BasePlotter (#1021)
    • Add Light class pythonizing vtkLight (#1040)
    • Add reflect filter and other methods (#1122)
    • Transforms via transform3d (#1127)

    Documentation

    • use pypandoc for better jupyter notebooks from the gallery (#1017)
    • Doc/move around (#1000)
    • improve camera docs and implementation (#1111)
    • :pencil2: Fix typo of docstring (#1104)
    • add tuple as type hint for vectors (#1094)
    • fix copy button (#1063)
    • feat/pyinstaller docs (#1037)

    API Changes

    • Use render window size (#995)
    • Add variable length density to voxelize (#1100)
    • 📷 Add camera object (#945)
    • Add style parameter in text slider widgets (#1093)

    Bug Fixes

    • fix/threshold args (#1014)
    • Fix small notation shaking (#1008)
    • Fix subplotting with ipyvtk_simple (#994)
    • Update hypothesis requirement 5.8.0->6.0.3 (#1115)
    • Replace "is 0" comparison with "== 0" in filters.py (#1114)
    • Release graphics resources (#1113)
    • Ensure that views of pyvista_ndarray remain associated (#1108)
    • Fixed disk geometry to rotate and translate properly (#1061)
    • Fix double blocking of plotter.show in script mode on Windows (#1105)
    • Fix "Hide points in add_point_labels is not working" (#1092)
    • Fix window closing immediately (#1048)
    • Fix/extract points (#1043)
    • Fix UnstructuredGrid init from arrays for VTK 8.90 (#1039)
    • Fix Cell Types Helper (#1028)
    • Add missing no_itk skip to itk polydata point plotting test (#1032)
    • Fix add_arrows (#1011)
    • Bugfix for #1053: Plotter.update fails with interactive_update=True if auto_close=False is not specified (#1056)
    • patched edge case for empty mesh (#1030)
    • force rewrite faces when flipping normals (#1034)
    • fix/default rcParams (#1015)

    Miscellaneous/Testing

    • ENH: Reduce size (#1019)
    • Remove Alpha Channel on Image Regression (#1006)
    • Clean up example downloads (#1005)
    • removing py3.9 check (#1003)
    • Image Regression (#998)
    • Disable conda 8.1 testing and update agents (#1109)
    • write frame needs update (#1099)
    • do not import pandas on init (#1029)
    Source code(tar.gz)
    Source code(zip)
  • 0.27.0(Nov 8, 2020)

    Jupyterlab Streaming and New Features

    This release, pyvista==0.27.0, is a major release that includes an important new feature for jupyterlab: real-time streaming leveraging ipyvtk-simple. Using either software or hardware rendering (as supported by VTK), you can visualize geometry on a remote machine through a jupyterlab environment!

    Several other new features were added, along with many bug fixes and optimizations by both new and existing contributors. Thanks all for your contributions! pyvista would not be possible were it not for the community of developers behind all these PRs.

    Contributors (in no order)

    • @tkoyama010
    • @JevinJ
    • @darikg
    • @larsoner
    • @GuillaumeFavelier
    • @imsodin
    • @banesullivan
    • @akaszynski
    • @math-artist
    • @mkondratyev85
    • @Keou0007
    • @yetisir
    • @mglesser
    • @thomgrand
    • @dstansby

    New Features

    • Add shrink filter (#913)
    • Add find_closest_cell filter (#923)
    • Add texture map to sphere filter (#938)
    • Vectorized ray tracing using trimesh and pyembree (#949)
    • Active tensors (#969)
    • Wrap Trimesh (#970)
    • Cell based unstructured grid generator (#976)
    • ipyvtk plotting (#983)

    Documentation

    • More examples to the gallery (#940)
    • Add new banner to homepage and README (#941)
    • Docker documentation (#992)
    • Add widgets to the examples gallery (#988)

    API Changes

    • Dropping support for Python 3.5 (#912 & #905)
    • Fix Opacity Array (#906)
    • Add checking if the number_of_cells corresponds offset ... (#932)
    • Make rendering optional when adding meshes and actors (#935)
    • Faster Screenshot (#957)
    • Include or not adjacent cells when using extract_points (#960)
    • Add additional methods to PlotterITK (#980)

    Bug Fixes

    • Memory Leak and References (#894)
    • Fix render layers (#893)
    • Delete obbTree to avoid memory leak (#922)
    • Remove blue color on meshes when using add_mesh (#929)
    • Fix area property (#933)
    • Fix axis problem on parametric geometry (#948)
    • Fix geometric disc
    • Fix and test for memory leaks (#958)
    • Fix scalar bar colors (#971)

    Miscellaneous

    • Improve coverage and testing (#891, #889, #888, #887, #886)
    • Use f-strings (#911)
    • Raise exceptions instead of producing empty screenshots (#915)

    EGL Wheels

    Attached wheels (vtk-egl-9.0.1*) are for hardware (GPU) based rendering on jupyterlab or headless instances. Wheels built with:

    echo "Building with EGL"
    $PYBIN=/usr/bin/python3.7
    yum install mesa-* -y
    git clone https://github.com/Kitware/VTK
    cd VTK
    git checkout v9.0.1
    mkdir build && cd build
    /io/cmake/bin/cmake -DVTK_BUILD_TESTING=OFF\
                        -DVTK_WHEEL_BUILD=ON\
                        -DVTK_PYTHON_VERSION=3\
                        -DVTK_WRAP_PYTHON=ON\
                        -DPython3_EXECUTABLE=$PYBIN\
                        -DVTK_OPENGL_HAS_EGL=True\
                        -DVTK_USE_X=False\
                        ../
    make -j
    $PYBIN setup.py bdist_wheel
    

    There's also one vanilla Python 3.9 wheel since that's not currently available on PyPi.

    Source code(tar.gz)
    Source code(zip)
    vtk-9.0.1-cp39-cp39-manylinux2010_x86_64.whl(504.41 MB)
    vtk-egl-9.0.1-cp36-cp36m-manylinux2014_x86_64.whl(512.73 MB)
    vtk-egl-9.0.1-cp37-cp37m-manylinux2014_x86_64.whl(514.44 MB)
    vtk-egl-9.0.1-cp38-cp38-manylinux2014_x86_64.whl(512.88 MB)
    vtk-egl-9.0.1-cp39-cp39-manylinux2014_x86_64.whl(512.74 MB)
  • 0.26.0(Sep 10, 2020)

    This release adds a variety of new features, API changes, and documentation fixes. A big thanks to all who contributed to the PRs, issues, and testing for this release!

    New Features

    • 3-lights illumination (#882)
    • added clip_scalar (#877)
    • Enable smooth shading for textures (#865)
    • Add pathlib Support (#836)
    • Enable status bars for the glyph filter (#779)
    • clip closed surface for PolyData (#797)
    • Add PolyData strip filter (#807)
    • Add RubberBand2D interactor style (#872)

    Various documentation, spelling, and code cleanups:

    • Add documentation on how to set up sphinx gallery (#783)
    • Misc. documentation fixes (#829)
    • Clarify clip filter docstring (#840)
    • Add better Unstructured Grid Documentation (#845)
    • Minor Examples Fixes (#852)
    • typo fix (#864)
    • Internationalization and localization of document. (#878)
    • Add Filter Examples (#873)
    • add section videos (#883)

    Bug fixes:

    • Fix visible cell picking (#799)
    • Fix get_data_range for nested MultiBlock (#793)
    • Fix is_all_triangles (#832)
    Source code(tar.gz)
    Source code(zip)
  • 0.25.1(Jun 4, 2020)

    Release 0.25.1

    It's been three months since the last release and there are quite a few bug fixes and features!

    Major API Changes

    • Moved BackgroundPlotter and QtInteractor to pyvistaqt. See #719 for the reasoning, but as a summary, this boils down to licensing, unit testing, and improved development. See pyvistaqt to test out the new module. Wheels will be released for that as soon as we've released wheels for pyvista==0.25.0 as it's a dependency.
    • Added better support for VTKv9. There were several changes under the hood to VTK's UnstructuredGrids that need to be implemented here, as well as many changes to our unit testing and CI to support Python 3.8 and VTKv9. See #732, #772, and #693.
    • When using PyVista with Sphinx-Gallery, we require you to set pyvista.BUILDING_GALLERY = True in your conf.py

    Features

    • Removing cells or faces (#653)
    • Progress bar using tqdm (#608)
    • Plotting floors (#424)
    • Additional geometry features (#449)
    • Subplot groups (#696)
    • Custom orientation widget (#702)

    Bug Fixes

    • Checking vectors when setting vectors #763
    • Check overwriting dataset to avoid segfault #738
    • Fix faulthandler (#694 and #645)
    • Implicit point setters (#769)
    • Ellipsoid wrapping (#705)

    CI Improvements

    • Unit testing is between 25-40% faster. MacOS testing no supports multiple testing processes using pytest-xdist. See #739 and #744
    • Improved code coverage #745 and #709
    • Removed all example downloading from unit testing. Greatly improves test stability (#731)
    • Various speedups (#661)

    Refactoring

    • Removed untested pyansys quality method.
    • Using underscore numpy types (#762)
    • Optimized imports (#743)
    • Line break consistent (#737)
    • Use new style super() calls (#741)
    • Generic load/save (#736)
    • Refactored active scalars/vectors (#746)
    • Better error types (#759)
    • And many many more...

    Contributors

    Thanks to all those who contributed to this release! In no particular order:

    • @JevinJ
    • @mli0603
    • @banesullivan
    • @GuillaumeFavelier
    • @dcbr
    • @tomsal
    • @tkoyama010
    • @ralovich
    • @florian-wagner
    • @imsodin
    • @larsoner
    • @adeak
    • @akaszynski
    Source code(tar.gz)
    Source code(zip)
  • 0.25.0RC(Jun 2, 2020)

  • 0.24.0(Mar 16, 2020)

    New Features

    • Huge Refactor of QtInteractor to improve stability of BackgroundPlotter (#603, #619).
    • Rename extract edges filters (#610)
    • Exposing tip resolution in pyvista.Arrow (#624)

    Squashed Bugs

    • Minor doc fixes (#616)
    • Disabled depth peeling by default (#618)
    • Fix increment point size (#609)
    • Disabled rendering on close (#638)

    Behind the scenes & MISC

    • Using Azure Devops for testing. We made this decision to keep all the testing in one place for Linux, Mac OS, and Windows.
    • Added Mac OS CI testing. Azure made this easy.
    • Added a development docs website at https://dev.pyvista.org/. Anything merged with Master will show up here. Docs are only updated to https://docs.pyvista.org when a release is created
    • Printed directions for movie example.
    • Using meshio>=4.0.0

    Contributors

    Thanks to all those who contributed PRs for this release. Ping me if I missed you, because there was a lot this time around.

    • @adeak
    • @keurfonluu
    • @GuillaumeFavelier
    • @banesullivan
    • @RubendeBruin
    • @imsodin
    • @tkoyama010
    Source code(tar.gz)
    Source code(zip)
  • 0.23.1(Feb 3, 2020)

    New Contributors

    Be sure to welcome and thank these folks for their contributions!

    • @tkoyama010
    • @MatthewFlamm
    • @math-artist

    New Features

    • New experimental plotter class with itkwidgets for interactive Jupyter Notebook plotting (see #389)
    • Add file drag ’n’ drop to BackgroundPlotter (see #567)
    • New extract_subset filter for UniformGrid (see #569)
    • New GPU details in Report (see #512)
    • New text slider widget (see #518)
    • Enable depth peeling by default (see #529)
    • New sample over line filter (see #525)
    • New checkbox button widget (see #528)
    • Refactor axes widget to be on any renderer in subplots (see #536 and #565)
    • Refactor BasePlotter’s wrapping of Renderer to improve interface and docs (see #552)
    • Improve meshio support and enable meshio objects to be passed to PyVista (see #559 and #568)
    • Improve repr for camera position (see #537)
    • Updates to visible cell selecting (see #571)
    • Add original point IDs to geodesic filter (see #544)

    Squashed Bugs

    • Fix slider widget coordinate parameters (see #511)
    • Fix mesh name issues that prevented plotting in for-loops (see #521)
    • Fix issues when instantiating RectilinearGrid (see #530)
    • Fix brown plotting color (see #538)
    • Fixes to CylinderStructured (see #561 and #577)
    • Fix issues managing active scalars in widget plotting routines (see #533)
    • Fix issues with getitem on MultiBlock datasets (see #563)
    • Fix issue when volume rendering 3D NumPy arrays (see #575)
    • Fix combine filter for MultiBlock datasets (see #535)
    • Fixes to pyvista.voxelize (see #546)
    • Update copy_meta_from to deep copy textures (see #564)
    Source code(tar.gz)
    Source code(zip)
  • 0.23.0(Dec 17, 2019)

    New Contributors

    Be sure to welcome and thank these folks for their contributions!

    • @keurfonluu
    • @truenicoco
    • @imsodin

    High Impact

    • Resolved Windows crashes and disappearing plotters (see #502)
    • Fully dropped support for Python 2.7 (see #493)
    • Depth peeling to properly render translucent geometries (see #450)
    • Full support for reading/writing files with meshio (see #472 and #495)
    • Log scale color mapping (see #499)
    • Keyword arguments are now strongly enforced across the API (see #432)
    • the IPython tools module has been entirely removed (see #403)

    New Features & Improvements

    • More camera viewing options: e.g. Plotter.view_zx
    • Gradient background colors when plotting (see #411)
    • Gaussian smoothing filter for pyvista.UniformGrid meshes (see #420 and #485 )
    • Save graphic method for SVG images (see #331)
    • More culling options (see #292)
    • Array name auto-completion in IPython when getting array (see #425)
    • More keypress events in the plotters (see #434)
    • New click position tracking in world coordinates (see #466)
    • Enabled use of custom bounds with texture_map_to_plane (see #407)
    • Document how to instantiate pyvista.MultiBlock objects (see #413)
    • Control the border of the backgroundPlotter (see #416)
    • Enable access to various contouring algorithms in the contour filter (see #421)
    • Various widgets enhancements (see #415) and bug fixes
    • Added support for passing a PolyData mesh as the box for the clip_box filter (see #433)
    • PyQt improvements (see #424 and see #498)
      • Q-key will not automatically bind to embedded Qt apps (see #508)
      • Renderers will automatically update when embedded in Qt apps now (see #509)
    • Colormaps can be defined as a list of string colors (see #445)
    • Add helper method to see if PolyData mesh is made of all triangles (see #446)
    • Clamping range added to glyph filter (see #451)
    • Major naming consistency improvements for *_scalars and *_array (see #456)
    • Use the camera transform matrix when getting/setting the camera position in scaled environments (see #476)
    • More indexing options for MultiBlock objects (see #459)
    • Enable pyvista.read to handle lists of file names and return MultiBlock object
    • FileNotFoundError used over IOError (see #506)

    Squashed Bugs

    • Fixed clim issues with Plotter.add_mesh_slice_orthogonal
    • Fixed issue when using rng keyword with widget plotting helpers
    • Fixed Python 3.8 issues
    • Fixed usage of render_points_as_spheres with Plotter.add_point_labels
    • Fixed point labeling issues appearing in front of opaque meshes (see #366)
    • Fixed issues when importing broken builds of panel (see #440)
    • Fixed random behavior of pyvista.CylinderStructured (see #442)
    • Fixed issues when copying pyvista.MultiBlock datasets
    • Fixed an issue when parsing VTK errors as Python warnings
    • Fixed major issues with volume rendering (see #464 and #497)
    • Fixed memory leak from plotter not being cleared (#484)
    • Fixed issue when saving PLY meshes (see #489)
    Source code(tar.gz)
    Source code(zip)
  • 0.22.4(Oct 14, 2019)

    This update brings some major changes to the widgets (the previous API for widgets is broken. Please see new API)

    New Features

    • New Sphere and Spline widgets (see #383 and #401) with major overahul to allow support from many widgets in a single scene
    • New OBJ scene exporter (see #392)
    • New toolbar for the BackgroundPlotter for controlling the camera (see #351)
    • UniformGrid objects can now be cast to RectilinearGrid objects (see #381)

    Bug Fixes

    • NaN camera position issue resolved (see #383)
    • Scalar mapping issues for uint8 arrays fixed (see #384)
    • Fix q-key for closing the BackgroundPlotter (see #388)
    • Properly grab screenshots when BackgroundPlotter closes (see #382)
    • Fix issue when trying to plot multiple sets of point labels
    • Add access to repeat option on the Texture class
    • new viewport parameter to control text location in BasePlotter.add_text (see #390)
    • Resolve some major Python 2.7 issues for backwards compatibility (see #393)
    • Ignore strange errors when automatically grabbing depth image
    • Fix issue with lines_from_points (see #394 and #399)
    • Fix issue where Plotter class couldn’t accept the title argument.
    Source code(tar.gz)
    Source code(zip)
  • 0.22.2(Sep 20, 2019)

    New Features

    • New depth mapping feature for the rendering window (see #369 and #368)
    • New layout options for subplotting (see #380). Many thanks to @marcomusy
    • Anti-aliasing features (see #365)
    • Background color and number of colors are now settable for the scalar bar (see #370)
    • New relaxation parameter for the PolyData.smooth filter (see #374)
    • Major overhaul of the widget tools to improve performance (see #376)
    • New shallow_copy and deep_copy methods (see #377)
    • Improve default options for texture mapping
    • Wrapped the vtkTexture class
    • Enable use of edl keyword argument for eye dome lighting in the .plot() function.
    • New shortcuts for the point_data_to_cell_data() and cell_data_to_point_data() filters as ptc() and ctp() respectively.

    Bug Fixes

    • Minor improvements for supporting Panel (ref #268)
    • Fix BackgroundPlotter menu bar on some Linux platforms (see #371)
    • Much cleanup, typos, etc., fixed by @marcomusy in #380
    • Much PEP8 cleanup inside the library
    Source code(tar.gz)
    Source code(zip)
  • 0.22.1(Aug 22, 2019)

    There was a serious bug with the plane widget that somehow made it in the last release. This patch release resolves that issue and adds support for MultiBlock datasets with the widgets.

    Source code(tar.gz)
    Source code(zip)
  • 0.22.0(Aug 19, 2019)

    New Features

    • Add full support for widgets in the rendering scene! (See #360)
      • Box widget - Create a box in 3D space. Includes a convenience method for clipping meshes
      • Plane widget - Create an implicit plane in 3D space. Includes a convenience method for clipping and slicing meshes
      • Slider widget - Add a slider bar to the render window. Includes a convenience method for thresholding meshes
      • Line widget - Create and orient a line in 3D space.
    • Point picking (see #362)
      • Single point picking on meshes and in 3D space
      • Trace lines across meshes using a geodesic path
      • Trace lines through a scene by picking points on meshes or in 3D space
      • Trace out horizon surfaces
    • Wrap the vtkTable class (see #274 and the new pyvista.Table class)
    • Add a structured grid cylinder helper method (see pyvista.CylinderStructured) which works creates a pyvista.StructuredGrid mesh in the shape of a cylinder.
    • New .ribbon() filter for PolyData objects - create surfaces (“ribbons”) from lines
    • interpolate_befor_map is now set too True as default (see #363 and this example for details)

    Bug Fixes

    • Resolve issues with the lines_from_points helper methods (see #357)
    • Fix an issue when fetching null points on datasets
    Source code(tar.gz)
    Source code(zip)
  • 0.21.4(Aug 7, 2019)

    Exciting New Features

    • Labeled scalar bars!!! 🎉 (See #348 and this example) Now arrays with strings categories can be color mapped
    • Ability to clip a mesh using the surface of another mesh (see #354 and this example)
    • Parallel projection (see #337)
    • New MCubes reader (.tri files)
    • New cell quality and gradient filters (see #354)
    • Implement the + operator to support all PyVista meshes

    Bug Fixes

    • Subplotting borders fixed
    • Handle arrays with no name (see #306)
    • Fix the fly_to method
    • Typos and grammar fixed in the example gallery - huge thanks to @JasonTlin
    • Fixed issue with the + operator that appeared in v0.21.3
    • Clear the menu bar for the BackgroundPlotter when closing on Mac OS (see #350)
    Source code(tar.gz)
    Source code(zip)
  • 0.21.3(Aug 1, 2019)

    This release is primarily full of bug fixes and general cleanup around the filters and plotting methods.

    Bug Fixes

    • Fix points ordering issue with gridded datasets
    • Fix issues with overlapping colorers (see #319)
    • Fix rare bug when scalars are the wrong size
    • Handle panel runtime errors on import (see #322)
    • Fix smooth_shading issue for non-PolyData datasets
    • Fix subplot indexing issues (see #346)

    Changes

    • Memory footprint is improved (see #338)
    • panel notebook rendering is now off by default
    • New downloadable examples!
    • Filters were overhauled into their own module and generalized across datasets (see #323)
    • Improved control over axes widgets (see #334 and #342)
    • Improvements to add_mesh and add_volume docstrings
    • Deprecate BasePlotter.plot (see #341)
    • Enable use of poly lines with PolyData (see #344)
    • Add more lighting controls (see #343)
    Source code(tar.gz)
    Source code(zip)
  • 0.21.2(Jul 20, 2019)

    • Fix 32bit Python on 64bit OS ID type issues (see #316)
    • BackgroundPlotter changes:
      • Window title (see #305)
      • Add callback support (see #304)
      • Fix closing issues (see #315)
      • Add offscreen support (see #309)
      • Fix window resizing issue (see #315)
    • Fix typos
    • Add null_value support for the .interpolate filter
    • Replace AppVeyor with Azure Pipelines for Windows testing (see #317)
    • Add more special array names to the exclusion list for active scalars (see #307)
    • Update docstring for .add_text to detail how return type can vary (see #312)
    Source code(tar.gz)
    Source code(zip)
  • 0.21.1(Jul 11, 2019)

    This release is loaded with bug fixes and enhancements that weren't quite ready at v0.21.0

    New Features

    • Added option to use a scalar array for opacity mapping or custom transfer functions (see #297)
    • Overhauled the .clip filter to no longer triangulate regions unaffected by the clipping plane (see https://github.com/pyvista/pyvista-support/issues/13 and this discussion)
    • Add surface cell picking for visible cells only (see #281 and #277)
    • Use Scooby’s .Report() convention (see #284)
    • Improved point labels behavior and formatting (see #286)

    Bug Fixes

    • Changed defaults for volume rendering to make sure it typically works on all OS and all GPUs
    • Fixed non-uniform subsetting issue with the .glyph filter (see #302)
    • Fixed installation issue on CentOS
    • Point labels can now be tracked by name when plotting
    • Fixed bug where the cell picking callback would be called after empty selection
    • Fixed issue where MultiBlock datasets weren’t wrapping properly
    • Fixed volume rendering of MultiBlock datasets
    • Fixed camera clipping planes bug when orbiting a scene
    • Fixed issue if passing texture=False to add_mesh
    • Fixed coloring issue with Box axes widget
    • Fixed issue when shading a dataset and passing an array by name
    • Fixed issue where parse_color would get tricked by RGBA tuples
    • Fixed BackgroundPlotter closing event bug (see #293)
    • Added default window title to rcParams
    Source code(tar.gz)
    Source code(zip)
  • 0.21.0(Jun 30, 2019)

    New Features

    Most Exciting

    • Volume Rendering (see #272 and #231) 🎉 🎆 - many thanks to @supersubscript!
    • Show selection interactively with enable_cell_picking (see #278)
    • Slice along line filter (see #267)
    • Default colormap is now viridis

    Also Pretty Exciting

    • Compute arc lengths of poly lines and splines (see #252)
    • Enable subset glyphing (see #269)
    • Enable filters on composite datasets (see #270)
    • Major reorganization of internal modules to clean up the API (see #272)
    • PolyData.project_points_to_plane filter (see #276)
    • Nee dependency: scooby for pyvista.generate_report() to make bug reporting easier.
    • Support for colorcet and cmocean colormaps

    Bug Fixes

    • Fix color mapping issue for uint8 arrays (see #266)
    • Fix bugs with the auto documentation
    • Fix create_grid if cell dimension is 1
    • Use a better default for add_text so that text stays in the corner (see #275)
    • Fix frog example (see #237)
    • Enhance clipping algorithm for UniformGrids
    Source code(tar.gz)
    Source code(zip)
  • 0.20.4(Jun 19, 2019)

    This release has quite a few significant bug fixes and some useful new features inspired by user requests and contributions

    New Features

    • New linked cameras feature for subletting (see #255)
    • Add new plot_over_line filter (see #250)
    • Clearing scalar arrays (see #232)
    • Add support for Splines (see #246)
    • More parametric geometries
    • Add method to clear textures: .clear_textures()
    • New internal class, PointSet to manage common attributes between point based datasets

    Bug Fixes

    • Fix the frog example (see #237)
    • Fix bug with pyvista.Cone (see #249)
    • Fix bug where PolyData constructor did not always produce vertex cells (see #227)
    • Fix length calculation for geodesic path (see #261)
    • Other bug fixes with respect to the geodesic path filter
    Source code(tar.gz)
    Source code(zip)
Owner
PyVista
Creating Python 3D visualization and mesh analysis software
PyVista
A small script written in Python3 that generates a visual representation of the Mandelbrot set.

Mandelbrot Set Generator A small script written in Python3 that generates a visual representation of the Mandelbrot set. Abstract The colors in the ou

1 Dec 28, 2021
Python package for the analysis and visualisation of finite-difference fields.

discretisedfield Marijan Beg1,2, Martin Lang2, Samuel Holt3, Ryan A. Pepper4, Hans Fangohr2,5,6 1 Department of Earth Science and Engineering, Imperia

ubermag 12 Dec 14, 2022
eoplatform is a Python package that aims to simplify Remote Sensing Earth Observation by providing actionable information on a wide swath of RS platforms and provide a simple API for downloading and visualizing RS imagery

An Earth Observation Platform Earth Observation made easy. Report Bug | Request Feature About eoplatform is a Python package that aims to simplify Rem

Matthew Tralka 4 Aug 11, 2022
A simple project on Data Visualization for CSCI-40 course.

Simple-Data-Visualization A simple project on Data Visualization for CSCI-40 course - the instructions can be found here SAT results in New York in 20

Hugo Matousek 8 Oct 27, 2021
Generate a roam research like Network Graph view from your Notion pages.

Notion Graph View Export Notion pages to a Roam Research like graph view.

Steve Sun 214 Jan 07, 2023
A set of useful perceptually uniform colormaps for plotting scientific data

Colorcet: Collection of perceptually uniform colormaps Build Status Coverage Latest dev release Latest release Docs What is it? Colorcet is a collecti

HoloViz 590 Dec 31, 2022
Bar Chart of the number of Senators from each party who are up for election in the next three General Elections

Congress-Analysis Bar Chart of the number of Senators from each party who are up for election in the next three General Elections This bar chart shows

11 Oct 26, 2021
A gui application to visualize various sorting algorithms using pure python.

Sorting Algorithm Visualizer A gui application to visualize various sorting algorithms using pure python. Language : Python 3 Libraries required Tkint

Rajarshi Banerjee 19 Nov 30, 2022
View part of your screen in grayscale or simulated color vision deficiency.

monolens View part of your screen in grayscale or filtered to simulate color vision deficiency. Watch the demo on YouTube. Install with pip install mo

Hans Dembinski 31 Oct 11, 2022
Tools for calculating and visualizing Elo-like ratings of MLB teams using Retosheet data

Overview This project uses historical baseball games data to calculate an Elo-like rating for MLB teams based on regular season match ups. The Elo rat

Lukas Owens 0 Aug 25, 2021
This is a Boids Simulation, written in Python with Pygame.

PyNBoids A Python Boids Simulation This is a Boids simulation, written in Python3, with Pygame2 and NumPy. To use: Save the pynboids_sp.py file (and n

Nik 17 Dec 18, 2022
The Timescale NFT Starter Kit is a step-by-step guide to get up and running with collecting, storing, analyzing and visualizing NFT data from OpenSea, using PostgreSQL and TimescaleDB.

Timescale NFT Starter Kit The Timescale NFT Starter Kit is a step-by-step guide to get up and running with collecting, storing, analyzing and visualiz

Timescale 102 Dec 24, 2022
Tweets your monthly GitHub Contributions as Wordle grid

Tweets your monthly GitHub Contributions as Wordle grid

Venu Vardhan Reddy Tekula 5 Feb 16, 2022
Fast data visualization and GUI tools for scientific / engineering applications

PyQtGraph A pure-Python graphics library for PyQt5/PyQt6/PySide2/PySide6 Copyright 2020 Luke Campagnola, University of North Carolina at Chapel Hill h

pyqtgraph 3.1k Jan 08, 2023
JSNAPY example: Validate NAT policies

JSNAPY example: Validate NAT policies Overview This example will show how to use JSNAPy to make sure the expected NAT policy matches are taking place.

Calvin Remsburg 1 Jan 07, 2022
TensorDebugger (TDB) is a visual debugger for deep learning. It extends TensorFlow with breakpoints + real-time visualization of the data flowing through the computational graph

TensorDebugger (TDB) is a visual debugger for deep learning. It extends TensorFlow (Google's Deep Learning framework) with breakpoints + real-time visualization of the data flowing through the comput

Eric Jang 1.4k Dec 15, 2022
This is a web application to visualize various famous technical indicators and stocks tickers from user

Visualizing Technical Indicators Using Python and Plotly. Currently facing issues hosting the application on heroku. As soon as I am able to I'll like

4 Aug 04, 2022
Type-safe YAML parser and validator.

StrictYAML StrictYAML is a type-safe YAML parser that parses and validates a restricted subset of the YAML specification. Priorities: Beautiful API Re

Colm O'Connor 1.2k Jan 04, 2023
A library for bridging Python and HTML/Javascript (via Svelte) for creating interactive visualizations

A library for bridging Python and HTML/Javascript (via Svelte) for creating interactive visualizations

Anthropic 98 Dec 27, 2022
Attractors is a package for simulation and visualization of strange attractors.

attractors Attractors is a package for simulation and visualization of strange attractors. Installation The simplest way to install the module is via

Vignesh M 45 Jul 31, 2022