# 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
- [Editing Tags](#editing-tags)
- [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](#method-list).
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')
)
```
### 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')
```
### Editing Tags
You can edit an action's tags by passing the `tags` argument to a template method:
```py
from dfpyre import *
t = DFTemplate()
t.player_event('Join')
t.player_action('SendMessage', 'hello', tags={'Alignment Mode': 'Centered'})
```
If you choose not to modify a specific tag, its default value will be used.
Order does not matter when adding multiple tag entries.
### 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/15/a2/5d90ccf3f2aade8c72bb6082c9a296d8fac847828eef8cbaaa2b83b3a095/dfpyre-0.7.2.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- [Editing Tags](#editing-tags)\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](#method-list).\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)\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### Editing Tags\nYou can edit an action's tags by passing the `tags` argument to a template method:\n\n```py\nfrom dfpyre import *\nt = DFTemplate()\nt.player_event('Join')\nt.player_action('SendMessage', 'hello', tags={'Alignment Mode': 'Centered'})\n```\n\nIf you choose not to modify a specific tag, its default value will be used.\nOrder does not matter when adding multiple tag entries.\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 creating and modifying code templates for the DiamondFire Minecraft server.",
"version": "0.7.2",
"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": "f942cdf182f143980702be6fc9436287c69a0f4a3933a036d13baaf5cacc358a",
"md5": "727928fa096f4c84d51cd511fa46604c",
"sha256": "be5480b3f06ecd5d983b98d689b09ea3bb52d31b15850e4c902443d91af92ce2"
},
"downloads": -1,
"filename": "dfpyre-0.7.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "727928fa096f4c84d51cd511fa46604c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 181857,
"upload_time": "2024-07-23T17:54:24",
"upload_time_iso_8601": "2024-07-23T17:54:24.966210Z",
"url": "https://files.pythonhosted.org/packages/f9/42/cdf182f143980702be6fc9436287c69a0f4a3933a036d13baaf5cacc358a/dfpyre-0.7.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "15a25d90ccf3f2aade8c72bb6082c9a296d8fac847828eef8cbaaa2b83b3a095",
"md5": "6d96c4e1cb6b6a2855dab7418c951fe8",
"sha256": "1b670eae304a5d4dd1fa126c37eb95c78e8361700b6748a5ae79b33cb0a281c9"
},
"downloads": -1,
"filename": "dfpyre-0.7.2.tar.gz",
"has_sig": false,
"md5_digest": "6d96c4e1cb6b6a2855dab7418c951fe8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 178914,
"upload_time": "2024-07-23T17:54:26",
"upload_time_iso_8601": "2024-07-23T17:54:26.412683Z",
"url": "https://files.pythonhosted.org/packages/15/a2/5d90ccf3f2aade8c72bb6082c9a296d8fac847828eef8cbaaa2b83b3a095/dfpyre-0.7.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-07-23 17:54:26",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Amp63",
"github_project": "pyre",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "dfpyre"
}