Metadata-Version: 2.1
Name: cbor2
Version: 5.2.0
Summary: Pure Python CBOR (de)serializer with extensive tag support
Home-page: UNKNOWN
Author: Alex Grönholm
Author-email: alex.gronholm@nextday.fi
Maintainer: Kio Smallwood (Sekenre)
Maintainer-email: kio@mothers-arms.co.uk
License: MIT
Project-URL: Documentation, https://cbor2.readthedocs.org/en/latest/
Project-URL: Source Code, https://github.com/agronholm/cbor2
Project-URL: Issue Tracker, https://github.com/agronholm/cbor2/issues
Description: .. image:: https://travis-ci.com/agronholm/cbor2.svg?branch=master
          :target: https://travis-ci.com/agronholm/cbor2
          :alt: Build Status
        .. image:: https://coveralls.io/repos/github/agronholm/cbor2/badge.svg?branch=master
          :target: https://coveralls.io/github/agronholm/cbor2?branch=master
          :alt: Code Coverage
        .. image:: https://readthedocs.org/projects/cbor2/badge/?version=latest
          :target: https://cbor2.readthedocs.io/en/latest/?badge=latest
          :alt: Documentation Status
        
        About
        =====
        
        .. warning:: This project will be ending it's support of Python 3.5 and lower with release 6.0.0. Version 5.2 will be the last version tested on Python 2.7 and 3.5
        
        This library provides encoding and decoding for the Concise Binary Object Representation (CBOR)
        (`RFC 7049`_) serialization format. `Read the docs <https://cbor2.readthedocs.io/>`_ to learn more.
        
        It is implemented in pure python with an optional C backend.
        
        On PyPy, cbor2 runs with almost identical performance to the C backend.
        
        .. _RFC 7049: https://tools.ietf.org/html/rfc7049
        
        Features
        --------
        
        * Simple api like ``json`` or ``pickle`` modules.
        * Support many `CBOR tags`_ with `stdlib objects`_.
        * Generic tag decoding.
        * `Shared value`_ references including cyclic references.
        * Optional C module backend tested on big- and little-endian architectures.
        * Extensible `tagged value handling`_ using ``tag_hook`` and ``object_hook`` on decode and ``default`` on encode.
        * Command-line diagnostic tool, converting CBOR file or stream to JSON ``python -m cbor2.tool``
          (This is a lossy conversion, for diagnostics only)
        * Thorough test suite.
        
        .. _CBOR tags: https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml
        .. _stdlib objects: https://cbor2.readthedocs.io/en/latest/usage.html#tag-support
        .. _Shared value: http://cbor.schmorp.de/value-sharing
        .. _tagged value handling: https://cbor2.readthedocs.io/en/latest/customizing.html#using-the-cbor-tags-for-custom-types
        
        Installation
        ============
        
        ::
        
            pip install cbor2
        
        Requirements
        ------------
        
        * cPython==2.7 or cPython>=3.5 or `PyPy`_ (Python 2.7 and 3.5 support will be removed with release 6.0.0)
        * C-extension: Any C compiler that can build Python extensions.
          Any modern libc with the exception of Glibc<2.9
        
        .. _PyPy: https://www.pypy.org/
        
        Building the C-Extension
        ------------------------
        
        To force building of the optional C-extension, set OS env ``CBOR2_BUILD_C_EXTENSION=1``.
        To disable building of the optional C-extension, set OS env ``CBOR2_BUILD_C_EXTENSION=0``.
        If this environment variable is unset, setup.py will default to auto detecting a compatible C library and
        attempt to compile the extension.
        
        
        Usage
        =====
        
        `Basic Usage <https://cbor2.readthedocs.io/en/latest/usage.html#basic-usage>`_
        
        Command-line Usage
        ==================
        
        ``python -m cbor2.tool`` converts CBOR data in raw binary or base64 encoding into
        a representation that allows printing as JSON. This is a lossy transformation as
        each datatype is converted into something that can be represented as a JSON value.
        
        Usage::
        
            # Pass hexadecimal through xxd.
            $ echo a16568656c6c6f65776f726c64 | xxd -r -ps | python -m cbor2.tool --pretty
            {
                "hello": "world"
            }
            # Decode Base64 directly
            $ echo ggEC | python -m cbor2.tool --decode
            [1, 2]
            # Read from a file encoded in Base64
            $ python -m cbor2.tool -d tests/examples.cbor.b64
            {...}
        
        It can be used in a pipeline with json processing tools like `jq`_ to allow syntax
        coloring, field extraction and more.
        
        CBOR data items concatenated into a sequence can be decoded also::
        
            $ echo ggECggMEggUG | python -m cbor2.tool -d --sequence
            [1, 2]
            [3, 4]
            [5, 6]
        
        Multiple files can also be sent to a single output file::
        
            $ python -m cbor2.tool -o all_files.json file1.cbor file2.cbor ... fileN.cbor
        
        .. _jq: https://stedolan.github.io/jq/
        
        Security
        ========
        
        This library has not been tested against malicious input. In theory it should be
        as safe as JSON, since unlike ``pickle`` the decoder does not execute any code.
        
Keywords: serialization cbor
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Provides-Extra: test
