[Python-modules-commits] [python-structlog] 04/06: Import python-structlog_16.0.0.orig.tar.gz

Filippo Giunchedi filippo at moszumanska.debian.org
Sat Mar 26 19:39:43 UTC 2016


This is an automated email from the git hooks/post-receive script.

filippo pushed a commit to branch master
in repository python-structlog.

commit 2e1e89871a8d20e55c78f59e1951fcff2ca0b33a
Author: Filippo Giunchedi <filippo at debian.org>
Date:   Sat Mar 26 19:35:46 2016 +0000

    Import python-structlog_16.0.0.orig.tar.gz
---
 .coveragerc                                        |   8 +-
 .travis.yml                                        |  73 +++++---
 AUTHORS.rst                                        |  36 +---
 CHANGELOG.rst                                      | 189 ++++++++++++++++++++
 CODE_OF_CONDUCT.rst                                |  30 ++++
 CONTRIBUTING.rst                                   |  51 +++---
 LICENSE.mit                                        |   2 +-
 MANIFEST.in                                        |  10 +-
 PKG-INFO                                           |  58 ++++--
 README.rst                                         |  17 +-
 dev-requirements.txt                               |  10 +-
 docs-requirements.txt                              |   1 -
 docs/_static/console_renderer.png                  | Bin 0 -> 79966 bytes
 docs/api.rst                                       |  76 +++++++-
 docs/backward-compatibility.rst                    |  16 ++
 docs/changelog.rst                                 |  72 +-------
 docs/conf.py                                       | 112 ++++++------
 docs/configuration.rst                             |   2 +-
 docs/custom-wrappers.rst                           |   6 +-
 docs/development.rst                               |  34 ++++
 docs/faq.rst                                       |  49 ++++++
 docs/index.rst                                     |   7 +-
 docs/license.rst                                   |   4 +-
 docs/logging-best-practices.rst                    |   6 +-
 docs/performance.rst                               |   9 +
 docs/processors.rst                                |   2 +-
 docs/standard-library.rst                          |   6 +-
 docs/thread-local.rst                              |   2 +-
 docs/twisted.rst                                   |   2 +-
 docs/why.rst                                       |   2 +-
 setup.cfg                                          |   5 +-
 setup.py                                           | 146 ++++++++-------
 src/structlog.egg-info/PKG-INFO                    |  95 ++++++++++
 .../structlog.egg-info}/SOURCES.txt                |  47 +++--
 .../structlog.egg-info}/dependency_links.txt       |   0
 .../structlog.egg-info/not-zip-safe                |   0
 src/structlog.egg-info/requires.txt                |   4 +
 .../structlog.egg-info}/top_level.txt              |   0
 {structlog => src/structlog}/__init__.py           |  44 ++---
 {structlog => src/structlog}/_base.py              |   5 +-
 {structlog => src/structlog}/_compat.py            |  33 +---
 {structlog => src/structlog}/_config.py            |   2 +-
 {structlog => src/structlog}/_frames.py            |   7 +-
 {structlog => src/structlog}/_generic.py           |   2 +-
 {structlog => src/structlog}/_loggers.py           |  12 +-
 {structlog => src/structlog}/_utils.py             |   0
 src/structlog/dev.py                               | 141 +++++++++++++++
 structlog/_exc.py => src/structlog/exceptions.py   |   0
 {structlog => src/structlog}/processors.py         | 183 ++++++++++---------
 {structlog => src/structlog}/stdlib.py             |  11 +-
 {structlog => src/structlog}/threadlocal.py        |  12 +-
 {structlog => src/structlog}/twisted.py            |   4 +-
 structlog.egg-info/PKG-INFO                        |  57 ------
 tests/test_base.py                                 |   2 +-
 tests/test_config.py                               |   2 +-
 tests/test_dev.py                                  | 195 +++++++++++++++++++++
 tests/test_frames.py                               |  37 +++-
 tests/test_processors.py                           | 154 +++++++++++++++-
 tests/test_stdlib.py                               |   8 +-
 tests/test_threadlocal.py                          |  29 ++-
 tests/test_twisted.py                              |  17 +-
 tests/utils.py                                     |  16 ++
 tox.ini                                            |  61 ++++---
 63 files changed, 1604 insertions(+), 619 deletions(-)

diff --git a/.coveragerc b/.coveragerc
index 6585d66..3c342ab 100644
--- a/.coveragerc
+++ b/.coveragerc
@@ -2,7 +2,11 @@
 branch = True
 source = structlog
 
+[paths]
+source =
+   src/structlog
+   .tox/*/lib/python*/site-packages/structlog
+   .tox/pypy*/site-packages/structlog
+
 [report]
 show_missing = True
-omit =
-    structlog/_compat.py
diff --git a/.travis.yml b/.travis.yml
index 0805260..51d659c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,27 +1,60 @@
-language: python
 sudo: false
-python: 2.7
-env:
-    - TOX_ENV=py26-threads
-    - TOX_ENV=py27-threads
-    - TOX_ENV=py33-threads
-    - TOX_ENV=py34-threads
-    - TOX_ENV=pypy-threads
-    - TOX_ENV=py26-greenlets
-    - TOX_ENV=py27-greenlets
-    - TOX_ENV=py33-greenlets
-    - TOX_ENV=py34-greenlets
-    - TOX_ENV=pypy-greenlets
-    - TOX_ENV=docs
-    - TOX_ENV=flake8-py2
-    - TOX_ENV=flake8-py3
-    - TOX_ENV=manifest
+cache:
+  directories:
+    - $HOME/.cache/pip
+
+language: python
+
+
+matrix:
+  include:
+    - python: "2.6"  # these are just to make travis's UI a bit prettier
+      env: TOXENV=py26-threads
+    - python: "2.6"
+      env: TOXENV=py26-greenlets
+    - python: "2.7"
+      env: TOXENV=py27-threads
+    - python: "2.7"
+      env: TOXENV=py27-greenlets
+    - python: "3.3"
+      env: TOXENV=py33-threads
+    - python: "3.3"
+      env: TOXENV=py33-greenlets
+    - python: "3.4"
+      env: TOXENV=py34-threads
+    - python: "3.4"
+      env: TOXENV=py34-greenlets
+    - python: "3.5"
+      env: TOXENV=py35-threads
+    - python: "3.5"
+      env: TOXENV=py35-greenlets
+    - python: "3.5"
+      env: TOXENV=py35-nocolorama
+    - python: "pypy"
+      env: TOXENV=pypy-threads
+    - python: "pypy"
+      env: TOXENV=pypy-greenlets
+
+
+    # Meta
+    - python: "3.5"
+      env: TOXENV=flake8
+    - python: "2.7"
+      env: TOXENV=manifest
+    - python: "2.7"
+      env: TOXENV=docs
+    - python: "3.5"
+      env: TOXENV=readme
 
 install:
-    - pip install tox coveralls
+  - pip install tox
 
 script:
-    - tox -e $TOX_ENV
+  - tox
+
+before_install:
+  - pip install codecov
 
 after_success:
-    - coveralls
+  - tox -e coverage-report
+  - codecov
diff --git a/AUTHORS.rst b/AUTHORS.rst
index 975bb51..06cee70 100644
--- a/AUTHORS.rst
+++ b/AUTHORS.rst
@@ -1,40 +1,10 @@
 Authors
--------
+=======
 
 ``structlog`` is written and maintained by `Hynek Schlawack <https://hynek.me/>`_.
-It’s inspired by previous work done by `Jean-Paul Calderone <http://as.ynchrono.us>`_ and `David Reid <https://dreid.org>`_.
+It’s inspired by previous work done by `Jean-Paul Calderone <http://as.ynchrono.us/>`_ and `David Reid <https://dreid.org/>`_.
 
 The development is kindly supported by `Variomedia AG <https://www.variomedia.de/>`_.
 
-The following folks helped forming ``structlog`` into what it is now:
-
-- `Alex Gaynor <https://github.com/alex>`_
-- `Christopher Armstrong <https://github.com/radix>`_
-- `Daniel Lindsley <https://github.com/toastdriven>`_
-- `David Reid <https://dreid.org>`_
-- `Donald Stufft <https://github.com/dstufft>`_
-- `George-Cristian Bîrzan <https://github.com/gcbirzan>`_
-- `Glyph <https://github.com/glyph>`_
-- `Holger Krekel <https://github.com/hpk42>`_
-- `Itamar Turner-Trauring <https://github.com/itamarst>`_
-- `Jack Pearkes <https://github.com/pearkes>`_
-- `Jean-Paul Calderone <http://as.ynchrono.us>`_
-- `Lakshmi Kannan <https://github.com/lakshmi-kannan>`_
-- `Lynn Root <https://github.com/econchick>`_
-- `Mathieu Leplatre <https://github.com/leplatrem>`_
-- `Noah Kantrowitz <https://github.com/coderanger>`_
-- `Tarek Ziadé <https://github.com/tarekziade>`_
-- `Thomas Heinrichsdobler <https://github.com/dertyp>`_
-- `Tom Lazar <https://github.com/tomster>`_
-- `Wouter Bolsterlee <https://github.com/wbolster>`_
-
+A full list of contributors can be found on GitHub’s `overview <https://github.com/hynek/structlog/graphs/contributors>`_.
 Some of them disapprove of the addition of thread local context data. :)
-
-
-Third Party Code
-^^^^^^^^^^^^^^^^
-
-The compatibility code that makes this software run on both Python 2 and 3 is heavily inspired and partly copy and pasted from the MIT-licensed six_ by Benjamin Peterson.
-The only reason why it’s not used as a dependency is to avoid any runtime dependency in the first place.
-
-.. _six: https://bitbucket.org/gutworth/six/
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
new file mode 100644
index 0000000..ca9869c
--- /dev/null
+++ b/CHANGELOG.rst
@@ -0,0 +1,189 @@
+Changelog
+=========
+
+Versions are year-based with a strict backward compatibility policy.
+The third digit is only for regressions.
+
+
+16.0.0 (2016-01-28)
+-------------------
+
+Changes:
+^^^^^^^^
+
+- ``structlog.processors.ExceptionPrettyPrinter`` and ``structlog.processors.format_exc_info`` now support passing of Exceptions on Python 3.
+- Clean up the context when exiting ``structlog.threadlocal.tmp_bind`` in case of exceptions.
+  [`64 <https://github.com/hynek/structlog/issues/64>`_]
+- Be more more lenient about missing ``__name__``\ s.
+  [`62 <https://github.com/hynek/structlog/pull/62>`_]
+- Add ``structlog.dev.ConsoleRenderer`` that renders the event dictionary aligned and with colors.
+- Use `six <https://pythonhosted.org/six/>`_ for compatibility.
+- Add ``structlog.processors.UnicodeDecoder`` that will decode all byte string values in an event dictionary to Unicode.
+- Add ``serializer`` parameter to ``structlog.processors.JSONRenderer`` which allows for using different (possibly faster) JSON encoders than the standard library.
+
+
+15.3.0 (2015-09-25)
+-------------------
+
+Changes:
+^^^^^^^^
+
+- Tolerate frames without a ``__name__``, better.
+  [`58 <https://github.com/hynek/structlog/pull/58>`_]
+- Officially support Python 3.5.
+- Add ``structlog.ReturnLogger.failure`` and ``structlog.PrintLogger.failure`` as preparation for the new Twisted logging system.
+
+
+15.2.0 (2015-06-10)
+-------------------
+
+Changes:
+^^^^^^^^
+
+- Allow empty lists of processors.
+  This is a valid use case since `#26 <https://github.com/hynek/structlog/issues/26>`_ has been merged.
+  Before, supplying an empty list resulted in the defaults being used.
+- Prevent Twisted's ``log.err`` from quoting strings rendered by ``structlog.twisted.JSONRenderer``.
+- Better support of ``logging.Logger.exception`` within ``structlog``.
+  [`52 <https://github.com/hynek/structlog/pull/52>`_]
+- Add option to specify target key in ``structlog.processors.TimeStamper`` processor.
+  [`51 <https://github.com/hynek/structlog/pull/51>`_]
+
+
+15.1.0 (2015-02-24)
+-------------------
+
+Changes:
+^^^^^^^^
+
+- Tolerate frames without a ``__name__``.
+
+
+15.0.0 (2015-01-23)
+-------------------
+
+Changes:
+^^^^^^^^
+
+- Add ``structlog.stdlib.add_log_level`` and ``structlog.stdlib.add_logger_name`` processors.
+  [`44 <https://github.com/hynek/structlog/pull/44>`_]
+- Add ``structlog.stdlib.BoundLogger.log``.
+  [`42 <https://github.com/hynek/structlog/pull/42>`_]
+- Pass positional arguments to stdlib wrapped loggers that use string formatting.
+  [`19 <https://github.com/hynek/structlog/pull/19>`_]
+- ``structlog`` is now dually licensed under the `Apache License, Version 2 <http://choosealicense.com/licenses/apache/>`_ and the `MIT <http://choosealicense.com/licenses/mit/>`_ license.
+  Therefore it is now legal to use structlog with `GPLv2 <http://choosealicense.com/licenses/gpl-2.0/>`_-licensed projects.
+  [`28 <https://github.com/hynek/structlog/pull/28>`_]
+- Add ``structlog.stdlib.BoundLogger.exception``.
+  [`22 <https://github.com/hynek/structlog/pull/22>`_]
+
+
+0.4.2 (2014-07-26)
+------------------
+
+Changes:
+^^^^^^^^
+
+- Fixed a memory leak in greenlet code that emulates thread locals.
+  It shouldn't matter in practice unless you use multiple wrapped dicts within one program that is rather unlikely.
+  [`8 <https://github.com/hynek/structlog/pull/8>`_]
+- ``structlog.PrintLogger`` now is thread-safe.
+- Test Twisted-related code on Python 3 (with some caveats).
+- Drop support for Python 3.2.
+  There is no justification to add complexity for a Python version that nobody uses.
+  If you are one of the `0.350% <https://alexgaynor.net/2014/jan/03/pypi-download-statistics/>`_ that use Python 3.2, please stick to the 0.4 branch; critical bugs will still be fixed.
+- Officially support Python 3.4.
+- Allow final processor to return a dictionary.
+  See the adapting chapter.
+  [`26 <https://github.com/hynek/structlog/pull/26>`_]
+- ``from structlog import *`` works now (but you still shouldn't use it).
+
+
+0.4.1 (2013-12-19)
+------------------
+
+Changes:
+^^^^^^^^
+
+- Don't cache proxied methods in ``structlog.threadlocal._ThreadLocalDictWrapper``.
+  This doesn't affect regular users.
+- Various doc fixes.
+
+
+0.4.0 (2013-11-10)
+------------------
+
+
+Backward-incompatible changes:
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Changes:
+^^^^^^^^
+
+- Add ``structlog.processors.StackInfoRenderer`` for adding stack information to log entries without involving exceptions.
+  Also added it to default processor chain.
+  [`6 <https://github.com/hynek/structlog/pull/6>`_]
+- Allow optional positional arguments for ``structlog.get_logger`` that are passed to logger factories.
+  The standard library factory uses this for explicit logger naming.
+  [`12 <https://github.com/hynek/structlog/pull/12>`_]
+- Add ``structlog.processors.ExceptionPrettyPrinter`` for development and testing when multiline log entries aren't just acceptable but even helpful.
+- Allow the standard library name guesser to ignore certain frame names.
+  This is useful together with frameworks.
+- Add meta data (e.g. function names, line numbers) extraction for wrapped stdlib loggers.
+  [`5 <https://github.com/hynek/structlog/pull/5>`_]
+
+
+0.3.2 (2013-09-27)
+------------------
+
+Changes:
+^^^^^^^^
+
+- Fix stdlib's name guessing.
+
+
+0.3.1 (2013-09-26)
+------------------
+
+Changes:
+^^^^^^^^
+
+- Add forgotten ``structlog.processors.TimeStamper`` to API documentation.
+
+
+0.3.0 (2013-09-23)
+------------------
+
+Changes:
+^^^^^^^^
+
+- Greatly enhanced and polished the documentation and added a new theme based on Write The Docs, requests, and Flask.
+- Add Python Standard Library-specific BoundLogger that has an explicit API instead of intercepting unknown method calls.
+  See ``structlog.stdlib.BoundLogger``.
+- ``structlog.ReturnLogger`` now allows arbitrary positional and keyword arguments.
+- Add Twisted-specific BoundLogger that has an explicit API instead of intercepting unknown method calls.
+  See ``structlog.twisted.BoundLogger``.
+- Allow logger proxies that are returned by ``structlog.get_logger`` and ``structlog.wrap_logger`` to cache the BoundLogger they assemble according to configuration on first use.
+  See the chapter on performance and the ``cache_logger_on_first_use`` argument of ``structlog.configure`` and ``structlog.wrap_logger``.
+- Extract a common base class for loggers that does nothing except keeping the context state.
+  This makes writing custom loggers much easier and more straight-forward.
+  See ``structlog.BoundLoggerBase``.
+
+
+0.2.0 (2013-09-17)
+------------------
+
+Changes:
+^^^^^^^^
+
+- Promote to stable, thus henceforth a strict backward compatibility policy is put into effect.
+- Add ``key_order`` option to ``structlog.processors.KeyValueRenderer`` for more predictable log entries with any ``dict`` class.
+- ``structlog.PrintLogger`` now uses proper I/O routines and is thus viable not only for examples but also for production.
+- Enhance Twisted support by offering JSONification of non-structlog log entries.
+- Allow for custom serialization in ``structlog.twisted.JSONRenderer`` without abusing ``__repr__``.
+
+
+0.1.0 (2013-09-16)
+------------------
+
+Initial release.
diff --git a/CODE_OF_CONDUCT.rst b/CODE_OF_CONDUCT.rst
new file mode 100644
index 0000000..b7f31dd
--- /dev/null
+++ b/CODE_OF_CONDUCT.rst
@@ -0,0 +1,30 @@
+Contributor Code of Conduct
+===========================
+
+As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
+
+We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, or nationality.
+
+Examples of unacceptable behavior by participants include:
+
+* The use of sexualized language or imagery
+* Personal attacks
+* Trolling or insulting/derogatory comments
+* Public or private harassment
+* Publishing other's private information, such as physical or electronic
+  addresses, without explicit permission
+* Other unethical or unprofessional conduct
+
+Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
+
+By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project.
+Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team.
+
+This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community.
+
+Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting a project maintainer at hs at ox.cx.
+All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances.
+Maintainers are obligated to maintain confidentiality with regard to the reporter of an incident.
+
+This Code of Conduct is adapted from the `Contributor Covenant <http://contributor-covenant.org/>`_,
+version 1.3.0, available at http://contributor-covenant.org/version/1/3/0/.
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
index b93daf4..a2cbcbe 100644
--- a/CONTRIBUTING.rst
+++ b/CONTRIBUTING.rst
@@ -1,40 +1,41 @@
 How To Contribute
 =================
 
-Every open source project lives from the generous help by contributors that sacrifice their time and structlog is no different.
+Every open source project lives from the generous help by contributors that sacrifice their time and ``structlog`` is no different.
 
-To make participation as pleasant as possible, this project adheres to the `Code of Conduct`_ by the Python Software Foundation.
+Here are a few guidelines to get you started:
 
-Here are a few hints and rules to get you started:
-
-- Add yourself to the AUTHORS.rst_ file in an alphabetical fashion.
-  Every contribution is valuable and shall be credited.
+- Try to limit each pull request to one change only.
+- To run the test suite, all you need is a recent tox_.
+  It will ensure the test suite runs with all dependencies against all Python versions just as it will on `Travis CI`_.
+  If you lack some Python version, you can can always limit the environments like ``tox -e py27,py35`` (in that case you may want to look into pyenv_ that makes it very easy to install many different Python versions in parallel).
+- Make sure your changes pass our CI.
+  You won't get any feedback until it's green unless you ask for it.
 - If your change is noteworthy, add an entry to the changelog_.
+  Use present tense, semantic newlines, and add link to your pull request.
 - No contribution is too small; please submit as many fixes for typos and grammar bloopers as you can!
-- Don’t *ever* break backward compatibility.
-  ``structlog`` is an infrastructure library people rely on; therefore highest care must be put into avoiding breakage on updates.
-  If it ever *has* to happen for higher reasons, structlog will follow the proven procedures_ of the Twisted project.
+- Don’t break `backward compatibility`_.
 - *Always* add tests and docs for your code.
-  This is a hard rule; patches with missing tests or documentation won’t be merged – if a feature is not tested or documented, it doesn’t exist.
+  This is a hard rule; patches with missing tests or documentation won’t be merged.
+- Write `good test docstrings`_.
 - Obey `PEP 8`_ and `PEP 257`_.
-  Twisted-specific modules use CamelCase.
-- Write `good commit messages`_.
-
-.. note::
-   If you have something great but aren’t sure whether it adheres -- or even can adhere -- to the rules above: **please submit a pull request anyway**!
+- If you address review feedback, make sure to bump the pull request.
+  Maintainers don’t receive notifications if you push new commits.
 
-   In the best case, we can mold it into something, in the worst case the pull request gets politely closed.
-   There’s absolutely nothing to fear.
+Please note that this project is released with a Contributor `Code of Conduct`_.
+By participating in this project you agree to abide by its terms.
+Please report any harm to `Hynek Schlawack`_ in any way you find appropriate.
 
-Thank you for considering to contribute to structlog!
-If you have any question or concerns, feel free to reach out to me -- there is also a ``#structlog`` channel on freenode_.
+Thank you for considering to contribute to ``structlog``!
 
 
+.. _`Hynek Schlawack`: https://hynek.me/about/
 .. _`PEP 8`: https://www.python.org/dev/peps/pep-0008/
 .. _`PEP 257`: https://www.python.org/dev/peps/pep-0257/
-.. _`good commit messages`: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
-.. _`Code of Conduct`: https://www.python.org/psf/codeofconduct/
-.. _changelog: https://github.com/hynek/structlog/blob/master/docs/changelog.rst
-.. _AUTHORS.rst: https://github.com/hynek/structlog/blob/master/AUTHORS.rst
-.. _procedures: https://twistedmatrix.com/trac/wiki/CompatibilityPolicy
-.. _`freenode`: https://freenode.net
+.. _`good test docstrings`: https://jml.io/pages/test-docstrings.html
+.. _`Code of Conduct`: https://github.com/hynek/structlog/blob/master/CODE_OF_CONDUCT.rst
+.. _changelog: https://github.com/hynek/structlog/blob/master/CHANGELOG.rst
+.. _`backward compatibility`: https://structlog.readthedocs.org/en/latest/backward-compatibility.html
+.. _`tox`: https://testrun.org/tox/
+.. _`Travis CI`: https://travis-ci.org/
+.. _pyenv: https://github.com/yyuu/pyenv
diff --git a/LICENSE.mit b/LICENSE.mit
index d210e74..cdaa1f7 100644
--- a/LICENSE.mit
+++ b/LICENSE.mit
@@ -1,6 +1,6 @@
 The MIT License (MIT)
 
-Copyright (c) 2013-2015 Hynek Schlawack
+Copyright (c) 2013 Hynek Schlawack
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/MANIFEST.in b/MANIFEST.in
index b6d90cb..20cc4b2 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -3,11 +3,7 @@ include *.rst
 include *.txt
 include .travis.yml
 include tox.ini
-recursive-include docs *.bat
-recursive-include docs *.keep
-recursive-include docs *.py
-recursive-include docs *.rst
-recursive-include docs *.txt
-recursive-include docs Makefile
-recursive-include tests *.py
+graft tests
+recursive-exclude tests *.pyc
+graft docs
 prune docs/_build
diff --git a/PKG-INFO b/PKG-INFO
index 3688bbf..37b6464 100644
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,7 +1,7 @@
 Metadata-Version: 1.1
 Name: structlog
-Version: 15.2.0
-Summary: Structured logging for Python.
+Version: 16.0.0
+Summary: Structured Logging for Python
 Home-page: http://www.structlog.org/
 Author: Hynek Schlawack
 Author-email: hs at ox.cx
@@ -10,15 +10,14 @@ Description: ========================================
         structlog: Structured Logging for Python
         ========================================
         
-        .. image:: https://pypip.in/version/structlog/badge.svg
-           :target: https://pypi.python.org/pypi/structlog/
-           :alt: Latest Version
-        
         .. image:: https://travis-ci.org/hynek/structlog.svg?branch=master
            :target: https://travis-ci.org/hynek/structlog
         
-        .. image:: https://coveralls.io/repos/hynek/structlog/badge.svg?branch=master
-            :target: https://coveralls.io/r/hynek/structlog?branch=master
+        .. image:: https://codecov.io/github/hynek/structlog/coverage.svg?branch=master
+           :target: https://codecov.io/github/hynek/structlog?branch=master
+        
+        .. image:: https://www.irccloud.com/invite-svg?channel=%23structlog&hostname=irc.freenode.net&port=6697&ssl=1
+           :target: https://www.irccloud.com/invite?channel=%23structlog&hostname=irc.freenode.net&port=6697&ssl=1
         
         ``structlog`` makes structured logging in Python easy by *augmenting* your *existing* logger.
         It allows you to split your log entries up into key/value pairs and build them incrementally without annoying boilerplate code.
@@ -27,6 +26,8 @@ Description: ========================================
         
            >>> from structlog import get_logger
            >>> log = get_logger()
+           >>> log.info("key_value_logging", out_of_the_box=True, effort=0)
+           out_of_the_box=True effort=0 event='key_value_logging'
            >>> log = log.bind(user='anonymous', some_key=23)
            >>> log = log.bind(user='hynek', another_key=42)
            >>> log.info('user.logged_in', happy=True)
@@ -34,12 +35,46 @@ Description: ========================================
         
         .. begin
         
-        It's dual-licensed under `Apache License, version 2 <http://choosealicense.com/licenses/apache/>`_ and `MIT <http://choosealicense.com/licenses/mit/>`_, available from `PyPI <https://pypi.python.org/pypi/structlog/>`_, the source code can be found on `GitHub <https://github.com/hynek/structlog>`_, the documentation at `http://www.structlog.org/ <http://www.structlog.org>`_.
+        It's dual-licensed under `Apache License, version 2 <http://choosealicense.com/licenses/apache/>`_ and `MIT <http://choosealicense.com/licenses/mit/>`_, available from `PyPI <https://pypi.python.org/pypi/structlog/>`_, the source code can be found on `GitHub <https://github.com/hynek/structlog>`_, the documentation at http://www.structlog.org/.
         
-        ``structlog`` targets Python 2.6, 2.7, 3.3, 3.4, and PyPy with no additional dependencies for core functionality.
+        ``structlog`` targets Python 2.6, 2.7, 3.3 and newer, and PyPy.
         
         If you need any help, visit us on ``#structlog`` on `Freenode <https://freenode.net>`_!
         
+        
+        Release Information
+        ===================
+        
+        16.0.0 (2016-01-28)
+        -------------------
+        
+        Changes:
+        ^^^^^^^^
+        
+        - ``structlog.processors.ExceptionPrettyPrinter`` and ``structlog.processors.format_exc_info`` now support passing of Exceptions on Python 3.
+        - Clean up the context when exiting ``structlog.threadlocal.tmp_bind`` in case of exceptions.
+          [`64 <https://github.com/hynek/structlog/issues/64>`_]
+        - Be more more lenient about missing ``__name__``\ s.
+          [`62 <https://github.com/hynek/structlog/pull/62>`_]
+        - Add ``structlog.dev.ConsoleRenderer`` that renders the event dictionary aligned and with colors.
+        - Use `six <https://pythonhosted.org/six/>`_ for compatibility.
+        - Add ``structlog.processors.UnicodeDecoder`` that will decode all byte string values in an event dictionary to Unicode.
+        - Add ``serializer`` parameter to ``structlog.processors.JSONRenderer`` which allows for using different (possibly faster) JSON encoders than the standard library.
+        
+        `Full changelog <http://structlog.readthedocs.org/en/stable/changelog.html>`_.
+        
+        Authors
+        =======
+        
+        ``structlog`` is written and maintained by `Hynek Schlawack <https://hynek.me/>`_.
+        It’s inspired by previous work done by `Jean-Paul Calderone <http://as.ynchrono.us/>`_ and `David Reid <https://dreid.org/>`_.
+        
+        The development is kindly supported by `Variomedia AG <https://www.variomedia.de/>`_.
+        
+        A full list of contributors can be found on GitHub’s `overview <https://github.com/hynek/structlog/graphs/contributors>`_.
+        Some of them disapprove of the addition of thread local context data. :)
+        
+Keywords: logging,structured,structure,log
 Platform: UNKNOWN
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
@@ -53,5 +88,8 @@ Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3.3
 Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: Implementation :: PyPy
 Classifier: Programming Language :: Python
 Classifier: Topic :: Software Development :: Libraries :: Python Modules
diff --git a/README.rst b/README.rst
index c464914..33b9885 100644
--- a/README.rst
+++ b/README.rst
@@ -2,15 +2,14 @@
 structlog: Structured Logging for Python
 ========================================
 
-.. image:: https://pypip.in/version/structlog/badge.svg
-   :target: https://pypi.python.org/pypi/structlog/
-   :alt: Latest Version
-
 .. image:: https://travis-ci.org/hynek/structlog.svg?branch=master
    :target: https://travis-ci.org/hynek/structlog
 
-.. image:: https://coveralls.io/repos/hynek/structlog/badge.svg?branch=master
-    :target: https://coveralls.io/r/hynek/structlog?branch=master
+.. image:: https://codecov.io/github/hynek/structlog/coverage.svg?branch=master
+   :target: https://codecov.io/github/hynek/structlog?branch=master
+
+.. image:: https://www.irccloud.com/invite-svg?channel=%23structlog&hostname=irc.freenode.net&port=6697&ssl=1
+   :target: https://www.irccloud.com/invite?channel=%23structlog&hostname=irc.freenode.net&port=6697&ssl=1
 
 ``structlog`` makes structured logging in Python easy by *augmenting* your *existing* logger.
 It allows you to split your log entries up into key/value pairs and build them incrementally without annoying boilerplate code.
@@ -19,6 +18,8 @@ It allows you to split your log entries up into key/value pairs and build them i
 
    >>> from structlog import get_logger
    >>> log = get_logger()
+   >>> log.info("key_value_logging", out_of_the_box=True, effort=0)
+   out_of_the_box=True effort=0 event='key_value_logging'
    >>> log = log.bind(user='anonymous', some_key=23)
    >>> log = log.bind(user='hynek', another_key=42)
    >>> log.info('user.logged_in', happy=True)
@@ -26,8 +27,8 @@ It allows you to split your log entries up into key/value pairs and build them i
 
 .. begin
 
-It's dual-licensed under `Apache License, version 2 <http://choosealicense.com/licenses/apache/>`_ and `MIT <http://choosealicense.com/licenses/mit/>`_, available from `PyPI <https://pypi.python.org/pypi/structlog/>`_, the source code can be found on `GitHub <https://github.com/hynek/structlog>`_, the documentation at `http://www.structlog.org/ <http://www.structlog.org>`_.
+It's dual-licensed under `Apache License, version 2 <http://choosealicense.com/licenses/apache/>`_ and `MIT <http://choosealicense.com/licenses/mit/>`_, available from `PyPI <https://pypi.python.org/pypi/structlog/>`_, the source code can be found on `GitHub <https://github.com/hynek/structlog>`_, the documentation at http://www.structlog.org/.
 
-``structlog`` targets Python 2.6, 2.7, 3.3, 3.4, and PyPy with no additional dependencies for core functionality.
+``structlog`` targets Python 2.6, 2.7, 3.3 and newer, and PyPy.
 
 If you need any help, visit us on ``#structlog`` on `Freenode <https://freenode.net>`_!
diff --git a/dev-requirements.txt b/dev-requirements.txt
index 3670231..e8165ec 100644
--- a/dev-requirements.txt
+++ b/dev-requirements.txt
@@ -1,8 +1,6 @@
--r docs-requirements.txt
-check-manifest
-freezegun
+-e .
+coverage
+freezegun>=0.2.8
 pretend
-pytest-cov
 pytest
-twine
-wheel
+simplejson
diff --git a/docs-requirements.txt b/docs-requirements.txt
index 06624fe..ddd60f8 100644
--- a/docs-requirements.txt
+++ b/docs-requirements.txt
@@ -1,5 +1,4 @@
 -e .
-releases
 sphinx
 sphinx_rtd_theme
 twisted
diff --git a/docs/_static/console_renderer.png b/docs/_static/console_renderer.png
new file mode 100644
index 0000000..cfff817
Binary files /dev/null and b/docs/_static/console_renderer.png differ
diff --git a/docs/api.rst b/docs/api.rst
index c7ebf6b..f9e73c5 100644
--- a/docs/api.rst
+++ b/docs/api.rst
@@ -1,7 +1,7 @@
 .. _api:
 
-structlog Package
-=================
+API Reference
+=============
 
 .. module:: structlog
 
@@ -24,12 +24,12 @@ structlog Package
    :members: new, bind, unbind
 
 .. autoclass:: PrintLogger
-   :members: msg, err, debug, info, warning, error, critical, log
+   :members: msg, err, debug, info, warning, error, critical, log, failure
 
 .. autoclass:: PrintLoggerFactory
 
 .. autoclass:: ReturnLogger
-   :members: msg, err, debug, info, warning, error, critical, log
+   :members: msg, err, debug, info, warning, error, critical, log, failure
 
 .. autoclass:: ReturnLoggerFactory
 
@@ -38,6 +38,15 @@ structlog Package
 .. autoclass:: BoundLoggerBase
    :members: new, bind, unbind, _logger, _process_event, _proxy_to_logger
 
+
+:mod:`dev` Module
+-----------------
+
+.. automodule:: structlog.dev
+
+.. autoclass:: ConsoleRenderer
+
+
 :mod:`threadlocal` Module
 -------------------------
 
@@ -49,6 +58,7 @@ structlog Package
 
 .. autofunction:: as_immutable
 
+
 .. _procs:
 
 :mod:`processors` Module
@@ -60,16 +70,48 @@ structlog Package
 
 .. autoclass:: KeyValueRenderer
 
+   .. doctest::
+
+      >>> from structlog.processors import KeyValueRenderer
+      >>> KeyValueRenderer(sort_keys=True)(None, None, {'a': 42, 'b': [1, 2, 3]})
+      'a=42 b=[1, 2, 3]'
+      >>> KeyValueRenderer(key_order=['b', 'a'])(None, None,
+      ...                                       {'a': 42, 'b': [1, 2, 3]})
+      'b=[1, 2, 3] a=42'
+
+
+.. autoclass:: UnicodeDecoder
+
 .. autoclass:: UnicodeEncoder
 
 .. autofunction:: format_exc_info
 
+   .. doctest::
+
+      >>> from structlog.processors import format_exc_info
+      >>> try:
+      ...     raise ValueError
+      ... except ValueError:
+      ...     format_exc_info(None, None, {'exc_info': True})# doctest: +ELLIPSIS
+      {'exception': 'Traceback (most recent call last):...
+
 .. autoclass:: StackInfoRenderer
 
 .. autoclass:: ExceptionPrettyPrinter
 
 .. autoclass:: TimeStamper(fmt=None, utc=True)
 
+   .. doctest::
+
+      >>> from structlog.processors import TimeStamper
+      >>> TimeStamper()(None, None, {})  # doctest: +SKIP
+      {'timestamp': 1378994017}
+      >>> TimeStamper(fmt='iso')(None, None, {})  # doctest: +SKIP
+      {'timestamp': '2013-09-12T13:54:26.996778Z'}
+      >>> TimeStamper(fmt='%Y', key='year')(None, None, {})  # doctest: +SKIP
+      {'year': '2013'}
+
+
 :mod:`stdlib` Module
 --------------------
 
@@ -89,6 +131,7 @@ structlog Package
 
 .. autoclass:: PositionalArgumentsFormatter
 
+
 :mod:`twisted` Module
 ---------------------
 
@@ -104,6 +147,31 @@ structlog Package
 
 .. autoclass:: JSONRenderer
 
+   .. doctest::
+
+      >>> from structlog.processors import JSONRenderer
+      >>> JSONRenderer(sort_keys=True)(None, None, {'a': 42, 'b': [1, 2, 3]})
+      '{"a": 42, "b": [1, 2, 3]}'
+
+   Bound objects are attempted to be serialize using a ``__structlog__`` method.
+   If none is defined, ``repr()`` is used:
+
+   .. doctest::
+
+      >>> class C1(object):
+      ...     def __structlog__(self):
+      ...         return ['C1!']
+      ...     def __repr__(self):
+      ...         return '__structlog__ took precedence'
+      >>> class C2(object):
+      ...     def __repr__(self):
+      ...         return 'No __structlog__, so this is used.'
+      >>> from structlog.processors import JSONRenderer
+      >>> JSONRenderer(sort_keys=True)(None, None, {'c1': C1(), 'c2': C2()})
+      '{"c1": ["C1!"], "c2": "No __structlog__, so this is used."}'
+
+   Please note that additionally to strings, you can also return any type the standard library JSON module knows about -- like in this example a list.
+
 .. autofunction:: plainJSONStdOutLogger
 
 .. autofunction:: JSONLogObserverWrapper
diff --git a/docs/backward-compatibility.rst b/docs/backward-compatibility.rst
new file mode 100644
index 0000000..0d5abb0
--- /dev/null
+++ b/docs/backward-compatibility.rst
@@ -0,0 +1,16 @@
+Backward Compatibility
+======================
+
+``structlog`` has a very strong backward compatibility policy that is inspired by the one of the `Twisted framework <https://twistedmatrix.com/trac/wiki/CompatibilityPolicy>`_.
+
+Put simply, you shouldn't ever be afraid to upgrade ``structlog`` if you're using its public APIs.
+If there will ever be need to break compatibility, it will be announced in the :doc:`changelog` and raise deprecation warning for a year before it's finally really broken.
+
+
+.. _exemption:
+
+.. warning::
+
+   You cannot however rely on the default settings and the :mod:`structlog.dev` module.
+   They may be adjusted in the future to provide a better experience when starting to use ``structlog``.
+   So please make sure to **always** properly configure your applications.
diff --git a/docs/changelog.rst b/docs/changelog.rst
index 62720a4..565b052 100644
--- a/docs/changelog.rst
+++ b/docs/changelog.rst
@@ -1,71 +1 @@
-=========
-Changelog
-=========
-
-- :release:`15.2.0 <2015-06-10>`
-- :bug:`- major` Allow empty lists of processors.
-  This is a valid use case since `#26 <https://github.com/hynek/structlog/issues/26>`_ has been merged.
-  Before, supplying an empty list resulted in the defaults being used.
-- :bug:`- major` Prevent Twisted's ``log.err`` from quoting strings rendered by :class:`structlog.twisted.JSONRenderer`.
-- :feature:`52` Better support of :meth:`logging.Logger.exception` within ``structlog``.
-- :feature:`51` Add option to specify target key in :class:`structlog.processors.TimeStamper` processor.
-- :release:`15.1.0 <2015-02-24>`
-- :bug:`- major` Tolerate frames without a ``__name__``.
-- :release:`15.0.0 <2015-01-23>`
-- :feature:`44` Add :func:`structlog.stdlib.add_log_level` and :func:`structlog.stdlib.add_logger_name` processors.
-- :feature:`42` Add :func:`structlog.stdlib.BoundLogger.log`.
-- :feature:`19` Pass positional arguments to stdlib wrapped loggers that use string formatting.
-- :feature:`28` structlog is now dually licensed under the `Apache License, Version 2 <http://choosealicense.com/licenses/apache-2.0/>`_ and the `MIT <http://choosealicense.com/licenses/mit/>`_ license.
-  Therefore it is now legal to use structlog with `GPLv2 <http://choosealicense.com/licenses/gpl-2.0/>`_-licensed projects.
-- :feature:`22` Add :func:`structlog.stdlib.BoundLogger.exception`.
-- :release:`0.4.2 <2014-07-26>`
-- :bug:`8` Fixed a memory leak in greenlet code that emulates thread locals.
-  It shouldn't matter in practice unless you use multiple wrapped dicts within one program that is rather unlikely.
-- :feature:`-` :class:`structlog.PrintLogger` now is thread-safe.
-- :feature:`-` Test Twisted-related code on Python 3 (with some caveats).
-- :feature:`-` Drop support for Python 3.2.
-  There is no justification to add complexity for a Python version that nobody uses.
-  If you are one of the `0.350% <https://alexgaynor.net/2014/jan/03/pypi-download-statistics/>`_ that use Python 3.2, please stick to the 0.4 branch; critical bugs will still be fixed.
-- :feature:`-` Officially support Python 3.4.
-- :feature:`26` Allow final processor to return a dictionary.
-  See :ref:`adapting`.
-- :bug:`-` ``from structlog import *`` works now (but you still shouldn't use it).
-- :release:`0.4.1 <2013-12-19>`
-- :bug:`-` Don't cache proxied methods in :class:`structlog.threadlocal._ThreadLocalDictWrapper`.
-  This doesn't affect regular users.
-- :bug:`-` Various doc fixes.
-- :release:`0.4.0 <2013-11-10>`
-- :feature:`6` Add :class:`structlog.processors.StackInfoRenderer` for adding stack information to log entries without involving exceptions.
-  Also added it to default processor chain.
-- :feature:`12` Allow optional positional arguments for :func:`structlog.get_logger` that are passed to logger factories.
-  The standard library factory uses this for explicit logger naming.
-- :feature:`-` Add :class:`structlog.processors.ExceptionPrettyPrinter` for development and testing when multiline log entries aren't just acceptable but even helpful.
-- :feature:`-` Allow the standard library name guesser to ignore certain frame names.
-  This is useful together with frameworks.
-- :feature:`5` Add meta data (e.g. function names, line numbers) extraction for wrapped stdlib loggers.
-- :release:`0.3.2 <2013-09-27>`
-- :bug:`-` Fix stdlib's name guessing.
-- :release:`0.3.1 <2013-09-26>`
-- :bug:`-` Add forgotten :class:`structlog.processors.TimeStamper` to API documentation.
-- :release:`0.3.0 <2013-09-23>`
-- :support:`-` Greatly enhanced and polished the documentation and added a new theme based on Write The Docs, requests, and Flask.
-  See :doc:`license`.
-- :feature:`-` Add Python Standard Library-specific BoundLogger that has an explicit API instead of intercepting unknown method calls.
-  See :class:`structlog.stdlib.BoundLogger`.
-- :feature:`-` :class:`structlog.ReturnLogger` now allows arbitrary positional and keyword arguments.
-- :feature:`-` Add Twisted-specific BoundLogger that has an explicit API instead of intercepting unknown method calls.
-  See :class:`structlog.twisted.BoundLogger`.
-- :feature:`-` Allow logger proxies that are returned by :func:`structlog.get_logger` and :func:`structlog.wrap_logger` to cache the BoundLogger they assemble according to configuration on first use.
-  See :doc:`performance` and the `cache_logger_on_first_use` of :func:`structlog.configure` and :func:`structlog.wrap_logger`.
-- :feature:`-` Extract a common base class for loggers that does nothing except keeping the context state.
-  This makes writing custom loggers much easier and more straight-forward.
-  See :class:`structlog.BoundLoggerBase`.
-- :release:`0.2.0 <2013-09-17>`
-- :feature:`-` Promote to stable, thus henceforth a strict backward compatibility policy is put into effect.
-  See :ref:`contributing`.
-- :feature:`-` Add `key_order` option to :class:`structlog.processors.KeyValueRenderer` for more predictable log entries with any `dict` class.
-- :feature:`-` :class:`structlog.PrintLogger` now uses proper I/O routines and is thus viable not only for examples but also for production.
-- :feature:`-` :doc:`Enhance Twisted support <twisted>` by offering JSONification of non-structlog log entries.
-- :feature:`-` Allow for custom serialization in :class:`structlog.twisted.JSONRenderer` without abusing ``__repr__``.
-- :release:`0.1.0 <2013-09-16>`
-- :feature:`-` Initial work.
+.. include:: ../CHANGELOG.rst
diff --git a/docs/conf.py b/docs/conf.py
index 0076cff..8b8b3bd 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -14,7 +14,6 @@
 # serve to show the default.
 
 import codecs
-import datetime
 import os
 import re
 
@@ -53,17 +52,12 @@ def find_version(*file_paths):
 # Add any Sphinx extension module names here, as strings. They can be
 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
 extensions = [
-    'releases',
     'sphinx.ext.autodoc',
     'sphinx.ext.doctest',
     'sphinx.ext.intersphinx',
     'sphinx.ext.viewcode',
 ]
 
-# 'releases' (changelog) settings
-releases_issue_uri = "https://github.com/hynek/structlog/issues/%s"
-releases_release_uri = "https://github.com/hynek/structlog/tree/%s"
... 2694 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-structlog.git



More information about the Python-modules-commits mailing list