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

Initial Update #92

Merged
merged 10 commits into from
Nov 30, 2016
Merged

Initial Update #92

merged 10 commits into from
Nov 30, 2016

Conversation

pyup-bot
Copy link
Contributor

This is my first visit to this fine repo so I have bundled all updates in a single pull request to make things easier for you to merge.

Close this pull request and delete the branch if you want me to start with single pull requests right away

Here's the executive summary:

Updates

Here's a list of all the updates bundled in this pull request. I've added some links to make it easier for you to find all the information you need.

coveralls 1.1 » 1.1 PyPI | Changelog | Repo
paho-mqtt 1.2 » 1.2 PyPI | Homepage
sanji 1.0.0 » 1.0.0 PyPI | Repo
sh 1.12.3 » 1.12.3 PyPI | Changelog | Repo
nose 1.3.7 » 1.3.7 PyPI | Docs
decorator 4.0.10 » 4.0.10 PyPI | Changelog | Repo | Docs
flake8 3.2.1 » 3.2.1 PyPI | Repo
enum34 1.1.6 » 1.1.6 PyPI | Repo
monotonic 1.2 » 1.2 PyPI | Repo
retrying 1.3.3 » 1.3.3 PyPI | Changelog | Repo

Changelogs

coveralls -> 1.1

1.1

* Suupport for Circle CI

1.0

* Official coverage 4.0 support

1.0b1

* Coverage 4 beta support
* Codeship experimetal support (CI_BRANCH env variable)
* Drop python 3.2 support (as coverage 4 does not support it)
* Repo token usage is deprecated (but still supported) in favor of env variable.
* Error reporting is improved, exist status codes added

1.0a2

* Fix latest alpha coverage.py support
* Remove erroneous warning message when writing output to a file

1.0a1

* **Backwards incompatible**: make pyyaml optional. If you're using .coveralls.yml, make sure to install coveralls[yaml]
* Coverage 4 alpha support
* Allow debug and output options to work without repo_token
* Fix merge command for python 3.X

0.5

* Add option --output=<file> for saving json to file for possible merging with coverages from other languages
* Add merge command for sending coverage stats from multiple languages

0.4.4

* Proper fix coverage.py dependency version

0.4.3

* Fix coverage.py dependency version

0.4.2

* Handle 503 errors from coveralls.io

0.4.1

* Fix gitlog output with utf8

0.4

* Added support for --rcfile=<file> option to cli
* Improved docs: nosetests and troubleshooting sections added
* Added debug in case of UnicodeDecodeError
* Removed sh dependency in favor of Windows compatibility

0.3

* Added initial support for Circle CI
* Fixed Unicode not defined error in python 3

0.2

* Python 3.2 and PyPy support
* Graceful handling of coverage exceptions
* Fixed UnicodeDecodeError in json encoding
* Improved readme

0.1.1

* Introduced COVERALLS_REPO_TOKEN environment variable as a fallback for Travis
* Removed repo_token from verbose output for security reasons

0.1

* Initial release

sh -> 1.12.3

1.12.3

  • fd leak regression and fix for flawed fd leak detection test 337

1.12.2

  • support for io.StringIO in python2

1.12.1

  • added support for using raw file descriptors for _in, _out, and _err
  • removed .close()ing _out handler if FIFO detected

1.12.0

  • composed commands no longer propagate _bg
  • better support for using sys.stdin and sys.stdout for _in and _out
  • bugfix where which() would not stop searching at the first valid executable found in PATH
  • added _long_prefix for programs whose long arguments start with something other than -- 278
  • added _log_msg for advanced configuration of log message 311
  • added sh.contrib.sudo
  • added _arg_preprocess for advanced command wrapping
  • alter callable _in arguments to signify completion with falsy chunk
  • bugfix where pipes passed into _out or _err were not flushed on process end 252
  • deprecated with sh.args(**kwargs) in favor of sh2 = sh(**kwargs)
  • made sh.pushd thread safe
  • added .kill_group() and .signal_group() methods for better process control 237
  • added new_session special keyword argument for controlling spawned process session 266
  • bugfix better handling for EINTR on system calls 292
  • bugfix where with-contexts were not threadsafe 247
  • _uid new special keyword param for specifying the user id of the process 133
  • bugfix where exceptions were swallowed by processes that weren't waited on 309
  • bugfix where processes that dupd their stdout/stderr to a long running child process would cause sh to hang 310
  • improved logging output 323
  • bugfix for python3+ where binary data was passed into a process's stdin 325
  • Introduced execution contexts which allow baking of common special keyword arguments into all commands 269
  • Command and which now can take an optional paths parameter which specifies the search paths 226
  • _preexec_fn option for executing a function after the child process forks but before it execs 260
  • _fg reintroduced, with limited functionality. hurrah! 92
  • bugfix where a command would block if passed a fd for stdin that wasn't yet ready to read 253
  • _long_sep can now take None which splits the long form arguments into individual arguments 258
  • making _piped perform "direct" piping by default (linking fds together). this fixes memory problems 270
  • bugfix where calling next() on an iterable process that has raised StopIteration, hangs 273
  • sh.cd called with no arguments no changes into the user's home directory, like native cd 275
  • sh.glob removed entirely. the rationale is correctness over hand-holding. 279
  • added _truncate_exc, defaulting to True, which tells our exceptions to truncate output.
  • bugfix for exceptions whose messages contained unicode
  • _done callback no longer assumes you want your command put in the background.
  • _done callback is now called asynchronously in a separate thread.
  • _done callback is called regardless of exception, which is necessary in order to release held resources, for example a process pool

1.10

  • partially applied functions with functools.partial have been fixed for _out and _err callbacks 160
  • _out or _err being callables no longer puts the running command in the background. to achieve the previous behavior, pass _bg=True to your command.
  • deprecated _with contexts 195
  • _timeout_signal allows you to specify your own signal to kill a timed-out process with. use a constant from the signal stdlib module. 171
  • signal exceptions can now be caught by number or name. SignalException_9 == SignalException_SIGKILL
  • child processes that timeout via _timeout raise sh.TimeoutException instead of sh.SignalExeception_9 172
  • fixed help(sh) from the python shell and pydoc sh from the command line. 173
  • program names can no longer be shadowed by names that sh.py defines internally. removed the requirement of trailing underscores for programs that could have their names shadowed, like id.
  • memory optimization when a child process's stdin is a newline-delimted string and our bufsize is newlines
  • feature, _done special keyword argument that accepts a callback to be called when the command completes successfully 185
  • bugfix for being unable to print a baked command in python3+ 176
  • bugfix for cwd not existing and causing the child process to continue running parent process code 202
  • child process is now guaranteed to exit on exception between fork and exec.
  • fix python2 deprecation warning when running with -3 PR 165
  • bugfix where sh.py was attempting to execute directories 196, PR 189
  • only backgrounded processes will ignore SIGHUP
  • allowed ok_code to take a range object. PR 210
  • added sh.args with context which allows overriding of all command defaults for the duration of that context.
  • added sh.pushd with context which takes a directory name and changes to that directory for the duration of that with context. PR 206
  • tests now include python 3.4 if available. tests also stop on the first
    python that suite that fails.
  • SIGABRT, SIGBUS, SIGFPE, SIGILL, SIGPIPE, SIGSYS have been added to the list of signals that throw an exception PR 201
  • "callable" builtin has been faked for python3.1, which lacks it.
  • "direct" option added to _piped special keyword argument, which allows sh to hand off a process's stdout fd directly to another process, instead of buffering its stdout internally, then handing it off. 119

1.09

  • Fixed encoding errors related to a system encoding "ascii". 123
  • Added exit_code attribute to SignalException and ErrorReturnCode exception classes. 127
  • Making the default behavior of spawned processes to not be explicitly killed when the parent python process ends. Also making the spawned process ignore SIGHUP. 139
  • Made OSX sleep hack to apply to PY2 as well as PY3.

1.08

  • Added SignalException class and made all commands that end terminate by a signal defined in SIGNALS_THAT_SHOULD_THROW_EXCEPTION raise it. 91
  • Bugfix where CommandNotFound was not being raised if Command was created by instantiation. 113
  • Bugfix for Commands that are wrapped with functools.wraps() [121](https://github.com/amoffat/sh/issues/121]
  • Bugfix where input arguments were being assumed as ascii or unicode, but never as a string in a different encoding.
  • _long_sep keyword argument added joining together a dictionary of arguments passed in to a command
  • Commands can now be passed a dictionary of args, and the keys will be interpretted "raw", with no underscore-to-hyphen conversion
  • Reserved Python keywords can now be used as subcommands by appending an underscore _ to them

1.07

  • Bugfix for PyDev when locale.getpreferredencoding() is empty.
  • Fixes for IPython3 that involve sh.<tab> and sh?
  • Added _tee special keyword argument to force stdout/stderr to store internally and make available for piping data that is being redirected.
  • Added _decode_errors to be passed to all stdout/stderr decoding of a process.
  • Added _no_out, _no_err, and _no_pipe special keyword arguments. These are used for long-running processes with lots of output.
  • Changed custom loggers that were created for each process to fixed loggers, so there are no longer logger references laying around in the logging module after the process ends and it garbage collected.

1.06

  • Removed old undocumented cruft of ARG1..ARGN and ARGV.
  • Bugfix where logging_enabled could not be set from the importing module.
  • Disabled garbage collection before fork to prevent garbage collection in child process.
  • Major bugfix where cyclical references were preventing process objects (and their associated stdout/stderr buffers) from being garbage collected.
  • Bugfix in RunningCommand and OProc loggers, which could get really huge if a command was called that had a large number of arguments.

1.05

  • Changing status from alpha to beta.
  • Python 3.3 officially supported.
  • Documentation fix. The section on exceptions now references the fact that signals do not raise an exception, even for signals that might seem like they should, e.g. segfault.
  • Bugfix with Python 3.3 where importing commands from the sh namespace resulted in an error related to __path__
  • Long-form and short-form options to commands may now be given False to disable the option from being passed into the command. This is useful to pass in a boolean flag that you flip to either True or False to enable or disable some functionality at runtime.

1.04

  • Making Command class resolve the path parameter with which by default instead of expecting it to be resolved before it is passed in. This change shouldn't affect backwards compatibility.
  • Fixing a bug when an exception is raised from a program, and the error output has non-ascii text. This didn't work in Python < 3.0, because .decode()'s default encoding is typically ascii.

decorator -> 4.0.10

4.0.10

Improved the documentation thanks to Tony Goodchild (zearin) who also
provided a much better CSS than the one I was using.

4.0.9

Same as 4.0.7 and 4.0.8, re-uploaded due to issues on PyPI.

4.0.7

Switched to a new changelog format (the one in http://keepachangelog.com/)
since it was contributed by Alexander Artemenko. Re-added a newline to support
old version of Python, as requested by azjps.

4.0.6

Removed a file x.py accidentally entered in the tarball.

4.0.5

Documented a quirk signaled by David Goldstein when writing decorators
for functions with keyword arguments. Avoided copying the globals,
as signaled by Benjamin Peterson.

4.0.4

Included a patch from Zev Benjamin: now decorated functions play well
with cProfile.

4.0.3

Added a warning about the memoize example, as requested by Robert
Buchholz.

4.0.2

docs/README.rst was not included in MANIFEST.in by accident,
thus breaking the source installation.

4.0.1

Added docs directory and upload_docs command. Fixed bug with
__qualname__, reported by Lucian Petrut.

4.0.0

Removed the need for 2to3 by dropping the support for Python 2.5.
Added a MANIFEST.in file and produced a proper wheel. Improved
the integration with setuptools so that python setup.py test works.
Reworked the documentation and introduced decorator.decorated.
Removed any dependence from inspect.getargspec, which is deprecated
in Python 3.5, as signaled by Ralf Gommers.
Fixed contextmanager to work with Python 3.5.
Copied the __qualname__ attribute, as requested by Frazer McLean.
Added a dispatch_on facility to implement generic functions.

3.4.2

Same as 3.4.1, re-uploaded to PyPI.

3.4.1

Ported the repository from GoogleCode to GitHub and added Travis CI
support. Tests are executed with the new command python test.py -v.
setuptools is now mandatory in Python 3. The suggested
installation tool is now pip, not easy_install. Supported IronPython
and other Python implementations without sys._getframe, as requested by
Doug Blank.

3.4.0

Added the ability to use classes and generic callables as callers and
implemented a signature-preserving contexmanager decorator. Fixed a bug
with the signature f(**kw) in Python 3 and fixed a couple of doctests
broken by Python 3.3, both issues pointed out by Dominic Sacré.

3.3.3

Fixed a bug with kwonlyargs for Python 3, submitted by Chris
Ellison.

3.3.2

Fixed a bug with kwdefaults for Python 3, submitted by Chris
Ellison.

3.3.1

Fixed a doctest broken for Python 3.2, as noted by
Arfrever Frehtes Taifersar Arahesis; changed the name of
the attribute undecorated to __wrapped__, by following the
Python 3.2 convention, as requested by Ram Rachum; added
the Python 3 classifier to setup.py.

3.3

Added support for function annotations.

3.2.1

Now the .func_globals of the decorated function are the same of
the undecorated function, as requested by Paul Ollis.

3.2

Added version (thanks to Gregg Lind), removed functionality which
has been deprecated for years, removed the confusing decorator_factory
example and added official support for Python 3 (requested by Claus Klein).
Moved the documentation from PyPI to googlecode.

3.1.2

Added attributes args, varargs, keywords and arg0, ..., argN
to FunctionMaker objects generated from a function; fixed another
Pylons-breaking bug signaled by Lawrence Oluyede.

3.1.1

Fixed a bug which was breaking Pylons, signaled by
Gabriel de Perthuis, and added a test for it.

3.1

Added decorator.factory, an easy way to define families of decorators
(requested by various users, including David Laban). Refactored the
FunctionMaker class and added an easier to use .create classmethod.
Internally, functools.partial is used for Python >= 2.5.

3.0.1

Improved the error message in case a bound/unbound method is passed
instead of a function and documented this case; that should make life
easier for users like Gustavo Nerea.

3.0

New major version introducing FunctionMaker and the two-argument
syntax for decorator. Moreover, added support for getting the
source code. This version is Python 3.0 ready. Major overhaul of the
documentation, now hosted on http://packages.python.org/decorator.

2.3.2

Small optimization in the code for decorator factories. First version
with the code uploaded to PyPI.

2.3.1

Set the zipsafe flag to False, since I want my users to have the source,
not a zipped egg.

2.3.0

Added support for writing decorator factories with minimal effort
(feature requested by Matthew Wilson); implemented it by enhancing
'decorator' to a Python 2.6 class decorator.

2.2.0. (2007-07-31)

Added a note on 'inspect.getsource' not working for decorated
functions; referenced PEP 326; highlighted the snippets in the
documentation with pygments; slightly simplified the code.

2.1.0. (3/07/2007)

Replaced the utility 'update_wrapper' with 'new_wrapper' and
updated the documentation accordingly; fixed and improved the
doctester argument parsing, signaled by Sam Wyse.

2.0.1

Included the licence in the source code too; fixed a versioning
issue by adding the version number to the zip file and fixing
the link to it on the web page, thanks to Philip Jenvey.

2.0

Rewritten and simplified the implementation; broken compatibility
with previous versions (in minor ways); added the utility function
'update_wrapper' instead of 'newfunc'.

1.1

'decorator' instances now have attributes name, doc,
module and dict coming from the associated caller function;
included the licence into the documentation.

1.0

Added LICENSE.txt; added a setuptools-friendly setup.py script
contributed by Luke Arno.

0.8.1

Minor fixes to the documentation.

0.8

Improved the documentation, added the 'caveats' section.

0.7.1

Improved the tail_recursive example.

0.7

Renamed 'copyfunc' into 'newfunc' and added the ability to copy
the signature from a model function; improved '_decorator' to
set the 'module' attribute too, with the intent of improving
error messages; updated the documentation.

0.6

Changed decorator.call so that the module somewhat works
even for Python 2.3 (but the signature-preserving feature is
lost).

0.5.2

Minor changes to the documentation; improved getattr_ and
shortened locked.

0.5.1

Minor corrections to the documentation.

0.5

Fixed a bug with out-of-the-mind signatures, added a check for
reserved names in the argument list and simplified the code (thanks to
Duncan Booth).

0.4.1

Fixed a typo in the documentation (thanks to Anthon van der Neut).

0.4

Added getinfo, some tests and improved the documentation.

0.3

Simplified copyfunc, renamed deferred to delayed and added the
nonblocking example.

0.2

Added copyfunc, improved the multithreading examples, improved the
doctester program.

0.1.1

Added the license specification and two docstrings.

0.1

Initial release.

retrying -> 1.3.3

1.3.3

++++++++++++++++++

  • Add minimum six version of 1.7.0 since anything less will break things

1.3.2

++++++++++++++++++

  • Ensure we wrap the decorated functions to prevent information loss
  • Allow a jitter value to be passed in

1.3.1

++++++++++++++++++

  • Add requirements.txt to MANIFEST.in to fix pip installs

1.3.0

++++++++++++++++++

  • Add upstream six dependency, remove embedded six functionality

1.2.3

++++++++++++++++++

  • Add support for custom wait and stop functions

1.2.2

++++++++++++++++++

  • Bug fix to not raise a RetryError on failure when exceptions aren't being wrapped

1.2.1

++++++++++++++++++

  • Bug fix for explicitly passing in a wait type

1.2.0

++++++++++++++++++

  • Remove the need for explicit specification of stop/wait types when they can be inferred
  • Add a little checking for exception propagation

1.1.0

++++++++++++++++++

  • Added proper exception propagation through reraising with Python 2.6, 2.7, and 3.2 compatibility
  • Update test suite for behavior changes

1.0.1

++++++++++++++++++

  • Fixed a bug where classes not extending from the Python exception hierarchy could slip through
  • Update test suite for custom Python exceptions

1.0.0

++++++++++++++++++

  • First stable, tested version now exists
  • Apache 2.0 license applied
  • Sanitizing some setup.py and test suite running
  • Added Travis CI support

Once you have closed this pull request, I'll create seperate pull requests for every update as soon as I find them.

That's it for now!

Happy merging! 🤖

@lwindg lwindg merged commit 69e103a into develop Nov 30, 2016
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