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

improve typing of OrderedSet #4774

Merged
merged 2 commits into from
Jan 7, 2021
Merged

Conversation

rhkleijn
Copy link
Contributor

@rhkleijn rhkleijn commented Jan 7, 2021

  • Passes isort . && black . && mypy . && flake8

Small patch to improve typing of OrderedSet: allowing more general input type in its constructor and .update method (Iterator instead of AbstractSet) helps to get rid of # type: ignore.

Side-effect: some performance gain in micro-benchmark (before and after):

%timeit xr.core.utils.OrderedSet(range(10))
3.46 µs ± 5.37 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
2.06 µs ± 6.39 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

Copy link
Collaborator

@max-sixty max-sixty left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent, thanks @rhkleijn !

Feel free to add a whatsnew; we'll merge tomorrow either way

xarray/core/utils.py Outdated Show resolved Hide resolved
@max-sixty max-sixty merged commit 1ae9778 into pydata:master Jan 7, 2021
@max-sixty
Copy link
Collaborator

Thanks @rhkleijn !

dcherian added a commit to TomNicholas/xarray that referenced this pull request Jan 18, 2021
* upstream/master: (342 commits)
  fix decode for scale/ offset list (pydata#4802)
  Expand user dir paths (~) in open_mfdataset and to_zarr. (pydata#4795)
  add a version info step to the upstream-dev CI (pydata#4815)
  fix the ci trigger action (pydata#4805)
  scatter plot by order of the first appearance of hue (pydata#4723)
  don't skip the scheduled CI (pydata#4806)
  coords: retain str dtype (pydata#4759)
  Fix interval labels with units (pydata#4794)
  Always force dask arrays to float in missing.interp_func (pydata#4771)
  Print number of variables in repr (pydata#4762)
  install conda as a library in the minimum dependency check CI (pydata#4792)
  Migrate CI from azure pipelines to GitHub Actions (pydata#4730)
  use conda.api instead of parallel calls to the conda binary (pydata#4775)
  Speed up missing._get_interpolator (pydata#4776)
  Remove special case in guess_engines (pydata#4777)
  improve typing of OrderedSet (pydata#4774)
  CI: ignore some warnings (pydata#4773)
  DOC: update hyperlink for xskillscore (pydata#4778)
  drop support for python 3.6 (pydata#4720)
  Trigger upstream CI on cron schedule (by default) (pydata#4729)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants