Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

py39 + typing (List > list, etc.) + some typehints #180

Merged
merged 1 commit into from
Jan 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,7 @@ jobs:
runs-on: [ubuntu-latest]
strategy:
matrix:
python-version:
- 3.7
- 3.8
- 3.9
python-version: ['3.9', '3.10', '3.11', '3.12']
dependencies:
- pygame pyglet
- pygame
Expand Down
20 changes: 10 additions & 10 deletions apps/benchmark.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""
This is tested on pygame 1.9 and python 2.7 and 3.3+.
Leif Theden "bitcraft", 2012-2022
Leif Theden "bitcraft", 2012-2024

Rendering demo for the TMXLoader.

Expand Down Expand Up @@ -41,7 +41,7 @@ class TiledRenderer(object):
Super simple way to render a tiled map
"""

def __init__(self, filename):
def __init__(self, filename) -> None:
tm = load_pygame(filename)

# self.size will be the pixel size of the map
Expand All @@ -55,7 +55,7 @@ def __init__(self, filename):
print(i)
continue

def render_map(self, surface):
def render_map(self, surface) -> None:
"""Render our map to a pygame surface

Feel free to use this as a starting point for your pygame app.
Expand Down Expand Up @@ -84,7 +84,7 @@ def render_map(self, surface):
elif isinstance(layer, TiledImageLayer):
self.render_image_layer(surface, layer)

def render_tile_layer(self, surface, layer):
def render_tile_layer(self, surface, layer) -> None:
"""Render all TiledTiles in this layer"""
# deref these heavily used references for speed
tw = self.tmx_data.tilewidth
Expand All @@ -95,7 +95,7 @@ def render_tile_layer(self, surface, layer):
for x, y, image in layer.tiles():
surface_blit(image, (x * tw, y * th))

def render_object_layer(self, surface, layer):
def render_object_layer(self, surface, layer) -> None:
"""Render all TiledObjects contained in this layer"""
# deref these heavily used references for speed
draw_rect = pygame.draw.rect
Expand Down Expand Up @@ -125,26 +125,26 @@ def render_object_layer(self, surface, layer):
else:
draw_rect(surface, rect_color, (obj.x, obj.y, obj.width, obj.height), 3)

def render_image_layer(self, surface, layer):
def render_image_layer(self, surface, layer) -> None:
if layer.image:
surface.blit(layer.image, (0, 0))


class SimpleTest(object):
"""Basic app to display a rendered Tiled map"""

def __init__(self, filename):
def __init__(self, filename) -> None:
self.renderer = None
self.running = False
self.dirty = False
self.exit_status = 0
self.load_map(filename)

def load_map(self, filename):
def load_map(self, filename) -> None:
"""Create a renderer, load data, and print some debug info"""
self.renderer = TiledRenderer(filename)

def draw(self, surface):
def draw(self, surface) -> None:
"""Draw our map to some surface (probably the display)"""
# first we make a temporary surface that will accommodate the entire
# size of the map.
Expand All @@ -164,7 +164,7 @@ def draw(self, surface):
i = f.render("press any key for next map or ESC to quit", 1, (180, 180, 0))
surface.blit(i, (0, 0))

def handle_input(self):
def handle_input(self) -> None:
try:
event = pygame.event.wait()

Expand Down
20 changes: 10 additions & 10 deletions apps/pygame_demo.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""
This is tested on pygame 1.9 and python 2.7 and 3.3+.
Leif Theden "bitcraft", 2012-2023
Leif Theden "bitcraft", 2012-2024

Rendering demo for the TMXLoader.

Expand Down Expand Up @@ -39,15 +39,15 @@ class TiledRenderer(object):
Super simple way to render a tiled map
"""

def __init__(self, filename):
def __init__(self, filename) -> None:
tm = load_pygame(filename)

# self.size will be the pixel size of the map
# this value is used later to render the entire map to a pygame surface
self.pixel_size = tm.width * tm.tilewidth, tm.height * tm.tileheight
self.tmx_data = tm

def render_map(self, surface):
def render_map(self, surface) -> None:
"""Render our map to a pygame surface

Feel free to use this as a starting point for your pygame app.
Expand Down Expand Up @@ -76,7 +76,7 @@ def render_map(self, surface):
elif isinstance(layer, TiledImageLayer):
self.render_image_layer(surface, layer)

def render_tile_layer(self, surface, layer):
def render_tile_layer(self, surface, layer) -> None:
"""Render all TiledTiles in this layer"""
# deref these heavily used references for speed
tw = self.tmx_data.tilewidth
Expand All @@ -96,7 +96,7 @@ def render_tile_layer(self, surface, layer):
sy = x * th2 + y * th2
surface_blit(image, (sx + ox, sy))

def render_object_layer(self, surface, layer):
def render_object_layer(self, surface, layer) -> None:
"""Render all TiledObjects contained in this layer"""
# deref these heavily used references for speed
draw_lines = pygame.draw.lines
Expand All @@ -122,22 +122,22 @@ def render_object_layer(self, surface, layer):
surface, rect_color, obj.closed, obj.apply_transformations(), 3
)

def render_image_layer(self, surface, layer):
def render_image_layer(self, surface, layer) -> None:
if layer.image:
surface.blit(layer.image, (0, 0))


class SimpleTest(object):
"""Basic app to display a rendered Tiled map"""

def __init__(self, filename):
def __init__(self, filename) -> None:
self.renderer = None
self.running = False
self.dirty = False
self.exit_status = 0
self.load_map(filename)

def load_map(self, filename):
def load_map(self, filename) -> None:
"""Create a renderer, load data, and print some debug info"""
self.renderer = TiledRenderer(filename)

Expand All @@ -155,7 +155,7 @@ def load_map(self, filename):
for k, v in self.renderer.tmx_data.get_tile_colliders():
logger.info("%s\t%s", k, list(v))

def draw(self, surface):
def draw(self, surface) -> None:
"""Draw our map to some surface (probably the display)"""
# first we make a temporary surface that will accommodate the entire
# size of the map.
Expand All @@ -175,7 +175,7 @@ def draw(self, surface):
i = f.render("press any key for next map or ESC to quit", 1, (180, 180, 0))
surface.blit(i, (0, 0))

def handle_input(self):
def handle_input(self) -> None:
try:
event = pygame.event.wait()

Expand Down
16 changes: 8 additions & 8 deletions apps/pygame_sdl2_demo.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""
This is tested on pygame 2.0.1 and python 3.9.6.
Leif Theden "bitcraft", 2012-2022
Leif Theden "bitcraft", 2012-2024

Rendering demo for the TMXLoader.

Expand Down Expand Up @@ -32,12 +32,12 @@ class TiledRenderer(object):

"""

def __init__(self, ctx: GameContext, filename):
def __init__(self, ctx: GameContext, filename) -> None:
self.ctx = ctx
self.tmx_data = tm = load_pygame_sdl2(ctx.renderer, filename)
self.pixel_size = tm.width * tm.tilewidth, tm.height * tm.tileheight

def render_map(self):
def render_map(self) -> None:
"""
Render our map to a pygame surface

Expand All @@ -53,7 +53,7 @@ def render_map(self):
if isinstance(layer, TiledTileLayer):
self.render_tile_layer(layer)

def render_tile_layer(self, layer):
def render_tile_layer(self, layer) -> None:
"""
Render all TiledTiles in this layer

Expand Down Expand Up @@ -81,14 +81,14 @@ class SimpleTest:

"""

def __init__(self, ctx: GameContext, filename):
def __init__(self, ctx: GameContext, filename) -> None:
self.ctx = ctx
self.map_renderer = None
self.running = False
self.exit_status = 0
self.load_map(filename)

def load_map(self, filename):
def load_map(self, filename) -> None:
"""
Create a renderer, load data, and print some debug info

Expand All @@ -109,15 +109,15 @@ def load_map(self, filename):
for k, v in self.map_renderer.tmx_data.get_tile_colliders():
logger.info("%s\t%s", k, list(v))

def draw(self):
def draw(self) -> None:
"""
Draw our map to some surface (probably the display)

"""
self.map_renderer.render_map()
self.ctx.renderer.present()

def handle_input(self):
def handle_input(self) -> None:
try:
event = pygame.event.wait()

Expand Down
22 changes: 11 additions & 11 deletions apps/pyglet_demo.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""
This is tested on pyglet 1.2 and python 2.7.
Leif Theden "bitcraft", 2012-2022
Leif Theden "bitcraft", 2012-2024

Rendering demo for the TMXLoader.

Expand Down Expand Up @@ -30,7 +30,7 @@ class TiledRenderer(object):
no shape drawing yet
"""

def __init__(self, filename):
def __init__(self, filename) -> None:
tm = load_pyglet(filename)
self.size = tm.width * tm.tilewidth, tm.height * tm.tileheight
self.tmx_data = tm
Expand All @@ -39,13 +39,13 @@ def __init__(self, filename):
self.generate_sprites()
self.clock_display = pyglet.clock.ClockDisplay()

def draw_rect(self, color, rect, width):
def draw_rect(self, color, rect, width) -> None:
pass

def draw_lines(self, color, closed, points, width):
def draw_lines(self, color, closed, points, width) -> None:
pass

def generate_sprites(self):
def generate_sprites(self) -> None:
tw = self.tmx_data.tilewidth
th = self.tmx_data.tileheight
mw = self.tmx_data.width
Expand Down Expand Up @@ -98,21 +98,21 @@ def generate_sprites(self):
sprite = pyglet.sprite.Sprite(layer.image, batch=batch, x=x, y=y)
self.sprites.append(sprite)

def draw(self):
def draw(self) -> None:
for b in self.batches:
b.draw()
self.clock_display.draw()


class SimpleTest(object):
def __init__(self, filename):
def __init__(self, filename) -> None:
self.renderer = None
self.running = False
self.dirty = False
self.exit_status = 0
self.load_map(filename)

def load_map(self, filename):
def load_map(self, filename) -> None:
self.renderer = TiledRenderer(filename)

logger.info("Objects in map:")
Expand All @@ -125,7 +125,7 @@ def load_map(self, filename):
for k, v in self.renderer.tmx_data.tile_properties.items():
logger.info("%s\t%s", k, v)

def draw(self):
def draw(self) -> None:
self.renderer.draw()


Expand All @@ -142,15 +142,15 @@ def all_filenames():


class TestWindow(pyglet.window.Window):
def on_draw(self):
def on_draw(self) -> None:
if not hasattr(self, "filenames"):
self.filenames = all_filenames()
self.next_map()

self.clear()
self.contents.draw()

def next_map(self):
def next_map(self) -> None:
try:
self.contents = SimpleTest(next(self.filenames))
except StopIteration:
Expand Down
12 changes: 6 additions & 6 deletions apps/pysdl2_demo.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""
This is tested on pysdl2 1.2 and python 2.7.
Leif Theden "bitcraft", 2012-2022
Leif Theden "bitcraft", 2012-2024

Rendering demo for the TMXLoader.

Expand Down Expand Up @@ -43,13 +43,13 @@ class TiledRenderer(object):
no shape drawing yet
"""

def __init__(self, filename, renderer):
def __init__(self, filename, renderer) -> None:
tm = load_pysdl2(renderer, filename)
self.size = tm.width * tm.tilewidth, tm.height * tm.tileheight
self.tmx_data = tm
self.renderer = renderer

def render_tile_layer(self, layer):
def render_tile_layer(self, layer) -> None:
"""Render the tile layer

DOES NOT CHECK FOR DRAWING TILES OFF THE SCREEN
Expand All @@ -69,7 +69,7 @@ def render_tile_layer(self, layer):
angle = 90 if (flip & 4) else 0
rce(renderer, texture, src, dest, angle, None, flip)

def render_map(self):
def render_map(self) -> None:
"""Render the entire map

Only tile layer drawing is implemented
Expand All @@ -82,7 +82,7 @@ def render_map(self):


class SimpleTest(object):
def __init__(self, filename, window):
def __init__(self, filename, window) -> None:
self.running = False
self.dirty = False
self.exit_status = 0
Expand All @@ -99,7 +99,7 @@ def __init__(self, filename, window):
for k, v in self.map_renderer.tmx_data.tile_properties.items():
logger.info("%s\t%s", k, v)

def draw(self):
def draw(self) -> None:
self.sdl_renderer.clear()
self.map_renderer.render_map()
self.sdl_renderer.present()
Expand Down
Loading