Skip to main content

JC's Google Foobar Journey - 2023 Q4

Project description

google-foobar-2023-q4

Production

Installation

# https://replit.com/@jasonchan51/hychan48-google-foobar-2023-q4
pipx install hychan48-google-foobar-2023-q4

hychan48-cake-is-not-a-lie --help
hychan48-cake-is-not-a-lie abab
hychan48-dont-get-volunteered 0 1

Level 1

hychan48-cake-is-not-a-lie abab

# GitHub action runs the PyTests:
pytest levels/q1/tests/solutions_test.py
# JavaScript solution
pnpm run test:q1

level 2

Question 1

hychan48-dont-get-volunteered 0 1 # Returns 3
pytest ./levels/q2/tests/solutions_bfs_test.py

Background

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)
  • Validation / Error handling
  • Test cases / Unit Tests
    • Workflow with GitHub actions
      • Lint - Flake8
      • Unit Tests - PyTest

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hychan48_google_foobar_2023_q4-0.2.2.tar.gz (54.0 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file hychan48_google_foobar_2023_q4-0.2.2.tar.gz.

File metadata

File hashes

Hashes for hychan48_google_foobar_2023_q4-0.2.2.tar.gz
Algorithm Hash digest
SHA256 fb1f37f479f1cc2cfd5c943285b1949751f18d18a09d1ab703863127452b0801
MD5 bbac576c83cca13cf161b534cee65c66
BLAKE2b-256 5948dba878fa30b9e94689df5f3842fc3b99afdf0e817ee17454ca82e19914a2

See more details on using hashes here.

File details

Details for the file hychan48_google_foobar_2023_q4-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for hychan48_google_foobar_2023_q4-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2f6d5cda6811abdc8bfb3c613a2ed43e734e3f82d03268ff7017c100331d852b
MD5 f29951e8b0ed96c6ae9d5b5b728e0608
BLAKE2b-256 d26939629a1a5c736036b626c08a6b7b1b78c7e690006a2c9c9cddcd3a38c25c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page