Skip to content

Commit

Permalink
initial
Browse files Browse the repository at this point in the history
  • Loading branch information
colevandersWands committed Dec 18, 2024
0 parents commit 5d27d46
Show file tree
Hide file tree
Showing 34 changed files with 1,143 additions and 0 deletions.
60 changes: 60 additions & 0 deletions .github/ISSUE_TEMPLATE/help_wanted.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
______________________________________________________________________

## name: help wanted about: A template issue for when you're blocked on certain lines of code. This template has a lot of sections to get you thinking about your question, you don't need to fill in every one of them labels: "help wanted"

<!--
Make your issue easy to find:
- labels: anything that will make this easier to filter
- assign: anyone you would like help from
-->

## The Code

<!--
The code you have a question about (it doesn't need to be your code!). This can
be shared a few ways:
- a snippet in the MD of your issue or
- a
[permalink](https://help.github.com/en/github/managing-your-work-on-github/creating-a-permanent-link-to-a-code-snippet)
or
- a [gist](https://help.github.com/en/github/writing-on-github/creating-gists)
-->

## Best Understanding

<!--
Explain the situation:
- What _does_ the code do
- What do you _want_ it to do
- How do you think it works?
- What don't you understand about how it works?
-->

## Best Efforts

<!--
If this is your code and it has a bug, explain what you've tried so far:
- Include code
- Mention everything you tried, even if it seems silly to you
- What happened with each effort?
- What brought you closer?
- What brought you farther?
-->

## Helpful Links

<!--
Videos, articles, snippets, ... anything that helped you understand or make
progress on the problem.
-->

## Hopeful Links

<!--
Links that look like they should be helpful but you just can't put all the
pieces together.
-->
22 changes: 22 additions & 0 deletions .github/ISSUE_TEMPLATE/meeting_agenda.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
______________________________________________________________________

## name: meeting agenda about: A template issue for planning meetings title: "Agenda: " labels: agenda

<!-- Make your issue easy to find:
- milestone: any milestones you will be addressing
- tag: tag any issues you will be discussing (#issue-number)
- labels: anything that will make this easier to filter
- assign: anyone responsible for organizing or leading the meeting
-->

<!-- meeting overview -->

<!-- agenda points -->

- [ ] item 1
- description
- [ ] item 2
- description
- [ ] ...
14 changes: 14 additions & 0 deletions .github/ISSUE_TEMPLATE/new_challenge.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
______________________________________________________________________

## name: new challenge about: A template issue for describing a new challenge on the project board.<br /> Place this issue in the TODO column of your group's project board. title: ''

<!--
Make your issue easy to find:
- project board: place it in the TODO column of the project board
- labels: anything that will make this easier to filter
-->

<!-- describe the challenge so someone can start solving it without asking for clarification -->

<!-- include any helpful links or resources for solving this challenge -->
10 changes: 10 additions & 0 deletions .github/ISSUE_TEMPLATE/question.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
______________________________________________________________________

## name: question about: A template issue for topics you'd like to discuss or learn more about. specific topics, general knowledge, it does not even need to be about code. There are no bad questions! title: '' labels: question

<!--
Make your issue easy to find:
- labels: anything that will make this easier to filter
- assign: anyone you would like help from
-->
85 changes: 85 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
______________________________________________________________________

## name: solution review about: A template PR for code review with a checklist

<!--
make this PR easy to find:
- assign: yourself
- link it to the corresponding challenge issue on the project board
-->

<!-- describe the challenge you will solve -->

## Behavior

### Files

- [ ] The file name describes the function's behavior
- [ ] There is a module docstring in the function file
- [ ] The test file's name matches the function file name -
`/tests/test_file_name.py`
- [ ] There is a module docstring in the tests file

### Unit Tests

- [ ] The test class has a helpful name in PascalCase
- [ ] The test class has a docstring
- Every unit test has
- [ ] A helpful name
- [ ] A clear docstring
- [ ] Only one assertion
- [ ] There is no logic in the unit test
- [ ] All tests pass
- [ ] There are tests for defensive assertions
- [ ] There are tests for boundary cases

### Function Docstring

- [ ] The function's behavior is described
- The function's arguments are described:
- [ ] Type
- [ ] Purpose
- [ ] Other assumptions (eg. if it's a number, what's the expected range?)
- The return value is described
- [ ] Type
- [ ] Other assumptions are documented
- The defensive assertions are documented using `Raises:`
- [ ] Each assumption about an argument is checked with an assertion
- [ ] Each assertion checks for _only one_ assumption about the argument
- [ ] Include 3 or more (passing!) doctests

### The Function

- [ ] The function's name describes it's behavior
- [ ] The function's name matches the file name
- [ ] The function has correct type annotations

## Strategy

### Do's

- [ ] Variable names help to understand the strategy
- [ ] Any comments are clear and describe the strategy
- [ ] Lines of code are spaced to help show different stages of the strategy

### Don'ts

- [ ] The function's strategy _is not_ described in the documentation
- [ ] Comments explain the _strategy_, **not** the _implementation_
- [ ] The function _does not_ have more comments than code
- If it does, consider finding a new strategy or a simpler implementation

## Implementation

- [ ] The code passes the formatting checks
- [ ] The code passes all Ruff linting checks
- [ ] The code has no (reasonable) Pylint errors
- In code review, you can decide when fixing a Pylint error is helpful and
when it's too restricting.
- [ ] Variables are named with snake_case
- [ ] Variable names are clear and helpful
- [ ] The code follows the strategy as simply as possible
- [ ] The implementation is as simple as possible given the strategy
- [ ] The code includes defensive assertions
- [ ] Defensive assertions include as little logic as possible
63 changes: 63 additions & 0 deletions .github/workflows/ci-checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: ET CI Checks

on: [push, pull_request, workflow_dispatch]

jobs:
ls_linting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ls-lint/[email protected]

md_formatting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: nosborn/[email protected]
with:
files: .
config_file: .markdownlint.yml

py_formatting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Python - Check Formatting
uses: astral-sh/ruff-action@v1
with:
args: "format --check"

py_linting:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

# passing ruff linting is required
- name: Python - Check Linting - ruff
uses: astral-sh/ruff-action@v1

# passing pylint is not required - discuss errors in code review
# adapted from https://github.com/davidslusser/actions_python_pylint/tree/main
- name: python version
run: python --version
shell: bash
if: always()
- name: install pylint
run: |
python - m pip install --upgrade pip
pip install pylint
shell: bash
- name: Python - Check Linting - pylint
run: "pylint solutions tests || echo '::warning title=Pylint Error(s)::Discuss solutions and trade-offs in code review.'"
shell: bash

py_tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: python version
run: python --version
shell: bash
- name: Python - Run Tests
run: python -m unittest
shell: bash
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
__pycache__
*.pytest_cache
venv/
# .env
*.db
*.idea
*.ruff_cache
17 changes: 17 additions & 0 deletions .ls-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
ls:
.dir: snake_case
.*: snake_case
.md: snake_case | regex:[0-9A-Z\-]+
.txt: snake_case | kebab-case
.yml: snake_case | kebab-case

ignore:
- .git
- .github
- .vscode
- venv
- .ruff_cache
- .pytest_cache
- __pycache__
- .ls-lint.yml
- .markdownlint.yml
2 changes: 2 additions & 0 deletions .markdownlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
ignore:
- venv
51 changes: 51 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"recommendations": [
// For Pair Programming
"MS-vsliveshare.vsliveshare",

// For Git & GitHub
"mhutchie.git-graph",
"eamodio.gitlens",
"GitHub.vscode-pull-request-github",
"donjayamanne.githistory",

// For programming generally
"streetsidesoftware.code-spell-checker",
"leodevbro.blockman",
"alefragnani.project-manager",
"vscode-icons-team.vscode-icons",
"alefragnani.bookmarks",
"visualstudioexptteam.vscodeintellicode",
"aaron-bond.better-comments",
"christian-kohler.path-intellisense",
"usernamehw.errorlens",
"tamasfe.even-better-toml",

// For writing Markdown
"DavidAnson.vscode-markdownlint",
"yzhang.markdown-all-in-one",
"bierner.markdown-preview-github-styles",

// For writing Python
"ms-python.python",
"ms-python.vscode-pylance",
"KevinRose.vsc-python-indent",
"njpwerner.autodocstring",
"LittleFoxTeam.vscode-python-test-adapter",
"ms-python.black-formatter",
"charliermarsh.ruff",
"ms-python.pylint",
"oderwat.indent-rainbow",
"ms-python.debugpy",
"frhtylcn.pythonsnippets",

// For writing Notebooks
"ms-toolsai.jupyter",
"ms-toolsai.jupyter-keymap",

// For working with data
"RandomFractalsInc.vscode-data-preview",
"mechatroner.rainbow-csv",
"mtxr.sqltools"
]
}
17 changes: 17 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "ET: Debug Python (unittest)",
"type": "debugpy",
"request": "launch",
"program": "-m",
"args": ["unittest", "${file}"],
"console": "integratedTerminal",
"justMyCode": true
}
]
}
Loading

0 comments on commit 5d27d46

Please sign in to comment.