collective.jsonify


Namecollective.jsonify JSON
Version 1.6 PyPI version JSON
download
home_pagehttps://github.com/collective/collective.jsonify
SummaryJSON representation for content in Plone from 2.0 and above
upload_time2023-02-10 12:13:02
maintainer
docs_urlNone
authorRok Garbas
requires_python
licenseGPL
keywords plone content export json transmogrify
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ``collective.jsonify`` exports your Plone content to JSON_.

Many packages that export data from Plone have complicated dependencies, and so
only work with Plone 3.0 or higher (or not even with 3.0).
``collective.jsonify``'s only dependency is simplejson_. It can be installed in
any Plone version as far back as:

- Plone 2.1 (or probably even Plone 2.0, but not tested)
- Zope 2.6.4 (with CMF rather than Plone)
- Python 2.2

The exported JSON_ is a collective.transmogrifier_ friendly format. Install
``collective.jsonify`` on a site you want to export from, and setup an import
transmogrifier pipeline on the site you're importing to, using the blueprints in
the collective.jsonmigrator_ package.

Alternatively use the provided export script by adding it to an external method as described in `using the exporter`_.

For more information see the documentation_.


:Warning: This product may contain traces of nuts.
:Author: `Rok Garbas`_, *migrating for you since 2008*
:Source: http://github.com/collective/collective.jsonify


.. _`simplejson`: http://pypi.python.org/simplejson
.. _`JSON`: http://en.wikipedia.org/wiki/JSON
.. _`collective.transmogrifier`: http://pypi.python.org/pypi/collective.transmogrifier
.. _`collective.jsonmigrator`: http://pypi.python.org/pypi/collective.jsonmigrator
.. _`using the exporter`: https://collectivejsonify.readthedocs.org/en/latest/#using-the-exporter
.. _`documentation`: https://collectivejsonify.readthedocs.org
.. _`Rok Garbas`: http://www.garbas.si/labs/plone-migration

Changelog
=========

1.6 (2023-02-10)
----------------

- Fix "AttributeError: get" that occurred with collective.jsonify 1.5 on Plone 2.1,
  by using objectValues() to list items contained in a folder.
  [rpijlman]

- Add additional_wrappers to hook into export as promised by the documentation.
  [pbauer]

- Do not export None in a DateTimeField as the string "None".
  [pbauer]


1.5 (2020-08-21)
----------------

- Fixing Out of Memory by swapping base64 implementation.
  [gogobd]

- Fix acquisition when object in folder has attribute name.
  [maartenkling]

- Fallback for TypeError when _get_at_field_value is broken computedfield.
  [maartenkling]

- Add runhook support.
  [gotcha]


1.4 (2018-09-20)
----------------

- Try Subject and Contributors when subject and contributors give nothing.
  [maurits]

- Check if value exists on file like fields
  [agitator]

- Export creation_date and modification_date for all objects, not only _is_cmf_only_obj.
  For dexterity these values are not present in a schemata, so they are not included as part
  of the normal schemata based dexterity export.
  [sunew]

- Use self.decode method to get stringified field value when wrapping content
  for export.
  [instification]


1.3 (2017-12-21)
----------------

- Export plone.app.redirector redirects, if available.
  Comply with default expectations of redirector section in plone.app.transmogrifier.
  [hvelarde]

- Do not export FormGen and Redirection tools.
  [hvelarde]

- Show translations from LinguaPlone if canonical is available.
  [agitator]

- Fixed value for unknown fields.  The value was never calculated
  fresh for these fields, so you got the value of the previous field.
  Or you probably got a NameError if this was the first field.
  [maurits]

- Fix manifest
- Added `CHANGES.rst merge=union` to `.gitattributes`
  [ale-rt]

- Added the history to JSON export.
  [rristow]


1.2 (2016-05-24)
----------------

- Do not require simplejson if we already have the native json module
  [ale-rt]

- When doing an export with ``export_content`` and having constraints to skip
  items, still allow to walk into subitems of the skipped ones - except for
  skipped paths, where the whole path is skipped.
  [thet]


1.1 (2015-10-22)
----------------

- set json repsonse headers
  [jensens]


1.0 (2015-05-16)
----------------

- Let the wrapper test correctly for ``zope.interface`` and ``Interface``
  interfaces.
  [thet]

- In the wrapper class, call the value in decode, if it's a callable.
  [thet]

- When serializing datetime, date, time or DateTime properties, just use the
  unicode representation which can be parsed.
  [thet]

- When serializing values, if there is no special handler for a field type,
  just try to unicode the value.
  [thet]

- Fix export of defaultPage and layout. Before, always the defaultPage was set
  now layout is always set and defaultPage only, if there is one defined.
  [thet]

- Handle plone.formwidget.geolocation Dexterity field types.
  [thet]

- Check, if wrapper methods for Zope/CMF objects are Zope/CMF only objects by
  testing for Archetypes and Dexterity first.
  [thet]

- Add ``BlobField`` for ``get_archetypes_fields``.
  [thet]

- Don't try to convert ints to unicode in get_properties().
  [djowett]

- Zope 2.6 support for collective.jsonify.
  [djowett]

- Fix setup.py to work with Python 2.2.
  [djowett]

- Add error type to tracebacks.
  [djowett]

- Fix read of NamedBlobImage, NamedFile and NamedBlobFile in dexterity objects.
  [djowett]

- Fix read of field for unicode transcoding in dexterity objects.
  [djowett]

- Make ``archetypes.schemaextender`` support more generic and handle probably
  most use cases.
  [thet]

- Add ``_directly_provided`` export field for the object's directly provided
  interfaces.
  [thet]

- Add json_methods module to own Extension folder, which makes it automatically
  available and unnecessary to add it to the instance's Extension folder.
  [thet]

- Don't skip ``ComputedField`` fields, but just export their computed value.
  Better skip them in your transmogrifier import pipeline.
  [thet]

- Allow a ``skip_callback`` function to be passed to the ``export_content``
  function. It evaluates to ``True``, if the current visited item should be
  excluded from exporting.
  [thet]

- Export a content's references as list of UID values.
  [thet]

- Declare the ``content_type`` of a field's value only for ``TextField`` and
  ``StringField``.
  [thet]

- Add example buildouts for Plone 2.1, 2.5, 3 and 4.
  [thet]

- Declare ``base64`` encoding for _datafield_FIELDNAME structures. This is used
  to correctly decode in transmogrify.dexterity.
  [thet]

- Add export module from ``collective.blueprint.jsonmigrator`` and modify to
  use collective.jsonify wrapper. Use it in Plone 2.1 by adding it as external
  method.
  [thet]

- PEP 8.
  [thet]

- Fixing local roles export.
  [realefab]

- Make ATExtensionFields serializable.
  [jsbueno]

- Fixes exporting of Image types that use ATBlob.
  [jsbueno]


0.2 (2014-08-18)
----------------

- Support p.a.collection QueryField.
  [jone]

- Dexterity support.
  [djowett]

- Add Blob fields support. Use specific methods to retrieve
  filename, content type and size.
  [gborelli]

- Add _get_at_field_value to wrappe.Wrapper in order to use accessor method
  for Archetypes fields.
  [gborelli]

- @@jsonify view added. See README_JSONIFY_VIEW.rst for more
  [pieretti]


0.1 (2011-03-14)
----------------

- documentation added
  [garbas]

- collection of external methods from ``collective.blueprint.jsonmigrator``
  and ``collective.sync_migrator``.
  [garbas]

- initial release
  [garbas]

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/collective/collective.jsonify",
    "name": "collective.jsonify",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "Plone content export json transmogrify",
    "author": "Rok Garbas",
    "author_email": "rok@garbas.si",
    "download_url": "https://files.pythonhosted.org/packages/db/c5/65bf41ff655c8d4b9b040f396fd8226cceba7ba02f60c483339ff5b9b426/collective.jsonify-1.6.tar.gz",
    "platform": null,
    "description": "``collective.jsonify`` exports your Plone content to JSON_.\n\nMany packages that export data from Plone have complicated dependencies, and so\nonly work with Plone 3.0 or higher (or not even with 3.0).\n``collective.jsonify``'s only dependency is simplejson_. It can be installed in\nany Plone version as far back as:\n\n- Plone 2.1 (or probably even Plone 2.0, but not tested)\n- Zope 2.6.4 (with CMF rather than Plone)\n- Python 2.2\n\nThe exported JSON_ is a collective.transmogrifier_ friendly format. Install\n``collective.jsonify`` on a site you want to export from, and setup an import\ntransmogrifier pipeline on the site you're importing to, using the blueprints in\nthe collective.jsonmigrator_ package.\n\nAlternatively use the provided export script by adding it to an external method as described in `using the exporter`_.\n\nFor more information see the documentation_.\n\n\n:Warning: This product may contain traces of nuts.\n:Author: `Rok Garbas`_, *migrating for you since 2008*\n:Source: http://github.com/collective/collective.jsonify\n\n\n.. _`simplejson`: http://pypi.python.org/simplejson\n.. _`JSON`: http://en.wikipedia.org/wiki/JSON\n.. _`collective.transmogrifier`: http://pypi.python.org/pypi/collective.transmogrifier\n.. _`collective.jsonmigrator`: http://pypi.python.org/pypi/collective.jsonmigrator\n.. _`using the exporter`: https://collectivejsonify.readthedocs.org/en/latest/#using-the-exporter\n.. _`documentation`: https://collectivejsonify.readthedocs.org\n.. _`Rok Garbas`: http://www.garbas.si/labs/plone-migration\n\nChangelog\n=========\n\n1.6 (2023-02-10)\n----------------\n\n- Fix \"AttributeError: get\" that occurred with collective.jsonify 1.5 on Plone 2.1,\n  by using objectValues() to list items contained in a folder.\n  [rpijlman]\n\n- Add additional_wrappers to hook into export as promised by the documentation.\n  [pbauer]\n\n- Do not export None in a DateTimeField as the string \"None\".\n  [pbauer]\n\n\n1.5 (2020-08-21)\n----------------\n\n- Fixing Out of Memory by swapping base64 implementation.\n  [gogobd]\n\n- Fix acquisition when object in folder has attribute name.\n  [maartenkling]\n\n- Fallback for TypeError when _get_at_field_value is broken computedfield.\n  [maartenkling]\n\n- Add runhook support.\n  [gotcha]\n\n\n1.4 (2018-09-20)\n----------------\n\n- Try Subject and Contributors when subject and contributors give nothing.\n  [maurits]\n\n- Check if value exists on file like fields\n  [agitator]\n\n- Export creation_date and modification_date for all objects, not only _is_cmf_only_obj.\n  For dexterity these values are not present in a schemata, so they are not included as part\n  of the normal schemata based dexterity export.\n  [sunew]\n\n- Use self.decode method to get stringified field value when wrapping content\n  for export.\n  [instification]\n\n\n1.3 (2017-12-21)\n----------------\n\n- Export plone.app.redirector redirects, if available.\n  Comply with default expectations of redirector section in plone.app.transmogrifier.\n  [hvelarde]\n\n- Do not export FormGen and Redirection tools.\n  [hvelarde]\n\n- Show translations from LinguaPlone if canonical is available.\n  [agitator]\n\n- Fixed value for unknown fields.  The value was never calculated\n  fresh for these fields, so you got the value of the previous field.\n  Or you probably got a NameError if this was the first field.\n  [maurits]\n\n- Fix manifest\n- Added `CHANGES.rst merge=union` to `.gitattributes`\n  [ale-rt]\n\n- Added the history to JSON export.\n  [rristow]\n\n\n1.2 (2016-05-24)\n----------------\n\n- Do not require simplejson if we already have the native json module\n  [ale-rt]\n\n- When doing an export with ``export_content`` and having constraints to skip\n  items, still allow to walk into subitems of the skipped ones - except for\n  skipped paths, where the whole path is skipped.\n  [thet]\n\n\n1.1 (2015-10-22)\n----------------\n\n- set json repsonse headers\n  [jensens]\n\n\n1.0 (2015-05-16)\n----------------\n\n- Let the wrapper test correctly for ``zope.interface`` and ``Interface``\n  interfaces.\n  [thet]\n\n- In the wrapper class, call the value in decode, if it's a callable.\n  [thet]\n\n- When serializing datetime, date, time or DateTime properties, just use the\n  unicode representation which can be parsed.\n  [thet]\n\n- When serializing values, if there is no special handler for a field type,\n  just try to unicode the value.\n  [thet]\n\n- Fix export of defaultPage and layout. Before, always the defaultPage was set\n  now layout is always set and defaultPage only, if there is one defined.\n  [thet]\n\n- Handle plone.formwidget.geolocation Dexterity field types.\n  [thet]\n\n- Check, if wrapper methods for Zope/CMF objects are Zope/CMF only objects by\n  testing for Archetypes and Dexterity first.\n  [thet]\n\n- Add ``BlobField`` for ``get_archetypes_fields``.\n  [thet]\n\n- Don't try to convert ints to unicode in get_properties().\n  [djowett]\n\n- Zope 2.6 support for collective.jsonify.\n  [djowett]\n\n- Fix setup.py to work with Python 2.2.\n  [djowett]\n\n- Add error type to tracebacks.\n  [djowett]\n\n- Fix read of NamedBlobImage, NamedFile and NamedBlobFile in dexterity objects.\n  [djowett]\n\n- Fix read of field for unicode transcoding in dexterity objects.\n  [djowett]\n\n- Make ``archetypes.schemaextender`` support more generic and handle probably\n  most use cases.\n  [thet]\n\n- Add ``_directly_provided`` export field for the object's directly provided\n  interfaces.\n  [thet]\n\n- Add json_methods module to own Extension folder, which makes it automatically\n  available and unnecessary to add it to the instance's Extension folder.\n  [thet]\n\n- Don't skip ``ComputedField`` fields, but just export their computed value.\n  Better skip them in your transmogrifier import pipeline.\n  [thet]\n\n- Allow a ``skip_callback`` function to be passed to the ``export_content``\n  function. It evaluates to ``True``, if the current visited item should be\n  excluded from exporting.\n  [thet]\n\n- Export a content's references as list of UID values.\n  [thet]\n\n- Declare the ``content_type`` of a field's value only for ``TextField`` and\n  ``StringField``.\n  [thet]\n\n- Add example buildouts for Plone 2.1, 2.5, 3 and 4.\n  [thet]\n\n- Declare ``base64`` encoding for _datafield_FIELDNAME structures. This is used\n  to correctly decode in transmogrify.dexterity.\n  [thet]\n\n- Add export module from ``collective.blueprint.jsonmigrator`` and modify to\n  use collective.jsonify wrapper. Use it in Plone 2.1 by adding it as external\n  method.\n  [thet]\n\n- PEP 8.\n  [thet]\n\n- Fixing local roles export.\n  [realefab]\n\n- Make ATExtensionFields serializable.\n  [jsbueno]\n\n- Fixes exporting of Image types that use ATBlob.\n  [jsbueno]\n\n\n0.2 (2014-08-18)\n----------------\n\n- Support p.a.collection QueryField.\n  [jone]\n\n- Dexterity support.\n  [djowett]\n\n- Add Blob fields support. Use specific methods to retrieve\n  filename, content type and size.\n  [gborelli]\n\n- Add _get_at_field_value to wrappe.Wrapper in order to use accessor method\n  for Archetypes fields.\n  [gborelli]\n\n- @@jsonify view added. See README_JSONIFY_VIEW.rst for more\n  [pieretti]\n\n\n0.1 (2011-03-14)\n----------------\n\n- documentation added\n  [garbas]\n\n- collection of external methods from ``collective.blueprint.jsonmigrator``\n  and ``collective.sync_migrator``.\n  [garbas]\n\n- initial release\n  [garbas]\n",
    "bugtrack_url": null,
    "license": "GPL",
    "summary": "JSON representation for content in Plone from 2.0 and above",
    "version": "1.6",
    "split_keywords": [
        "plone",
        "content",
        "export",
        "json",
        "transmogrify"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e5a78ef67c6108abfe674b86da6e1f1f170150888b9057eb2736cf417651ffb6",
                "md5": "42176fea873374a744358559651d3e64",
                "sha256": "d6d8945716b9bbfe757ff3b05d7f9539b13937d161ad01e6af2322a03ac7331d"
            },
            "downloads": -1,
            "filename": "collective.jsonify-1.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "42176fea873374a744358559651d3e64",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 25048,
            "upload_time": "2023-02-10T12:13:00",
            "upload_time_iso_8601": "2023-02-10T12:13:00.090843Z",
            "url": "https://files.pythonhosted.org/packages/e5/a7/8ef67c6108abfe674b86da6e1f1f170150888b9057eb2736cf417651ffb6/collective.jsonify-1.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dbc565bf41ff655c8d4b9b040f396fd8226cceba7ba02f60c483339ff5b9b426",
                "md5": "9ba2bd02c55dcbce1d0f63e16f89143f",
                "sha256": "a222d8315fa5bc63a59b297dffefe025fca4453f739abba2fa7d0731e4e1aee9"
            },
            "downloads": -1,
            "filename": "collective.jsonify-1.6.tar.gz",
            "has_sig": false,
            "md5_digest": "9ba2bd02c55dcbce1d0f63e16f89143f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 37360,
            "upload_time": "2023-02-10T12:13:02",
            "upload_time_iso_8601": "2023-02-10T12:13:02.192081Z",
            "url": "https://files.pythonhosted.org/packages/db/c5/65bf41ff655c8d4b9b040f396fd8226cceba7ba02f60c483339ff5b9b426/collective.jsonify-1.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-02-10 12:13:02",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "collective",
    "github_project": "collective.jsonify",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "collective.jsonify"
}
        
Elapsed time: 0.04430s