-
Notifications
You must be signed in to change notification settings - Fork 0
Repo Structure
Here I sorted all the folders in this repo into different categories. Below, you can find a legend for the symbols:
Symbol | Explanation |
---|---|
🤔 | Discussed |
🧰 | Not ready |
💀 | Not maintained |
-
commons
- Code that is common to different sub-packages.-
alphabit.py
- Implements the alphabit system used to speed up database querying -
exceptions.py
- All exceptions of the package can be imported from here -
logger.py
- Logger configuration -
misc.py
- Miscellaneous functions and classes -
utils.py
- Different functions and objects not related to the logic of the software
-
-
crossword
- Crossword representation-
base.py
- The most basic crossword representation -
colrow.py
- Wrapper over single columns and rows -
addable.py
💀 - Crosswords that can be combined, used in the old generation method, require hints -
improvable.py
- Size-constrained crosswords with a smart word insertion method
-
-
cruciverbalist
- word sets, ColRow selection and word difficulty-
base.py
- Abstract class with some predefined behaviors -
en_simple.py
- Words from https://cryptics.georgeho.org/, simple length based optimization
-
-
director
🤔 - Implements different generators and optimizers -
exclusive
- functions and classes specific to the runtime-
cpython.py
- CPython specific functions -
pyodide.py
- Pyodide specific functions
-
-
scripts.py
🧰 - scripts that can be run usingpoetry
run ...` (more on them here) -
visualize.py
💀 - visualization in LaTeX
The app
folder contains the webpack project for the web app. It relies on copying Poetry build from dist
to app/dist
. JavaScript functions written there are imported in platrynchos/exclusive/pyodide.py
and are responsible for allowing the usage of non-python libraries when running in the browser.
-
benchmarks
- different crossword generators used for profiling -
tests
- classic PyTest tests -
doctests
- contains GitHub Wiki docs (this is why it is a submodule) and doctests run by PyTest
-
data
- Already generated crosswords and related data -
analysis
💀 - Data analysis scripts
-
.github
- GitHub stuff (Actions, Dependabot, Issue templates) -
.vscode
- Visual Studio Code configuration and tasks
In this project, we use Poetry as our packaging and dependency manager. You can read about its basic usage here. Here are some pointers on using it in this project:
- Installation:
-
On Mac/Linux:
curl -sSL https://install.python-poetry.org | python3 -
-
On Windows:
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
-
Using pipx:
pipx install poetry
. Find more info here.
-
- Activate the virtual environment using
poetry shell
, - Run single commands in the virtual environments using
poetry run [command]
. For example,poetry run pytest
. - Run predefined poetry functions:
-
poetry run en-download
redownloads the English database.
-