{"id":20305476,"url":"https://github.com/sicara/sicarator","last_synced_at":"2025-04-04T09:08:04.142Z","repository":{"id":172185266,"uuid":"412841097","full_name":"sicara/sicarator","owner":"sicara","description":"Instant Setup \u0026 Best Quality for Data Projects!","archived":false,"fork":false,"pushed_at":"2025-01-30T14:14:36.000Z","size":17274,"stargazers_count":176,"open_issues_count":13,"forks_count":9,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-28T08:06:18.259Z","etag":null,"topics":["data-science","generator","machine-learning","python"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sicara.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-02T15:50:08.000Z","updated_at":"2025-01-30T14:14:38.000Z","dependencies_parsed_at":"2023-10-17T12:19:42.331Z","dependency_job_id":"708d5012-44af-470f-8d72-05f006bd5172","html_url":"https://github.com/sicara/sicarator","commit_stats":null,"previous_names":["sicara/sicarator"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sicara%2Fsicarator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sicara%2Fsicarator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sicara%2Fsicarator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sicara%2Fsicarator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sicara","download_url":"https://codeload.github.com/sicara/sicarator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247149501,"owners_count":20891954,"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","generator","machine-learning","python"],"created_at":"2024-11-14T17:08:35.452Z","updated_at":"2025-04-04T09:08:04.119Z","avatar_url":"https://github.com/sicara.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sicarator\n\u003e Instant Setup \u0026 Best Quality for Data Projects!\n\n**Sicarator** is a **CLI generator** for **Data Science projects**. It is built with [Yeoman](https://yeoman.io/) and maintained by [Sicara](https://www.sicara.fr/).\n\n![Demo GIF](./demo.gif)\n\nTo know more about the story behind Sicarator and its philosophy, you can read [this blog article](https://www.sicara.fr/blog-technique/sicarator).\n\n## Main components of the generated project\n\n- **Python** development environment with:\n  - [Astral/uv](https://github.com/astral-sh/uv) (recommended) or [poetry](https://python-poetry.org/) for dependency\n    management\n  - [Pytest](https://docs.pytest.org/) for testing\n  - [Ruff](https://docs.astral.sh/ruff/) for static analysis \u0026 code formatting\n  - [Mypy](https://mypy.readthedocs.io/) for type checking\n  - [Pre-commit](https://pre-commit.com/) for git hooks\n- **Continuous Integration** of your choice:\n  - [CircleCI](https://circleci.com/)\n  - [Github Actions](https://github.com/features/actions)\n  - [Gitlab CI/CD](https://docs.gitlab.com/ee/ci/)\n  - [Azure Pipelines](https://azure.microsoft.com/en-us/products/devops/pipelines/)\n- *(optional)* **API**:\n  - built with [FastAPI](https://fastapi.tiangolo.com/)\n  - containerized with [Docker](https://www.docker.com/)\n  - deployed on one of the following infrastructures:\n    - [AWS](https://aws.amazon.com/) auto-scaled infrastructure (API Gateway, ASG, ECS, EC2)\n    - [GCP](https://cloud.google.com/) serverless infrastructure (Cloud Run, Artifact Registry)\n    - *more to come...*\n  - provisioned with [Terraform](https://www.terraform.io/)\n  - testable with a [Postman](https://www.postman.com/) collection\n- *(optional)* **Data Versioning and Pipelines** with [DVC](https://dvc.org/) and [Typer](https://typer.tiangolo.com/)\n- *(optional)* **Data Visualization** with [Streamlit](https://streamlit.io/)\n- *(optional)* **Experiment Tracking** with [DVC + Streamlit](https://www.sicara.fr/blog-technique/dvc-streamlit-webui-ml)\n\n## Requirements\n\n### Astral/uv (recommended)\n\nInstall [uv](https://github.com/astral-sh/uv) to manage your Python versions, virtual environments, dependencies and\ntooling configs:\n  ```bash\n  curl -LsSf https://astral.sh/uv/install.sh | sh\n  ```\n\n### Pyenv (if not using uv)\n\nInstall [pyenv](https://github.com/pyenv/pyenv) to manage your Python versions and virtual environments:\n  ```bash\n  curl -sSL https://pyenv.run | bash\n  ```\n*If you are on MacOS and experiencing errors on Python install with PyEnv, follow this [comment](https://github.com/pyenv/pyenv/issues/1740#issuecomment-738749988)*\n\n### Poetry (if not using uv)\n\nInstall [Poetry](https://python-poetry.org) to manage your dependencies and tooling configs:\n  ```bash\n  curl -sSL https://install.python-poetry.org | python - --version 1.7.0\n  ```\n*If you have not previously installed any Python version, you may need to install one and set it as your default Python version before installing Poetry:*\n  ```bash\n  pyenv update  # fetch the latest list of Python versions\n  pyenv install 3.11  # install the latest Python 3.11.x\n  pyenv global 3.11  # set your new global default Python version\n  ```\n\n### Node.js\n\nInstall a stable version of [Node.js](https://nodejs.org/) (v18.x.x) if you don't have one.\nThe Sicarator is indeed a [Yeoman](https://yeoman.io/) generator, which is a `Node.js` module.\n    \nFor linux:\n  ```bash\n  curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -\n  sudo apt-get install -y nodejs\n  ```\n\n### Yeoman\n\nInstall [Yeoman](http://yeoman.io):\n  ```bash\n  npm install -g yo\n  ```\n\n## Usage\n\n- Before generating a new project, make sure to install last version of `Sicarator` by re-running:\n    ```bash\n    npm install -g sicara/sicarator\n    ```\n\n- Generate a new project with:\n    ```bash\n    yo sicarator\n    ```\n\n## Troubleshooting\n\n### I don't have the correct permissions to install yeoman\nExample error:\n    \n```bash\nnpm ERR! code EACCES\nnpm ERR! syscall rename\nnpm ERR! path /usr/lib/node_modules/generator-sicarator\nnpm ERR! dest /usr/lib/node_modules/.generator-sicarator-cELCsz5l\nnpm ERR! errno -13\nnpm ERR! Error: EACCES: permission denied, rename '/usr/lib/node_modules/generator-sicarator' -\u003e '/usr/lib/node_modules/.generator-sicarator-cELCsz5l'\n...\n```\n\nSolution: give yourself the ownership of npm and node_modules :\n```bash\nsudo chown -R $(whoami) ~/.npm\nsudo chown -R $(whoami) /usr/lib/node_modules # or /usr/local/lib/node_modules depending on where node modules are installed\n```\n### I have the correct git credentials, but installation is throwing a git error\nExample error:\n```bash\ngit@github.com: Permission denied (publickey).\nfatal: Could not read from remote repository.\n```\n\nSolution: you are probably using `sudo` to run the installation, which doesn't use the same git credentials.\nSee solution above to install the project with your current user profile.\n\n## Contribute to the project\n\n### Install the project \n\n- Install the project with:\n  ```bash\n  git clone git@github.com:sicara/sicarator.git\n  ```\n  and install dependencies\n  ```bash\n  npm install\n  ```\n  \n- To be able to run current dev version of the project, you can use the following command in your project directory:\n  ```bash\n  npm link\n  ```\n  - Next time you run `yo sicarator`, dev version will be used.\n  - If you want to go back to the production version you can re-run:\n    ```bash\n    npm install -g sicara/sicarator\n    ```\n\n### Dev tools\n\n- For debugging, you can run:\n  ```bash\n  npx --node-options=\"--inspect\" yo sicarator\n  ```\n\n- To run the linter (eslint), you can use:\n  ```bash\n  npm run lint\n  ```\n\n- To run the tests, you can use:\n  ```bash\n  npm test\n  ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsicara%2Fsicarator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsicara%2Fsicarator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsicara%2Fsicarator/lists"}