Name | asar JSON |
Version |
0.1.2
JSON |
| download |
home_page | None |
Summary | Library for working with Electron's ASAR archive files |
upload_time | 2024-09-13 05:20:17 |
maintainer | None |
docs_url | None |
author | None |
requires_python | None |
license | None |
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"
}