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

3.3.0.1 #8

Merged
merged 61 commits into from
Feb 26, 2020
Merged

3.3.0.1 #8

merged 61 commits into from
Feb 26, 2020

Conversation

nshenkman
Copy link

No description provided.

leplatrem and others added 30 commits August 30, 2017 13:06
Bug: Fix timer decorator with partial functions (jsocol#85)
Leave Python 2.6, 3.2, and 3.3 out. Let's focus on >=3.4 (and we'll
still support 2.7 because it's easy).
Drop support for old Python versions
Since early June[1], IPv6 loopback address resolution has been flaky on
TravisCI. It seems that it should have been flaky even earlier, or
there's something strange going on. For now, skip the test. We can come
back to diagnosing once master is (otherwise) passing.

This failure first started on Python 2.6, but quickly spread to all
versions. It appears to pass occasionally, but not on any consistent
version. Lately it seems to fail more or less all the time, though on
the latest cron build, it did pass on Pypy[2].

[1]: https://travis-ci.org/jsocol/pystatsd/builds/387167216
[2]: https://travis-ci.org/jsocol/pystatsd/builds/417687774
StatsClientBase and PipelineBase are not intended to be public APIs, and
the syntax for metaclasses introduces some complexity between Python 2
and 3.

Since ABCMeta and abc.abstractmethod were only being used to guarantee
that internal subclasses implemented these methods correctly, and
there's no external behavioral issues on Python 3, where the metaclass
has been ignored for years, let's remove the metaclass and rely on
NotImplementedError() and the test suite as a backstop.

Fixes jsocol#106.
Fix minor nits, spelling and unused imports
Collecting thoughts that have been spread across several GitHub issues
and pull requests into one place, a reference to use from now on when
the discussion of tags comes up.
Allow passing datetime.timedelta objects directly to
StatsClient.timing(), automatically converting to milliseconds.
New client for handling sending stats through Unix domains sockets.
Introduce UnixSocketStatsClient class.

Fixes jsocol#76.
Tweaks a lot of doc references to use better Sphinx tooling. Shouldn't
break any existing links, but may get to a point where we don't need
quite as many named references.
Update Sphinx directives in docs
The client module just broke 300 lines and had a lot of functionality in
it. This breaks the single file up into a package and reduces a decent
amount of duplication. Makes a few related changes:

- Replaces old Python __future__ imports with new ones
- Removes __all__ in favor of fewer imports
- Refactors common stream code into StreamClientBase
- Renames TCPPipeline to StreamPipeline for consistency (this is not a
  public class name)
Refactor client module into package
- Drop support for Python 2.5, 2.6, 3.2, 3.3 (jsocol#108, jsocol#116).
- Add UnixSocketStatsClient (jsocol#76, jsocol#112).
- Add support for timedeltas in timing() (jsocol#104, jsocol#111).
- Fix timer decorator with partial functions (jsocol#85).
- Remove ABCMeta metaclass (incompatible with Py3) (jsocol#109).
- Refactor client module (jsocol#115).
- Various doc updates (jsocol#99, jsocol#102, jsocol#110, jsocol#113, jsocol#114).
@nshenkman nshenkman merged commit d3b84fb into master Feb 26, 2020
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.

8 participants