Package: wordcookies
Word CookiesWord Cookies helperDemoUsageLibraryInstallthe package thenfromwordcookiesimportgamefrompprintimportpprintword="word"chars=game.clean(word)answers=game.get_possible_answers(chars)g=game.group(answers)pprint(g,width=120)"""{2: ['do', 'dr', 'dw', 'od', 'or', 'ow', 'rd', 'ro', 'rw', 'wd', 'wo', 'wr'],3: ['dor', 'dow', 'ord', 'owd', 'owr', 'rod', 'row', 'rwd', 'wod', 'wro'],4: ['drow', 'word']}"""CLIInstallthe package thenpython-mwordcookiescli
python-mwordcookiescli--word="word"python-mwordcookiescli--word="word"--exitWeb (Docker)InstallDockerthen run thejojoee/wordcookiesDocker image by the command belowdockerrun-p8082:9001--namectn_wordcookiesjojoee/wordcookies
curllocalhost:8082Web (Docker Compose)InstallDockerandDocker Composethencd./web
docker-compose-fdocker-compose.yamlupInstallationpip install wordcookies

# or
git clone https://github.com/jojoee/wordcookies
cd wordcookies
python setup.py installFeatures[demo] Add cli demo gif[demo] Add web demo gif[ci] setup continuous integration[cd] setup continuous delivery[pypi] Deploy tohttps://pypi.org/project/wordcookies/[test] Add more test[cli] add Usage section[web][docker] use Python base image instead of current[web][docker] generate dict while building an Docker image[web] add web version[web][docker] add Docker support[web][cache] with file and Redis[web][cache] pre-caching most common word[web] enhance UI[dict] using nltk data is not good enough, so need to combine with "ahmadly/WordCookiesCheat" (you can try with beginner level, some word is missing)[web] add e2e testDevelopmentconda -V
conda deactivate
conda remove --name wordcookies --all
conda create --name wordcookies python=3.7.5
conda activate wordcookies
python -V
pip list

# lib, dev
pip install -r requirements.txt
PYTHONPATH="$PWD" python wordcookies/cli.py
pip freeze > requirements.txt

# lib, test
conda remove --name wordcookies_test --all
conda create --name wordcookies_test python=3.7.5
conda activate wordcookies_test
pip install -r requirements.txt
python -m flake8 --ignore=E501 wordcookies tests
python -m pytest tests --cov=./ --cov-report=xml
pip install .
python -m wordcookies cli
python -m wordcookies cli --word="word"
python -m wordcookies cli --word="word" --exit

# lib, test pypi
pip install twine # package for publishing
python setup.py sdist bdist_wheel # build the package

# web
cd ./web
conda remove --name wordcookies_web --all
conda create --name wordcookies_web python=3.7.5
conda activate wordcookies_web
pip install -r requirements.txt
uvicorn main:app --reload --port 9002 # dev + hot reload
uvicorn main:app --port 9002 & # dev
python main.py # run on prod

# web, util
lsof -i -n -P | grep 9002
docker run -p 6379:6379 --name ctn_redis -d redis:6.0.8

# web, Cocker
cd ./web
docker build -f Dockerfile -t jojoee/wordcookies:0.0.1 .
docker run -p 8082:9001 --name ctn_wordcookies jojoee/wordcookies:0.0.1
docker run -p 8082:9001 --name ctn_wordcookies jojoee/wordcookies
docker start ctn_wordcookies
http://localhost:8082/healthcheck
http://localhost:8082/404

# web, Docker Compose
docker-compose -f docker-compose.yaml up
docker-compose -f docker-compose.dev.yaml up --build
docker-compose -f docker-compose.dev.yaml upReferenceWord Cookies!®Word Cookies!®https://github.com/ahmadly/WordCookiesCheatData for building word dictionaryhttps://www.nltk.org/nltk_data/https://github.com/ahmadly/WordCookiesCheathttps://www.nltk.org/data.htmlhttps://github.com/dwyl/english-wordshttps://stackoverflow.com/questions/2213607/how-to-get-english-language-word-database