__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.85: ~ $
from typing import (
    Any,
    Callable,
    Dict,
    Generic,
    Iterable,
    Iterator,
    List,
    Literal,
    Optional,
    SupportsFloat,
    Tuple,
    TypeVar,
    Union,
)

# Protocol added in python 3.8
from typing_extensions import Protocol

from pygame.rect import Rect
from pygame.surface import Surface
from pygame.mask import Mask

from ._common import RectValue, Coordinate

# non-generic Group, used in Sprite
_Group = AbstractGroup[_SpriteSupportsGroup]

# protocol helps with structural subtyping for typevars in sprite group generics
class _SupportsSprite(Protocol):
    @property
    def layer(self) -> int: ...
    @layer.setter
    def layer(self, value: int) -> None: ...
    def __init__(self, *groups: _Group) -> None: ...
    def add_internal(self, group: _Group) -> None: ...
    def remove_internal(self, group: _Group) -> None: ...
    def update(self, *args: Any, **kwargs: Any) -> None: ...
    def add(self, *groups: _Group) -> None: ...
    def remove(self, *groups: _Group) -> None: ...
    def kill(self) -> None: ...
    def alive(self) -> bool: ...
    def groups(self) -> List[_Group]: ...

# also a protocol
class _SupportsDirtySprite(_SupportsSprite, Protocol):
    dirty: int
    blendmode: int
    source_rect: Rect
    visible: int
    _layer: int
    def _set_visible(self, val: int) -> None: ...
    def _get_visible(self) -> int: ...

# concrete sprite implementation class
class Sprite(_SupportsSprite):
    @property
    def layer(self) -> int: ...
    @layer.setter
    def layer(self, value: int) -> None: ...
    def __init__(self, *groups: _Group) -> None: ...
    def add_internal(self, group: _Group) -> None: ...
    def remove_internal(self, group: _Group) -> None: ...
    def update(self, *args: Any, **kwargs: Any) -> None: ...
    def add(self, *groups: _Group) -> None: ...
    def remove(self, *groups: _Group) -> None: ...
    def kill(self) -> None: ...
    def alive(self) -> bool: ...
    def groups(self) -> List[_Group]: ...

class WeakSprite(Sprite):
    ...

# concrete dirty sprite implementation class
class DirtySprite(_SupportsDirtySprite):
    dirty: int
    blendmode: int
    source_rect: Rect
    visible: int
    _layer: int
    def _set_visible(self, val: int) -> None: ...
    def _get_visible(self) -> int: ...

class WeakDirtySprite(WeakSprite, DirtySprite):
    ...

# used as a workaround for typing.Self because it is added in python 3.11
_TGroup = TypeVar("_TGroup", bound=AbstractGroup)

# define some useful protocols first, which sprite functions accept
# sprite functions don't need all sprite attributes to be present in the
# arguments passed, they only use a few which are marked in the below protocols
class _HasRect(Protocol):
    rect: Rect

# image in addition to rect
class _HasImageAndRect(_HasRect, Protocol):
    image: Surface

# mask in addition to rect
class _HasMaskAndRect(_HasRect, Protocol):
    mask: Mask

# radius in addition to rect
class _HasRadiusAndRect(_HasRect, Protocol):
    radius: float

class _SpriteSupportsGroup(_SupportsSprite, _HasImageAndRect, Protocol): ...
class _DirtySpriteSupportsGroup(_SupportsDirtySprite, _HasImageAndRect, Protocol): ...

# typevar bound to Sprite, _SpriteSupportsGroup Protocol ensures sprite
# subclass passed to group has image and rect attributes
_TSprite = TypeVar("_TSprite", bound=_SpriteSupportsGroup)
_TSprite2 = TypeVar("_TSprite2", bound=_SpriteSupportsGroup)

# almost the same as _TSprite but bound to DirtySprite
_TDirtySprite = TypeVar("_TDirtySprite", bound=_DirtySpriteSupportsGroup)

# Below code demonstrates the advantages of the _SpriteSupportsGroup protocol

# typechecker should error, regular Sprite does not support Group.draw due to
# missing image and rect attributes
# a = Group(Sprite())

# typechecker should error, other Sprite attributes are also needed for Group
# class MySprite:
#     image: Surface
#     rect: Rect
#
# b = Group(MySprite())

# typechecker should pass
# class MySprite(Sprite):
#     image: Surface
#     rect: Rect
#
# b = Group(MySprite())

class AbstractGroup(Generic[_TSprite]):
    spritedict: Dict[_TSprite, Optional[Rect]]
    lostsprites: List[Rect]
    def __init__(self) -> None: ...
    def __len__(self) -> int: ...
    def __iter__(self) -> Iterator[_TSprite]: ...
    def __bool__(self) -> bool: ...
    def __contains__(self, item: Any) -> bool: ...
    def add_internal(self, sprite: _TSprite, layer: None = None) -> None: ...
    def remove_internal(self, sprite: _TSprite) -> None: ...
    def has_internal(self, sprite: _TSprite) -> bool: ...
    def copy(self: _TGroup) -> _TGroup: ...  # typing.Self is py3.11+
    def sprites(self) -> List[_TSprite]: ...
    def add(
        self, *sprites: Union[_TSprite, AbstractGroup[_TSprite], Iterable[_TSprite]]
    ) -> None: ...
    def remove(
        self, *sprites: Union[_TSprite, AbstractGroup[_TSprite], Iterable[_TSprite]]
    ) -> None: ...
    def has(
        self, *sprites: Union[_TSprite, AbstractGroup[_TSprite], Iterable[_TSprite]]
    ) -> bool: ...
    def update(self, *args: Any, **kwargs: Any) -> None: ...
    def draw(
        self, surface: Surface, bgsurf: Optional[Surface] = None, special_flags: int = 0
    ) -> List[Rect]: ...
    def clear(
        self, surface: Surface, bgd: Union[Surface, Callable[[Surface, Rect], Any]]
    ) -> None: ...
    def empty(self) -> None: ...

class Group(AbstractGroup[_TSprite]):
    def __init__(
        self, *sprites: Union[_TSprite, AbstractGroup[_TSprite], Iterable[_TSprite]]
    ) -> None: ...

# these are aliased in the code too
RenderPlain = Group
RenderClear = Group

class RenderUpdates(Group[_TSprite]): ...
class OrderedUpdates(RenderUpdates[_TSprite]): ...

class LayeredUpdates(AbstractGroup[_TSprite]):
    def __init__(
        self,
        *sprites: Union[
            _TSprite,
            AbstractGroup[_TSprite],
            Iterable[Union[_TSprite, AbstractGroup[_TSprite]]],
        ],
        **kwargs: Any
    ) -> None: ...
    def add(
        self,
        *sprites: Union[
            _TSprite,
            AbstractGroup[_TSprite],
            Iterable[Union[_TSprite, AbstractGroup[_TSprite]]],
        ],
        **kwargs: Any
    ) -> None: ...
    def get_sprites_at(self, pos: Coordinate) -> List[_TSprite]: ...
    def get_sprite(self, idx: int) -> _TSprite: ...
    def remove_sprites_of_layer(self, layer_nr: int) -> List[_TSprite]: ...
    def layers(self) -> List[int]: ...
    def change_layer(self, sprite: _TSprite, new_layer: int) -> None: ...
    def get_layer_of_sprite(self, sprite: _TSprite) -> int: ...
    def get_top_layer(self) -> int: ...
    def get_bottom_layer(self) -> int: ...
    def move_to_front(self, sprite: _TSprite) -> None: ...
    def move_to_back(self, sprite: _TSprite) -> None: ...
    def get_top_sprite(self) -> _TSprite: ...
    def get_sprites_from_layer(self, layer: int) -> List[_TSprite]: ...
    def switch_layer(self, layer1_nr: int, layer2_nr: int) -> None: ...

class LayeredDirty(LayeredUpdates[_TDirtySprite]):
    def __init__(self, *sprites: _TDirtySprite, **kwargs: Any) -> None: ...
    def draw(
        self, surface: Surface, bgsurf: Optional[Surface] = None, special_flags: Optional[int] = None
    ) -> List[Rect]: ...
    # clear breaks Liskov substitution principle in code
    def clear(self, surface: Surface, bgd: Surface) -> None: ...  # type: ignore[override]
    def repaint_rect(self, screen_rect: RectValue) -> None: ...
    def set_clip(self, screen_rect: Optional[RectValue] = None) -> None: ...
    def get_clip(self) -> Rect: ...
    def set_timing_threshold(
        self, time_ms: SupportsFloat
    ) -> None: ...  # This actually accept any value
    # deprecated alias
    set_timing_treshold = set_timing_threshold

class GroupSingle(AbstractGroup[_TSprite]):
    sprite: _TSprite
    def __init__(self, sprite: Optional[_TSprite] = None) -> None: ...

# argument to collide_rect must have rect attribute
def collide_rect(left: _HasRect, right: _HasRect) -> bool: ...

class collide_rect_ratio:
    ratio: float
    def __init__(self, ratio: float) -> None: ...
    def __call__(self, left: _HasRect, right: _HasRect) -> bool: ...

# must have rect attribute, may optionally have radius attribute
_SupportsCollideCircle = Union[_HasRect, _HasRadiusAndRect]

def collide_circle(
    left: _SupportsCollideCircle, right: _SupportsCollideCircle
) -> bool: ...

class collide_circle_ratio:
    ratio: float
    def __init__(self, ratio: float) -> None: ...
    def __call__(
        self, left: _SupportsCollideCircle, right: _SupportsCollideCircle
    ) -> bool: ...

# argument to collide_mask must either have mask or have image attribute, in
# addition to mandatorily having a rect attribute
_SupportsCollideMask = Union[_HasImageAndRect, _HasMaskAndRect]

def collide_mask(
    left: _SupportsCollideMask, right: _SupportsCollideMask
) -> Optional[Tuple[int, int]]: ...
def spritecollide(
    sprite: _TSprite,
    group: AbstractGroup[_TSprite2],
    dokill: bool | Literal[1] | Literal[0],
    collided: Optional[
        Callable[[_TSprite, _TSprite2], bool | Optional[Tuple[int, int]]]
    ] = None,
) -> List[_TSprite2]: ...
def groupcollide(
    groupa: AbstractGroup[_TSprite],
    groupb: AbstractGroup[_TSprite2],
    dokilla: bool | Literal[1] | Literal[0],
    dokillb: bool | Literal[1] | Literal[0],
    collided: Optional[
        Callable[[_TSprite, _TSprite2], bool | Optional[Tuple[int, int]]]
    ] = None,
) -> Dict[_TSprite, List[_TSprite2]]: ...
def spritecollideany(
    sprite: _TSprite,
    group: AbstractGroup[_TSprite2],
    collided: Optional[
        Callable[[_TSprite, _TSprite2], bool | Optional[Tuple[int, int]]]
    ] = None,
) -> Optional[_TSprite2]: ...

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
__pyinstaller Folder 0755
_sdl2 Folder 0755
threads Folder 0755
__init__.py File 9.26 KB 0644
__init__.pyi File 19.92 KB 0644
_camera.cpython-313-aarch64-linux-gnu.so File 66.93 KB 0644
_camera_opencv.py File 5.33 KB 0644
_camera_vidcapture.py File 3.32 KB 0644
_common.pyi File 1.32 KB 0644
_freetype.cpython-313-aarch64-linux-gnu.so File 132.87 KB 0644
_sprite.cpython-313-aarch64-linux-gnu.so File 397.24 KB 0644
base.cpython-313-aarch64-linux-gnu.so File 66.55 KB 0644
base.pyi File 586 B 0644
bufferproxy.cpython-313-aarch64-linux-gnu.so File 67.02 KB 0644
bufferproxy.pyi File 458 B 0644
camera.py File 5.94 KB 0644
camera.pyi File 1.59 KB 0644
color.cpython-313-aarch64-linux-gnu.so File 67.66 KB 0644
color.pyi File 2 KB 0644
colordict.py File 25.17 KB 0644
constants.cpython-313-aarch64-linux-gnu.so File 130.02 KB 0644
constants.pyi File 9.67 KB 0644
cursors.py File 17.67 KB 0644
cursors.pyi File 2.04 KB 0644
display.cpython-313-aarch64-linux-gnu.so File 67.78 KB 0644
display.pyi File 2.22 KB 0644
draw.cpython-313-aarch64-linux-gnu.so File 66.94 KB 0644
draw.pyi File 1.65 KB 0644
draw_py.py File 18.22 KB 0644
event.cpython-313-aarch64-linux-gnu.so File 67.69 KB 0644
event.pyi File 1.45 KB 0644
fastevent.py File 1.65 KB 0644
fastevent.pyi File 249 B 0644
font.cpython-313-aarch64-linux-gnu.so File 67.48 KB 0644
font.pyi File 2.03 KB 0644
freesansbold.ttf File 973.08 KB 0644
freetype.py File 2.17 KB 0644
freetype.pyi File 3.43 KB 0644
ftfont.py File 6.01 KB 0644
gfxdraw.cpython-313-aarch64-linux-gnu.so File 66.84 KB 0644
gfxdraw.pyi File 2.44 KB 0644
image.cpython-313-aarch64-linux-gnu.so File 66.52 KB 0644
image.pyi File 1.67 KB 0644
imageext.cpython-313-aarch64-linux-gnu.so File 66.3 KB 0644
joystick.cpython-313-aarch64-linux-gnu.so File 67.34 KB 0644
joystick.pyi File 1.32 KB 0644
key.cpython-313-aarch64-linux-gnu.so File 67.04 KB 0644
key.pyi File 562 B 0644
locals.py File 1.17 KB 0644
locals.pyi File 9.69 KB 0644
macosx.py File 329 B 0644
mask.cpython-313-aarch64-linux-gnu.so File 67.88 KB 0644
mask.pyi File 2.25 KB 0644
math.cpython-313-aarch64-linux-gnu.so File 136.43 KB 0644
math.pyi File 11.41 KB 0644
midi.py File 23.77 KB 0644
midi.pyi File 1.73 KB 0644
mixer.cpython-313-aarch64-linux-gnu.so File 68.63 KB 0644
mixer.pyi File 2.79 KB 0644
mixer_music.cpython-313-aarch64-linux-gnu.so File 66.74 KB 0644
mixer_music.pyi File 691 B 0644
mouse.cpython-313-aarch64-linux-gnu.so File 66.52 KB 0644
mouse.pyi File 1.16 KB 0644
newbuffer.cpython-313-aarch64-linux-gnu.so File 68.02 KB 0644
pixelarray.cpython-313-aarch64-linux-gnu.so File 67.46 KB 0644
pixelarray.pyi File 1.2 KB 0644
pixelcopy.cpython-313-aarch64-linux-gnu.so File 66.32 KB 0644
pixelcopy.pyi File 534 B 0644
pkgdata.py File 2.36 KB 0644
py.typed File 0 B 0644
pygame.ico File 142.11 KB 0644
pygame_icon.bmp File 630 B 0644
pygame_icon.icns File 257.96 KB 0644
pygame_icon_mac.bmp File 256.13 KB 0644
pypm.cpython-313-aarch64-linux-gnu.so File 133.62 KB 0644
rect.cpython-313-aarch64-linux-gnu.so File 69.1 KB 0644
rect.pyi File 6.97 KB 0644
rwobject.cpython-313-aarch64-linux-gnu.so File 66.32 KB 0644
rwobject.pyi File 544 B 0644
scrap.cpython-313-aarch64-linux-gnu.so File 66.41 KB 0644
scrap.pyi File 366 B 0644
sndarray.py File 3.99 KB 0644
sndarray.pyi File 337 B 0644
sprite.py File 61.42 KB 0644
sprite.pyi File 9.52 KB 0644
surface.cpython-313-aarch64-linux-gnu.so File 260.43 KB 0644
surface.pyi File 4.62 KB 0644
surfarray.py File 14.07 KB 0644
surfarray.pyi File 1.26 KB 0644
surflock.cpython-313-aarch64-linux-gnu.so File 66.4 KB 0644
surflock.pyi File 122 B 0644
sysfont.py File 15.03 KB 0644
time.cpython-313-aarch64-linux-gnu.so File 66.97 KB 0644
time.pyi File 501 B 0644
transform.cpython-313-aarch64-linux-gnu.so File 67.14 KB 0644
transform.pyi File 1.95 KB 0644
version.py File 2.4 KB 0644
version.pyi File 600 B 0644
Filemanager