Metadata-Version: 2.1
Name: ips.py
Version: 0.1.2
Summary: A Python library for handling IPS patches
Home-page: https://github.com/friedkeenan/ips.py
Author: friedkeenan
License: UNKNOWN
Description: # ips.py
        
        A Python library for handling IPS patches.
        
        I wanted to create this as there was no suitable library for how I wanted to manipulate IPS patches, which at the time was just changing the offsets in the records. Since then I have wanted to extend it for my own needs, and for the potential needs of others.
        
        The logic for creating patches from two file objects is taken from [flips](https://github.com/Alcaro/Flips/), which creates very good, small patches.
        
        ### How to use
        
        To import the library, do
        
        ```py
        import ips
        ```
        
        To get a `Patch` object from an IPS file, do
        
        ```py
        with open("path/to/patch.ips", "rb") as f:
            p = ips.Patch.load(f)
        ```
        
        If you already have the bytes of the IPS file, you can do
        
        ```py
        with open("path/to/patch.ips", "rb") as f:
            cont = f.read()
        
        ...
        
        p = ips.Patch.load(cont)
        ```
        
        To apply a `Patch` object, do
        
        ```py
        with open("path/to/original/file.bin", "rb") as old, open("path/to/new/file.bin", "wb") as new:
            p.apply(old, new)
        ```
        
        If you don't want to necessarily write it to a new file, you can do
        
        ```py
        import io
        
        new = io.BytesIO()
        with open("path/to/original/file.bin", "rb") as old:
            p.apply(old, new)
        ```
        
        To create a `Patch` object from two file objects, do
        
        ```py
        with open("path/to/original/file.bin", "rb") as old, open("path/to/new/file.bin", "rb") as new:
            p = ips.Patch.create(old, new)
        ```
        
        To pack a `Patch` object into a `bytes` object, do
        
        ```py
        bytes(p)
        ```
        
        To add a record to a `Patch` object, use the `add_record` method.
        
        To get a list of records in a `Patch` object, use the `records` attribute.
        
        To get whether a `Patch` object is using the IPS32 format, which allows for offsets up to 4 GiB, check the `ips32` attribute.
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
