Ppb

Latest version: v3.2.0

Safety actively analyzes 631341 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 8

0.8.0rc1

This release does only two things: dramatically optimizes event dispatch and replaces PyGame with PySDL2.

First, the simple one: event dispatch performance was dramatically optimized, because the performance of the previous method was just _bad_.

The big thing is that PursuedPyBear no longer depends on PyGame and uses PySDL2 instead. This was done because PyGame has never supported Python 3.8 in a final release, despite 3.8 being released in October, 2019. We are now using PySDL2 instead. This should require no changes from our uses, although Linux uses will require additional steps to install the SDL libraries (Debian: `libsdl2-2.0-0 libsdl2-mixer-2.0-0 libsdl2-image-2.0-0 libsdl2-gfx-1.0-0`).

Additionally, a pass was made at improving the docs: Double checking the accuracy of existing documentation, adding detailed documentation to ppb.engine.GameEngine and adding our first discussion pages. One discussing the design and constraints of the Asset system and another outlining the principles of ppb as a project.

We anticipate this release to have no impact on the vast majority of users, and minimal impact on the rest.

Added:
* Python 3.8 is now supported
* `Asset.free()`: Function that can be called by `__del__()` to release resources held. (387)
* Sounds now supports `.wav`, AIFF, VOC, OGG/Vorbis, MP3, and FLAC, as well as potentially more depending on the system configuration. (387)
* Documentation pages. (416, 375, 423)

Fixed:
* The initial scene now gets its `SceneStarted` event (rolled in to 387, 6e96280685d1ab2668f900d0c3374ef650380de1)

Changed:
* `BadEventHandlerException` was moved from `ppb.eventlib` to `ppb.errors`. (402)
* Documentation updates (404)
* Various performance improvements. (402, 415)

Removed:
* `ppb.eventlib`, `EventMixin`, and `__event__()`. Everything they used to do has been inlined into the Engine. (402)

Internal:
* The release process was changed to be more automatic with significantly fewer human steps. (380)

0.8.0b1

This release does only two things: dramatically optimizes event dispatch and replaces PyGame with PySDL2.

First, the simple one: event dispatch performance was dramatically optimized, because the performance of the previous method was just _bad_.

The big thing is that PursuedPyBear no longer depends on PyGame and uses PySDL2 instead. This was done because PyGame has never supported Python 3.8 in a final release, despite 3.8 being released in October, 2019. We are now using PySDL2 instead. This should require no changes from our uses, although Linux uses will require additional steps to install the SDL libraries (Debian: `libsdl2-2.0-0 libsdl2-mixer-2.0-0 libsdl2-image-2.0-0 libsdl2-gfx-1.0-0`).

We anticipate this release to have no impact on the vast majority of users, and minimal impact on the rest.

Added:
* Python 3.8 is now supported
* `Asset.free()`: Function that can be called by `__del__()` to release resources held. (387)
* Sounds now supports `.wav`, AIFF, VOC, OGG/Vorbis, MP3, and FLAC, as well as potentially more depending on the system configuration. (387)

Fixed:
* The initial scene now gets its `SceneStarted` event (rolled in to 387, 6e96280685d1ab2668f900d0c3374ef650380de1)

Changed:
* `BadEventHandlerException` was moved from `ppb.eventlib` to `ppb.errors`. (402)

Removed:
* `ppb.eventlib`, `EventMixin`, and `__event__()`. Everything they used to do has been inlined into the Engine. (402)

Internal:
* The release process was changed to be more automatic with significantly fewer human steps. (380)

0.7.0

The big headline is the Asset Revamp. Instead of just passing around strings (and the whole resource path concept), actual `Asset` objects are given to systems. ([api reference](https://ppb.readthedocs.io/en/stable/reference/assets.html)) These are a mechanism for eager background loading of data.

As part of this, we've introduced the concept of a Virtual File System (VFS). The VFS allows assets to be loaded from the Python Path (`sys.path`), using the same structure as python modules. This simplifies the usage of asset packs (like [ppb-mutant](https://pypi.org/project/ppb-mutant/)) and allows assets not tied to a sprite (namely sound effects) to work.

As a quick example this v0.6 code:

python
class MySprite(ppb.BaseSprite):
image = 'thingy.png'
resource_path = 'resources/sprites'


becomes this v0.7 code:

python
class MySprite(ppb.Sprite):
image = ppb.Image('resources/sprites/thingy.png')


You may also notice that `ppb.BaseSprite` became `ppb.Sprite`. This is the result of a bunch of refactoring, and the old name is now deprecated and will be removed in a future release.

Also part of this effort is that there's three generated image assets available: `ppb.Circle`, `ppb.Square`, and `ppb.Triangle`. Instead of loading data from a file, these generate basic shapes in memory.

The lesser headline is the addition of sound effects! ([api reference](https://ppb.readthedocs.io/en/stable/reference/sound.html)) These are just simply `signal(ppb.events.PlaySound(ppb.Sound('path/to/sound.ogg')))`. Other types of sounds (namely background music) and more advanced control will come in future releases, as we develop the APIs.

Note that the warning about PyGame and Python version compatibility from the v0.6 release notes still apply. In summary: Do not use PyGame 2 or Python 3.8 at this time.

0.7.0b1

The big headline is the Asset Revamp. Instead of just passing around strings (and the whole resource path concept), actual `Asset` objects are given to systems. ([api reference](https://ppb.readthedocs.io/en/stable/reference/assets.html), <example>) These are a mechanism for eager background loading of data.

As part of this, we've introduced the concept of a Virtual File System (VFS). The VFS allows assets to be loaded from the Python Path (`sys.path`), using the same structure as python modules. This simplifies the usage of asset packs (like [ppb-mutant](https://pypi.org/project/ppb-mutant/)) and allows assets not tied to a sprite (namely sound effects) to work.

As a quick example this v0.6 code:

python
class MySprite(ppb.BaseSprite):
image = 'thingy.png`
resource_path = 'resources/sprites'


becomes this v0.7 code:

python
class MySprite(ppb.Sprite):
image = ppb.Image('resources/sprites/thingy.png`)


You may also notice that `ppb.BaseSprite` became `ppb.Sprite`. This is the result of a bunch of refactoring, and the old name is now deprecated and will be removed in a future release.

Also part of this effort is that there's three generated image assets available: `ppb.Circle`, `ppb.Square`, and `ppb.Triangle`. Instead of loading data from a file, these generate basic shapes in memory.

The lesser headline is the addition of sound effects! (<docs>, <example>) These are just simply `signal(ppb.events.PlaySound(ppb.Sound('path/to/sound.ogg')))`. Other types of sounds (namely background music) and more advanced control will come in future releases, as we develop the APIs.

Note that the warning about PyGame and Python version compatibility from the v0.6 release notes still apply. In summary: Do not use PyGame 2 or Python 3.8 at this time.

0.7.0a1

The big headline is the Asset Revamp. Instead of just passing around strings (and the whole resource path concept), actual `Asset` objects and given to systems. ([api reference](https://ppb.readthedocs.io/en/stable/reference/assets.html), <example>) These are a mechanism for eager background loading of data.

As part of this, we've introduced the concept of a Virtual File System (VFS). The VFS allows assets to be loaded from the Python Path (`sys.path`), using the same structure as python modules. This simplifies the usage of asset packs (like [ppb-mutant](https://pypi.org/project/ppb-mutant/)) and allows assets not tied to a sprite (namely sound effects) to work.

As a quick example this v0.6 code:

python
class MySprite(ppb.BaseSprite):
image = 'thingy.png`
resource_path = 'resources/sprites'


becomes this v0.7 code:

python
class MySprite(ppb.Sprite):
image = ppb.Image('resources/sprites/thingy.png`)


You may also notice that `ppb.BaseSprite` became `ppb.Sprite`. This is the result of a bunch of refactoring, and the old name is now deprecated and will be removed in a future release.

Also part of this effort is that there's three generated image assets available: `ppb.Circle`, `ppb.Square`, and `ppb.Triangle`. Instead of loading data from a file, these generate basic shapes in memory.

The lesser headline is the addition of sound effects! (<docs>, <example>) These are just simply `signal(ppb.events.PlaySound(ppb.Sound('path/to/sound.ogg')))`. Other types of sounds (namely background music) and more advanced control will come in future releases, as we develop the APIs.

Note that the warning about PyGame and Python version compatibility from the v0.6 release notes still apply. In summary: Do not use PyGame 2 or Python 3.8 at this time.

0.6

Added:
* `ppb.vfs` module - Enables loading of files from Python packages (306)
* Asset system - Enables eager, background loading of assets (306)
* `AbstractAsset` ABC (329)
* `AssetLoaded` event (315)
* Loading Screen feature (336)
* Two Phase Update feature (273)
* Sound! (326)
* Sprite Layering! (350, 322)
* Add `ppb.Circle`, `ppb.Square`, and `ppb.Triangle` generated images (363)
* `ppb.Sprite` is now the base sprite class (357)
* `ppb.run()` accepts arbitrary engine and subsystem arguments (307)

Changed:

* `ppb.BaseSprite` is now deprecated in favor of `ppb.Sprite` (357)
* Deprecate string filenames in favor of assets (306)
* Significant file rearrangement. (316)
* Animations now based on Asset system. (308)

Removed:

* `__resource_path__()` protocol removed in favor of `ppb.vfs` (306)

Invisible:

* `ppb.sprites.BaseSprite` now truly just a base class, using mixins to provide features. (357)
* `ppb.sprites.SquareShapeMixin` (357)
* `ppb.sprites.RenderableMixin` (357)
* Accept only stable versions of `ppb_vector` (303)
* Renderer no longer tracks resources (306)
* Tolerances on Camera dimensions loosened. (319)
* Manual Tests (328)
* Updated Contributing.md (324)

Page 5 of 8

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.