google-foobar-2023-q4


Namegoogle-foobar-2023-q4 JSON
Version 0.2.1 PyPI version JSON
download
home_pagehttps://github.com/hychan48/google-foobar-2023-q4
SummaryJC's Google Foobar Journey - 2023 Q4
upload_time2023-11-13 07:16:05
maintainer
docs_urlNone
authorJC
requires_python>=3.9,<3.12
licenseAGPL-3.0
keywords google foobar python
VCS
bugtrack_url
requirements argcomplete click colorama iniconfig packaging pipx pluggy pytest userpath
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # google-foobar-2023-q4
## Production
<!-- todo
add some assets
-->

## Installation
```bash
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
* [readme_q1_the-cake-isnot-a-lie.md](levels/q1/readme_q1_the-cake-isnot-a-lie.md)
```bash
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](levels/q2/readme_q2_dont-get-volunteered.md)
* Simplified Knight's Tour problem
  * Textbook BFS, but I wanted to animate it
  * [BFS Wiki](https://en.wikipedia.org/wiki/Breadth-first_search)
  * [Knight's Tour Game](https://www.maths-resources.com/knights/)
* Experimented with ILP. Good example to teach with
```bash
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)
- [ ] Validation / Error handling
- [ ] Test cases / Unit Tests
  - [ ] Workflow with GitHub actions
    - Lint - Flake8
    - Unit Tests - PyTest

# dev setup
```bash
# 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

```


```powershell
# 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
```bash
conda activate google-foorbar-2023-q4
python -m pip install pytest

python -m pip install -r requirements.txt
```
## Appendix
* [/api/v1/files/](https://foobar.withgoogle.com/api/v1/files/)



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/hychan48/google-foobar-2023-q4",
    "name": "google-foobar-2023-q4",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9,<3.12",
    "maintainer_email": "",
    "keywords": "google,foobar,python",
    "author": "JC",
    "author_email": "jchan48@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/99/d2/56770fa3a8f06e08a1e924d03b2561d9b990e73cbfedef8cdb2e62829c2c/google_foobar_2023_q4-0.2.1.tar.gz",
    "platform": null,
    "description": "# google-foobar-2023-q4\n## Production\n<!-- todo\nadd some assets\n-->\n\n## Installation\n```bash\npipx install git+https://github.com/hychan48/google-foobar-2023-q4.git\n#pipx run --spec git+\n\nhychan48-cake-is-not-a-lie abab\n# Returns 2\n\n```\n## Level 1\n* [readme_q1_the-cake-isnot-a-lie.md](levels/q1/readme_q1_the-cake-isnot-a-lie.md)\n```bash\ncat levels/q1/src/solution.py\n# GitHub action runs PyTest\npython -m pytest levels/q1/tests/solutions_test.py\n# JavaScript solution\npnpm run test:q1\n```\n\n## level 2 \n* [readme_q2_dont-get-volunteered.md](levels/q2/readme_q2_dont-get-volunteered.md)\n* Simplified Knight's Tour problem\n  * Textbook BFS, but I wanted to animate it\n  * [BFS Wiki](https://en.wikipedia.org/wiki/Breadth-first_search)\n  * [Knight's Tour Game](https://www.maths-resources.com/knights/)\n* Experimented with ILP. Good example to teach with\n```bash\npytest ./levels/q2/tests/solutions_bfs_test.py\n```\n\n## Background\n* https://github.com/hychan48/google-foobar-2023-q4\n* I searched proxy vs load balancer. and at first I found it mad sketch\n* had to verify it's SSL/TLS cert and Google was foobar was.\n\n## Assumptions\n* So far it looks like it's either Python 2.7 or Java 8\n* I'm going to use Python 3.11.6, using basic syntax it should be backwards compatible with 2.7\n  * Also, I have PyCharm installed already\n* TDD with PyTest\n\n\n\n\n# Quick Checklist\n- [ ] Documentation\n  - Save Original Question\n    - [ ] /api/v1/files/ (.json)\n    - [ ] convert to .yaml and .html\n  - Reword Question and Keywords\n    - [ ] readme_q.template.md\n  - Principles\n    - TDD\n    - Quick and dirty\n      - Unless the question piques my research interest\n      - 7 days per question seems like a lot of time\n  - Priorities\n  - [ ] JSDoc @typedef but for Python \n  - [ ] Metadata\n    - [ ] Author\n    - [ ] GitHub Repo\n    - [ ] Environment\n    - Time / Space Complexity (if applicable)\n- [ ] Validation / Error handling\n- [ ] Test cases / Unit Tests\n  - [ ] Workflow with GitHub actions\n    - Lint - Flake8\n    - Unit Tests - PyTest\n\n# dev setup\n```bash\n# there's also some helpers\nconda activate ./venv\n\n# newer method\n\n# pull\n# bats installs differently? weird\n# mostly for bats\ngit pull --recurse-submodule\n\n## bats clones to test/ by default\n# \n\n# first time\n# pipx / conda(mamba) / poetry\n\ngit submodule add https://github.com/bats-core/bats-core.git test/bats\ngit submodule add https://github.com/bats-core/bats-assert.git test/test_helper/bats-assert\ngit submodule add https://github.com/bats-core/bats-support.git test/test_helper/bats-support\ngit commit -m 'Add bats-support library'\n\ntree test/bats/bin\nmkdir -p ~/.local/bin\nrm ~/.local/bin/bats\nln -s $PWD/test/bats/bin/bats ~/.local/bin/bats \nln -s $PWD/test/bats/bin/bats /usr/local/bin/bats\nln -s ./test/bats/bin/bats /usr/local/bin/bats\nls -l /usr/local/bin/bats\nbats\nexport PATH=$PATH:~/.local/bin\n\n# git submodule add https://github.com/ztombol/bats-support test/test_helper/bats-support\n\n```\n\n\n```powershell\n# cygwin / windows 11\npnpm i\n# haha didnt work:\nconda create -n foobar-py27 python=2.7\nconda create -n google-foorbar-2023-q4 python=3.11\n\nconda activate google-foorbar-2023-q4\n\n# update pipx\npipx --version\npython -m pip install --user pipx\npython -m pipx ensurepath\n\n# poetry... too basic to need it... todo: move to other section\n# might not be needed after all...\npipx install poetry\npoetry --version\npoetry init\n\n# poetry might not be needed after all...\npoetry add pytest --group dev\n#poetry shell\n# 3.11.4 vs 3.11.6... interesting\n```\n\n### Install pytest\n```bash\nconda activate google-foorbar-2023-q4\npython -m pip install pytest\n\npython -m pip install -r requirements.txt\n```\n## Appendix\n* [/api/v1/files/](https://foobar.withgoogle.com/api/v1/files/)\n\n\n",
    "bugtrack_url": null,
    "license": "AGPL-3.0",
    "summary": "JC's Google Foobar Journey - 2023 Q4",
    "version": "0.2.1",
    "project_urls": {
        "Homepage": "https://github.com/hychan48/google-foobar-2023-q4",
        "Repository": "https://github.com/hychan48/google-foobar-2023-q4"
    },
    "split_keywords": [
        "google",
        "foobar",
        "python"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a308774bb99afb0721142187e0bdda06d85565961a16e72422c735cd016627c5",
                "md5": "e9b560b64bea6a1c85e54f84d79eb9f1",
                "sha256": "9eeba2b214404d682dc0cd6b3450e8d49f37e8d16d9e45593262c0b0f3e00723"
            },
            "downloads": -1,
            "filename": "google_foobar_2023_q4-0.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e9b560b64bea6a1c85e54f84d79eb9f1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9,<3.12",
            "size": 62435,
            "upload_time": "2023-11-13T07:16:03",
            "upload_time_iso_8601": "2023-11-13T07:16:03.357502Z",
            "url": "https://files.pythonhosted.org/packages/a3/08/774bb99afb0721142187e0bdda06d85565961a16e72422c735cd016627c5/google_foobar_2023_q4-0.2.1-py3-none-any.whl",
            "yanked": true,
            "yanked_reason": "wrong name"
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "99d256770fa3a8f06e08a1e924d03b2561d9b990e73cbfedef8cdb2e62829c2c",
                "md5": "3bae6d00e430b1f4df2fb99cb3d19326",
                "sha256": "1b736f083ee624cb88a22a0224ecdf2ee447ae63e92fae9c093161868e044aea"
            },
            "downloads": -1,
            "filename": "google_foobar_2023_q4-0.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "3bae6d00e430b1f4df2fb99cb3d19326",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9,<3.12",
            "size": 53870,
            "upload_time": "2023-11-13T07:16:05",
            "upload_time_iso_8601": "2023-11-13T07:16:05.203336Z",
            "url": "https://files.pythonhosted.org/packages/99/d2/56770fa3a8f06e08a1e924d03b2561d9b990e73cbfedef8cdb2e62829c2c/google_foobar_2023_q4-0.2.1.tar.gz",
            "yanked": true,
            "yanked_reason": "wrong name"
        }
    ],
    "upload_time": "2023-11-13 07:16:05",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "hychan48",
    "github_project": "google-foobar-2023-q4",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "argcomplete",
            "specs": [
                [
                    "==",
                    "3.1.1"
                ]
            ]
        },
        {
            "name": "click",
            "specs": [
                [
                    "==",
                    "8.1.6"
                ]
            ]
        },
        {
            "name": "colorama",
            "specs": [
                [
                    "==",
                    "0.4.6"
                ]
            ]
        },
        {
            "name": "iniconfig",
            "specs": [
                [
                    "==",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "packaging",
            "specs": [
                [
                    "==",
                    "23.2"
                ]
            ]
        },
        {
            "name": "pipx",
            "specs": [
                [
                    "==",
                    "1.2.0"
                ]
            ]
        },
        {
            "name": "pluggy",
            "specs": [
                [
                    "==",
                    "1.3.0"
                ]
            ]
        },
        {
            "name": "pytest",
            "specs": [
                [
                    "==",
                    "7.4.3"
                ]
            ]
        },
        {
            "name": "userpath",
            "specs": [
                [
                    "==",
                    "1.9.0"
                ]
            ]
        }
    ],
    "lcname": "google-foobar-2023-q4"
}
        
JC
Elapsed time: 0.14623s