Metadata-Version: 1.1
Name: byt
Version: 1.1.0
Summary: Version-independent bytes-chains
Home-page: https://github.com/ceyzeriat/byt/
Author: Guillaume Schworer
Author-email: guillaume.schworer@gmail.com
License: GNU
Download-URL: https://github.com/ceyzeriat/byt/tree/master/dist
Description: .. joystick
        
        .. image:: https://travis-ci.org/ceyzeriat/byt.svg?branch=master
            :target: https://travis-ci.org/ceyzeriat/byt
        .. image:: https://coveralls.io/repos/github/ceyzeriat/byt/badge.svg
            :target: https://coveralls.io/github/ceyzeriat/byt
        .. image:: http://img.shields.io/badge/license-GPLv3-blue.svg?style=flat
            :target: https://github.com/ceyzeriat/byt/blob/master/LICENSE
        
        :Name: byt
        :Website: https://github.com/ceyzeriat/byt
        :Author: Guillaume Schworer
        :Version: 1.1
        
        
        Although the new python3 strings/bytes-chains are arguably neater than that of python2, writing code using them, and which is compatible with both versions, is nearly a nightmare. This package attempts to gap the major discontinuity in the management of strings and bytes-chains between the two major python versions, 2.7+ and 3.5+.
        
        Byt is a package subclassing ``str`` in python2 and ``bytes`` in python3. Its main design focus is to behaves exactly the same way, no matter the python version used. To achieve such behaviour, byt is extremely conservative: Byt objects will only work with other Byt objects (concatenate, find, replace, etc). This was (unfortunately?) necessary to ensure the somewhat lax python2 strings and bytes-chains mix-up work the same way as those of python3.
        
        This packages also fixes some strange behaviors of python3 ``bytes`` (try ``b'test'[0:1] == b'test'[0]``) and provides new convenient methods or properties.
        
        
        It is built by `Guillaume Schworer <https://github.com/ceyzeriat>`_ and licensed under
        the GNU General Public License v3 or later (GPLv3+) license (see ``LICENSE``).
        
        
        Installation
        ------------
        
        Just run
        
        ::
        
            pip install byt
        
        to get the most recent stable version.
        
        
        Usage
        -----
        
        The two entry points are the ``byt.Byt`` and ``byt.DByt`` classes which automatically
        load depending on the python version you're running.
        
        The only difference between ``Byt`` and ``DByt`` is that ``str(Byt)`` will print the ASCII
        representation of the string while ``str(DByt)`` -- D like display -- will print its
        corresponding hexadecimal values. These classes are full inter-operable.
        
        You'll just use it like this:
        
        ::
        
            from byt import Byt
        
            >> b = Byt('hello world!')
            >> print(b)
            Byt('hello world!')
            >> (Byt(1,2) + Byt("\x01\x02") + Byt([1,2])).hex()
            '01 02 01 02 01 02'
            >> print(b.hex())
            68 65 6c 6c 6f 20 77 6f 72 6c 64 21
            >> eval(repr(b)) == b
            True
            >> print(Byt('str1') + 'str2')
            TypeError: can't concat Byt to str
            >> byt.Byt('str1')[2:].ints()
            [114, 49]
            
            
            from byt import DByt
            
            >> b = DByt('hello world!')
            >> print(b)
            68 65 6c 6c 6f 20 77 6f 72 6c 64 21
            >> eval(repr(b)) == b
            True
            
            # inter-compatibility
            
            >> DByt('yes') == Byt('yes')
            True
            >> DByt('yes') + Byt('no')
            DByt('yesno')
            >> print(DByt('yes') + Byt('no'))
            79 65 73 6e 6f
        
        
        Documentation
        -------------
        
        All the options are documented in the docstrings for the classes. These can be viewed in a Python shell using:
        
        ::
        
            >> from byt import Byt, DByt
            >> print(Byt.__doc__)
            >> print(DByt.__doc__)
        
        or, in IPython using:
        
        ::
        
            >> from byt import Byt
            >> Byt?
            >> DByt?
        
        
        License
        -------
        
        Copyright 2017 Guillaume Schworer
        
        patiencebar is free software made available under the GNU General
        Public License v3 or later (GPLv3+) license (see ``LICENSE``).
        
        
        Changelog
        ---------
        
        1.1.0 (2017-11-12)
        +++++++++++++++++++
        
        - Added docs and tests
        - New initialization of Byt/DByt object: Byt(1,2,3)
        
        
        1.0.12 (2017-08-12)
        +++++++++++++++++++
        
        - Added DByt hexadecimal as the default __str__, while __repr__ remains ASCII-based
        - New method 'str'
        
        
        1.0.8 (2017-06-26)
        ++++++++++++++++++
        
        - Fixed repr method and backslashing
        
        
        1.0.6 (2017-03-22)
        ++++++++++++++++++
        
        - Fixed install bug through pip
        
        
        1.0.4 (2017-03-22)
        ++++++++++++++++++
        
        - Added fromhex classmethod
        
        
        1.0.3 (2017-02-22)
        ++++++++++++++++++
        
        - Fixed bug when invoking isinstance on a Byt object
        
        
        1.0.0 (2017-02-19)
        ++++++++++++++++++
        
        - Initial release.
        
Keywords: bytes,chain,octet,string,hexa,hexadecimal,python2,python3,version,independent
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
