update README and 02 to reflect new layout

This commit is contained in:
Tom Hodson 2022-06-17 12:57:48 +02:00
parent b2e3449ff2
commit 4c33524345
2 changed files with 39 additions and 34 deletions

View File

@ -23,14 +23,15 @@ This is an exemplar project designed to showcase best practices in developing sc
Rather this project is primarily designed to showcase the tools and practices available to you when developing scientific software projects. Maybe you are a PhD student just starting, or a researcher just about to embark on a larger scale software project - there should be something interesting here for you. Rather this project is primarily designed to showcase the tools and practices available to you when developing scientific software projects. Maybe you are a PhD student just starting, or a researcher just about to embark on a larger scale software project - there should be something interesting here for you.
## Table of contents ## Table of contents
1. [A short introduction][intro] 1. [Introduction](docs/learning/01%20Introduction.ipynb)
1. [Organising code and python packaging][packaging] 1. [Packaging It Up](docs/learning/02%20Packaging%20It%20Up.ipynb)
1. [Testing your code][testing] 1. [Writing a Markov Chain Monte Carlo Sampler](docs/learning/03%20Writing%20a%20Markov%20Chain%20Monte%20Carlo%20Sampler.ipynb)
1. Planning the project, MVPs, Premature Optimisation, 1. [Testing](docs/learning/04%20Testing.ipynb)
1. Planning out a larger software project 1. [Adding Functionality](docs/learning/05%20Adding%20Functionality.ipynb)
1. Using Jupyter Notebooks during development 1. [Speeding It Up](docs/learning/06%20Speeding%20It%20Up.ipynb)
1. Documentation 1. [Producing Research Outputs](docs/learning/07%20Producing%20Research%20Outputs.ipynb)
1. Reproducibility of software outputs 1. [Doing Reproducible Science](docs/learning/08%20Doing%20Reproducible%20Science.ipynb)
1. [Adding Documentation](docs/learning/09%20Adding%20Documentation.ipynb)
1. Citing software in a publication: CITATION.cff 1. Citing software in a publication: CITATION.cff
1. Managing an open source project, issues, milestones 1. Managing an open source project, issues, milestones
@ -60,13 +61,19 @@ jupyter lab
├── CITATION.cff # This file describes how to cite the work contained in this repository. ├── CITATION.cff # This file describes how to cite the work contained in this repository.
├── LICENSE # Outlines what legal rights you have to use this software. ├── LICENSE # Outlines what legal rights you have to use this software.
├── README.md # You are here! ├── README.md # You are here!
├── README.md # Human readable information about the little python package in here ├── docs
├── pyproject.toml # Machine readable information about that same package │ ├── ... #Files to do with making the documentation
├── setup.cfg # Tells Pip how to install this package │ └── learning
│ └── #The Jupyer notebooks that form the main body of this project
├── pyproject.toml # Machine readable information about the MCFF package
├── readthedocs.yaml # Tells readthedocs.com how to build the documentation
├── requirements.txt # What packages MCFF requires
├── setup.cfg # Machine readable information about the MCFF package
├── src ├── src
|   └── MCFF # The actual code lives in here! │ └── MCFF # The actual code!
└─ tests # automated tests for the code
└── learning # Supporting documentation └── tests # automated tests for the code
``` ```
## External Resources ## External Resources

View File

@ -33,26 +33,24 @@
"Before we can do any testing, it is best practice to structure and then package your code up as a python project up. You don't have to do it like this but but it carrys with it the benefit that many only tutorial _expect_ you to do it like this and generally you want to reduce friction for yourself later. \n", "Before we can do any testing, it is best practice to structure and then package your code up as a python project up. You don't have to do it like this but but it carrys with it the benefit that many only tutorial _expect_ you to do it like this and generally you want to reduce friction for yourself later. \n",
"\n", "\n",
"Like all things progamming, there are many opinions about how python projects should be structured, as I write this the structure of this repository is this: (This is the lightly edited output of the `tree` command if you're interested) \n", "Like all things progamming, there are many opinions about how python projects should be structured, as I write this the structure of this repository is this: (This is the lightly edited output of the `tree` command if you're interested) \n",
"```\n", "```bash\n",
".\n", ".\n",
"├── CITATION.cff\n", "├── CITATION.cff # This file describes how to cite the work contained in this repository.\n",
"├── LICENSE\n", "├── LICENSE # Outlines what legal rights you have to use this software.\n",
"├── README.md\n", "├── README.md # You are here!\n",
"├── requirements.txt\n", "├── docs\n",
"├── code\n", "│ ├── ... #Files to do with making the documentation\n",
"│   ├── README.md\n", "│ └── learning\n",
"│   ├── pyproject.toml\n", "│ └── #The Jupyer notebooks that form the main body of this project\n",
"│   ├── setup.cfg\n", "│\n",
"│   ├── src\n", "├── pyproject.toml # Machine readable information about the MCFF package\n",
"│   │   └── MCFF\n", "├── readthedocs.yaml # Tells readthedocs.com how to build the documentation\n",
"│   │      ├── __init__.py\n", "├── requirements.txt # What packages MCFF requires\n",
"│   │      ├── ising_model.py\n", "├── setup.cfg # Machine readable information about the MCFF package\n",
"│   │      └── mcmc.py\n", "├── src\n",
"│   └── tests\n", "│ └── MCFF # The actual code!\n",
"│   ├── test_energy.py\n", "│\n",
"│   └── test_energy_using_hypothesis.py\n", "└── tests # automated tests for the code\n",
"└── learning\n",
"    └── ...\n",
"```\n", "```\n",
"\n", "\n",
"It's looks pretty intimidating! But let's quickly go through it, at the top level of most projects you'll find on Github and elsewhere you'll find files to do with the project as a whole:\n", "It's looks pretty intimidating! But let's quickly go through it, at the top level of most projects you'll find on Github and elsewhere you'll find files to do with the project as a whole:\n",