semvec/pypi-packages huggingface dataset:
tictactoetools 2.1.1
Creatively build Tic-Tac-Toe matches and store their data in a database of all users.

# tictactoetools

tictactoetools is a Python package that provides functionality for building games of Tic-Tac-Toe with customizable features
and storing the data of matches in a database.

# Installation

To install the tictactoetools package, you can use the following command:

```
pip install tictactoetools
```

# Usage

## Builtin Functions

The package includes several built-in functions that facilitate the gameplay and interaction with the Tic-Tac-Toe game.
These functions provide functionality for playing matches, creating new matches, prompting user input, managing player moves,
and handling rematch options. There are also builtin functions for working with the database (see "Database")

The builtin play() function is an example of how all the functions can work together to make a Tic-Tac-Toe game, as well
as logging data on the database.

## Database

The tictactoetools package includes several built-in functions that facilitate working with the database, such as logging
matches, retrieving player IDs, checking username existence, creating new users, and fetching player and match statistics.

The database for this package consists of the following tables:

### Table: players

- `player_id`: Unique identifier for each player.
- `username`: The username of the player.

### Table: matches

- `match_id`: Unique identifier for each match.
- `player1_id`: The ID of the first player in the match.
- `player2_id`: The ID of the second player in the match.
- `start_time`: The start time of the match.
- `end_time`: The end time of the match.
- `board`: The game board data for the match.
- `winner_id`: The ID of the player who won the match.

## Board Class

The `Board` class represents the internal Tic Tac Toe game board. It provides functionality to manage and display the board
state, check for a winner, mark cells with player symbols, and perform other board-related operations.

## Match Class

The `Match` class is a data class responsible for storing information about the players, start and end times of a match,
the board configuration, and the winner.

# Contributing

Contributions to the tictactoetools package are welcome! If you encounter any issues or have suggestions for improvements,
please create an issue on the GitHub repository.

# License

This package is licensed under the MIT License. See the LICENSE file for more information.
flet-lite 1.7.5
A tiny version of flet to work on mobile development

# flet-lite
`flet-lite` is tiny version of flet that is compatible with with devices like iPadOS and iOS. Its not using `subprocess` or `multiprocess` which are not supported on mobile and iPad as will. Its just magic how everything is work properly 🪄!

|| **Why flet-lite 🙃?**

When I was trying to use my iPad for programming, I was miss something, which is my favourite UI library [flet](https://flet.dev/)!. Flet is a python library that allow you to code flutter apps in python without using dart or flutter. Everything is perfectly pythonic. Due to iPadOS limitations I was not able to code flet on python for iPad version. Then I came up with an idea of making a tiny version of the library for iPad, so me (and anyone) can use this powerful package just on iPad!!.

|| **What code editor to use 👨‍💻?**

You can use any code editor that support `pip` on mobile or iPad, these are some recommends:
- [Code App](https://apps.apple.com/app/id1512938504): Its a paid app that provide a powerful tools for coding. Also its a vscode like theme. Its include a terminal that support python and `pip`.
- [a-shell](https://apps.apple.com/app/id1473805438): Its a free app that provide a linux-like shell, its include python by default, also supports `pip`.


|| **Is this for production 🌐?**

This package is not prepared to use for production cases so its a development only, use the original [flet](https://flet.dev) for production. The only tool here for production is the command `python3 -m flet.publish script.py` which is a custom command tool the present similer usage for the original `flet publish script.py`.

## installation ⬇️
- uninstall `flet` if you did install it before: `pip uninstall flet`.
- uninstall `flet-core` if you did install flet before: `pip uninstall flet-core`.
Using `pip`, enter:
```zsh
pip install flet_lite --upgrade
```

## docs 📖
This `flet-lite` is a custom clone of `flet` version v0.7.4

Everything is the same on original flet, read the docs here:
[flet.dev](https://flet.dev/)👈

## flet commands 
Due iOS, iPadOS and Android limits, you cant use many of `flet` commands. The supported commands is:
- **`python3 -m flet.publish myapp.py`**: This is used to create a pyodide site of your flet application so it can work on a normal web host (Any host that support static files, for example php servers).

## limitations in code
- This package does not support flet async features.
- The API manager here is a customized http host, thats why its slower than original flet.
- You must use the Literal values insted of Literal classes. For example instead of using `alignment=MainAxisAlignment.CENTER`, just use `alignment="center"`.

## best usage practice
soon
- Do NOT make the host run on background on mobile, because mobile can NOT keep the app running on background. Try to run the browser and the host together.