GithubHelp home page GithubHelp logo

markgreene74 / sicarator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sicara/sicarator

0.0 0.0 0.0 16.82 MB

Instant Setup & Best Quality for Data Projects!

License: Apache License 2.0

JavaScript 42.68% Python 25.65% Makefile 7.24% HCL 21.90% Dockerfile 2.53%

sicarator's Introduction

Sicarator

Instant Setup & Best Quality for Data Projects!

Sicarator is a CLI generator for Data Science projects. It is built with Yeoman and maintained by Sicara.

Demo GIF

To know more about the story behind Sicarator and its philosophy, you can read this blog article.

Main components of the generated project

  • Python development environment with:
  • Continuous Integration of your choice:
  • (optional) API:
    • built with FastAPI
    • containerized with Docker
    • deployed on one of the following infrastructures:
      • AWS auto-scaled infrastructure (API Gateway, ASG, ECS, EC2)
      • GCP serverless infrastructure (Cloud Run, Artifact Registry)
      • more to come...
    • provisioned with Terraform
    • testable with a Postman collection
  • (optional) Data Versioning and Pipelines with DVC and Typer
  • (optional) Data Visualization with Streamlit
  • (optional) Experiment Tracking with DVC + Streamlit

Requirements

Pyenv

Install pyenv to manage your Python versions and virtual environments:

curl -sSL https://pyenv.run | bash

If you are on MacOS and experiencing errors on Python install with PyEnv, follow this comment

Poetry

Install Poetry to manage your dependencies and tooling configs:

curl -sSL https://install.python-poetry.org | python - --version 1.7.0

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:

pyenv update  # fetch the latest list of Python versions
pyenv install 3.11  # install the latest Python 3.11.x
pyenv global 3.11  # set your new global default Python version

Node.js

Install a stable version of Node.js (v18.x.x) if you don't have one. The Sicarator is indeed a Yeoman generator, which is a Node.js module.

For linux:

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs

Yeoman

Install Yeoman:

npm install -g yo

Usage

  • Before generating a new project, make sure to install last version of Sicarator by re-running:

    npm install -g sicara/sicarator
  • Generate a new project with:

    yo sicarator

Troubleshooting

I don't have the correct permissions to install yeoman

Example error:

npm ERR! code EACCES
npm ERR! syscall rename
npm ERR! path /usr/lib/node_modules/generator-sicarator
npm ERR! dest /usr/lib/node_modules/.generator-sicarator-cELCsz5l
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, rename '/usr/lib/node_modules/generator-sicarator' -> '/usr/lib/node_modules/.generator-sicarator-cELCsz5l'
...

Solution: give yourself the ownership of npm and node_modules :

sudo chown -R $(whoami) ~/.npm
sudo chown -R $(whoami) /usr/lib/node_modules # or /usr/local/lib/node_modules depending on where node modules are installed

I have the correct git credentials, but installation is throwing a git error

Example error:

[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.

Solution: you are probably using sudo to run the installation, which doesn't use the same git credentials. See solution above to install the project with your current user profile.

Contribute to the project

Install the project

  • Install the project with:

    git clone [email protected]:sicara/sicarator.git

    and install dependencies

    npm install
  • To be able to run current dev version of the project, you can use the following command in your project directory:

    npm link
    • Next time you run yo sicarator, dev version will be used.
    • If you want to go back to the production version you can re-run:
      npm install -g sicara/sicarator

Dev tools

  • For debugging, you can run:

    npx --node-options="--inspect" yo sicarator
  • To run the linter (eslint), you can use:

    npm run lint
  • To run the tests, you can use:

    npm test

sicarator's People

Contributors

ywolff avatar achillehuet avatar corentinbrtx avatar gdelepoulle avatar noachache avatar jack-mcivor avatar jeromeassouline avatar antoinemiql avatar chiptuned avatar wirg avatar danielrodriguezciotti avatar edmondverdier avatar emilio-desousa avatar florent-escribe avatar julienperichon avatar mathieuhs avatar simonplaye avatar agatheminaro avatar ebenkara15 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.