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

Make CLI libraries optional dependencies #703

Open
vdusek opened this issue Nov 15, 2024 · 3 comments
Open

Make CLI libraries optional dependencies #703

vdusek opened this issue Nov 15, 2024 · 3 comments
Labels
t-tooling Issues with this label are in the ownership of the tooling team.

Comments

@vdusek
Copy link
Collaborator

vdusek commented Nov 15, 2024

Since cookiecutter, along with other libraries like inquirer and typer, is used exclusively in the CLI for templating new projects, could we make these optional dependencies? This would reduce the installation footprint.

@vdusek vdusek added the t-tooling Issues with this label are in the ownership of the tooling team. label Nov 15, 2024
@B4nan
Copy link
Member

B4nan commented Nov 15, 2024

Wouldn't this mean that pipx run crawlee create my-crawler stop working?

@vdusek
Copy link
Collaborator Author

vdusek commented Nov 18, 2024

The mentioned packages & their (transitive) dependencies.

Cookiecutter

cookiecutter 2.6.0 A command-line utility that creates projects from project templates, e.g. creating a Python package project from a Python package project template.
├── arrow *
│   ├── python-dateutil >=2.7.0 
│   │   └── six >=1.5 
│   └── types-python-dateutil >=2.8.10 
├── binaryornot >=0.4.4
│   └── chardet >=3.0.2 
├── click >=7.0,<9.0.0
│   └── colorama * 
├── jinja2 >=2.7,<4.0.0
│   └── markupsafe >=2.0 
├── python-slugify >=4.0.0
│   └── text-unidecode >=1.3 
├── pyyaml >=5.3.1
├── requests >=2.23.0
│   ├── certifi >=2017.4.17 
│   ├── charset-normalizer >=2,<4 
│   ├── idna >=2.5,<4 
│   └── urllib3 >=1.21.1,<3 
└── rich *
    ├── markdown-it-py >=2.2.0 
    │   └── mdurl >=0.1,<1.0 
    ├── pygments >=2.13.0,<3.0.0 
    └── typing-extensions >=4.0.0,<5.0

Inquirer

inquirer 3.4.0 Collection of common interactive command line user interfaces, based on Inquirer.js
├── blessed >=1.19.0
│   ├── jinxed >=1.1.0 
│   │   └── ansicon * 
│   ├── six >=1.9.0 
│   └── wcwidth >=0.1.4 
├── editor >=1.6.0
│   ├── runs * 
│   │   └── xmod * 
│   └── xmod * (circular dependency aborted here)
└── readchar >=4.2.0

Typer

typer 0.13.0 Typer, build great CLIs. Easy to code. Based on Python type hints.
├── click >=8.0.0
│   └── colorama * 
├── rich >=10.11.0
│   ├── markdown-it-py >=2.2.0 
│   │   └── mdurl >=0.1,<1.0 
│   ├── pygments >=2.13.0,<3.0.0 
│   └── typing-extensions >=4.0.0,<5.0 
├── shellingham >=1.3.0
└── typing-extensions >=3.7.4.3

@B4nan
Copy link
Member

B4nan commented Nov 18, 2024

Can you also check their install size?

Also one idea, can we maybe have a script inside crawlee that would install things instead of expecting them to be already part of the crawlee deps? That way only the create command (which would just trigger this script) would install them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
t-tooling Issues with this label are in the ownership of the tooling team.
Projects
None yet
Development

No branches or pull requests

2 participants