semvec/pypi-packages huggingface dataset:
wasabi2d 1.5.0a1
A convenient 2D OpenGL games framework
Requires Python: >=3.6

# ![Wasabi 2D](https://raw.githubusercontent.com/lordmauve/wasabi2d/master/docs/_static/wasabi2d.png)

![PyPI](https://img.shields.io/pypi/v/wasabi2d) ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/wasabi2d) ![PyPI - Wheel](https://img.shields.io/pypi/wheel/wasabi2d)

[![Discord](https://img.shields.io/discord/705530610847973407)](https://discord.gg/jBWaWHU)

A fast, cutting-edge 2D game engine for Python.

Current features include:

* Sprites, text, and stroked and filled polygons - all rotatable, scalable, and
  colorizeable
* A [coroutine programming model](https://wasabi2d.readthedocs.io/en/latest/coros.html) for easy animated effects.
* [Particle systems](https://wasabi2d.readthedocs.io/en/latest/particles.html)
* [Built-in post-processing effects](https://wasabi2d.readthedocs.io/en/latest/effects.html) using GLSL shaders.
* [Sound, music and tone generation](https://wasabi2d.readthedocs.io/en/latest/sound.html).
* [Event driven input handling](https://wasabi2d.readthedocs.io/en/latest/events.html) for keyboard and mouse.
* [Animation/tweening](https://wasabi2d.readthedocs.io/en/latest/animation.html).
* ["Local storage"](https://wasabi2d.readthedocs.io/en/latest/storage.html) to easily save state.

Wasabi2D is based on [moderngl](supports OpenGL 4.1+), with [pygame 2.0] for some supporting functions, and supporting APIs ported from [Pygame Zero](https://github.com/lordmauve/pgzero).



[moderngl]: https://github.com/moderngl/moderngl
[pygame 2.0]: https://www.pygame.org/news

## Docs and Help

Documentation is available at https://wasabi2d.readthedocs.io/

Join us on [Discord for help and announcements!](https://discord.gg/jBWaWHU)


## Quick example

Draw a drop-shadowed circle that follows the mouse:

```python
import wasabi2d as w2d

scene = w2d.Scene()
scene.background = 0.9, 0.9, 1.0

scene.layers[0].set_effect('dropshadow')
circle = scene.layers[0].add_circle(
    radius=30,
    pos=(400, 300),
    color='red',
)

@w2d.event
def on_mouse_move(pos):
    circle.pos = pos

w2d.run()
```

![Output of the above program](https://github.com/lordmauve/wasabi2d/raw/master/docs/2020-01-10-screenshot.png)


## Installation


Use pip to install Wasabi2d from PyPI:

```
pip install wasabi2d
```

Please make sure your `requirements.txt` pins a major version, as Wasabi2D may
continue to make breaking API and graphical changes in major versions.


## Screenshots

This screenshot shows off polygons, sprites, text and particle effects:

![Screenshot as of Wasabi2d 1.0.0](https://github.com/lordmauve/wasabi2d/raw/master/docs/2019-09-21-screenshot.png)

[Roller Knight](https://pyweek.org/e/wasabi28) was an entry in PyWeek 28, written with Wasabi2D by Daniel Pope and Larry Hastings:

![Roller Knight screenshot](https://github.com/lordmauve/wasabi2d/raw/master/docs/roller-knight.png)

[Spire of Chaos](https://pyweek.org/e/blaze/) was another entry in PyWeek 28 written with Wasabi2D by Daniel Moisset:

![Spire of Chaos screenshot](https://github.com/lordmauve/wasabi2d/raw/master/docs/spire-of-chaos.png)
maxpreps-scraper 0.1.2
A Python scraper for MaxPreps high school sports data
Requires Python: >=3.7

# MaxPreps Web Scraper

This Python module scrapes high school sports data from [MaxPreps.com](https://www.maxpreps.com), enabling efficient extraction of team rankings and game results across states and sports.

## Features

- Retrieve team rankings with strength of schedule, rating, and team links.
- Scrape team schedules, game outcomes, rankings
- Includes address/location data for each team.
- Multi-threaded scraping for speed and efficiency.
- Cleans and structures game metadata (venue, game type, outcome, etc.).

##  File Structure

- `scraper.py`: Contains the `MaxPrepsScraper` class 

## ️ Installation

```bash
pip install maxpreps_scraper
```
##  Functions

##### `get_rankings(state: str, sport: str, year: str, boys: bool = True)`

Retrieves state rankings for a given sport and academic year.
**Parameters:**
- `state` (`str`): Two-letter state abbreviation (e.g., `'tx'` for Texas)
- `sport` (`str`): Sport name (e.g., `'basketball'`)
- `year` (`str`): Academic year of the season (e.g., `'21-22'`)
- `boys` (`bool`, optional): Set to `True` for boys' sports and `False` for girls'. Defaults to `True`.

**Returns:**  
`pandas.DataFrame` containing:
- School Name
- State Rank
- Strength of Schedule (SOS)
- Team Rating
- Team URL

---

##### `get_contests(state: str, sport: str, year: str, boys: bool = True, cities: list = None)`

Scrapes all contests (games) for selected schools by state, sport, and year.
**Parameters:**
- `state` (`str`): Two-letter state abbreviation (e.g., `'tx'`)
- `sport` (`str`): Sport name (e.g., `'basketball'`)
- `year` (`str`): Academic year of the season (e.g., `'21-22'`)
- `boys` (`bool`, optional): Set to `True` for boys' sports and `False` for girls'. Defaults to `True`.
- `cities` (`list`, optional): A list of cities to filter for, e.g., `['austin', 'el paso']` (if omitted, full state will be scraped)

**Returns:**  
`pandas.DataFrame` containing game-level contest data, including:
- Date, opponent, venue, scores
- Team location details (address, city, state, zipcode)
- URLs to the MaxPreps pages of both teams

#### Supported Sports and Limitations
These functions only support the following sports:
['basketball', 'football', 'baseball', 'soccer', 'volleyball', 'lacrosse', 'softball']

⚠️ Note: Soccer data is only available for the following states:
['tx', 'la', 'ms', 'hi', 'ca', 'fl', 'az']
## Usage and Example Output
```
from scraper import MaxPrepsScraper
scraper = MaxPrepsScraper()

# Get Team Rankings
rankings_df = scraper.get_rankings(state = 'de', sport = 'football', year = '23-24')

# Get Contest Data
contests_df = scraper.get_contests(state='tx', sport='basketball', year='21-22', boys=False, cities = ['san antonio'])

#output datframes
rankings_df.head(10)
contests_df.head(10)
```
![Get Rankings](images/rankings_demo.png)
![Get Contests](images/contests_demo.png)
icswebtracker 0.1.1
A Django app for tracking website visitors
Requires Python: >=3.8

# ICSwebtracker

A simple, lightweight Django app for tracking website visitors without JavaScript.

## Features

- Track page visits with IP address, user agent, and other metadata
- Configurable exclusion rules for paths and IP addresses
- Easy-to-use admin interface for viewing visitor data
- Works with Django's built-in authentication system
- Optimized for low-traffic sites (less than 1,000 visitors per month)
- No JavaScript required - works server-side with Django middleware

## Installation

```bash
pip install icswebtracker
```

## Quick Start

1. Add 'icswebtracker' to your INSTALLED_APPS:

```python
INSTALLED_APPS = [
    # ...
    'icswebtracker',
]
```

2. Add the middleware:

```python
MIDDLEWARE = [
    # ...
    'icswebtracker.middleware.TrackMiddleware',
]
```

3. Run migrations:

```bash
python manage.py migrate icswebtracker
```

4. Configure settings (optional):

```python
WEBTRACKER_SETTINGS = {
    'ENABLED': True,
    'IGNORE_PATHS': ['/admin/', '/static/', '/media/'],
    'IGNORE_IPS': ['127.0.0.1'],
    'TRACK_AUTHENTICATED': True,
    'TRACK_ANONYMOUS': True,
    'RESOLVE_COUNTRY': False,
}
```

## Usage

Visit data is available in the Django admin interface. You can also query the data programmatically:

```python
from icswebtracker.models import Visit

# Get all visits
all_visits = Visit.objects.all()

# Get visits to a specific page
page_visits = Visit.objects.filter(path='/some/page/')

# Get visits from a specific country
country_visits = Visit.objects.filter(country='US')
```

## Configuration Options

- `ENABLED`: Enable or disable tracking (default: True)
- `IGNORE_PATHS`: Paths to exclude from tracking (default: ['/admin/', '/static/', '/media/'])
- `IGNORE_IPS`: IP addresses to exclude from tracking (default: [])
- `TRACK_AUTHENTICATED`: Whether to track authenticated users (default: True)
- `TRACK_ANONYMOUS`: Whether to track anonymous users (default: True)
- `RESOLVE_COUNTRY`: Enable IP to country resolution (default: False, requires GeoIP2)

## License

MIT