Name | darkest-parser JSON |
Version |
1.1.1
JSON |
| download |
home_page | |
Summary | Parser for .darkest file |
upload_time | 2024-01-08 09:29:26 |
maintainer | |
docs_url | None |
author | syrinka |
requires_python | >=3.12,<4.0 |
license | |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# darkest-parser
**darkest-parser** is a module to parser `.darkest` file originally from [Darkest Dungeon](https://www.darkestdungeon.com/) programatically.
## Usage
```sh
pip install darkest-parser
```
```python
from darkest_parser import parse, unparse
text = '''
resistances: .stun 40% .poison 40% .bleed 40% .disease 30% .move 40% .debuff 30% .death_blow 67% .trap 40%
weapon: .name "houndmaster_weapon_0" .atk 0% .dmg 4 7 .crit 4% .spd 5
armour: .name "houndmaster_armour_0" .def 10% .prot 0 .hp 21 .spd 0
combat_skill: .id "hounds_rush" .level 0 .type "ranged" .atk 85% .dmg 0% .crit 5% .launch 432 .target 1234 .effect "Beast Killer 1"
combat_skill: .id "hounds_rush" .level 1 .type "ranged" .atk 90% .dmg 0% .crit 6% .launch 432 .target 1234 .effect "Beast Killer 2"
'''
dark = parse(text)
dark[0].tag == 'resistances'
dark[0].set('stun', '60%')
dark[0].poison = '40%'
weapon0 = dark.find('weapon', name='houndmaster_weapon_0')
weapon0.tag == 'weapon'
weapon0.dmg = [14, 17]
weapon0.spd = 25
for rush in dark.finditer('combat_skill', id='hounds_rush'):
rush.type = 'meele'
rush.set('ignore_guarded')
rush0 = dark.find(id='hounds_rush', level=0)
# x invalid:
# rush0.effect.append('Human Killer 1')
# √ use instead:
rush0.effect = [*rush0.effect, 'Human Killer 1']
rush1 = dark.find(id='hounds_rush', level=1)
rush1.has('target') == True
rush1.set('target', '~1234', 'literal')
# literal means that the value is unquoted, it's useful in some case,
# for example: launch, target, valid_modes, etc.
print(unparse(dark))
```
## API Reference
```python
def parse(str) -> Darkest:
...
def unparse(Darkest) -> str:
...
class Darkest:
def __getitem__(int) -> Element:
...
def finditer(str | None, **{str: Any}) -> Generator[Element, Any, Any]:
...
def findall(str | None, **{str: Any}) -> List[Element]:
...
def find(str | None, **{str: Any}) -> Element:
...
class Element:
def get(str) -> List[Any]:
...
def set(str, Any | List[Any] | None, Literal['number', 'bool', 'string', 'literal'] | None):
...
def pop(str):
...
def has(str) -> bool:
...
```
Raw data
{
"_id": null,
"home_page": "",
"name": "darkest-parser",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.12,<4.0",
"maintainer_email": "",
"keywords": "",
"author": "syrinka",
"author_email": "syrinka@foxmail.com",
"download_url": "https://files.pythonhosted.org/packages/29/c9/60645cb48e7bc62e0ec8774e638f65c04dca40b9bbed54e054532f711fa3/darkest_parser-1.1.1.tar.gz",
"platform": null,
"description": "# darkest-parser\n\n**darkest-parser** is a module to parser `.darkest` file originally from [Darkest Dungeon](https://www.darkestdungeon.com/) programatically.\n\n## Usage\n\n```sh\npip install darkest-parser\n```\n\n```python\nfrom darkest_parser import parse, unparse\n\ntext = '''\nresistances: .stun 40% .poison 40% .bleed 40% .disease 30% .move 40% .debuff 30% .death_blow 67% .trap 40%\nweapon: .name \"houndmaster_weapon_0\" .atk 0% .dmg 4 7 .crit 4% .spd 5\narmour: .name \"houndmaster_armour_0\" .def 10% .prot 0 .hp 21 .spd 0\ncombat_skill: .id \"hounds_rush\" .level 0 .type \"ranged\" .atk 85% .dmg 0% .crit 5% .launch 432 .target 1234 .effect \"Beast Killer 1\"\ncombat_skill: .id \"hounds_rush\" .level 1 .type \"ranged\" .atk 90% .dmg 0% .crit 6% .launch 432 .target 1234 .effect \"Beast Killer 2\"\n'''\n\ndark = parse(text)\n\ndark[0].tag == 'resistances'\ndark[0].set('stun', '60%')\ndark[0].poison = '40%'\n\n\nweapon0 = dark.find('weapon', name='houndmaster_weapon_0')\nweapon0.tag == 'weapon'\nweapon0.dmg = [14, 17]\nweapon0.spd = 25\n\nfor rush in dark.finditer('combat_skill', id='hounds_rush'):\n rush.type = 'meele'\n rush.set('ignore_guarded')\n\nrush0 = dark.find(id='hounds_rush', level=0)\n# x invalid:\n# rush0.effect.append('Human Killer 1')\n# \u221a use instead:\nrush0.effect = [*rush0.effect, 'Human Killer 1']\n\nrush1 = dark.find(id='hounds_rush', level=1)\nrush1.has('target') == True\nrush1.set('target', '~1234', 'literal')\n# literal means that the value is unquoted, it's useful in some case,\n# for example: launch, target, valid_modes, etc.\n\nprint(unparse(dark))\n```\n\n## API Reference\n\n```python\ndef parse(str) -> Darkest:\n ...\ndef unparse(Darkest) -> str:\n ...\n\nclass Darkest:\n def __getitem__(int) -> Element:\n ...\n def finditer(str | None, **{str: Any}) -> Generator[Element, Any, Any]:\n ...\n def findall(str | None, **{str: Any}) -> List[Element]:\n ...\n def find(str | None, **{str: Any}) -> Element:\n ...\n\nclass Element:\n def get(str) -> List[Any]:\n ...\n def set(str, Any | List[Any] | None, Literal['number', 'bool', 'string', 'literal'] | None):\n ...\n def pop(str):\n ...\n def has(str) -> bool:\n ...\n```",
"bugtrack_url": null,
"license": "",
"summary": "Parser for .darkest file",
"version": "1.1.1",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "cff0210280696097b1f7e986bf9e37a05fd26ff2e45f2603dd9d2d09a75ea28f",
"md5": "468124942b8bf0c001d88673891a47e2",
"sha256": "364f73590370a88ddb331574580e60a3b58d9d6c7a72ce2102a343f302ababe8"
},
"downloads": -1,
"filename": "darkest_parser-1.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "468124942b8bf0c001d88673891a47e2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12,<4.0",
"size": 4053,
"upload_time": "2024-01-08T09:29:25",
"upload_time_iso_8601": "2024-01-08T09:29:25.433109Z",
"url": "https://files.pythonhosted.org/packages/cf/f0/210280696097b1f7e986bf9e37a05fd26ff2e45f2603dd9d2d09a75ea28f/darkest_parser-1.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "29c960645cb48e7bc62e0ec8774e638f65c04dca40b9bbed54e054532f711fa3",
"md5": "35f405493482ca2f051825073cbd7cd0",
"sha256": "879865922565d8984e9b2fbc73602eebe270b0c9fbd6cd909333cc1f189c8e4c"
},
"downloads": -1,
"filename": "darkest_parser-1.1.1.tar.gz",
"has_sig": false,
"md5_digest": "35f405493482ca2f051825073cbd7cd0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12,<4.0",
"size": 3441,
"upload_time": "2024-01-08T09:29:26",
"upload_time_iso_8601": "2024-01-08T09:29:26.618187Z",
"url": "https://files.pythonhosted.org/packages/29/c9/60645cb48e7bc62e0ec8774e638f65c04dca40b9bbed54e054532f711fa3/darkest_parser-1.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-01-08 09:29:26",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "darkest-parser"
}