Name | craftground JSON |
Version |
2.5.30
JSON |
| download |
home_page | None |
Summary | Lightweight Minecraft Environment for Reinforcement Learning |
upload_time | 2024-12-28 13:42:39 |
maintainer | None |
docs_url | None |
author | None |
requires_python | None |
license | MIT License Copyright (c) 2023 Hyeonseo Yang Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
keywords |
minecraft
reinforcement learning
environment
|
VCS |
|
bugtrack_url |
|
requirements |
cloudpickle
Farama-Notifications
gymnasium
numpy
Pillow
protobuf
typing_extensions
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# CraftGround - Reinforcement Learning Environment for Minecraft
[![Wheels](https://github.com/yhs0602/CraftGround/actions/workflows/publish-package.yml/badge.svg)](https://github.com/yhs0602/CraftGround/actions/workflows/publish-package.yml)
[![Python package](https://github.com/yhs0602/CraftGround/actions/workflows/python-ci.yml/badge.svg)](https://github.com/yhs0602/CraftGround/actions/workflows/python-ci.yml)
[![CMake Build](https://github.com/yhs0602/CraftGround/actions/workflows/cmake-build.yml/badge.svg)](https://github.com/yhs0602/CraftGround/actions/workflows/cmake-build.yml)
[![Gradle Build](https://github.com/yhs0602/CraftGround/actions/workflows/gradle.yml/badge.svg)](https://github.com/yhs0602/CraftGround/actions/workflows/gradle.yml)
<img src="docs/craftground.webp" alt="CraftGround_Logo" width="50%"/>
[![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Fyhs0602%2FMinecraftRL)](https://github.com/yhs0602/MinecraftRL)
RL experiments using lightweight minecraft environment
This is the latest development repository of CraftGround environment.
## Quick start
1. You need to install JDK >= 21
1. Run the following command to install the package.
```shell
pip install craftground
```
1. Take a look at the [the demo repository](https://github.com/yhs0602/CraftGround-Baselines3)!
1. Here is a simple example that uses this environment.
```python
from craftground import craftground
from craftground.wrappers.action import ActionWrapper, Action
from craftground.wrappers.fast_reset import FastResetWrapper
from craftground.wrappers.time_limit import TimeLimitWrapper
from craftground.wrappers.vision import VisionWrapper
from stable_baselines3 import A2C
from stable_baselines3.common.monitor import Monitor
from stable_baselines3.common.vec_env import VecVideoRecorder, DummyVecEnv
from wandb.integration.sb3 import WandbCallback
import wandb
from avoid_damage import AvoidDamageWrapper
def main():
run = wandb.init(
# set the wandb project where this run will be logged
project="craftground-sb3",
entity="jourhyang123",
# track hyperparameters and run metadata
group="escape-husk",
sync_tensorboard=True, # auto-upload sb3's tensorboard metrics
monitor_gym=True, # auto-upload the videos of agents playing the game
save_code=True, # optional save_code=True, # optional
)
env = craftground.make(
# env_path="../minecraft_env",
port=8023,
initialInventoryCommands=[],
initialPosition=None, # nullable
initialMobsCommands=[
"minecraft:husk ~ ~ ~5 {HandItems:[{Count:1,id:iron_shovel},{}]}",
# player looks at south (positive Z) when spawn
],
imageSizeX=114,
imageSizeY=64,
visibleSizeX=114,
visibleSizeY=64,
seed=12345, # nullable
allowMobSpawn=False,
alwaysDay=True,
alwaysNight=False,
initialWeather="clear", # nullable
isHardCore=False,
isWorldFlat=True, # superflat world
obs_keys=["sound_subtitles"],
initialExtraCommands=[],
isHudHidden=False,
render_action=True,
render_distance=2,
simulation_distance=5,
)
env = FastResetWrapper(
TimeLimitWrapper(
ActionWrapper(
AvoidDamageWrapper(VisionWrapper(env, x_dim=114, y_dim=64)),
enabled_actions=[Action.FORWARD, Action.BACKWARD],
),
max_timesteps=400,
)
)
env = Monitor(env)
env = DummyVecEnv([lambda: env])
env = VecVideoRecorder(
env,
f"videos/{run.id}",
record_video_trigger=lambda x: x % 2000 == 0,
video_length=200,
)
model = A2C(
"MlpPolicy", env, verbose=1, device="mps", tensorboard_log=f"runs/{run.id}"
)
model.learn(
total_timesteps=10000,
callback=WandbCallback(
gradient_save_freq=100,
model_save_path=f"models/{run.id}",
verbose=2,
),
)
model.save("a2c_craftground")
run.finish()
# vec_env = model.get_env()
# obs = vec_env.reset()
# for i in range(1000):
# action, _state = model.predict(obs, deterministic=True)
# obs, reward, done, info = vec_env.step(action)
# # vec_env.render("human")
# # VecEnv resets automatically
# # if done:
# # obs = vec_env.reset()
if __name__ == "__main__":
main()
```
# Environment
https://github.com/yhs0602/MinecraftEnv
Utilizing protocol buffers, we've constructed a reinforcement learning environment specifically tailored for Minecraft.
Below are detailed specifications of the environment's architecture:
## Initial Environment
### `BlockState`
| Field | Type | Description |
|-------------|--------|------------------------------------------------------------------------------------------------------------------|
| x, y, z | int32 | Coordinates of the block. |
| block_state | string | State of the block, e.g., `minecraft:andesite_stairs[facing=east,half=bottom,shape=straight,waterlogged=false]`. |
### `InitialEnvironmentMessage`
| Field | Type | Description |
|---------------------------------------------|---------------------|-----------------------------------------------|
| initialInventoryCommands | repeated string | Commands to setup initial inventory. |
| initialPosition | repeated int32 | Player's starting coordinates. |
| initialMobsCommands | repeated string | Commands for spawning mobs. |
| imageSizeX, imageSizeY | int32 | Image dimensions of the environment. |
| seed | int64 | World generation seed. |
| allowMobSpawn | bool | Controls mob spawning. |
| alwaysNight, alwaysDay | bool | Control for time of day. |
| initialWeather | string | Initial weather setting. |
| isWorldFlat | bool | Flat world toggle. |
| visibleSizeX, visibleSizeY | int32 | Player's visible dimensions. |
| initialExtraCommands | repeated string | Extra commands for initialization. |
| killedStatKeys, minedStatKeys, miscStatKeys | repeated string | Player's statistic keys. |
| initialBlockStates | repeated BlockState | Initial world block states. |
| surroundingEntityDistances | repeated int32 | Entity distances from player. |
| hudHidden | bool | Toggle for HUD visibility. |
| render_distance, simulation_distance | int32 | Block and entity render/simulation distances. |
## Observation Space
### `ItemStack`
| Field | Type | Description |
|----------------------------|--------|--------------------------------------|
| raw_id | int32 | Unique item identifier. |
| translation_key | string | Item's display name translation key. |
| count | int32 | Amount in the item stack. |
| durability, max_durability | int32 | Durability information of item. |
### `BlockInfo`
| Field | Type | Description |
|-----------------|--------|---------------------------------------|
| x, y, z | int32 | Block coordinates. |
| translation_key | string | Block's display name translation key. |
### `EntityInfo`
| Field | Type | Description |
|-----------------|--------|------------------------------|
| unique_name | string | Unique name of the entity. |
| translation_key | string | Entity's translation key. |
| x, y, z | double | Entity coordinates. |
| yaw, pitch | double | Yaw and Pitch of the entity. |
| health | double | Health of the entity. |
### `ObservationSpaceMessage`
| Field | Type | Description |
|----------------------|------------------------------------|------------------------------------------------------------|
| image | bytes | Image data of the environment. |
| x, y, z | double | Player's coordinates in the world. |
| yaw, pitch | double | Player's orientation (yaw & pitch). |
| health | double | Player's health level. |
| food_level | double | Player's food level. |
| saturation_level | double | Player's saturation level. |
| is_dead | bool | Flag indicating if the player is dead. |
| inventory | repeated ItemStack | List of items in player's inventory. |
| raycast_result | HitResult | Raycasting result to identify targeted blocks or entities. |
| sound_subtitles | repeated SoundEntry | List of recent sounds with subtitles. |
| status_effects | repeated StatusEffect | List of active status effects on the player. |
| killed_statistics | map<string, int32> | Player's kill statistics with entity names as keys. |
| mined_statistics | map<string, int32> | Player's block mining statistics with block types as keys. |
| misc_statistics | map<string, int32> | Miscellaneous statistics. |
| visible_entities | repeated EntityInfo | List of entities currently visible to the player. |
| surrounding_entities | map<int32, EntitiesWithinDistance> | Map of entities around the player with distances as keys. |
| bobber_thrown | bool | Flag indicating if a fishing bobber is currently thrown. |
| world_time | int64 | Current world time. |
| last_death_message | string | Last death reason. |
## Action Space
### `ActionSpaceMessage`
| Field | Type | Description |
|----------|-----------------|---------------------------|
| action | repeated int32 | Available player actions. |
| commands | repeated string | Any minecraft commands. |
# Wrapper list
| Wrapper Name | Description |
|-------------------------|-----------------------------------------------------------------------------------------------------|
| action | Defines discrete action spaces and operations for the agent. |
| sound | Provides sound-based feedback or actions for the agent. |
| vision | Incorporates visual feedback or vision-based actions for the agent. |
# How to execute minecraft command in a gymnasium wrapper?
```python
self.get_wrapper_attr("add_commands")(
[
f"setblock 1 2 3 minecraft:cake"
]
)
```
# Devaju font license
https://dejavu-fonts.github.io/License.html
# Adding a new paramerter
1. Edit .proto
2. protoc
3. Edit python files
# Formatting
## Install formatters
```zsh
brew install ktlint clang-format google-java-format
```
```bash
find . \( -iname '*.h' -o -iname '*.cpp' -o -iname '*.mm' \) | xargs clang-format -i
ktlint '!src/craftground/MinecraftEnv/src/main/java/com/kyhsgeekcode/minecraftenv/proto/**'
find . -name '*.java' -print0 | xargs -0 -P 4 google-java-format -i
```
# Managing proto files
```bash
cd src/
protoc proto/action_space.proto --python_out=craftground
protoc proto/initial_environment.proto --python_out=craftground
protoc proto/observation_space.proto --python_out=craftground
protoc proto/action_space.proto --java_out=craftground/MinecraftEnv/src/main/java/ --kotlin_out=craftground/MinecraftEnv/src/main/java/
protoc proto/initial_environment.proto --java_out=craftground/MinecraftEnv/src/main/java/ --kotlin_out=craftground/MinecraftEnv/src/main/java/
protoc proto/observation_space.proto --java_out=craftground/MinecraftEnv/src/main/java/ --kotlin_out=craftground/MinecraftEnv/src/main/java/
```
Raw data
{
"_id": null,
"home_page": null,
"name": "craftground",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "minecraft, reinforcement learning, environment",
"author": null,
"author_email": "yhs0602 <jourhyang123@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/63/58/e5d9607fbe3f128e74240186db38f533baccbdcc73fe2a7c62c6785f4b2f/craftground-2.5.30.tar.gz",
"platform": null,
"description": "# CraftGround - Reinforcement Learning Environment for Minecraft\n[![Wheels](https://github.com/yhs0602/CraftGround/actions/workflows/publish-package.yml/badge.svg)](https://github.com/yhs0602/CraftGround/actions/workflows/publish-package.yml)\n[![Python package](https://github.com/yhs0602/CraftGround/actions/workflows/python-ci.yml/badge.svg)](https://github.com/yhs0602/CraftGround/actions/workflows/python-ci.yml)\n[![CMake Build](https://github.com/yhs0602/CraftGround/actions/workflows/cmake-build.yml/badge.svg)](https://github.com/yhs0602/CraftGround/actions/workflows/cmake-build.yml)\n[![Gradle Build](https://github.com/yhs0602/CraftGround/actions/workflows/gradle.yml/badge.svg)](https://github.com/yhs0602/CraftGround/actions/workflows/gradle.yml)\n\n<img src=\"docs/craftground.webp\" alt=\"CraftGround_Logo\" width=\"50%\"/>\n\n\n[![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Fyhs0602%2FMinecraftRL)](https://github.com/yhs0602/MinecraftRL)\n\nRL experiments using lightweight minecraft environment\n\nThis is the latest development repository of CraftGround environment.\n\n## Quick start\n\n1. You need to install JDK >= 21\n1. Run the following command to install the package.\n ```shell\n pip install craftground\n ```\n1. Take a look at the [the demo repository](https://github.com/yhs0602/CraftGround-Baselines3)!\n1. Here is a simple example that uses this environment.\n ```python\n from craftground import craftground\n from craftground.wrappers.action import ActionWrapper, Action\n from craftground.wrappers.fast_reset import FastResetWrapper\n from craftground.wrappers.time_limit import TimeLimitWrapper\n from craftground.wrappers.vision import VisionWrapper\n from stable_baselines3 import A2C\n from stable_baselines3.common.monitor import Monitor\n from stable_baselines3.common.vec_env import VecVideoRecorder, DummyVecEnv\n from wandb.integration.sb3 import WandbCallback\n \n import wandb\n from avoid_damage import AvoidDamageWrapper\n \n \n def main():\n run = wandb.init(\n # set the wandb project where this run will be logged\n project=\"craftground-sb3\",\n entity=\"jourhyang123\",\n # track hyperparameters and run metadata\n group=\"escape-husk\",\n sync_tensorboard=True, # auto-upload sb3's tensorboard metrics\n monitor_gym=True, # auto-upload the videos of agents playing the game\n save_code=True, # optional save_code=True, # optional\n )\n env = craftground.make(\n # env_path=\"../minecraft_env\",\n port=8023,\n initialInventoryCommands=[],\n initialPosition=None, # nullable\n initialMobsCommands=[\n \"minecraft:husk ~ ~ ~5 {HandItems:[{Count:1,id:iron_shovel},{}]}\",\n # player looks at south (positive Z) when spawn\n ],\n imageSizeX=114,\n imageSizeY=64,\n visibleSizeX=114,\n visibleSizeY=64,\n seed=12345, # nullable\n allowMobSpawn=False,\n alwaysDay=True,\n alwaysNight=False,\n initialWeather=\"clear\", # nullable\n isHardCore=False,\n isWorldFlat=True, # superflat world\n obs_keys=[\"sound_subtitles\"],\n initialExtraCommands=[],\n isHudHidden=False,\n render_action=True,\n render_distance=2,\n simulation_distance=5,\n )\n env = FastResetWrapper(\n TimeLimitWrapper(\n ActionWrapper(\n AvoidDamageWrapper(VisionWrapper(env, x_dim=114, y_dim=64)),\n enabled_actions=[Action.FORWARD, Action.BACKWARD],\n ),\n max_timesteps=400,\n )\n )\n env = Monitor(env)\n env = DummyVecEnv([lambda: env])\n env = VecVideoRecorder(\n env,\n f\"videos/{run.id}\",\n record_video_trigger=lambda x: x % 2000 == 0,\n video_length=200,\n )\n model = A2C(\n \"MlpPolicy\", env, verbose=1, device=\"mps\", tensorboard_log=f\"runs/{run.id}\"\n )\n \n model.learn(\n total_timesteps=10000,\n callback=WandbCallback(\n gradient_save_freq=100,\n model_save_path=f\"models/{run.id}\",\n verbose=2,\n ),\n )\n model.save(\"a2c_craftground\")\n run.finish()\n \n # vec_env = model.get_env()\n # obs = vec_env.reset()\n # for i in range(1000):\n # action, _state = model.predict(obs, deterministic=True)\n # obs, reward, done, info = vec_env.step(action)\n # # vec_env.render(\"human\")\n # # VecEnv resets automatically\n # # if done:\n # # obs = vec_env.reset()\n \n \n if __name__ == \"__main__\":\n main()\n\n ```\n\n# Environment\n\nhttps://github.com/yhs0602/MinecraftEnv\n\nUtilizing protocol buffers, we've constructed a reinforcement learning environment specifically tailored for Minecraft.\nBelow are detailed specifications of the environment's architecture:\n\n## Initial Environment\n\n### `BlockState`\n\n| Field | Type | Description |\n|-------------|--------|------------------------------------------------------------------------------------------------------------------|\n| x, y, z | int32 | Coordinates of the block. |\n| block_state | string | State of the block, e.g., `minecraft:andesite_stairs[facing=east,half=bottom,shape=straight,waterlogged=false]`. |\n\n### `InitialEnvironmentMessage`\n\n| Field | Type | Description |\n|---------------------------------------------|---------------------|-----------------------------------------------|\n| initialInventoryCommands | repeated string | Commands to setup initial inventory. |\n| initialPosition | repeated int32 | Player's starting coordinates. |\n| initialMobsCommands | repeated string | Commands for spawning mobs. |\n| imageSizeX, imageSizeY | int32 | Image dimensions of the environment. |\n| seed | int64 | World generation seed. |\n| allowMobSpawn | bool | Controls mob spawning. |\n| alwaysNight, alwaysDay | bool | Control for time of day. |\n| initialWeather | string | Initial weather setting. |\n| isWorldFlat | bool | Flat world toggle. |\n| visibleSizeX, visibleSizeY | int32 | Player's visible dimensions. |\n| initialExtraCommands | repeated string | Extra commands for initialization. |\n| killedStatKeys, minedStatKeys, miscStatKeys | repeated string | Player's statistic keys. |\n| initialBlockStates | repeated BlockState | Initial world block states. |\n| surroundingEntityDistances | repeated int32 | Entity distances from player. |\n| hudHidden | bool | Toggle for HUD visibility. |\n| render_distance, simulation_distance | int32 | Block and entity render/simulation distances. |\n\n## Observation Space\n\n### `ItemStack`\n\n| Field | Type | Description |\n|----------------------------|--------|--------------------------------------|\n| raw_id | int32 | Unique item identifier. |\n| translation_key | string | Item's display name translation key. |\n| count | int32 | Amount in the item stack. |\n| durability, max_durability | int32 | Durability information of item. |\n\n### `BlockInfo`\n\n| Field | Type | Description |\n|-----------------|--------|---------------------------------------|\n| x, y, z | int32 | Block coordinates. |\n| translation_key | string | Block's display name translation key. |\n\n### `EntityInfo`\n\n| Field | Type | Description |\n|-----------------|--------|------------------------------|\n| unique_name | string | Unique name of the entity. |\n| translation_key | string | Entity's translation key. |\n| x, y, z | double | Entity coordinates. |\n| yaw, pitch | double | Yaw and Pitch of the entity. |\n| health | double | Health of the entity. |\n\n### `ObservationSpaceMessage`\n\n| Field | Type | Description |\n|----------------------|------------------------------------|------------------------------------------------------------|\n| image | bytes | Image data of the environment. |\n| x, y, z | double | Player's coordinates in the world. |\n| yaw, pitch | double | Player's orientation (yaw & pitch). |\n| health | double | Player's health level. |\n| food_level | double | Player's food level. |\n| saturation_level | double | Player's saturation level. |\n| is_dead | bool | Flag indicating if the player is dead. |\n| inventory | repeated ItemStack | List of items in player's inventory. |\n| raycast_result | HitResult | Raycasting result to identify targeted blocks or entities. |\n| sound_subtitles | repeated SoundEntry | List of recent sounds with subtitles. |\n| status_effects | repeated StatusEffect | List of active status effects on the player. |\n| killed_statistics | map<string, int32> | Player's kill statistics with entity names as keys. |\n| mined_statistics | map<string, int32> | Player's block mining statistics with block types as keys. |\n| misc_statistics | map<string, int32> | Miscellaneous statistics. |\n| visible_entities | repeated EntityInfo | List of entities currently visible to the player. |\n| surrounding_entities | map<int32, EntitiesWithinDistance> | Map of entities around the player with distances as keys. |\n| bobber_thrown | bool | Flag indicating if a fishing bobber is currently thrown. |\n| world_time | int64 | Current world time. |\n| last_death_message | string | Last death reason. |\n\n## Action Space\n\n### `ActionSpaceMessage`\n\n| Field | Type | Description |\n|----------|-----------------|---------------------------|\n| action | repeated int32 | Available player actions. |\n| commands | repeated string | Any minecraft commands. |\n\n\n# Wrapper list\n\n| Wrapper Name | Description |\n|-------------------------|-----------------------------------------------------------------------------------------------------|\n| action | Defines discrete action spaces and operations for the agent. |\n| sound | Provides sound-based feedback or actions for the agent. |\n| vision | Incorporates visual feedback or vision-based actions for the agent. |\n\n# How to execute minecraft command in a gymnasium wrapper?\n```python\nself.get_wrapper_attr(\"add_commands\")(\n [\n f\"setblock 1 2 3 minecraft:cake\"\n ]\n)\n```\n\n\n# Devaju font license\n\nhttps://dejavu-fonts.github.io/License.html\n\n\n# Adding a new paramerter\n1. Edit .proto\n2. protoc\n3. Edit python files\n\n\n# Formatting\n## Install formatters\n```zsh\nbrew install ktlint clang-format google-java-format\n```\n```bash\nfind . \\( -iname '*.h' -o -iname '*.cpp' -o -iname '*.mm' \\) | xargs clang-format -i\nktlint '!src/craftground/MinecraftEnv/src/main/java/com/kyhsgeekcode/minecraftenv/proto/**'\nfind . -name '*.java' -print0 | xargs -0 -P 4 google-java-format -i\n```\n\n# Managing proto files\n```bash\ncd src/\nprotoc proto/action_space.proto --python_out=craftground\nprotoc proto/initial_environment.proto --python_out=craftground\nprotoc proto/observation_space.proto --python_out=craftground\nprotoc proto/action_space.proto --java_out=craftground/MinecraftEnv/src/main/java/ --kotlin_out=craftground/MinecraftEnv/src/main/java/\nprotoc proto/initial_environment.proto --java_out=craftground/MinecraftEnv/src/main/java/ --kotlin_out=craftground/MinecraftEnv/src/main/java/\nprotoc proto/observation_space.proto --java_out=craftground/MinecraftEnv/src/main/java/ --kotlin_out=craftground/MinecraftEnv/src/main/java/\n```",
"bugtrack_url": null,
"license": "MIT License Copyright (c) 2023 Hyeonseo Yang Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
"summary": "Lightweight Minecraft Environment for Reinforcement Learning",
"version": "2.5.30",
"project_urls": {
"Source": "https://github.com/yhs0602/CraftGround",
"Tracker": "https://github.com/yhs0602/CraftGround/issues"
},
"split_keywords": [
"minecraft",
" reinforcement learning",
" environment"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "169ee3c3f18ac65523e526d358dea4dfd87603d612e95da96097b1d7a8c96511",
"md5": "b6aa06cdf318be2e75530ed7daf8c5e3",
"sha256": "6299050343a2f6c6c1b912e77a8dcebac95a2b4a9b52bb88dd3547921ff05b57"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp310-cp310-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "b6aa06cdf318be2e75530ed7daf8c5e3",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 521516,
"upload_time": "2024-12-28T13:40:49",
"upload_time_iso_8601": "2024-12-28T13:40:49.625899Z",
"url": "https://files.pythonhosted.org/packages/16/9e/e3c3f18ac65523e526d358dea4dfd87603d612e95da96097b1d7a8c96511/craftground-2.5.30-cp310-cp310-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d0b1daaa806f2dae5829aa23fd4512ff27be248be2d83dbaec537c62df534044",
"md5": "85ee9766cb3b718097bff5f1f0025574",
"sha256": "f5979ad881367b46bec021fc2dbd202f60aebff25eeeec927cf06be37d4676b5"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp310-cp310-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "85ee9766cb3b718097bff5f1f0025574",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 480510,
"upload_time": "2024-12-28T13:40:52",
"upload_time_iso_8601": "2024-12-28T13:40:52.663960Z",
"url": "https://files.pythonhosted.org/packages/d0/b1/daaa806f2dae5829aa23fd4512ff27be248be2d83dbaec537c62df534044/craftground-2.5.30-cp310-cp310-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b7cc88affa34272fe6136858289a6b7b320cd3b4badd02af3cea9be65df775b5",
"md5": "a4a4e6299e6904777e82a2a0d0221ae5",
"sha256": "0ae5276063ec85c2dd8b99d585c68e08eac390ae2729d483820d6d59c809164c"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "a4a4e6299e6904777e82a2a0d0221ae5",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 477281,
"upload_time": "2024-12-28T13:40:55",
"upload_time_iso_8601": "2024-12-28T13:40:55.746922Z",
"url": "https://files.pythonhosted.org/packages/b7/cc/88affa34272fe6136858289a6b7b320cd3b4badd02af3cea9be65df775b5/craftground-2.5.30-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2639a41b5145b9645be02cbb10f181bab2d258086b61263853cf3c140678415a",
"md5": "dbe2ad3917cb33c2950647891538c6a2",
"sha256": "d58e1414646223d094b712709ab00dd3c13bc2e125920bbb2e8d39907d9c6efc"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "dbe2ad3917cb33c2950647891538c6a2",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 504944,
"upload_time": "2024-12-28T13:40:57",
"upload_time_iso_8601": "2024-12-28T13:40:57.371052Z",
"url": "https://files.pythonhosted.org/packages/26/39/a41b5145b9645be02cbb10f181bab2d258086b61263853cf3c140678415a/craftground-2.5.30-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3a93d7ee51cdd0f46112817ef173bc24f987d13564751fba2c22a0c5aebe5580",
"md5": "a5cc6871fddc37d2c6be879881293de4",
"sha256": "6cf39d39958bd6b1b2525e99c77684656a05d2cd1c2ac49144e0edea64e95f17"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp310-cp310-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "a5cc6871fddc37d2c6be879881293de4",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 1477607,
"upload_time": "2024-12-28T13:41:00",
"upload_time_iso_8601": "2024-12-28T13:41:00.210826Z",
"url": "https://files.pythonhosted.org/packages/3a/93/d7ee51cdd0f46112817ef173bc24f987d13564751fba2c22a0c5aebe5580/craftground-2.5.30-cp310-cp310-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a87d1ed83ae62b0ad7cd6ce029ce15ba7761e367de92d4f66444662813fd4163",
"md5": "966421024d91aaa7d0f2e8eae6c076c5",
"sha256": "415c9bb581f955e49e972061b6bf84597af451a15a91150e9bbfd4fe027c781f"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp310-cp310-win32.whl",
"has_sig": false,
"md5_digest": "966421024d91aaa7d0f2e8eae6c076c5",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 480456,
"upload_time": "2024-12-28T13:41:03",
"upload_time_iso_8601": "2024-12-28T13:41:03.828119Z",
"url": "https://files.pythonhosted.org/packages/a8/7d/1ed83ae62b0ad7cd6ce029ce15ba7761e367de92d4f66444662813fd4163/craftground-2.5.30-cp310-cp310-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1f9eb6ecd8269483a4f3ffe97f50b3be45f54f2bd0920517b24cf6918943f221",
"md5": "5ea6c31fa801992f83d5b2a3a41f2af4",
"sha256": "e334cfbb23af73c884beb0290c2e58190f0f00069dd02c34344a1071850a1e90"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "5ea6c31fa801992f83d5b2a3a41f2af4",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 484685,
"upload_time": "2024-12-28T13:41:06",
"upload_time_iso_8601": "2024-12-28T13:41:06.544244Z",
"url": "https://files.pythonhosted.org/packages/1f/9e/b6ecd8269483a4f3ffe97f50b3be45f54f2bd0920517b24cf6918943f221/craftground-2.5.30-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "44682eba213f92d8e120dd30466a27055c4a91d89bd1c07a3fc410ffaa246dc4",
"md5": "e9cf968a43b720bbb71fb3cf7755f87e",
"sha256": "ff2daaef6c1a2ed34e1f5f9e12d25a21531126d9feceb0dae068e863b3820e85"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp311-cp311-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "e9cf968a43b720bbb71fb3cf7755f87e",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 524584,
"upload_time": "2024-12-28T13:41:09",
"upload_time_iso_8601": "2024-12-28T13:41:09.547341Z",
"url": "https://files.pythonhosted.org/packages/44/68/2eba213f92d8e120dd30466a27055c4a91d89bd1c07a3fc410ffaa246dc4/craftground-2.5.30-cp311-cp311-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a76cdbc985c55384e2abc5b26342293c012c69317350db81718904bb533596f1",
"md5": "9c9d85c5668affa4e46459f4cda36b9a",
"sha256": "13bbf842feebfcd71fe464306cbe7af5c49be60c99510336c4717cf86ae3a3da"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "9c9d85c5668affa4e46459f4cda36b9a",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 481961,
"upload_time": "2024-12-28T13:41:12",
"upload_time_iso_8601": "2024-12-28T13:41:12.811271Z",
"url": "https://files.pythonhosted.org/packages/a7/6c/dbc985c55384e2abc5b26342293c012c69317350db81718904bb533596f1/craftground-2.5.30-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fe97d4b2f6b2bdda410f29bf218f92bbd505fea5baa38db37d0892655b3a6afd",
"md5": "d849b781a9ee42814bf5d1dbc9e8eb68",
"sha256": "e79e69d9c166d6f5dc6c538372809db45019c929e2f75514214fce1f7208fd51"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "d849b781a9ee42814bf5d1dbc9e8eb68",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 478707,
"upload_time": "2024-12-28T13:41:15",
"upload_time_iso_8601": "2024-12-28T13:41:15.603993Z",
"url": "https://files.pythonhosted.org/packages/fe/97/d4b2f6b2bdda410f29bf218f92bbd505fea5baa38db37d0892655b3a6afd/craftground-2.5.30-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ae35ee111630dc1d0de4df57ca0ce6063d7693b46a2635e004bb01493efc8867",
"md5": "d946f318652c98f684c3cf79d3a3c239",
"sha256": "18f20f332a50acf3142ab203a1c26c20d1360b7b086c5855e320354841d9b561"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "d946f318652c98f684c3cf79d3a3c239",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 506593,
"upload_time": "2024-12-28T13:41:17",
"upload_time_iso_8601": "2024-12-28T13:41:17.615283Z",
"url": "https://files.pythonhosted.org/packages/ae/35/ee111630dc1d0de4df57ca0ce6063d7693b46a2635e004bb01493efc8867/craftground-2.5.30-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "34aa43328523f554d5c0427ccc183d8c09ba7e318d16335e2309303ee7497cac",
"md5": "5b9a4ec051c22802583e33356a253d0c",
"sha256": "5eabe70dbd52805e7b18718c8e1ac744651a439a99c1f06c9f02483c5ef62656"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp311-cp311-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "5b9a4ec051c22802583e33356a253d0c",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 1478981,
"upload_time": "2024-12-28T13:41:19",
"upload_time_iso_8601": "2024-12-28T13:41:19.254532Z",
"url": "https://files.pythonhosted.org/packages/34/aa/43328523f554d5c0427ccc183d8c09ba7e318d16335e2309303ee7497cac/craftground-2.5.30-cp311-cp311-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "663e06de1d2dae2038a0ff9ba0c95699cbb3baae452d33805b0ec5d7f2c0f536",
"md5": "7168d205f19a7a34b35f5eeeed7608c5",
"sha256": "93b9586a8ea8c48ca2d5c4f0c736eb0fb709b1bacbc52678a76f6be151fcd135"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp311-cp311-win32.whl",
"has_sig": false,
"md5_digest": "7168d205f19a7a34b35f5eeeed7608c5",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 481634,
"upload_time": "2024-12-28T13:41:20",
"upload_time_iso_8601": "2024-12-28T13:41:20.843361Z",
"url": "https://files.pythonhosted.org/packages/66/3e/06de1d2dae2038a0ff9ba0c95699cbb3baae452d33805b0ec5d7f2c0f536/craftground-2.5.30-cp311-cp311-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ed83ed9f1e3b48206987ef57865dd7d0adc83cd57663fc12113ca35cace1d095",
"md5": "ba9782042a7490bf465f29a7b3ad59af",
"sha256": "2d9a404cf734e1b77333dbf3d6d9bec82479cbbd9bd33e3e5fab2e0a31bae6bd"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "ba9782042a7490bf465f29a7b3ad59af",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 485926,
"upload_time": "2024-12-28T13:41:22",
"upload_time_iso_8601": "2024-12-28T13:41:22.683681Z",
"url": "https://files.pythonhosted.org/packages/ed/83/ed9f1e3b48206987ef57865dd7d0adc83cd57663fc12113ca35cace1d095/craftground-2.5.30-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e4926961af0667eb67b600fc3198e432e8da390a2546f41a14f48c18e971b9e7",
"md5": "f5f086ecc18b63c2232d9a70256a23d1",
"sha256": "462e726d34cbb4decff5134e4319d3a403e2208f97b9a45dd43645d911ad8aa9"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp312-cp312-macosx_10_13_universal2.whl",
"has_sig": false,
"md5_digest": "f5f086ecc18b63c2232d9a70256a23d1",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 523285,
"upload_time": "2024-12-28T13:41:24",
"upload_time_iso_8601": "2024-12-28T13:41:24.235103Z",
"url": "https://files.pythonhosted.org/packages/e4/92/6961af0667eb67b600fc3198e432e8da390a2546f41a14f48c18e971b9e7/craftground-2.5.30-cp312-cp312-macosx_10_13_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "aeb14f70dec380e869c997f984b980c8fde3e08a4147d77ed3f166e75a4e9573",
"md5": "2c5288b17368c3bddfbd8c6dbf482436",
"sha256": "3232e01bdf490f657fa6a4ea36b7649cd41e7eb0624f2f8cea31e9560c5f1d4d"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp312-cp312-macosx_10_13_x86_64.whl",
"has_sig": false,
"md5_digest": "2c5288b17368c3bddfbd8c6dbf482436",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 481513,
"upload_time": "2024-12-28T13:41:26",
"upload_time_iso_8601": "2024-12-28T13:41:26.866582Z",
"url": "https://files.pythonhosted.org/packages/ae/b1/4f70dec380e869c997f984b980c8fde3e08a4147d77ed3f166e75a4e9573/craftground-2.5.30-cp312-cp312-macosx_10_13_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "aa8824912685cf526a6224a0af957929c302f7a1385dd3b19cedce6f4a35037c",
"md5": "73492f3780fab31086206821c2d092cf",
"sha256": "fdfc765e3c6438de9216186c78c3e2315c8961c692da99a8b0138c69ecc10ab3"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "73492f3780fab31086206821c2d092cf",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 477995,
"upload_time": "2024-12-28T13:41:28",
"upload_time_iso_8601": "2024-12-28T13:41:28.441342Z",
"url": "https://files.pythonhosted.org/packages/aa/88/24912685cf526a6224a0af957929c302f7a1385dd3b19cedce6f4a35037c/craftground-2.5.30-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "81a3d000a30803508569a06f7f862178f427ff11bdae01d485fd45f02662f067",
"md5": "1f632b45272847282f708ce625a3d4f4",
"sha256": "8894ba0cfd0fc3a29e6939cd8ad5d36e90cab4e961175c3655d6938add1185f4"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "1f632b45272847282f708ce625a3d4f4",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 506426,
"upload_time": "2024-12-28T13:41:30",
"upload_time_iso_8601": "2024-12-28T13:41:30.020014Z",
"url": "https://files.pythonhosted.org/packages/81/a3/d000a30803508569a06f7f862178f427ff11bdae01d485fd45f02662f067/craftground-2.5.30-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ed4dc8f1f67eb139401f6544c0b4fb4594e921d1fc658d4e43698b0c75311edc",
"md5": "2ee10db9c8afcbf1e9f3fa399ca6e1a0",
"sha256": "7164dee15ca68d1bb7614ce4998569778668d18b718ac60b1131a0f72c7e8b3d"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp312-cp312-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "2ee10db9c8afcbf1e9f3fa399ca6e1a0",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 1478085,
"upload_time": "2024-12-28T13:41:32",
"upload_time_iso_8601": "2024-12-28T13:41:32.777245Z",
"url": "https://files.pythonhosted.org/packages/ed/4d/c8f1f67eb139401f6544c0b4fb4594e921d1fc658d4e43698b0c75311edc/craftground-2.5.30-cp312-cp312-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ba5f8244b7b2e6c2caa194b9b690e428ebcc2aaca05f083306d397678d6d4b2b",
"md5": "6bdedf1e3290f76e3485893dbf1c4082",
"sha256": "0f199cdd6fc83019c96a3a7632a5be00033b9d200c67e38758c73f410e2dec37"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp312-cp312-win32.whl",
"has_sig": false,
"md5_digest": "6bdedf1e3290f76e3485893dbf1c4082",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 481993,
"upload_time": "2024-12-28T13:41:34",
"upload_time_iso_8601": "2024-12-28T13:41:34.306205Z",
"url": "https://files.pythonhosted.org/packages/ba/5f/8244b7b2e6c2caa194b9b690e428ebcc2aaca05f083306d397678d6d4b2b/craftground-2.5.30-cp312-cp312-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e635fc03b619d385c353b09b072d110a06dacc9a5b09569e02d7a2bccac8c96d",
"md5": "67153342886b4365179ea55cdb87cbed",
"sha256": "e69efd37480d02d1f63763e5388c2b5b368ae45cd3ad9370e5f79d50e86c74f1"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "67153342886b4365179ea55cdb87cbed",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 486231,
"upload_time": "2024-12-28T13:41:35",
"upload_time_iso_8601": "2024-12-28T13:41:35.829643Z",
"url": "https://files.pythonhosted.org/packages/e6/35/fc03b619d385c353b09b072d110a06dacc9a5b09569e02d7a2bccac8c96d/craftground-2.5.30-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d629bf68ae4fb3e77c9588776812774582a0c57c303dc3903fd0ee503b89dd39",
"md5": "e44a87b0b810833ee501c452e6f3f281",
"sha256": "b73e6fb5e27e89cbcaa05ef65ddbb158acc57fb6b6743a78ea6a94bf08bb2b16"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp313-cp313-macosx_10_13_universal2.whl",
"has_sig": false,
"md5_digest": "e44a87b0b810833ee501c452e6f3f281",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": null,
"size": 523427,
"upload_time": "2024-12-28T13:41:37",
"upload_time_iso_8601": "2024-12-28T13:41:37.426282Z",
"url": "https://files.pythonhosted.org/packages/d6/29/bf68ae4fb3e77c9588776812774582a0c57c303dc3903fd0ee503b89dd39/craftground-2.5.30-cp313-cp313-macosx_10_13_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6d73b5e4f2847929800d2fcd48d4731baff8919b670a265d1f0d21f3d7138966",
"md5": "884cc00a996717544f9c39b9c53909ca",
"sha256": "dad8031f8058ae78409c672e4376535b222960b33ad4e833bb20a47662f4a51d"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp313-cp313-macosx_10_13_x86_64.whl",
"has_sig": false,
"md5_digest": "884cc00a996717544f9c39b9c53909ca",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": null,
"size": 481559,
"upload_time": "2024-12-28T13:41:39",
"upload_time_iso_8601": "2024-12-28T13:41:39.497606Z",
"url": "https://files.pythonhosted.org/packages/6d/73/b5e4f2847929800d2fcd48d4731baff8919b670a265d1f0d21f3d7138966/craftground-2.5.30-cp313-cp313-macosx_10_13_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ced414141eb9e312bbb3ac7f95fec683b1841d84ffeaf7156c53a6758e1fb0a5",
"md5": "f944e22102afe5c8ef0bdc2782d22b7f",
"sha256": "76dd779e048b677b7566358b8b5d09eac5f09552c6794aac6ec8f9c0fc71b817"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp313-cp313-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "f944e22102afe5c8ef0bdc2782d22b7f",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": null,
"size": 478087,
"upload_time": "2024-12-28T13:41:41",
"upload_time_iso_8601": "2024-12-28T13:41:41.245255Z",
"url": "https://files.pythonhosted.org/packages/ce/d4/14141eb9e312bbb3ac7f95fec683b1841d84ffeaf7156c53a6758e1fb0a5/craftground-2.5.30-cp313-cp313-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1573e82206a55b7a1f2f8e98d9976a0b92367c569c70e6480b7fb036e313a846",
"md5": "e9bfb617093de68cc5f37a6923e03253",
"sha256": "ff0a81157c4e332d46b9bc8ec596932052c429a6196a4c37450a0f1fb7f389f8"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "e9bfb617093de68cc5f37a6923e03253",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": null,
"size": 506385,
"upload_time": "2024-12-28T13:41:42",
"upload_time_iso_8601": "2024-12-28T13:41:42.787413Z",
"url": "https://files.pythonhosted.org/packages/15/73/e82206a55b7a1f2f8e98d9976a0b92367c569c70e6480b7fb036e313a846/craftground-2.5.30-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bd29cc35b3c1928e9a32463db718f9e998615d7776b598924425fddbfa91886b",
"md5": "d5209d30a8baa30030bc1f5d809b7577",
"sha256": "39b9d41a5e95674e11182e6a4b5bd0030bdc54aab237cf537d02e52b0878ce8d"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp313-cp313-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "d5209d30a8baa30030bc1f5d809b7577",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": null,
"size": 1477988,
"upload_time": "2024-12-28T13:41:45",
"upload_time_iso_8601": "2024-12-28T13:41:45.760290Z",
"url": "https://files.pythonhosted.org/packages/bd/29/cc35b3c1928e9a32463db718f9e998615d7776b598924425fddbfa91886b/craftground-2.5.30-cp313-cp313-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1abba7605acaf0e3aee244cf8bca9026491020fcce897ab15316f307ac782e30",
"md5": "1459acc944b33eadff5220d1e7fe8906",
"sha256": "831a65afb975f04b11ec9db5dff84536b23b52664458ea98afa6b42dc095f635"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp313-cp313-win32.whl",
"has_sig": false,
"md5_digest": "1459acc944b33eadff5220d1e7fe8906",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": null,
"size": 482008,
"upload_time": "2024-12-28T13:41:47",
"upload_time_iso_8601": "2024-12-28T13:41:47.497714Z",
"url": "https://files.pythonhosted.org/packages/1a/bb/a7605acaf0e3aee244cf8bca9026491020fcce897ab15316f307ac782e30/craftground-2.5.30-cp313-cp313-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e34d1b2441758ffee576260b8120575ee3ea7e3398462d736066467988675f81",
"md5": "27af5b0ad85d83dc2a3510af403b8fa5",
"sha256": "e340493eff4d7cf8dab810882339f83d4149a12b75be40cc87d7cc8a1d1591a2"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp313-cp313-win_amd64.whl",
"has_sig": false,
"md5_digest": "27af5b0ad85d83dc2a3510af403b8fa5",
"packagetype": "bdist_wheel",
"python_version": "cp313",
"requires_python": null,
"size": 486246,
"upload_time": "2024-12-28T13:41:49",
"upload_time_iso_8601": "2024-12-28T13:41:49.591373Z",
"url": "https://files.pythonhosted.org/packages/e3/4d/1b2441758ffee576260b8120575ee3ea7e3398462d736066467988675f81/craftground-2.5.30-cp313-cp313-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "afb34a6d1dc3ef4481e728cdb6151f69f5791a07b4866dc5224d94e098051e77",
"md5": "fa44830f0a596572fc71bfbba2f51ca4",
"sha256": "5f0fc0898f7de102f2aa05dab62e6bc30b97daa166d0d15795e5560c59a6241f"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp39-cp39-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "fa44830f0a596572fc71bfbba2f51ca4",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 521706,
"upload_time": "2024-12-28T13:41:52",
"upload_time_iso_8601": "2024-12-28T13:41:52.334490Z",
"url": "https://files.pythonhosted.org/packages/af/b3/4a6d1dc3ef4481e728cdb6151f69f5791a07b4866dc5224d94e098051e77/craftground-2.5.30-cp39-cp39-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1d1aa0080b19982983b4e9836d270d74ad5abaf7bae58f8759bf9c40be3627bb",
"md5": "3f4784069186bcddb757abb1cf5f9771",
"sha256": "25b179720455b9f8d87086a25a8148681563b31e1f686afa6b8407e87a678a04"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp39-cp39-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "3f4784069186bcddb757abb1cf5f9771",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 480615,
"upload_time": "2024-12-28T13:41:53",
"upload_time_iso_8601": "2024-12-28T13:41:53.842431Z",
"url": "https://files.pythonhosted.org/packages/1d/1a/a0080b19982983b4e9836d270d74ad5abaf7bae58f8759bf9c40be3627bb/craftground-2.5.30-cp39-cp39-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8d1d987b9748441892d85716bf5db47ff9de6b67d58041059fedf6685910e8ba",
"md5": "d9f424c0f9615a168d8b3f6aa89409f6",
"sha256": "57b57de1f635cb1828e16236176dba07f459ec845f39d65d4b7d3caf22d1bf36"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp39-cp39-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "d9f424c0f9615a168d8b3f6aa89409f6",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 477358,
"upload_time": "2024-12-28T13:41:55",
"upload_time_iso_8601": "2024-12-28T13:41:55.236825Z",
"url": "https://files.pythonhosted.org/packages/8d/1d/987b9748441892d85716bf5db47ff9de6b67d58041059fedf6685910e8ba/craftground-2.5.30-cp39-cp39-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "45168762507685abae1a6473db14b6186aeff81d5e3d28c64ef8ff0988bc9e60",
"md5": "64e99871e6345df9910f2a9010ac292b",
"sha256": "c6b5cbdd26763ca213e1034939a5c4bd6b00b1d79cc9a91a66244c27cbeda0e3"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "64e99871e6345df9910f2a9010ac292b",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 505044,
"upload_time": "2024-12-28T13:41:58",
"upload_time_iso_8601": "2024-12-28T13:41:58.170795Z",
"url": "https://files.pythonhosted.org/packages/45/16/8762507685abae1a6473db14b6186aeff81d5e3d28c64ef8ff0988bc9e60/craftground-2.5.30-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6d7fff614f36ce2bb70ab3c8d05da00fb31455011a217e05361372be33a4ab3d",
"md5": "4b75c4860bc3aab2f5829a409b892adb",
"sha256": "fe34c25aead3db1b50a0d8aba9c2a6ecc138c2f1d9db571f253e23ed3ea7cd0a"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp39-cp39-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "4b75c4860bc3aab2f5829a409b892adb",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 1477717,
"upload_time": "2024-12-28T13:42:00",
"upload_time_iso_8601": "2024-12-28T13:42:00.368954Z",
"url": "https://files.pythonhosted.org/packages/6d/7f/ff614f36ce2bb70ab3c8d05da00fb31455011a217e05361372be33a4ab3d/craftground-2.5.30-cp39-cp39-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b00594870fdf31b6125501e05650951521259f93ce041ed2e2b315d59253b409",
"md5": "938f4d62f479dff88959e422e70ca853",
"sha256": "323f565520560291c4e63e405a44ad07a279fbfb93ada467023845ce73a57b14"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp39-cp39-win32.whl",
"has_sig": false,
"md5_digest": "938f4d62f479dff88959e422e70ca853",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 480598,
"upload_time": "2024-12-28T13:42:01",
"upload_time_iso_8601": "2024-12-28T13:42:01.977134Z",
"url": "https://files.pythonhosted.org/packages/b0/05/94870fdf31b6125501e05650951521259f93ce041ed2e2b315d59253b409/craftground-2.5.30-cp39-cp39-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "618c41e770e44c4a9d08239d9c09703c68fdaf7fc5314dec4659cdb2604ab163",
"md5": "2f91d20044b3e9acb9c021216c70ac25",
"sha256": "c591b48dd15e382b3a07ab412751cc9344ade63a79edddbbf46bfaf53db4f052"
},
"downloads": -1,
"filename": "craftground-2.5.30-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "2f91d20044b3e9acb9c021216c70ac25",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 484766,
"upload_time": "2024-12-28T13:42:03",
"upload_time_iso_8601": "2024-12-28T13:42:03.550319Z",
"url": "https://files.pythonhosted.org/packages/61/8c/41e770e44c4a9d08239d9c09703c68fdaf7fc5314dec4659cdb2604ab163/craftground-2.5.30-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d56bcb9837029458bb6397f288c59dbc754cedeecedbaa42a61e96fca2c6bfd3",
"md5": "16fc03c1d0eaa95c4d5dbe3b50c9ea5e",
"sha256": "79e2c8c57cb621c4a18f4ad6e68b9e93be800c14212f2e48930f1de305cd639c"
},
"downloads": -1,
"filename": "craftground-2.5.30-pp310-pypy310_pp73-macosx_10_15_x86_64.whl",
"has_sig": false,
"md5_digest": "16fc03c1d0eaa95c4d5dbe3b50c9ea5e",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": null,
"size": 480686,
"upload_time": "2024-12-28T13:42:05",
"upload_time_iso_8601": "2024-12-28T13:42:05.081228Z",
"url": "https://files.pythonhosted.org/packages/d5/6b/cb9837029458bb6397f288c59dbc754cedeecedbaa42a61e96fca2c6bfd3/craftground-2.5.30-pp310-pypy310_pp73-macosx_10_15_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5cea746180979611935681d10dd0bde210bac9ef449bde9c4daa6552f087456e",
"md5": "7a00f695b5e206a7a4d48800a80e6ddf",
"sha256": "dacd29288859dd8dd41827c90a26ec270e9e99d41b024c5c06ae39817dde06e9"
},
"downloads": -1,
"filename": "craftground-2.5.30-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "7a00f695b5e206a7a4d48800a80e6ddf",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": null,
"size": 477466,
"upload_time": "2024-12-28T13:42:06",
"upload_time_iso_8601": "2024-12-28T13:42:06.689981Z",
"url": "https://files.pythonhosted.org/packages/5c/ea/746180979611935681d10dd0bde210bac9ef449bde9c4daa6552f087456e/craftground-2.5.30-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "449ac6f58a4440c25e75f77614acf9754d9bf7018dc051e89f5429238c5168b0",
"md5": "045c42f4921b0ebcc70620cb810444ba",
"sha256": "d8f2993c679db73875e5d87b150172d70650b7afb382bb9de95e6ccf51b112bb"
},
"downloads": -1,
"filename": "craftground-2.5.30-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "045c42f4921b0ebcc70620cb810444ba",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": null,
"size": 504662,
"upload_time": "2024-12-28T13:42:09",
"upload_time_iso_8601": "2024-12-28T13:42:09.708913Z",
"url": "https://files.pythonhosted.org/packages/44/9a/c6f58a4440c25e75f77614acf9754d9bf7018dc051e89f5429238c5168b0/craftground-2.5.30-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "44b4f412d108479a1ea8befdb50491fa5354a01f28abc7514a027a8a8c0bcfd8",
"md5": "839214b2ac1d41f7c65db99a5eb26588",
"sha256": "7dccb692b62ee11a52432b96c08ca24c932fa30c87b46a723de3317786c5f0cc"
},
"downloads": -1,
"filename": "craftground-2.5.30-pp310-pypy310_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "839214b2ac1d41f7c65db99a5eb26588",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": null,
"size": 484764,
"upload_time": "2024-12-28T13:42:11",
"upload_time_iso_8601": "2024-12-28T13:42:11.317743Z",
"url": "https://files.pythonhosted.org/packages/44/b4/f412d108479a1ea8befdb50491fa5354a01f28abc7514a027a8a8c0bcfd8/craftground-2.5.30-pp310-pypy310_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e93d2eda0abf3851f4e5b851f6f9bbec2f4d83f7dbf2970aeab2c38cae3419e4",
"md5": "4f517c297e90b626be1bef7f4ea3f37f",
"sha256": "dba35c31e44eddc3a95b6ccede3f446d052146b473d195a04abba2533e03c869"
},
"downloads": -1,
"filename": "craftground-2.5.30-pp37-pypy37_pp73-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "4f517c297e90b626be1bef7f4ea3f37f",
"packagetype": "bdist_wheel",
"python_version": "pp37",
"requires_python": null,
"size": 480279,
"upload_time": "2024-12-28T13:42:12",
"upload_time_iso_8601": "2024-12-28T13:42:12.781211Z",
"url": "https://files.pythonhosted.org/packages/e9/3d/2eda0abf3851f4e5b851f6f9bbec2f4d83f7dbf2970aeab2c38cae3419e4/craftground-2.5.30-pp37-pypy37_pp73-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5fd6cfe49af604d24b160b10ba5e7d431661004a986f8c6d65ef79618e151d66",
"md5": "a830f6c6e1583dd711e9b7cac31164c8",
"sha256": "bd90df8d4e59433306791d437ad6abc574427612910c644d1f49cac065913504"
},
"downloads": -1,
"filename": "craftground-2.5.30-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "a830f6c6e1583dd711e9b7cac31164c8",
"packagetype": "bdist_wheel",
"python_version": "pp37",
"requires_python": null,
"size": 504331,
"upload_time": "2024-12-28T13:42:14",
"upload_time_iso_8601": "2024-12-28T13:42:14.413321Z",
"url": "https://files.pythonhosted.org/packages/5f/d6/cfe49af604d24b160b10ba5e7d431661004a986f8c6d65ef79618e151d66/craftground-2.5.30-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b3a0c063b9ec146231c1c332dd687307951a27241be9aff4a387cd88a861bfec",
"md5": "453334a3122a46e2da9c247c6bd786d6",
"sha256": "27e479d7571a64910940eb7d0e1edf3ddc5df3711423699f49c19853cb73aa94"
},
"downloads": -1,
"filename": "craftground-2.5.30-pp37-pypy37_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "453334a3122a46e2da9c247c6bd786d6",
"packagetype": "bdist_wheel",
"python_version": "pp37",
"requires_python": null,
"size": 484458,
"upload_time": "2024-12-28T13:42:16",
"upload_time_iso_8601": "2024-12-28T13:42:16.039061Z",
"url": "https://files.pythonhosted.org/packages/b3/a0/c063b9ec146231c1c332dd687307951a27241be9aff4a387cd88a861bfec/craftground-2.5.30-pp37-pypy37_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2242bdf2cf0dfbd9257d03ff17ad14135c7df85e5a3031803881462d6605c228",
"md5": "f73265890d01e23498201ae264a5e129",
"sha256": "02a6590cce335da3ad05ff1b65e09bdb69cd363b1e3071cce33a6e59cf29e42d"
},
"downloads": -1,
"filename": "craftground-2.5.30-pp38-pypy38_pp73-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "f73265890d01e23498201ae264a5e129",
"packagetype": "bdist_wheel",
"python_version": "pp38",
"requires_python": null,
"size": 480633,
"upload_time": "2024-12-28T13:42:18",
"upload_time_iso_8601": "2024-12-28T13:42:18.827629Z",
"url": "https://files.pythonhosted.org/packages/22/42/bdf2cf0dfbd9257d03ff17ad14135c7df85e5a3031803881462d6605c228/craftground-2.5.30-pp38-pypy38_pp73-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cb318eb9a107c8fdf12af87a8ad25f146539d95e7be68f5f160cdb0713f5485b",
"md5": "107c86629193e540947a4be3093bfab0",
"sha256": "9e6af4e4d684d2d175fbe35d4c5bc3601d9024f090363b0b164788582857eb60"
},
"downloads": -1,
"filename": "craftground-2.5.30-pp38-pypy38_pp73-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "107c86629193e540947a4be3093bfab0",
"packagetype": "bdist_wheel",
"python_version": "pp38",
"requires_python": null,
"size": 477435,
"upload_time": "2024-12-28T13:42:20",
"upload_time_iso_8601": "2024-12-28T13:42:20.353604Z",
"url": "https://files.pythonhosted.org/packages/cb/31/8eb9a107c8fdf12af87a8ad25f146539d95e7be68f5f160cdb0713f5485b/craftground-2.5.30-pp38-pypy38_pp73-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b60e4469cf87eea1df37d5616900f63d803f2d9f17e8bb531a1023ec45276a1e",
"md5": "36bc93f8c2b5aaab018f9bc11fb3b468",
"sha256": "eaaf3b8fb575f4102e5430b1e5fc512ee3129ccb2dd990dc2b14172d16cd9d2d"
},
"downloads": -1,
"filename": "craftground-2.5.30-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "36bc93f8c2b5aaab018f9bc11fb3b468",
"packagetype": "bdist_wheel",
"python_version": "pp38",
"requires_python": null,
"size": 504583,
"upload_time": "2024-12-28T13:42:21",
"upload_time_iso_8601": "2024-12-28T13:42:21.954599Z",
"url": "https://files.pythonhosted.org/packages/b6/0e/4469cf87eea1df37d5616900f63d803f2d9f17e8bb531a1023ec45276a1e/craftground-2.5.30-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "226445dba5f354c53ade9c09e81c2066bf7345b74e9c3fd025b2e3f13d08eb70",
"md5": "f05617f03fa9eeb4ecfca8d179d4820e",
"sha256": "33175e92cd4b924b449520447441ba73776db0ecc550d7fe1c886f2dbf815c4b"
},
"downloads": -1,
"filename": "craftground-2.5.30-pp38-pypy38_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "f05617f03fa9eeb4ecfca8d179d4820e",
"packagetype": "bdist_wheel",
"python_version": "pp38",
"requires_python": null,
"size": 484697,
"upload_time": "2024-12-28T13:42:23",
"upload_time_iso_8601": "2024-12-28T13:42:23.434722Z",
"url": "https://files.pythonhosted.org/packages/22/64/45dba5f354c53ade9c09e81c2066bf7345b74e9c3fd025b2e3f13d08eb70/craftground-2.5.30-pp38-pypy38_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d4ee44a8d9006b5ab70090849fc57a702e00f8f2706594e4a6ef630cd8be9128",
"md5": "2279dbcb70f750d3b69f9c94424ebdea",
"sha256": "7a3ca43ef9db2226e348a4483b94dbb23f0df0c3bf5dcb6f298b8815d2dd22c4"
},
"downloads": -1,
"filename": "craftground-2.5.30-pp39-pypy39_pp73-macosx_10_15_x86_64.whl",
"has_sig": false,
"md5_digest": "2279dbcb70f750d3b69f9c94424ebdea",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": null,
"size": 480679,
"upload_time": "2024-12-28T13:42:25",
"upload_time_iso_8601": "2024-12-28T13:42:25.017921Z",
"url": "https://files.pythonhosted.org/packages/d4/ee/44a8d9006b5ab70090849fc57a702e00f8f2706594e4a6ef630cd8be9128/craftground-2.5.30-pp39-pypy39_pp73-macosx_10_15_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "38499caef036974c4238740cde38788f8c015b48779d77166ff3a993138c557b",
"md5": "1ae26948eafb4961d4d78feb8e2d9a04",
"sha256": "b16176dda6e4593bc4c9e546943e84f41c350afa2a2050025851d512598dba2c"
},
"downloads": -1,
"filename": "craftground-2.5.30-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "1ae26948eafb4961d4d78feb8e2d9a04",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": null,
"size": 477451,
"upload_time": "2024-12-28T13:42:26",
"upload_time_iso_8601": "2024-12-28T13:42:26.479223Z",
"url": "https://files.pythonhosted.org/packages/38/49/9caef036974c4238740cde38788f8c015b48779d77166ff3a993138c557b/craftground-2.5.30-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c651911e478ae683223546e906f525fdb9122f0ef042f516ed87f300a30afd15",
"md5": "4962e7ec5dd8d8862b70bd859db7c182",
"sha256": "731c064e895561eb303fd0d627a572eb930c9b32c6bf05909705f638a629e45e"
},
"downloads": -1,
"filename": "craftground-2.5.30-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "4962e7ec5dd8d8862b70bd859db7c182",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": null,
"size": 504592,
"upload_time": "2024-12-28T13:42:28",
"upload_time_iso_8601": "2024-12-28T13:42:28.042380Z",
"url": "https://files.pythonhosted.org/packages/c6/51/911e478ae683223546e906f525fdb9122f0ef042f516ed87f300a30afd15/craftground-2.5.30-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7e8a5e17ab64754b46423085c84e0b0f490f7d62baaf1e4f13d62bc46168d8f8",
"md5": "7334cc8ecc83759e09d9e884713f2e84",
"sha256": "8b2afadc861e8155561693d2f142fa818a1b07eefe0a1d918bf68035d3c20f2b"
},
"downloads": -1,
"filename": "craftground-2.5.30-pp39-pypy39_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "7334cc8ecc83759e09d9e884713f2e84",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": null,
"size": 484687,
"upload_time": "2024-12-28T13:42:29",
"upload_time_iso_8601": "2024-12-28T13:42:29.564295Z",
"url": "https://files.pythonhosted.org/packages/7e/8a/5e17ab64754b46423085c84e0b0f490f7d62baaf1e4f13d62bc46168d8f8/craftground-2.5.30-pp39-pypy39_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6358e5d9607fbe3f128e74240186db38f533baccbdcc73fe2a7c62c6785f4b2f",
"md5": "7afd98083fed55308461abad33b2a851",
"sha256": "680547b2d29dc07cc25477fb4f32021470eeac36bf3711fd98bce7dc97aeb988"
},
"downloads": -1,
"filename": "craftground-2.5.30.tar.gz",
"has_sig": false,
"md5_digest": "7afd98083fed55308461abad33b2a851",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 81275635,
"upload_time": "2024-12-28T13:42:39",
"upload_time_iso_8601": "2024-12-28T13:42:39.237268Z",
"url": "https://files.pythonhosted.org/packages/63/58/e5d9607fbe3f128e74240186db38f533baccbdcc73fe2a7c62c6785f4b2f/craftground-2.5.30.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-28 13:42:39",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "yhs0602",
"github_project": "CraftGround",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "cloudpickle",
"specs": [
[
"==",
"2.2.1"
]
]
},
{
"name": "Farama-Notifications",
"specs": [
[
"==",
"0.0.4"
]
]
},
{
"name": "gymnasium",
"specs": [
[
"==",
"0.29.1"
]
]
},
{
"name": "numpy",
"specs": [
[
"==",
"1.26.0"
]
]
},
{
"name": "Pillow",
"specs": [
[
"==",
"10.0.1"
]
]
},
{
"name": "protobuf",
"specs": [
[
"==",
"4.24.3"
]
]
},
{
"name": "typing_extensions",
"specs": [
[
"==",
"4.8.0"
]
]
}
],
"lcname": "craftground"
}