Skip to main content

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

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

google_foobar_2023_q4-0.2.1.tar.gz (53.9 kB view details)

Uploaded Source

Built Distribution

google_foobar_2023_q4-0.2.1-py3-none-any.whl (62.4 kB view details)

Uploaded Python 3

File details

Details for the file google_foobar_2023_q4-0.2.1.tar.gz.

File metadata

  • Download URL: google_foobar_2023_q4-0.2.1.tar.gz
  • Upload date:
  • Size: 53.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for google_foobar_2023_q4-0.2.1.tar.gz
Algorithm Hash digest
SHA256 1b736f083ee624cb88a22a0224ecdf2ee447ae63e92fae9c093161868e044aea
MD5 3bae6d00e430b1f4df2fb99cb3d19326
BLAKE2b-256 99d256770fa3a8f06e08a1e924d03b2561d9b990e73cbfedef8cdb2e62829c2c

See more details on using hashes here.

File details

Details for the file google_foobar_2023_q4-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for google_foobar_2023_q4-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9eeba2b214404d682dc0cd6b3450e8d49f37e8d16d9e45593262c0b0f3e00723
MD5 e9b560b64bea6a1c85e54f84d79eb9f1
BLAKE2b-256 a308774bb99afb0721142187e0bdda06d85565961a16e72422c735cd016627c5

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