Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add current_key property to DynamicMap #5106

Merged
merged 4 commits into from
Nov 17, 2021
Merged

Conversation

maximlt
Copy link
Member

@maximlt maximlt commented Oct 31, 2021

Partially addresses #5100

@jlstevens I've done some manual tests and saw that this works as I expect it. However DynamicMap.__getitem__ handles quite a number of different cases and I'm not sure I understand them all. It'd be great if you could let me know if it's the right implementation. If so, I'll document it and add some tests.

@jlstevens
Copy link
Contributor

Other than deciding on a name, this looks like the correct approach to me!

holoviews/core/spaces.py Outdated Show resolved Hide resolved
@maximlt
Copy link
Member Author

maximlt commented Nov 3, 2021

@jlstevens as for the naming I chose current_key because of the existing property last_key. But I'd be fine with other options, maybe state ?

@jlstevens
Copy link
Contributor

How about last_call?

That makes sense to me as the crucial aspect of a DynamicMap is that it uses a callable. What you think @philippjfr ?

@philippjfr
Copy link
Member

As a user I'd be confused by last_call, personally I also prefer current_key especially since it's symmetric with last_key.

@jlstevens
Copy link
Contributor

Ok, I still prefer last_call as the use of a callable is what is unique about DynamicMaps. Happy to let @jbednar be the tie-breaker...

@philippjfr
Copy link
Member

last_call just makes no sense to me, as a user I'd have to guess what it actually returns and if you made me guess I'd definitely think it would give me the value of the last call not the arguments used to generate it. I don't think we'll need @jbednar as a tie breaker though, since we've got @maximlt :)

@maximlt
Copy link
Member Author

maximlt commented Nov 16, 2021

I think I actually still prefer current_key, as Philipp said I would have a hard time guessing the output of last_call, while it's more obvious with current_key.

@jlstevens
Copy link
Contributor

jlstevens commented Nov 16, 2021

Ok, happy to let you override me but I'm not going to pretend that the difference between last_key and current_key is going to be clear to anybody. ;-p

That main thing I would like to see before merging this PR is a unit test. And perhaps a quick entry in the docs?

@jlstevens
Copy link
Contributor

Thanks!

Happy to merge when the tests finish.

@jlstevens
Copy link
Contributor

Tests are green. Merging.

@jlstevens jlstevens merged commit c9c4bc3 into master Nov 17, 2021
maximlt added a commit that referenced this pull request Dec 6, 2021
@maximlt maximlt deleted the add_current_key_to_dynamicmap branch December 7, 2021 06:31
maximlt added a commit that referenced this pull request Dec 16, 2021
* Fix Violin matplotlib rendering with non-finite values (#5135)

* Handle the empty string as a group name (#5131)

* Fix unhandled numpy.round overflow return value in core/util.py:bound_range(...) (#5095)

* Core/Util: Fix unhandled np.round overflow return

The function numpy.round return for the input
np.float64(2.6558061446181644e+295) the output
numpy.inf. This should lead to
density = full_precision_density.

* Core/Util: Supress numpy.round overflow error

The function numpy.round produces for the input
numpy.float64(2.6558061446181644e+295) an
FloatingPointError with the message
"overflow encountered in multiply". This error
should be suppressed because its an internal
computation by holoview.

* Use context manager

Co-authored-by: christoph.weiss@gtd-gmbh.de <christoph.weiss@gtd-gmbh.de>
Co-authored-by: Philipp Rudiger <prudiger@anaconda.com>

* Update Plotting_with_Matplotlib.ipynb (#4983)

Ordering of the fig_bounds tuple in the documentation was different from that in e.g. https://github.com/holoviz/holoviews/blob/40977c515dd9837019aaa0e5708773e78809fbe1/holoviews/plotting/mpl/plot.py#L69

* Notimplemented binop (#5073)

* layout: Fix __add__ and __radd__ implementation

* Add layout.Layoutable as a mirror of overlay.Overlayable
* Remove a good deal of duplicated code
* Remove broken calls to super().__radd__ where the super class does not
  implement __radd__
* Return NotImplemented when Layout([x,y]) raises NotImplementedError.
  This allows correct interoperability with external classes that could
  themselves define __radd__ as stated by:
  https://docs.python.org/3/library/constants.html#NotImplemented

Fixes #3577

* overlay: deduplicate and fix __mul__

* Return NotImplemented when appropriate
* Deduplicate code between 2 non-trivial and almost identical
  implementations of __mul__
* Fix non-inheritance-friendly type checking with a local import to
  avoid cyclic dependency

Fixes #3577

* Fix matplotlib colorbar labeling for dim expressions (#5137)

* Ensure FreehandDraw renders when styles set (#5139)

* Fix datetime clipping on RangeXY stream (#5138)

* Fix Bars legend error when overlaid with annotation (#5142)

* Do not raise deprecated .opts warning for empty groups (#5144)

* Fix plotly Bar plots containing nans (#5143)

* Fix plotly Bar plots containing nans

* Update tests

* Preserve cols when overlaying on layout (#5141)

* Do not merge partially overlapping Stream callbacks (#5133)

* Do not merge partially overlapping Stream callbacks

* Add tests

* Remove print

* Add bounds to the cache_size Parameter (#5105)

* Fix broken link in Gridded user guide (#5098)

* Pin freetype on Windows due to matplotlib error (#5109)

* Fixed typo

* import bokeh's version from an internal util module (#5103)

* Add current_key property to DynamicMap (#5106)

* Validate dimensionality of xarray interface data (#5140)

* Support xyzservices.TileProvider as hv.Tiles input (#5062)

* implementation

* docstring, plotly test

* add bokeh tests

* CI: Fix before release (#5151)

* delay projection comparison to optimize geoviews (#5152)

* Test suite maintenance (#5157)

Fixed or suppressed warnings issued while running the tests

* fix cherry-pick and compatibility with holoviews 1.14

* fix linting

* Handle unsigned integer dtype in datashader aggregate operation (#5149)

* Fix docs CI build (#5088)

* Remove conda-forge from the build channels, post-install awscli and pin jupyter_client

* remove pytest usage

* add missing comma and fix test

* CI: improvements to the docs build (#5161)

* Fix for Contours consistent of empty and nonempty paths (#5162)

* Switch to the PyData sphinx theme (#5163)

* use pydata sphinx theme to build the site

* add pooch to the docs dependencies

* Add release notes for 1.14.6 and 1.14.7 (#5160)

* attempt to fix pip build

* micro fixes to the release notes

Co-authored-by: James A. Bednar <jbednar@users.noreply.github.com>
Co-authored-by: w31t1 <Christoph.Weiss1@gmx.de>
Co-authored-by: christoph.weiss@gtd-gmbh.de <christoph.weiss@gtd-gmbh.de>
Co-authored-by: jenssss <37403847+jenssss@users.noreply.github.com>
Co-authored-by: Douglas Raillard <douglas.raillard@arm.com>
Co-authored-by: Maxime Liquet <35924738+maximlt@users.noreply.github.com>
Co-authored-by: James A. Bednar <jbednar@continuum.io>
Co-authored-by: Martin Fleischmann <martin@martinfleischmann.net>
Co-authored-by: maximlt <mliquet@anaconda.com>
Co-authored-by: Simon Høxbro Hansen <simon.hansen@me.com>
Copy link

This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 24, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants