{"id":18868463,"url":"https://github.com/pyscaffold/pyscaffoldext-dsproject","last_synced_at":"2025-05-16T05:04:43.211Z","repository":{"id":34995940,"uuid":"194702852","full_name":"pyscaffold/pyscaffoldext-dsproject","owner":"pyscaffold","description":"💫 PyScaffold extension for data-science projects","archived":false,"fork":false,"pushed_at":"2025-03-31T16:54:57.000Z","size":141,"stargazers_count":158,"open_issues_count":7,"forks_count":23,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-05-09T18:09:36.763Z","etag":null,"topics":["data-science","pyscaffold","pyscaffold-extension","python"],"latest_commit_sha":null,"homepage":"https://pyscaffold.org/projects/dsproject","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pyscaffold.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.rst","funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.rst","dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"FlorianWilhelm","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":"https://www.paypal.me/FlorianWilhelm"}},"created_at":"2019-07-01T15:53:30.000Z","updated_at":"2025-03-25T05:32:05.000Z","dependencies_parsed_at":"2023-02-16T10:05:16.915Z","dependency_job_id":"1456e98b-7b8c-4ad5-97da-22db3ade3eaa","html_url":"https://github.com/pyscaffold/pyscaffoldext-dsproject","commit_stats":{"total_commits":152,"total_committers":10,"mean_commits":15.2,"dds":0.506578947368421,"last_synced_commit":"28b0b684a7b680736e87396038e1bd223f544229"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyscaffold%2Fpyscaffoldext-dsproject","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyscaffold%2Fpyscaffoldext-dsproject/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyscaffold%2Fpyscaffoldext-dsproject/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyscaffold%2Fpyscaffoldext-dsproject/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyscaffold","download_url":"https://codeload.github.com/pyscaffold/pyscaffoldext-dsproject/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254471060,"owners_count":22076585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-science","pyscaffold","pyscaffold-extension","python"],"created_at":"2024-11-08T05:13:42.588Z","updated_at":"2025-05-16T05:04:43.187Z","avatar_url":"https://github.com/pyscaffold.png","language":"Python","funding_links":["https://github.com/sponsors/FlorianWilhelm","https://www.paypal.me/FlorianWilhelm"],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://api.cirrus-ci.com/github/pyscaffold/pyscaffoldext-dsproject.svg?branch=master)](https://cirrus-ci.com/github/pyscaffold/pyscaffoldext-dsproject)\n[![ReadTheDocs](https://readthedocs.org/projects/pyscaffold/badge/?version=latest)](https://pyscaffold.org/projects/dsproject/en/latest)\n[![Coveralls](https://img.shields.io/coveralls/github/pyscaffold/pyscaffoldext-dsproject/master.svg)](https://coveralls.io/r/pyscaffold/pyscaffoldext-dsproject)\n[![PyPI-Server](https://img.shields.io/pypi/v/pyscaffoldext-dsproject.svg)](https://pypi.org/project/pyscaffoldext-dsproject)\n[![Conda-Forge](https://img.shields.io/conda/vn/conda-forge/pyscaffoldext-dsproject.svg)](https://anaconda.org/conda-forge/pyscaffoldext-dsproject)\n[![Downloads](https://pepy.tech/badge/pyscaffoldext-dsproject/month)](https://pepy.tech/project/pyscaffoldext-dsproject)\n[![Sponsor](https://img.shields.io/static/v1?label=Sponsor\u0026message=%E2%9D%A4\u0026logo=GitHub\u0026color=ff69b4)](https://github.com/sponsors/FlorianWilhelm)\n\n# pyscaffoldext-dsproject\n\n[PyScaffold] extension tailored for *Data Science* projects. This extension is inspired by\n[cookiecutter-data-science] and enhanced in many ways. The main differences are that it\n1. advocates a proper Python package structure that can be shipped and distributed,\n2. uses a [conda] environment instead of something [virtualenv]-based and is thus more suitable\n   for data science projects,\n3. more default configurations for [Sphinx], [pytest], [pre-commit], etc. to foster\n   clean coding and best practices.\n\nAlso consider using [dvc] to version control and share your data within your team.\nRead [this blogpost] to learn how to work with JupyterLab notebooks efficiently by using a\ndata science project structure like this.\n\nThe final directory structure looks like:\n```\n├── AUTHORS.md              \u003c- List of developers and maintainers.\n├── CHANGELOG.md            \u003c- Changelog to keep track of new features and fixes.\n├── CONTRIBUTING.md         \u003c- Guidelines for contributing to this project.\n├── Dockerfile              \u003c- Build a docker container with `docker build .`.\n├── LICENSE.txt             \u003c- License as chosen on the command-line.\n├── README.md               \u003c- The top-level README for developers.\n├── configs                 \u003c- Directory for configurations of model \u0026 application.\n├── data\n│   ├── external            \u003c- Data from third party sources.\n│   ├── interim             \u003c- Intermediate data that has been transformed.\n│   ├── processed           \u003c- The final, canonical data sets for modeling.\n│   └── raw                 \u003c- The original, immutable data dump.\n├── docs                    \u003c- Directory for Sphinx documentation in rst or md.\n├── environment.yml         \u003c- The conda environment file for reproducibility.\n├── models                  \u003c- Trained and serialized models, model predictions,\n│                              or model summaries.\n├── notebooks               \u003c- Jupyter notebooks. Naming convention is a number (for\n│                              ordering), the creator's initials and a description,\n│                              e.g. `1.0-fw-initial-data-exploration`.\n├── pyproject.toml          \u003c- Build configuration. Don't change! Use `pip install -e .`\n│                              to install for development or to build `tox -e build`.\n├── references              \u003c- Data dictionaries, manuals, and all other materials.\n├── reports                 \u003c- Generated analysis as HTML, PDF, LaTeX, etc.\n│   └── figures             \u003c- Generated plots and figures for reports.\n├── scripts                 \u003c- Analysis and production scripts which import the\n│                              actual PYTHON_PKG, e.g. train_model.\n├── setup.cfg               \u003c- Declarative configuration of your project.\n├── setup.py                \u003c- [DEPRECATED] Use `python setup.py develop` to install for\n│                              development or `python setup.py bdist_wheel` to build.\n├── src\n│   └── PYTHON_PKG          \u003c- Actual Python package where the main functionality goes.\n├── tests                   \u003c- Unit tests which can be run with `pytest`.\n├── .coveragerc             \u003c- Configuration for coverage reports of unit tests.\n├── .isort.cfg              \u003c- Configuration for git hook that sorts imports.\n└── .pre-commit-config.yaml \u003c- Configuration of pre-commit git hooks.\n```\n\nSee a demonstration of the initial project structure under [dsproject-demo] and also check out\nthe documentation of [PyScaffold] for more information.\n\n\n## Usage\n\nJust install this package with `conda install -c conda-forge pyscaffoldext-dsproject`\nand note that `putup -h` shows a new option `--dsproject`.\nCreating a data science project is then as easy as:\n```bash\nputup --dsproject my_ds_project\n```\n\nThe flag `--dsproject` comprises additionally the flags `--markdown`, `--pre-commit` and `--no-skeleton`\nfor convenience.\n\n\u003c!-- pyscaffold-notes --\u003e\n\n## Making Changes \u0026 Contributing\n\nThis project uses [pre-commit], please make sure to install it before making any\nchanges:\n\n```bash\nconda install pre-commit\ncd pyscaffoldext-dsproject\npre-commit install\n```\n\nIt is a good idea to update the hooks to the latest version:\n\n```bash\npre-commit autoupdate\n```\n\nPlease also check PyScaffold's [contribution guidelines].\n\n[PyScaffold]: https://pyscaffold.org/\n[cookiecutter-data-science]: https://github.com/drivendata/cookiecutter-data-science\n[Miniconda]: https://docs.conda.io/en/latest/miniconda.html\n[Jupyter]: https://jupyter.org/\n[dsproject-demo]: https://github.com/pyscaffold/dsproject-demo\n[Sphinx]: https://www.sphinx-doc.org/\n[pytest]: https://docs.pytest.org/\n[conda]: https://docs.conda.io/\n[Conda-Forge]: https://anaconda.org/conda-forge/pyscaffoldext-dsproject\n[virtualenv]: https://virtualenv.pypa.io/\n[pre-commit]: https://pre-commit.com/\n[dvc]: https://dvc.org/\n[this blogpost]: https://florianwilhelm.info/2018/11/working_efficiently_with_jupyter_lab/\n[pre-commit]: https://pre-commit.com/\n[contribution guidelines]: https://pyscaffold.org/en/latest/contributing.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyscaffold%2Fpyscaffoldext-dsproject","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpyscaffold%2Fpyscaffoldext-dsproject","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyscaffold%2Fpyscaffoldext-dsproject/lists"}