asar


Nameasar JSON
Version 0.1.2 PyPI version JSON
download
home_pageNone
SummaryLibrary for working with Electron's ASAR archive files
upload_time2024-09-13 05:20:17
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseNone
keywords asar
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # asar

Library for working with [Electron's ASAR](https://github.com/electron/asar) archive files.

<a href="https://github.com/black-06/asar-py/actions/workflows/test.yml" > 
  <img src="https://github.com/black-06/asar-py/actions/workflows/test.yml/badge.svg"/> 
</a>
<a href="https://codecov.io/github/black-06/asar-py" > 
  <img src="https://codecov.io/github/black-06/asar-py/graph/badge.svg"/> 
</a>
<a href="https://pypi.org/project/asar" target="_blank">
  <img alt="PyPI - Version" src="https://img.shields.io/pypi/v/asar">
</a>
<a href="https://pypi.org/project/asar" target="_blank">
  <img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/asar">
</a>

# Installation

```
pip install asar
```

# Usage

- [X] pack and extract asar.
  ```python
  from pathlib import Path
  from asar import create_archive, extract_archive
  
  create_archive(Path("src"), Path("app.asar"))
  extract_archive(Path("app.asar"), Path("dst"))
  ```
- [X] with unpack expression
  ```python
  create_archive(Path("src"), Path("app.asar"), unpack="*.exe")
  ```
  then we got:
  ```
  .
  ├── app.asar
  └── app.asar.unpacked
      └── f2.exe
  ```
- [X] list files of asar
  ```python
  from pathlib import Path
  from asar import AsarArchive
  
  with AsarArchive(Path("app.asar"), mode="r") as archive:
      print(archive.list())
  ```
  then we got:
  ```
  [Path('assets'), Path('assets/icon.png'), ...]
  ```
- [X] read one file from asar by random access
  ```python
  from pathlib import Path
  from asar import AsarArchive
  
  with AsarArchive(Path("app.asar"), mode="r") as archive:
      print(archive.read(Path("f1.txt"), follow_link=True))
  ```
  then we got:
  ```
  b'Hello, Asar'
  ```
- [X] create an asar from another asar, without extracting to filesystem.
  ```python
  import io 
  from pathlib import Path
  from asar import AsarArchive
  
  with AsarArchive(Path("app.asar"), mode="r") as reader, AsarArchive(Path("app.new.asar"), "w") as writer:
      writer.pack_other_asar(reader)
      writer.pack_file(path_in=Path("assets/added1.txt"), file_path=Path("added.txt"))
      writer.pack_stream(path_in=Path("assets/added2.txt"), file_reader=io.BytesIO(b"some text"))
  ```
  then we got app.new.asar, extract it:
  ```
  app_new_asar_extract
          ├── assets
          │     ├── added1.txt
          │     ├── added2.txt
          │     └── ... other files from app.asar 
          └── ... other files from app.asar
  ```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "asar",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "asar",
    "author": null,
    "author_email": "Black <hello.bug@foxmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/b3/0c/96ac68808a4a9a670c830aafc933b19c07c556d389a357a7e34ffb340353/asar-0.1.2.tar.gz",
    "platform": null,
    "description": "# asar\n\nLibrary for working with [Electron's ASAR](https://github.com/electron/asar) archive files.\n\n<a href=\"https://github.com/black-06/asar-py/actions/workflows/test.yml\" > \n  <img src=\"https://github.com/black-06/asar-py/actions/workflows/test.yml/badge.svg\"/> \n</a>\n<a href=\"https://codecov.io/github/black-06/asar-py\" > \n  <img src=\"https://codecov.io/github/black-06/asar-py/graph/badge.svg\"/> \n</a>\n<a href=\"https://pypi.org/project/asar\" target=\"_blank\">\n  <img alt=\"PyPI - Version\" src=\"https://img.shields.io/pypi/v/asar\">\n</a>\n<a href=\"https://pypi.org/project/asar\" target=\"_blank\">\n  <img alt=\"PyPI - Python Version\" src=\"https://img.shields.io/pypi/pyversions/asar\">\n</a>\n\n# Installation\n\n```\npip install asar\n```\n\n# Usage\n\n- [X] pack and extract asar.\n  ```python\n  from pathlib import Path\n  from asar import create_archive, extract_archive\n  \n  create_archive(Path(\"src\"), Path(\"app.asar\"))\n  extract_archive(Path(\"app.asar\"), Path(\"dst\"))\n  ```\n- [X] with unpack expression\n  ```python\n  create_archive(Path(\"src\"), Path(\"app.asar\"), unpack=\"*.exe\")\n  ```\n  then we got:\n  ```\n  .\n  \u251c\u2500\u2500 app.asar\n  \u2514\u2500\u2500 app.asar.unpacked\n      \u2514\u2500\u2500 f2.exe\n  ```\n- [X] list files of asar\n  ```python\n  from pathlib import Path\n  from asar import AsarArchive\n  \n  with AsarArchive(Path(\"app.asar\"), mode=\"r\") as archive:\n      print(archive.list())\n  ```\n  then we got:\n  ```\n  [Path('assets'), Path('assets/icon.png'), ...]\n  ```\n- [X] read one file from asar by random access\n  ```python\n  from pathlib import Path\n  from asar import AsarArchive\n  \n  with AsarArchive(Path(\"app.asar\"), mode=\"r\") as archive:\n      print(archive.read(Path(\"f1.txt\"), follow_link=True))\n  ```\n  then we got:\n  ```\n  b'Hello, Asar'\n  ```\n- [X] create an asar from another asar, without extracting to filesystem.\n  ```python\n  import io \n  from pathlib import Path\n  from asar import AsarArchive\n  \n  with AsarArchive(Path(\"app.asar\"), mode=\"r\") as reader, AsarArchive(Path(\"app.new.asar\"), \"w\") as writer:\n      writer.pack_other_asar(reader)\n      writer.pack_file(path_in=Path(\"assets/added1.txt\"), file_path=Path(\"added.txt\"))\n      writer.pack_stream(path_in=Path(\"assets/added2.txt\"), file_reader=io.BytesIO(b\"some text\"))\n  ```\n  then we got app.new.asar, extract it:\n  ```\n  app_new_asar_extract\n          \u251c\u2500\u2500 assets\n          \u2502     \u251c\u2500\u2500 added1.txt\n          \u2502     \u251c\u2500\u2500 added2.txt\n          \u2502     \u2514\u2500\u2500 ... other files from app.asar \n          \u2514\u2500\u2500 ... other files from app.asar\n  ```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Library for working with Electron's ASAR archive files",
    "version": "0.1.2",
    "project_urls": {
        "Homepage": "https://github.com/black-06/asar-py"
    },
    "split_keywords": [
        "asar"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e0810448bea943764286643f29f2f37acc7ee9c4c8f3dfea3c8f8b2785697d28",
                "md5": "817e77c5d888bd4171c769aa2a3990fb",
                "sha256": "614db63b5bc1fb39b16fe2dca4dd08ac023a32d7516453fbcdc901a31f7b9d9e"
            },
            "downloads": -1,
            "filename": "asar-0.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "817e77c5d888bd4171c769aa2a3990fb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 8496,
            "upload_time": "2024-09-13T05:20:16",
            "upload_time_iso_8601": "2024-09-13T05:20:16.093357Z",
            "url": "https://files.pythonhosted.org/packages/e0/81/0448bea943764286643f29f2f37acc7ee9c4c8f3dfea3c8f8b2785697d28/asar-0.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b30c96ac68808a4a9a670c830aafc933b19c07c556d389a357a7e34ffb340353",
                "md5": "80710b4abd59359d455cdc2e9524b780",
                "sha256": "d30f39605ad8b81819c4cd38f22cc8cbdbf90a55fcd656b3dd42fe3605c1bfd4"
            },
            "downloads": -1,
            "filename": "asar-0.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "80710b4abd59359d455cdc2e9524b780",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 9013,
            "upload_time": "2024-09-13T05:20:17",
            "upload_time_iso_8601": "2024-09-13T05:20:17.604856Z",
            "url": "https://files.pythonhosted.org/packages/b3/0c/96ac68808a4a9a670c830aafc933b19c07c556d389a357a7e34ffb340353/asar-0.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-13 05:20:17",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "black-06",
    "github_project": "asar-py",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "asar"
}
        
Elapsed time: 1.37737s