Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/fix_gh_page #11

Merged
merged 4 commits into from
Jan 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 29 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
[![Poetry](https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json)](https://python-poetry.org/)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v1.json)](https://github.com/charliermarsh/ruff)
[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)
[![pages-build-deployment](https://github.com/JoseRZapata/data-science-project-template/actions/workflows/pages/pages-build-deployment/badge.svg?branch=gh-pages)](https://github.com/JoseRZapata/data-science-project-template/actions/workflows/pages/pages-build-deployment)

Template for a data science projects with software development tools

Expand Down Expand Up @@ -40,17 +41,23 @@ It is highly recommended to use a python version manager like [Pyenv] and this p
1. [Install Pyenv](https://github.com/pyenv/pyenv?tab=readme-ov-file#installation)
2. [Install Poetry](https://python-poetry.org/docs/#installation)

Via [Cruft](recommended):
Via [Cruft] - **recommended**:

```shell script
```bash title="install cruft"
pip install --user cruft # Install `cruft` on your path for easy access
```

```shell title="create project"
cruft create https://github.com/JoseRZapata/data-science-project-template
```

Via [Cookiecutter]:

```shell script
```shell title="install cookiecutter"
pip install --user cookiecutter # Install `cookiecutter` on your path for easy access
```

```shell title="create project"
cookiecutter gh:JoseRZapata/data-science-project-template
```

Expand All @@ -60,13 +67,13 @@ Note: **_Cookiecutter_** uses `gh:` as short-hand for `https://github.com/`

If the project was originally installed via [Cookiecutter], you must first use [Cruft] to link the project with the original template:

```shell script
```shell
cruft link https://github.com/JoseRZapata/data-science-project-template
```

Then/else:

```shell script
```shell
cruft update
```

Expand Down Expand Up @@ -135,7 +142,7 @@ Folder structure for data science projects [why?](https://towardsdatascience.co
with [Poetry] - [`why?`](https://mathdatasimplified.com/poetry-a-better-way-to-manage-python-dependencies/)
- Project workflow orchestration
with [Make] as an [interface shim](https://en.wikipedia.org/wiki/Shim_(computing))
- Self-documenting [Makefile]({{cookiecutter.repo_name}}/Makefile); just type
- Self-documenting [Makefile](https://github.com/JoseRZapata/data-science-project-template/blob/main/{{cookiecutter.repo_name}}/Makefile); just type
`make` on the command line to display auto-generated documentation on available
targets:
- Automated Cookiecutter template synchronization with [Cruft] - [`why?`](https://careers.wolt.com/en/blog/tech/project-template-for-modern-python-packages)
Expand All @@ -145,36 +152,36 @@ Folder structure for data science projects [why?](https://towardsdatascience.co

#### :seedling: Conditionally Rendered Python Package or Project Boilerplate

- [Optional] [Jupyter](https://jupyter.org/) support
- _Optional:_ [Jupyter] support

### :wrench: Maintainability

#### :label: Type Checking and Data Validation

- Static type-checking with [Mypy](http://mypy-lang.org)
- Static type-checking with [Mypy]

#### :white_check_mark: Testing/Coverage

- Testing
with [Pytest]
- Doctests
with [`xdoctest`](https://xdoctest.readthedocs.io)
with [xdoctest]
- Code coverage
with [Coverage.py](https://coverage.readthedocs.io/)
with [Coverage.py]
- Coverage reporting
with [Codecov]

#### :rotating_light: Linting

- Code quality:
- [Ruff](https://github.com/charliermarsh/ruff)
- [Ruff]
- A blazing-fast (10x-100x faster) replacement for
[Pylint], [Flake8] (including major plugins) and more linters under a single, common interface
~~[Pylint]~~, ~~[Flake8]~~ (including major plugins) and more linters under a single, common interface
- [ShellCheck](https://github.com/koalaman/shellcheck)
- Code formatting:
- [Ruff](https://github.com/charliermarsh/ruff)
- [Ruff]
- A blazing-fast (10x-100x faster) replacement for
[Black], [isort], [pyupgrade] and more formaters under a single, common interface
~~[Black]~~, ~~[isort]~~, ~~[pyupgrade]~~ and more formaters under a single, common interface

- General file formatting:
- [`end-of-file-fixer`](https://github.com/pre-commit/pre-commit-hooks#end-of-file-fixer)
Expand All @@ -192,8 +199,8 @@ Folder structure for data science projects [why?](https://towardsdatascience.co
#### :construction_worker: CI/CD

- Dependency updates
with [Dependabot](https://dependabot.com/)
- Automated [Dependabot](https://dependabot.com/) PR merging
with [Dependabot]
- Automated [Dependabot] PR merging
with the [Dependabot Auto Merge GitHub Action](https://github.com/ahmadnassri/action-dependabot-auto-merge)

## :lock: Security
Expand Down Expand Up @@ -234,11 +241,11 @@ Folder structure for data science projects [why?](https://towardsdatascience.co
[Black]: https://github.com/psf/black
[Codecov]: https://codecov.io/
[Cookiecutter]:https://cookiecutter.readthedocs.io/stable/
[coverage.py]: https://coverage.readthedocs.io/
[Coverage.py]: https://coverage.readthedocs.io/
[Cruft]: https://cruft.github.io/cruft/
[Data structure]: {{cookiecutter.repo_name}}/data/README.md
[Data structure]: https://github.com/JoseRZapata/data-science-project-template/blob/main/{{cookiecutter.repo_name}}/data/README.md
[deepcheck]:https://deepcheck.io/
[dependabot]: https://github.com/dependabot/dependabot-core
[Dependabot]: https://github.com/dependabot/dependabot-core
[depy]:https://fpgmaas.github.io/deptry/
[DVC]:https://dvc.org/
[Flake8]:https://github.com/PyCQA/flake8
Expand All @@ -255,23 +262,22 @@ Folder structure for data science projects [why?](https://towardsdatascience.co
[MlFlow]:https://www.mlflow.org/
[Mypy]: http://mypy-lang.org/
[myst]: https://myst-parser.readthedocs.io/
[Notebook template]: {{cookiecutter.repo_name}}/notebooks/notebook_template.ipynb
[Notebook template]: https://github.com/JoseRZapata/data-science-project-template/blob/main/{{cookiecutter.repo_name}}/notebooks/notebook_template.ipynb
[NumPy]:https://numpy.org/
[OmegaConf]: https://omegaconf.readthedocs.io/en/latest/
[Pandas]:https://pandas.pydata.org/
[pandera]:(https://pandera.readthedocs.io/en/stable/)
[Poetry]: https://python-poetry.org/
[pre-commit]: https://pre-commit.com/
[Pull Request template]: {{cookiecutter.repo_name}}/.github/pull_request_template.md
[Pull Request template]: https://github.com/JoseRZapata/data-science-project-template/blob/main/{{cookiecutter.repo_name}}/.github/pull_request_template.md
[Pyenv]: https://github.com/pyenv/pyenv
[Pylint]:https://github.com/PyCQA/pylint
[pypi]: https://pypi.org/
[Pytest]: https://docs.pytest.org/en/latest/
[pyupgrade]: https://github.com/asottile/pyupgrade
[Ruff]: https://docs.astral.sh/ruff/
[safety]: https://github.com/pyupio/safety
[scikit-learn]:https://scikit-learn.org/
[testpypi]: https://test.pypi.org/
[tox]: https://tox.readthedocs.io/
[typeguard]: https://github.com/agronholm/typeguard
[xdoctest]: https://github.com/Erotemic/xdoctest
[xdoctest]: https://xdoctest.readthedocs.io/en/latest/
8 changes: 8 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ theme:
toggle:
icon: material/toggle-switch
name: Switch to light mode
features:
- content.code.copy

nav:
- Introduction: 'index.md'
Expand All @@ -23,3 +25,9 @@ markdown_extensions:
- pymdownx.emoji:
emoji_index: !!python/name:material.extensions.emoji.twemoji
emoji_generator: !!python/name:material.extensions.emoji.to_svg
- pymdownx.highlight:
anchor_linenums: true
line_spans: __span
pygments_lang_class: true
- pymdownx.inlinehilite
- pymdownx.superfences
8 changes: 4 additions & 4 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading