craftground


Namecraftground JSON
Version 2.5.30 PyPI version JSON
download
home_pageNone
SummaryLightweight Minecraft Environment for Reinforcement Learning
upload_time2024-12-28 13:42:39
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseMIT 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"
}
        
Elapsed time: 0.44251s