• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

eriknw / toolz
100%
master: 100%

Build:
Build:
LAST BUILD BRANCH: python3.6
DEFAULT BRANCH: master
Repo Added 09 Nov 2013 03:29AM UTC
Files 13
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH faster_unique
branch: faster_unique
CHANGE BRANCH
x
Reset
  • faster_unique
  • authors_larsmans_josericardo
  • authors_shvechikov
  • backport_tests
  • better_curry_error
  • better_curry_introspection
  • clean_curried_namespace
  • consume
  • correct_flip_doctest
  • coveralls
  • coveralls_for_master
  • coveralls_success_only
  • curry_class
  • curry_classmethods
  • curry_makeover
  • curry_memoize
  • curry_numargs
  • curry_reduce
  • dict_iter
  • diff
  • equality_hash_key
  • explicit_curried
  • faster_groupby
  • faster_merge_sorted
  • faster_merge_with
  • faster_remove
  • fix/curry_module
  • fix/ensure_easy_testing
  • fix_32bit_overflow
  • fix_property_introspection
  • get_with_itemgetter
  • identical
  • isdistinct_for_iterators
  • itemmap
  • jackknife_sandbox
  • juxt_generator
  • juxt_tuple
  • last_with_deque
  • memoize_key_func
  • memoize_unary
  • more_introspection
  • nth_with_list
  • pep479
  • pypy3
  • python3.6
  • readme_broken_links
  • readme_rst
  • remove_jackknife
  • run_doctests_on_curried
  • serialize_juxt
  • svg_badges
  • test_curry_too
  • test_dicttoolz_types
  • tlz
  • unused_variables
  • update/pluck_docstring

pending completion
86

push

travis-ci

eriknw
Faster unique, isdistinct, merge_sorted, and sliding_window.

The `key` keyword argument to `unique` was changed from `identity` to `None`.
This better matches API elsewhere, and lets us remove `identity` from being
redefined in `itertoolz`, which always seemed a little weird.

Most of the speed improvements come from avoiding attribute resolution in
frequently run code.  Attribute resolution (i.e., the "dot" operator) is
probably more costly than one would expect.  Fortunately, there weren't
many places to apply this optimization, so impact on code readability was
minimal.

`unique` employs another optimization: branching by `key is None` outside the
loop (thus requiring two loops).  While this violates the DRY principle (and,
hence, I would prefer not to do it in general), this is only a few lines of
code that remain side-by-side, and the performance increase is worth it.

`merge_sorted` is now optimized when only a single iterable remains.  This
makes it *so* much faster while in this condition.

467 of 467 relevant lines covered (100.0%)

4.0 hits per line

Relevant lines Covered
Build:
Build:
467 RELEVANT LINES 467 COVERED LINES
4.0 HITS PER LINE
Source Files on faster_unique
  • List 0
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
86 faster_unique Faster unique, isdistinct, merge_sorted, and sliding_window. The `key` keyword argument to `unique` was changed from `identity` to `None`. This better matches API elsewhere, and lets us remove `identity` from being redefined in `itertoolz`, which... push 10 May 2014 01:10PM UTC eriknw travis-ci pending completion  
See All Builds (144)
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc