dfpyre


Namedfpyre JSON
Version 0.6.1 PyPI version JSON
download
home_pagehttps://github.com/Amp63/pyre
SummaryA package for external creation of code templates for the DiamondFire Minecraft server.
upload_time2024-04-30 02:53:23
maintainerNone
docs_urlNone
authorAmp
requires_python<4.0,>=3.10
licenseMIT
keywords diamondfire minecraft template item
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pyre

A package for external creation of code templates for the DiamondFire Minecraft server (mcdiamondfire.com).

PyPi Link: https://pypi.org/project/dfpyre/

## Installation

Run the following command in a terminal:
```
pip install dfpyre
```

## Features
- All code block types
- All code item types
- Direct sending to DF via recode or codeclient
- Automatic type conversion (int to num, str to text)
- Name checking ("did you mean ___?" for close matches)
- Default tag values

## Documentation
## Basics

- [Setting up a program](#setup)
- [Events and Actions](#events-and-actions)
- [Building](#building)

## Var Items

- [Text](#text)
- [Number](#number)
- [Variable](#variable)
- [Location](#location)
- [Item](#item)
- [Sound](#sound)
- [Particle](#particle)
- [Potion](#potion)
- [Game Value](#game-value)
- [Vector](#vector)
- [Parameter](#parameter)

## Conditionals and Loops

- [Conditionals and Brackets](#conditionals-and-brackets)
- [Loops](#loops)

## Functions and Procedures

- [Creating Functions and Processes](#creating-functions-and-processes)
- [Calling Functions and Processes](#calling-functions-and-processes)

## Extras

- [Importing from Code](#importing-from-code)
- [Script Generation](#script-generation)
- [Method List](#method-list)

___

### Setup

To start creating in pyre, you have to create a DFTemplate object like so:

```py
from dfpyre import *
t = DFTemplate()
```

Basically everything stems from this template object.

This is the basic layout of a file:

```py
from dfpyre import *
t = DFTemplate()
# [Event, Function, or Process]
# [Your code here]
t.build()
```

The commented lines represent where you will insert calls to methods in the template object.

Here's a complete program that prints a message to every player when a player joins:

```py
from dfpyre import *
t = DFTemplate()
t.player_event('Join')
t.player_action('SendMessage', '%default has joined!', target=Target.ALL_PLAYERS)
t.build_and_send('codeclient')
```

### Events and Actions

You can find a list of events and actions [here](#method-list)

As shown in [setup](#setup), every code line must start with an event, function, or process. After that, you're free to put anything you want.

The following program sends a message to all players and gives a player 10 apples upon joining:

```py
from dfpyre import *
t = DFTemplate()
t.player_event('Join')
t.player_action('SendMessage', '%default has joined!', target=Target.ALL_PLAYERS)
t.player_action('GiveItems', item('apple', 10))
```

### Building

You have 2 different options for building your code line.
You can either:

1. Save the compressed template code to a variable and send it to minecraft later
2. Build and send directly to your minecraft client (recommended)

If you choose the first option, the code would look something like this:

```py
from dfpyre import *
t = DFTemplate()
t.player_event('Join')
t.player_action('SendMessage', '%default has joined!', target=Target.ALL_PLAYERS)
template_code = t.build()  # do whatever you want with this
```

If you choose the second option, you can do this:

```py
from dfpyre import *
t = DFTemplate()
t.player_event('Join')
t.player_action('SendMessage', '%default has joined!', target=Target.ALL_PLAYERS)
t.build_and_send('codeclient')  # builds and sends automatically to minecraft
```

### Variable Items

### Text

Represents a diamondfire text item:

```py
text('hello %default.')
```

If a regular string is passed to a method as a chest parameter, it will automatically be converted to a text object:

```py
# These do the same thing:
t.player_action('SendMessage', text('%default joined.'))
t.player_action('SendMessage', '%default joined.')
```

### Number

Represents a diamondfire number item:

```py
num(5)
num(3.14)
```

If a regular integer or float is passed to a method as a chest parameter, it will automatically be converted to a num object:

```py
# These do the same thing:
t.set_variable('=', var('number'), num(10))
t.set_variable('=', var('number'), 10)
```

### Variable

Represents a diamondfire variable item:

```py
var('num')
var('text1')
```

You can set variable values by using the `set_variable` method:

```py
t.set_variable('=', var('num'), 12)  # sets 'num' to 12
t.set_variable('x', var('doubled'), var('num'), 2)  # sets 'doubled' to 24
```

You can set the scope of the variable by using the `scope` argument:

```py
t.set_variable('=', var(num1, scope='unsaved'), 12)  # `unsaved` is the same as a game variable.
t.set_variable('=', var(num1, scope='saved'), 12)
t.set_variable('=', var(num1, scope='local'), 12)
```

#### Shorthand Variables

You can also use the variable shorthand format like this:
```py
# These do the same thing:
t.set_variable('=', var('lineVar', scope='line'), 5)
t.set_variable('=', '$ilineVar', 5)
```

Shorthand vars should be formatted like this: `$[scope id][var name]`

Here's a list of the scope IDs:
- `g` = Game (unsaved)
- `s` = Saved
- `l` = Local
- `i` = Line

### Location

Represents a diamondfire location item:

```py
loc(x=25.5, y=50, z=25.5, pitch=0, yaw=-90)
```

Example:

```py
# teleport player on join
from dfpyre import *
t = DFTemplate()
t.player_event('Join')
t.player_action('Teleport', loc(10, 50, 10))
```

### Item

Represents a minecraft item:

```py
item('stick', count=5)
item('stone', 64)
```

To add extra data to an item, you can use any methods from the [mcitemlib](https://github.com/Amp63/mcitemlib) library

### Sound

Represents a diamondfire sound item:

```py
sound('Wood Break', pitch=1.5, vol=2.0)
```

Example:

```py
# plays 'Grass Place' sound on join
from dfpyre import *
t = DFTemplate()
t.player_event('Join')
t.player_action('PlaySound', sound('Grass Place'))
```

### Particle

Represents a diamondfire particle item:

```py
particle({'particle':'Cloud','cluster':{'amount':1,'horizontal':0.0,'vertical':0.0},'data':{'x':1.0,'y':0.0,'z':0.0,'motionVariation':100}})
```

Example:

```py
# plays a white cloud particle effect at 5, 50, 5
from dfpyre import *
t = DFTemplate()
t.player_event('Join')
part = particle({'particle':'Cloud','cluster':{'amount':1,'horizontal':0.0,'vertical':0.0},'data':{'x':1.0,'y':0.0,'z':0.0,'motionVariation':100}})
t.player_action('Particle', part, loc(5, 50, 5))
```

Currently, the particle object does not support colors.

### Potion

Represents a diamondfire potion item:

```py
# gives speed 1 for 1 minute
potion('Speed', dur=1200, amp=0)
```

Example:

```py
# gives the player infinite saturation 255
from dfpyre import *
t = DFTemplate()
t.player_event('Join')
t.player_action('GivePotion', potion('Saturation', amp=254))
```

### Game Value

Represents a diamondfire game value item:

```py
gamevalue('Player Count')
gamevalue('Location' target='Selection')
```

Example:

```py
# function that prints player count and cpu
from dfpyre import *
t = DFTemplate()
t.function('printData')
t.player_action('SendMessage', gamevalue('Player Count'), gamevalue('CPU Usage'))
```

### Vector

Represents a diamondfire vector item:

```py
vector(x=1.1, y=0.0, z=0.5)
```

Example:

```py
# sets the player's x velocity to 1.0 on join
from dfpyre import *
t = DFTemplate()
t.player_event('Join')
t.player_action('SetVelocity', vector(x=1.0, y=0.0, z=0.0))
```

### Parameter

Represents a diamondfire parameter item:

```py
parameter('text', ParameterType.STRING)
```

Example:

```py
# builds a function that says "Hello, [name]" where `name` is the inputted parameter.
from dfpyre import *
t = DFTemplate()
name_parameter = parameter('name', ParameterType.TEXT)
t.function('SayHi', name_parameter)
t.player_action('SendMessage', 'Hello, ', var('name', 'line'))
```

### Conditionals and Brackets

A list of conditionals and loops can be found [here](#commands).

A specific syntax must be followed when creating conditionals and loops. Each conditional statement must be followed by a `bracket()` method, which will contain code. Here's an example:

```py
# prints 'clicked' when a player right clicks with a stick in their hand
from dfpyre import *
t = DFTemplate()
t.player_event('RightClick')
t.if_player('IsHolding', item('stick'))
t.bracket(
    t.player_action('SendMessage', 'clicked')
)
```

To create an `else` statement, use the `else_` method:

```py
# says the player is 'on the ground' when grounded and 'in the air' otherwise.
from dfpyre import *
t = DFTemplate()
t.function('grounded')
t.if_player('IsGrounded')
t.bracket(
    t.player_action('ActionBar', 'on the ground')
)
t.else_()
t.bracket(
    t.player_action('ActionBar', 'in the air')
)
t.build()
```

### Loops

As for loops, the bracket syntax is the same and will automatically change to "repeat-type" brackets:

```py
# prints numbers 1-5
from dfpyre import *
t = DFTemplate()
t.player_event('Join')
t.repeat('Multiple', var('i'), 5)
t.bracket(
    t.player_action('SendMessage', var('i'))
)
```

### Creating Functions and Processes

To create a function or process, just start the template with a `function` or `process` method:

```py
# function that gives a player 64 golden apples
from dfpyre import *
t = DFTemplate()
t.function('doStuff')
t.player_action('GiveItems', item('golden_apple', 64))
```

### Calling Functions and Processes

Calling Functions and processes is also simple:

```py
from dfpyre import *
t = DFTemplate()
t.player_event('Join')
t.call_function('doStuff')
```
 
### Importing from Code

You can import existing templates from their built code using the `from_code` method:

```py
from dfpyre import *
template_code = 'H4sIAGVyIGYC/3WOMQ7CMAxFz4LnDsw5AhITI6qQSaw2IrGrxkJCVe5eh3boAJP9n/Kfs8AziX8VcPcFYgC3Zej26YDexGoZvUZhAxeJ3PI8WMtKSrnV+1q7P4op4Yfmx244qG7E4Uql4EA/jNv2Jc3qJU/2KqBiY4yZjI6UkpzAjkNJouDO1X7S1xUDaGUl2QAAAA=='

t = DFTemplate.from_code(template_code)
# add onto the template from here
```


### Script Generation

You can also generate an equivalent python script for a template from a template object:

```py
from dfpyre import *
template_code = 'H4sIAGVyIGYC/3WOMQ7CMAxFz4LnDsw5AhITI6qQSaw2IrGrxkJCVe5eh3boAJP9n/Kfs8AziX8VcPcFYgC3Zej26YDexGoZvUZhAxeJ3PI8WMtKSrnV+1q7P4op4Yfmx244qG7E4Uql4EA/jNv2Jc3qJU/2KqBiY4yZjI6UkpzAjkNJouDO1X7S1xUDaGUl2QAAAA=='

t = DFTemplate.from_code(template_code)
t.generate_script('my_template.py')    # generated python script will be written to my_template.py
```

### Method List

- Events / Function / Process
  - player_event
  - entity_event
  - function
  - process
  - call_function
  - start_process

- Actions
  - player_action
  - game_action
  - entity_action

- Conditionals / Loops
  - if_player
  - if_variable
  - if_game
  - if_entity
  - else_
  - repeat
  - bracket

- Other
  - control
  - select_object
  - set_variable
            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Amp63/pyre",
    "name": "dfpyre",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": "diamondfire, minecraft, template, item",
    "author": "Amp",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/6c/6f/69863397b034e488685a581797c74dd2f5755f01f426121442cc54a0fa20/dfpyre-0.6.1.tar.gz",
    "platform": null,
    "description": "# pyre\n\nA package for external creation of code templates for the DiamondFire Minecraft server (mcdiamondfire.com).\n\nPyPi Link: https://pypi.org/project/dfpyre/\n\n## Installation\n\nRun the following command in a terminal:\n```\npip install dfpyre\n```\n\n## Features\n- All code block types\n- All code item types\n- Direct sending to DF via recode or codeclient\n- Automatic type conversion (int to num, str to text)\n- Name checking (\"did you mean ___?\" for close matches)\n- Default tag values\n\n## Documentation\n## Basics\n\n- [Setting up a program](#setup)\n- [Events and Actions](#events-and-actions)\n- [Building](#building)\n\n## Var Items\n\n- [Text](#text)\n- [Number](#number)\n- [Variable](#variable)\n- [Location](#location)\n- [Item](#item)\n- [Sound](#sound)\n- [Particle](#particle)\n- [Potion](#potion)\n- [Game Value](#game-value)\n- [Vector](#vector)\n- [Parameter](#parameter)\n\n## Conditionals and Loops\n\n- [Conditionals and Brackets](#conditionals-and-brackets)\n- [Loops](#loops)\n\n## Functions and Procedures\n\n- [Creating Functions and Processes](#creating-functions-and-processes)\n- [Calling Functions and Processes](#calling-functions-and-processes)\n\n## Extras\n\n- [Importing from Code](#importing-from-code)\n- [Script Generation](#script-generation)\n- [Method List](#method-list)\n\n___\n\n### Setup\n\nTo start creating in pyre, you have to create a DFTemplate object like so:\n\n```py\nfrom dfpyre import *\nt = DFTemplate()\n```\n\nBasically everything stems from this template object.\n\nThis is the basic layout of a file:\n\n```py\nfrom dfpyre import *\nt = DFTemplate()\n# [Event, Function, or Process]\n# [Your code here]\nt.build()\n```\n\nThe commented lines represent where you will insert calls to methods in the template object.\n\nHere's a complete program that prints a message to every player when a player joins:\n\n```py\nfrom dfpyre import *\nt = DFTemplate()\nt.player_event('Join')\nt.player_action('SendMessage', '%default has joined!', target=Target.ALL_PLAYERS)\nt.build_and_send('codeclient')\n```\n\n### Events and Actions\n\nYou can find a list of events and actions [here](#method-list)\n\nAs shown in [setup](#setup), every code line must start with an event, function, or process. After that, you're free to put anything you want.\n\nThe following program sends a message to all players and gives a player 10 apples upon joining:\n\n```py\nfrom dfpyre import *\nt = DFTemplate()\nt.player_event('Join')\nt.player_action('SendMessage', '%default has joined!', target=Target.ALL_PLAYERS)\nt.player_action('GiveItems', item('apple', 10))\n```\n\n### Building\n\nYou have 2 different options for building your code line.\nYou can either:\n\n1. Save the compressed template code to a variable and send it to minecraft later\n2. Build and send directly to your minecraft client (recommended)\n\nIf you choose the first option, the code would look something like this:\n\n```py\nfrom dfpyre import *\nt = DFTemplate()\nt.player_event('Join')\nt.player_action('SendMessage', '%default has joined!', target=Target.ALL_PLAYERS)\ntemplate_code = t.build()  # do whatever you want with this\n```\n\nIf you choose the second option, you can do this:\n\n```py\nfrom dfpyre import *\nt = DFTemplate()\nt.player_event('Join')\nt.player_action('SendMessage', '%default has joined!', target=Target.ALL_PLAYERS)\nt.build_and_send('codeclient')  # builds and sends automatically to minecraft\n```\n\n### Variable Items\n\n### Text\n\nRepresents a diamondfire text item:\n\n```py\ntext('hello %default.')\n```\n\nIf a regular string is passed to a method as a chest parameter, it will automatically be converted to a text object:\n\n```py\n# These do the same thing:\nt.player_action('SendMessage', text('%default joined.'))\nt.player_action('SendMessage', '%default joined.')\n```\n\n### Number\n\nRepresents a diamondfire number item:\n\n```py\nnum(5)\nnum(3.14)\n```\n\nIf a regular integer or float is passed to a method as a chest parameter, it will automatically be converted to a num object:\n\n```py\n# These do the same thing:\nt.set_variable('=', var('number'), num(10))\nt.set_variable('=', var('number'), 10)\n```\n\n### Variable\n\nRepresents a diamondfire variable item:\n\n```py\nvar('num')\nvar('text1')\n```\n\nYou can set variable values by using the `set_variable` method:\n\n```py\nt.set_variable('=', var('num'), 12)  # sets 'num' to 12\nt.set_variable('x', var('doubled'), var('num'), 2)  # sets 'doubled' to 24\n```\n\nYou can set the scope of the variable by using the `scope` argument:\n\n```py\nt.set_variable('=', var(num1, scope='unsaved'), 12)  # `unsaved` is the same as a game variable.\nt.set_variable('=', var(num1, scope='saved'), 12)\nt.set_variable('=', var(num1, scope='local'), 12)\n```\n\n#### Shorthand Variables\n\nYou can also use the variable shorthand format like this:\n```py\n# These do the same thing:\nt.set_variable('=', var('lineVar', scope='line'), 5)\nt.set_variable('=', '$ilineVar', 5)\n```\n\nShorthand vars should be formatted like this: `$[scope id][var name]`\n\nHere's a list of the scope IDs:\n- `g` = Game (unsaved)\n- `s` = Saved\n- `l` = Local\n- `i` = Line\n\n### Location\n\nRepresents a diamondfire location item:\n\n```py\nloc(x=25.5, y=50, z=25.5, pitch=0, yaw=-90)\n```\n\nExample:\n\n```py\n# teleport player on join\nfrom dfpyre import *\nt = DFTemplate()\nt.player_event('Join')\nt.player_action('Teleport', loc(10, 50, 10))\n```\n\n### Item\n\nRepresents a minecraft item:\n\n```py\nitem('stick', count=5)\nitem('stone', 64)\n```\n\nTo add extra data to an item, you can use any methods from the [mcitemlib](https://github.com/Amp63/mcitemlib) library\n\n### Sound\n\nRepresents a diamondfire sound item:\n\n```py\nsound('Wood Break', pitch=1.5, vol=2.0)\n```\n\nExample:\n\n```py\n# plays 'Grass Place' sound on join\nfrom dfpyre import *\nt = DFTemplate()\nt.player_event('Join')\nt.player_action('PlaySound', sound('Grass Place'))\n```\n\n### Particle\n\nRepresents a diamondfire particle item:\n\n```py\nparticle({'particle':'Cloud','cluster':{'amount':1,'horizontal':0.0,'vertical':0.0},'data':{'x':1.0,'y':0.0,'z':0.0,'motionVariation':100}})\n```\n\nExample:\n\n```py\n# plays a white cloud particle effect at 5, 50, 5\nfrom dfpyre import *\nt = DFTemplate()\nt.player_event('Join')\npart = particle({'particle':'Cloud','cluster':{'amount':1,'horizontal':0.0,'vertical':0.0},'data':{'x':1.0,'y':0.0,'z':0.0,'motionVariation':100}})\nt.player_action('Particle', part, loc(5, 50, 5))\n```\n\nCurrently, the particle object does not support colors.\n\n### Potion\n\nRepresents a diamondfire potion item:\n\n```py\n# gives speed 1 for 1 minute\npotion('Speed', dur=1200, amp=0)\n```\n\nExample:\n\n```py\n# gives the player infinite saturation 255\nfrom dfpyre import *\nt = DFTemplate()\nt.player_event('Join')\nt.player_action('GivePotion', potion('Saturation', amp=254))\n```\n\n### Game Value\n\nRepresents a diamondfire game value item:\n\n```py\ngamevalue('Player Count')\ngamevalue('Location' target='Selection')\n```\n\nExample:\n\n```py\n# function that prints player count and cpu\nfrom dfpyre import *\nt = DFTemplate()\nt.function('printData')\nt.player_action('SendMessage', gamevalue('Player Count'), gamevalue('CPU Usage'))\n```\n\n### Vector\n\nRepresents a diamondfire vector item:\n\n```py\nvector(x=1.1, y=0.0, z=0.5)\n```\n\nExample:\n\n```py\n# sets the player's x velocity to 1.0 on join\nfrom dfpyre import *\nt = DFTemplate()\nt.player_event('Join')\nt.player_action('SetVelocity', vector(x=1.0, y=0.0, z=0.0))\n```\n\n### Parameter\n\nRepresents a diamondfire parameter item:\n\n```py\nparameter('text', ParameterType.STRING)\n```\n\nExample:\n\n```py\n# builds a function that says \"Hello, [name]\" where `name` is the inputted parameter.\nfrom dfpyre import *\nt = DFTemplate()\nname_parameter = parameter('name', ParameterType.TEXT)\nt.function('SayHi', name_parameter)\nt.player_action('SendMessage', 'Hello, ', var('name', 'line'))\n```\n\n### Conditionals and Brackets\n\nA list of conditionals and loops can be found [here](#commands).\n\nA specific syntax must be followed when creating conditionals and loops. Each conditional statement must be followed by a `bracket()` method, which will contain code. Here's an example:\n\n```py\n# prints 'clicked' when a player right clicks with a stick in their hand\nfrom dfpyre import *\nt = DFTemplate()\nt.player_event('RightClick')\nt.if_player('IsHolding', item('stick'))\nt.bracket(\n    t.player_action('SendMessage', 'clicked')\n)\n```\n\nTo create an `else` statement, use the `else_` method:\n\n```py\n# says the player is 'on the ground' when grounded and 'in the air' otherwise.\nfrom dfpyre import *\nt = DFTemplate()\nt.function('grounded')\nt.if_player('IsGrounded')\nt.bracket(\n    t.player_action('ActionBar', 'on the ground')\n)\nt.else_()\nt.bracket(\n    t.player_action('ActionBar', 'in the air')\n)\nt.build()\n```\n\n### Loops\n\nAs for loops, the bracket syntax is the same and will automatically change to \"repeat-type\" brackets:\n\n```py\n# prints numbers 1-5\nfrom dfpyre import *\nt = DFTemplate()\nt.player_event('Join')\nt.repeat('Multiple', var('i'), 5)\nt.bracket(\n    t.player_action('SendMessage', var('i'))\n)\n```\n\n### Creating Functions and Processes\n\nTo create a function or process, just start the template with a `function` or `process` method:\n\n```py\n# function that gives a player 64 golden apples\nfrom dfpyre import *\nt = DFTemplate()\nt.function('doStuff')\nt.player_action('GiveItems', item('golden_apple', 64))\n```\n\n### Calling Functions and Processes\n\nCalling Functions and processes is also simple:\n\n```py\nfrom dfpyre import *\nt = DFTemplate()\nt.player_event('Join')\nt.call_function('doStuff')\n```\n \n### Importing from Code\n\nYou can import existing templates from their built code using the `from_code` method:\n\n```py\nfrom dfpyre import *\ntemplate_code = 'H4sIAGVyIGYC/3WOMQ7CMAxFz4LnDsw5AhITI6qQSaw2IrGrxkJCVe5eh3boAJP9n/Kfs8AziX8VcPcFYgC3Zej26YDexGoZvUZhAxeJ3PI8WMtKSrnV+1q7P4op4Yfmx244qG7E4Uql4EA/jNv2Jc3qJU/2KqBiY4yZjI6UkpzAjkNJouDO1X7S1xUDaGUl2QAAAA=='\n\nt = DFTemplate.from_code(template_code)\n# add onto the template from here\n```\n\n\n### Script Generation\n\nYou can also generate an equivalent python script for a template from a template object:\n\n```py\nfrom dfpyre import *\ntemplate_code = 'H4sIAGVyIGYC/3WOMQ7CMAxFz4LnDsw5AhITI6qQSaw2IrGrxkJCVe5eh3boAJP9n/Kfs8AziX8VcPcFYgC3Zej26YDexGoZvUZhAxeJ3PI8WMtKSrnV+1q7P4op4Yfmx244qG7E4Uql4EA/jNv2Jc3qJU/2KqBiY4yZjI6UkpzAjkNJouDO1X7S1xUDaGUl2QAAAA=='\n\nt = DFTemplate.from_code(template_code)\nt.generate_script('my_template.py')    # generated python script will be written to my_template.py\n```\n\n### Method List\n\n- Events / Function / Process\n  - player_event\n  - entity_event\n  - function\n  - process\n  - call_function\n  - start_process\n\n- Actions\n  - player_action\n  - game_action\n  - entity_action\n\n- Conditionals / Loops\n  - if_player\n  - if_variable\n  - if_game\n  - if_entity\n  - else_\n  - repeat\n  - bracket\n\n- Other\n  - control\n  - select_object\n  - set_variable",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A package for external creation of code templates for the DiamondFire Minecraft server.",
    "version": "0.6.1",
    "project_urls": {
        "Homepage": "https://github.com/Amp63/pyre",
        "Repository": "https://github.com/Amp63/pyre"
    },
    "split_keywords": [
        "diamondfire",
        " minecraft",
        " template",
        " item"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "62a79a817ab793ab2068670e1a6417e0524ab7a8cae673b168bbb22188c17a95",
                "md5": "4f33eeef149cc1b7b203af8730d39a14",
                "sha256": "5a4ee20590a8526fefba974ed3d6240da2b3dc1c978343d3e461c26305ed2038"
            },
            "downloads": -1,
            "filename": "dfpyre-0.6.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4f33eeef149cc1b7b203af8730d39a14",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 21704,
            "upload_time": "2024-04-30T02:53:22",
            "upload_time_iso_8601": "2024-04-30T02:53:22.411405Z",
            "url": "https://files.pythonhosted.org/packages/62/a7/9a817ab793ab2068670e1a6417e0524ab7a8cae673b168bbb22188c17a95/dfpyre-0.6.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6c6f69863397b034e488685a581797c74dd2f5755f01f426121442cc54a0fa20",
                "md5": "98a8d17997e29521eed9d6f26774ffc0",
                "sha256": "1fe78ab0b981bdaf3e0d1c5ab845561b37c8e202b961919d9a52db62fadce09d"
            },
            "downloads": -1,
            "filename": "dfpyre-0.6.1.tar.gz",
            "has_sig": false,
            "md5_digest": "98a8d17997e29521eed9d6f26774ffc0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 23149,
            "upload_time": "2024-04-30T02:53:23",
            "upload_time_iso_8601": "2024-04-30T02:53:23.674238Z",
            "url": "https://files.pythonhosted.org/packages/6c/6f/69863397b034e488685a581797c74dd2f5755f01f426121442cc54a0fa20/dfpyre-0.6.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-30 02:53:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Amp63",
    "github_project": "pyre",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "dfpyre"
}
        
Amp
Elapsed time: 0.27386s