Skip to content

Commit

Permalink
removed some slides and implemented other changes from dry run
Browse files Browse the repository at this point in the history
  • Loading branch information
MarionBWeinzierl committed Jul 4, 2024
1 parent bba918a commit 97c4151
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 95 deletions.
82 changes: 0 additions & 82 deletions slides/_comments_docstrings.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,6 @@ Cat code comment image by [35_equal_W](https://www.reddit.com/r/ProgrammerHumor/

## Comments - some thoughts^[Adapted from [@stackoverflow_comments]] {.smaller}

::: {.incremental}

- Comments should not duplicate the code.
- Good comments do not excuse unclear code.
- Comments should dispel confusion, not cause it.
Expand All @@ -65,8 +63,6 @@ Cat code comment image by [35_equal_W](https://www.reddit.com/r/ProgrammerHumor/
- Comments are not documentation.
- Read by developers, documentation is for...

:::



## Docstrings {.smaller}
Expand Down Expand Up @@ -180,84 +176,6 @@ def calculate_gyroradius(mass, v_perp, charge, B, gamma=None):
::::


## Docstrings - pydocstyle {.smaller}

:::: {.columns}

::: {.column width="50%"}
[pydocstyle](https://www.pydocstyle.org/en/stable/) is a tool we can use to help
ensure the quality of our docstrings.[^2]

:::{ style="font-size: 75%;"}

```bash
(myvenv) $ pip install pydocstyle
(myvenv) $ pydocstyle myfile.py
(myvenv) $ pydocstyle mydirectory/
(myvenv) $
(myvenv) $
(myvenv) $ pydocstyle gyroradius.py
gyroradius.py:2 in public function `calculate_gyroradius`:
D202: No blank lines allowed after function docstring (found 1)
gyroradius.py:2 in public function `calculate_gyroradius`:
D400: First line should end with a period (not 'd')
gyroradius.py:2 in public function `calculate_gyroradius`:
D401: First line should be in imperative mood (perhaps 'Calculate', not 'Calculates')
(myvenv) $
```
:::

Note: pydocstyle does not catch missing variables in docstrings.
This can be done with [Pylint's docparams and docstyle extensions](https://pylint.pycqa.org/en/latest/user_guide/checkers/extensions.html)
but is left as an exercise to the reader.
:::
::: {.column}
:::{ style="font-size: 75%;"}
```python
def calculate_gyroradius(mass, v_perp, charge, B, gamma=None):
"""
Calculates the gyroradius of a charged particle in a magnetic field
Parameters
----------
mass : float
The mass of the particle [kg]
v_perp : float
velocity perpendicular to magnetic field [m/s]
charge : float
particle charge [coulombs]
B : float
Magnetic field strength [teslas]
gamma : float, optional
Lorentz factor for relativistic case. default=None for non-relativistic case.
Returns
-------
r_g : float
Gyroradius of particle [m]
Notes
-----
.. [1] Walt, M, "Introduction to Geomagnetically Trapped Radiation,"
Cambridge Atmospheric and Space Science Series, equation (2.4), 2005.
"""

r_g = mass * v_perp / (abs(charge) * B)

if gamma:
r_g = r_g * gamma

return r_g
```
:::
:::
::::


[^2]: Note that pydocstyle is [deprecated](https://github.com/PyCQA/pydocstyle/pull/658) as of the end of 2023. Longer-term look out for a replacement (likely Ruff or Pylint extension).



## Exercise 5 {.smaller}

Go to exercise 5 and examine the comments:
Expand Down
9 changes: 7 additions & 2 deletions slides/_fstrings_magic_config.qmd
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Writing better (Python) code

<!--
## f-strings {.smaller}
A better way to format strings since Python 3.6\
Expand Down Expand Up @@ -29,7 +30,7 @@ print(f"a={a} and b={b}. Their product is {a * b}, sum is {a + b}, and a/b is {a
See [Real Python](https://realpython.com/python-f-strings/) for more information.
Note: pylint W1203 recommends against using f-strings in logging calls.

-->

## Remove Magic Numbers {.smaller}

Expand Down Expand Up @@ -198,7 +199,7 @@ Magic Numbers
- Look through the code and identify any magic numbers.
- Implement what you feel is the best approach in each case


<!--
f-strings
- Look for any string handling (currently using the .format() approach) and update it
Expand All @@ -207,10 +208,14 @@ f-strings
- Is the layout of the data written to file easier to understand?
:::
::: {.column width="50%"}
-->

Configuration settings

- There is helpfully a list of configurable inputs at the end of the file under `"__main__"`.\
We can improve on this, however, by placing them in a configuration file.
- Create an appropriate json file to be read in as a dictionary and passed to the main function.

:::
::::

3 changes: 2 additions & 1 deletion slides/_licenses.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,13 @@ The above copyright notice and this permission notice shall be included in all c
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
```

<!--
## Add a license in Github
![](images/github_license.png){width=80% fig-align="center"}
## Add a license in Gitlab
![](images/gitlab_license.png){width=80% fig-align="center"}

-->

19 changes: 9 additions & 10 deletions slides/python.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,7 @@ Beyond the scope of today are a few other honourable mentions:
- Adding type hinting to python code - how and why?
- Type checking with mypy

These lessons will be added to the course content in future but are beyond the scope
of today.
These lessons are beyond the scope of today.

<!-- ------------------------------------------------------------------------------
Expand Down Expand Up @@ -245,21 +244,21 @@ Get in touch:
{{< fa brands mastodon >}} \ [\@jatkinson1000\@fosstodon.org](https://fosstodon.org/@jatkinson1000)
:::
::: {.column width="35%"}
{{< fa pencil >}} \ Amy Pike

{{< fa solid envelope >}} \ [ap766[AT]cam.ac.uk](mailto:[email protected])

{{< fa brands github >}} \ [AmyOctoCat](https://github.com/AmyOctoCat)

\

{{< fa pencil >}} \ Marion Weinzierl

{{< fa solid envelope >}} \ [mw925[AT]cam.ac.uk](mailto:[email protected])

{{< fa brands github >}} \ [MarionBWeinzierl](https://github.com/MarionBWeinzierl)

{{< fa brands mastodon >}} \ [\@MarionBWeinzierl\@mast.hpc.social](https://mast.hpc.social/@MarionBWeinzierl)

\
{{< fa pencil >}} \ Amy Pike

{{< fa solid envelope >}} \ [ap766[AT]cam.ac.uk](mailto:[email protected])

{{< fa brands github >}} \ [AmyOctoCat](https://github.com/AmyOctoCat)

:::
::::

Expand Down

0 comments on commit 97c4151

Please sign in to comment.