Recursive encoding of dict keys which are Python objects
Test for refs within arrays
Proper test for object dict key
Simple test for non string dict keys
Merge remote branch 'eoghanmurray/master' into dictkeys

The next commit will fix the import dependencies.

* eoghanmurray/master:
  Simple test for non string dict keys
  Proper test for object dict key
  Test for refs within arrays
  Recursive encoding of dict keys which are Python objects

Conflicts:
	jsonpickle/tags.py
jsonpickle: Add a pluginmgr module

This is the JSONPluginMgr formerly in __init__.py.
Factor this out so that we can call encode()/decode()
from within the un/pickler.

Signed-off-by: David Aguilar <davvid@gmail.com>
{pickler,unpickler}: Use the new pluginmgr module

Solve the import dependency issue introduced when merging
the dict keys support in 84748ab3ef221d25883318e527263276c6efcd98.
Dictionaries with dict keys (and other objects) are now supported.

Also, do away with the need for a separate DICT_KEY entry in tags.py
by reusing the existing OBJECT tag.

Closes #5

Signed-off-by: David Aguilar <davvid@gmail.com>
jsonpickle: Add a 'make_refs' option to encode()

This allows callers to disable jsonpickle's inter-object
referencing.  Redundant copies of flattened objects are
returned when make_refs is True.

Closes #1

Signed-off-by: David Aguilar <davvid@gmail.com>
Merge remote branch 'origin/master' into make_refs

Conflicts:
	jsonpickle/__init__.py
SUPPORTED_BACKENDS was moved in 7bbf204870fca91dcc
Merge remote-tracking branch 'eoghanmurray/dictkeys' into for/make_refs

* eoghanmurray/dictkeys:
  SUPPORTED_BACKENDS was moved in 7bbf204870fca91dcc

Conflicts:
	setup.py

Signed-off-by: David Aguilar <davvid@gmail.com>
pickler: Fix failing tests

Some logic may have crossed which caused the make_refs branch to fail
its tests.  The reason was that _mkrefs() changed to return either
objects or reference objects, but one code path was still returning
`bool`, which was its original behavior.

The unpickable condition has now been folded into the make_refs
condition which decreases complexity and fixes the tests.

Signed-off-by: David Aguilar <davvid@gmail.com>
runtests.py: Fix sys.path handling

Prepend into sys.path so that the source repo is preferred over other
paths.  This avoids failing tests when jsonpickle is already installed
in the default site-packages directory.

Signed-off-by: David Aguilar <davvid@gmail.com>
tests: Remove a leftover print statement and shorten lines per PEP-8

Signed-off-by: David Aguilar <davvid@gmail.com>
Merge pull request #25 from davvid/for/make_refs

setup.py fixes for the `make_refs` branch from Eoghan Murray
Merge branch 'make-refs'

This merges the "make-refs" branch but does not bring in the
non-string-key support.

* make-refs:
  tests: Remove a leftover print statement and shorten lines per PEP-8
  runtests.py: Fix sys.path handling
  pickler: Fix failing tests
  SUPPORTED_BACKENDS was moved in 7bbf204870fca91dcc
  jsonpickle: Add a 'make_refs' option to encode()
  {pickler,unpickler}: Use the new pluginmgr module
  jsonpickle: Add a pluginmgr module
  Simple test for non string dict keys
  Proper test for object dict key
  Test for refs within arrays
  Recursive encoding of dict keys which are Python objects

Signed-off-by: David Aguilar <davvid@gmail.com>

Conflicts:
	jsonpickle/__init__.py
	jsonpickle/pickler.py
	setup.py
	tests/backends_tests.py
	tests/jsonpickle_test.py
	tests/runtests.py
version: clear mark this as a development version