JC's Google Foobar Journey - 2023 Q4
Reason this release was yanked:
wrong name
Project description
google-foobar-2023-q4
Production
Installation
pipx install git+https://github.com/hychan48/google-foobar-2023-q4.git
#pipx run --spec git+
hychan48-cake-is-not-a-lie abab
# Returns 2
Level 1
cat levels/q1/src/solution.py
# GitHub action runs PyTest
python -m pytest levels/q1/tests/solutions_test.py
# JavaScript solution
pnpm run test:q1
level 2
- readme_q2_dont-get-volunteered.md
- Simplified Knight's Tour problem
- Textbook BFS, but I wanted to animate it
- BFS Wiki
- Knight's Tour Game
- Experimented with ILP. Good example to teach with
pytest ./levels/q2/tests/solutions_bfs_test.py
Background
- https://github.com/hychan48/google-foobar-2023-q4
- I searched proxy vs load balancer. and at first I found it mad sketch
- had to verify it's SSL/TLS cert and Google was foobar was.
Assumptions
- So far it looks like it's either Python 2.7 or Java 8
- I'm going to use Python 3.11.6, using basic syntax it should be backwards compatible with 2.7
- Also, I have PyCharm installed already
- TDD with PyTest
Quick Checklist
- Documentation
- Save Original Question
- /api/v1/files/ (.json)
- convert to .yaml and .html
- Reword Question and Keywords
- readme_q.template.md
- Principles
- TDD
- Quick and dirty
- Unless the question piques my research interest
- 7 days per question seems like a lot of time
- Priorities
- JSDoc @typedef but for Python
- Metadata
- Author
- GitHub Repo
- Environment
- Time / Space Complexity (if applicable)
- Save Original Question
- Validation / Error handling
- Test cases / Unit Tests
- Workflow with GitHub actions
- Lint - Flake8
- Unit Tests - PyTest
- Workflow with GitHub actions
dev setup
# there's also some helpers
conda activate ./venv
# newer method
# pull
# bats installs differently? weird
# mostly for bats
git pull --recurse-submodule
## bats clones to test/ by default
#
# first time
# pipx / conda(mamba) / poetry
git submodule add https://github.com/bats-core/bats-core.git test/bats
git submodule add https://github.com/bats-core/bats-assert.git test/test_helper/bats-assert
git submodule add https://github.com/bats-core/bats-support.git test/test_helper/bats-support
git commit -m 'Add bats-support library'
tree test/bats/bin
mkdir -p ~/.local/bin
rm ~/.local/bin/bats
ln -s $PWD/test/bats/bin/bats ~/.local/bin/bats
ln -s $PWD/test/bats/bin/bats /usr/local/bin/bats
ln -s ./test/bats/bin/bats /usr/local/bin/bats
ls -l /usr/local/bin/bats
bats
export PATH=$PATH:~/.local/bin
# git submodule add https://github.com/ztombol/bats-support test/test_helper/bats-support
# cygwin / windows 11
pnpm i
# haha didnt work:
conda create -n foobar-py27 python=2.7
conda create -n google-foorbar-2023-q4 python=3.11
conda activate google-foorbar-2023-q4
# update pipx
pipx --version
python -m pip install --user pipx
python -m pipx ensurepath
# poetry... too basic to need it... todo: move to other section
# might not be needed after all...
pipx install poetry
poetry --version
poetry init
# poetry might not be needed after all...
poetry add pytest --group dev
#poetry shell
# 3.11.4 vs 3.11.6... interesting
Install pytest
conda activate google-foorbar-2023-q4
python -m pip install pytest
python -m pip install -r requirements.txt
Appendix
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for google_foobar_2023_q4-0.2.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b736f083ee624cb88a22a0224ecdf2ee447ae63e92fae9c093161868e044aea |
|
MD5 | 3bae6d00e430b1f4df2fb99cb3d19326 |
|
BLAKE2b-256 | 99d256770fa3a8f06e08a1e924d03b2561d9b990e73cbfedef8cdb2e62829c2c |
Close
Hashes for google_foobar_2023_q4-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9eeba2b214404d682dc0cd6b3450e8d49f37e8d16d9e45593262c0b0f3e00723 |
|
MD5 | e9b560b64bea6a1c85e54f84d79eb9f1 |
|
BLAKE2b-256 | a308774bb99afb0721142187e0bdda06d85565961a16e72422c735cd016627c5 |