Metadata-Version: 2.1
Name: airpress
Version: 0.0.1
Summary: A frustration-free compression tool for PKPass archives.
Home-page: https://github.com/captain-fox/airpress
Author: Stan Reduta
Author-email: stanislaw.reduta@gmail.com
License: MIT
Description: # airpress
        
        A frustration-free compression tool for PKPass files
        
        ## Installation
        From PyPI:
        
        `pip install airpress`
        
        ## Quickstart
        AirPress is a tool to sign and compress Apple PKPass archives. 
        Compression and signature occur in runtime memory without creating temporary files or directories.
        
        ```python
        from airpress import PKPass
        
        # PKPass compressor operates on `bytes` objects as input/output
        p = PKPass(
            ('icon.png', bytes(...)),
            ('logo.png', bytes(...)),
            ('pass.json', bytes(...)),
            ...
        )
        # `password` argument is optional
        p.sign(cert=bytes(...), key=bytes(...), password=bytes(...))
        # Calling `bytes()` on signed `PKPass` will compress it into zip archive and return its `bytes` representation.
        _ = bytes(p) 
        ```
        In most cases you're likely to return `pkpass` as `http` response and `bytes` object is exactly what you need.
        It's up to you how to handle `.pkpass` archive from this point. 
        `PKPass` will raise human-readable errors in case something is wrong with pass package you're trying to sign. 
        
        ## Example
        
        This example shows how to read locally stored assets as `bytes` objects, compress `pkpass` archive
        and save it to script's parent directory.
        
        ```python
        import os
        from airpress import PKPass
        
        icon = open(os.path.join(os.path.dirname(__file__), '...your_path_to/icon.png'), 'rb').read()
        icon_2x = open(os.path.join(os.path.dirname(__file__), '...your_path_to/icon@2x.png'), 'rb').read()
        logo = open(os.path.join(os.path.dirname(__file__), '...your_path_to/logo.png'), 'rb').read()
        logo_2x = open(os.path.join(os.path.dirname(__file__), '...your_path_to/logo@2x.png'), 'rb').read()
        
        pass_json = open(os.path.join(os.path.dirname(__file__), '...your_path_to/pass.json'), 'rb').read()
        
        key = open(os.path.join(os.path.dirname(__file__), '...your_path_to/key.pem'), 'rb').read()
        cert = open(os.path.join(os.path.dirname(__file__), '...your_path_to/certificate.pem'), 'rb').read()
        password = bytes('your_password_123', 'utf8')
        p = PKPass(
            ('icon.png', icon),
            ('icon@2x.png', icon_2x),
            ('logo.png', logo),
            ('logo@2x.png', logo_2x),
            ('pass.json', pass_json),
        )
        
        p.sign(cert=cert, key=key, password=password)
        
        with open('pass.pkpass', 'wb') as file:
            file.write(bytes(p))
        ```
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
