Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tpvasconcelos/best-of-data-science

🏆 Best of Data Science, Machine Learning, Statistics, and Software Engineering
https://github.com/tpvasconcelos/best-of-data-science

data-science

Last synced: about 15 hours ago
JSON representation

🏆 Best of Data Science, Machine Learning, Statistics, and Software Engineering

Awesome Lists containing this project

README

        


best-of-data-science



🏆  A ranked list of awesome projects. Updated weekly.






This curated list contains 33 awesome open-source projects with a total of 170K stars grouped into 6 categories. All projects are ranked by a project-quality score, which is calculated based on various metrics automatically collected from GitHub and different package managers. If you like to add or update projects, feel free to open an [issue](https://github.com/tpvasconcelos/best-of-data-science/issues/new/choose), submit a [pull request](https://github.com/tpvasconcelos/best-of-data-science/pulls), or directly edit the [projects.yaml](https://github.com/tpvasconcelos/best-of-data-science/edit/main/projects.yaml). Contributions are very welcome!

> 🧙‍♂️ Discover other [best-of lists](https://best-of.org) or [create your own](https://github.com/best-of-lists/best-of/blob/main/create-best-of-list.md).

## Contents

- [CLI](#cli) _7 projects_
- [Logging, Debugging, and Exception Handling](#logging-debugging-and-exception-handling) _7 projects_
- [Caching and Memoization](#caching-and-memoization) _4 projects_
- [Configuration Management](#configuration-management) _5 projects_
- [Dates, times, and datetimes](#dates-times-and-datetimes) _4 projects_
- [Miscellaneous](#miscellaneous) _6 projects_

## Explanation
- 🥇🥈🥉  Combined project-quality score
- ⭐️  Star count from GitHub
- 🐣  New project _(less than 6 months old)_
- 💤  Inactive project _(6 months no activity)_
- 💀  Dead project _(12 months no activity)_
- 📈📉  Project is trending up or down
- ➕  Project was recently added
- ❗️  Warning _(e.g. missing/risky license)_
- 👨‍💻  Contributors count from GitHub
- 🔀  Fork count from GitHub
- 📋  Issue count from GitHub
- ⏱️  Last update timestamp on package manager
- 📥  Download count from package manager
- 📦  Number of dependent projects


## CLI

Back to top

click (🥇37 · ⭐ 11K) - Python composable command line interface toolkit. BSD-3

- [GitHub](https://github.com/pallets/click) (👨‍💻 310 · 🔀 1.1K · 📦 590K · 📋 1.2K - 5% open · ⏱️ 14.08.2021):

```
git clone https://github.com/pallets/click
```
- [PyPi](https://pypi.org/project/click) (📥 86M / month · 📦 110K · ⏱️ 19.05.2021):
```
pip install click
```

pygments (🥈36 · ⭐ 690) - Pygments is a generic syntax highlighter written in Python. BSD-2

- [GitHub](https://github.com/pygments/pygments) (👨‍💻 650 · 🔀 720 · 📦 240K · 📋 1.5K - 22% open · ⏱️ 17.08.2021):

```
git clone https://github.com/pygments/pygments
```
- [PyPi](https://pypi.org/project/Pygments) (📥 28M / month · 📦 68K · ⏱️ 15.08.2021):
```
pip install Pygments
```

rich (🥈33 · ⭐ 28K) - Rich is a Python library for rich text and beautiful formatting in the terminal. MIT

- [GitHub](https://github.com/willmcgugan/rich) (👨‍💻 100 · 🔀 850 · 📦 6.1K · 📋 500 - 1% open · ⏱️ 09.08.2021):

```
git clone https://github.com/willmcgugan/rich
```
- [PyPi](https://pypi.org/project/rich) (📥 2M / month · ⏱️ 05.08.2021):
```
pip install rich
```

python-fire (🥉32 · ⭐ 20K · 📈) - Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object. Apache-2

- [GitHub](https://github.com/google/python-fire) (👨‍💻 46 · 🔀 1.2K · 📦 8.7K · 📋 250 - 42% open · ⏱️ 17.06.2021):

```
git clone https://github.com/google/python-fire
```
- [PyPi](https://pypi.org/project/fire) (📥 1.4M / month · 📦 1.2K · ⏱️ 22.01.2021):
```
pip install fire
```

python-prompt-toolkit (🥉32 · ⭐ 7.2K · 📈) - Library for building powerful interactive command line applications in Python. BSD-3

- [GitHub](https://github.com/prompt-toolkit/python-prompt-toolkit) (👨‍💻 190 · 🔀 560 · 📋 920 - 46% open · ⏱️ 19.08.2021):

```
git clone https://github.com/prompt-toolkit/python-prompt-toolkit
```
- [PyPi](https://pypi.org/project/prompt-toolkit) (📥 19M / month · 📦 530 · ⏱️ 17.06.2021):
```
pip install prompt-toolkit
```

typer (🥉23 · ⭐ 5.9K · 💤) - Typer, build great CLIs. Easy to code. Based on Python type hints. MIT

- [GitHub](https://github.com/tiangolo/typer) (👨‍💻 8 · 🔀 220 · 📋 220 - 58% open · ⏱️ 16.08.2020):

```
git clone https://github.com/tiangolo/typer
```
- [PyPi](https://pypi.org/project/typer) (📥 2.1M / month · ⏱️ 16.08.2020):
```
pip install typer
```

Show 1 hidden projects...

- fuzzyfinder (🥉20 · ⭐ 360 · 💀) - Fuzzy Finder implemented in Python. BSD-3


## Logging, Debugging, and Exception Handling

Back to top

rich.logging (🥇33 · ⭐ 28K) - Rich is a Python library for rich text and beautiful formatting in the terminal. MIT

- [GitHub](https://github.com/willmcgugan/rich) (👨‍💻 100 · 🔀 850 · 📦 6.1K · 📋 500 - 1% open · ⏱️ 09.08.2021):

```
git clone https://github.com/willmcgugan/rich
```
- [PyPi](https://pypi.org/project/rich) (📥 2M / month · ⏱️ 05.08.2021):
```
pip install rich
```

python-json-logger (🥈32 · ⭐ 1K · 📈) - Json Formatter for the standard python logger. BSD-2

- [GitHub](https://github.com/madzak/python-json-logger) (👨‍💻 46 · 🔀 160 · 📦 17K · 📋 65 - 30% open · ⏱️ 27.07.2021):

```
git clone https://github.com/madzak/python-json-logger
```
- [PyPi](https://pypi.org/project/python-json-logger) (📥 3.6M / month · 📦 920 · ⏱️ 27.07.2021):
```
pip install python-json-logger
```

sentry (🥈32 · ⭐ 1K) - The new Python SDK for Sentry.io. BSD-2

- [GitHub](https://github.com/getsentry/sentry-python) (👨‍💻 100 · 🔀 220 · 📥 4.5K · 📦 13K · 📋 550 - 30% open · ⏱️ 27.07.2021):

```
git clone https://github.com/getsentry/sentry-python
```
- [PyPi](https://pypi.org/project/sentry-sdk) (📥 9M / month · 📦 990 · ⏱️ 27.07.2021):
```
pip install sentry-sdk
```

loguru (🥉31 · ⭐ 9.5K) - Python logging made (stupidly) simple. MIT

- [GitHub](https://github.com/Delgan/loguru) (👨‍💻 29 · 🔀 430 · 📦 9.3K · 📋 440 - 12% open · ⏱️ 17.07.2021):

```
git clone https://github.com/Delgan/loguru
```
- [PyPi](https://pypi.org/project/loguru) (📥 1.5M / month · 📦 340 · ⏱️ 20.09.2020):
```
pip install loguru
```

structlog (🥉27 · ⭐ 1.6K · 📈) - Structured Logging for Python. MIT

- [GitHub](https://github.com/hynek/structlog) (👨‍💻 74 · 🔀 140 · 📦 3.5K · 📋 190 - 17% open · ⏱️ 11.08.2021):

```
git clone https://github.com/hynek/structlog
```
- [PyPi](https://pypi.org/project/structlog) (📥 2.3M / month · 📦 1.2K · ⏱️ 18.02.2021):
```
pip install structlog
```

json-logging-python (🥉26 · ⭐ 180 · 📈) - Cloud-native distributed Python logging library to emit JSON log that can be easily indexed by logging infrastructure. Apache-2

- [GitHub](https://github.com/bobbui/json-logging-python) (👨‍💻 21 · 🔀 44 · 📦 180 · 📋 54 - 9% open · ⏱️ 24.07.2021):

```
git clone https://github.com/bobbui/json-logging-python
```
- [PyPi](https://pypi.org/project/json-logging) (📥 910K / month · 📦 8 · ⏱️ 09.07.2021):
```
pip install json-logging
```

better-exceptions (🥉22 · ⭐ 4K · 💤) - Pretty and useful exceptions in Python, automatically. MIT

- [GitHub](https://github.com/Qix-/better-exceptions) (👨‍💻 14 · 🔀 200 · 📋 70 - 41% open · ⏱️ 29.01.2021):

```
git clone https://github.com/Qix-/better-exceptions
```
- [PyPi](https://pypi.org/project/better-exceptions) (📥 27K / month · 📦 74 · ⏱️ 29.01.2021):
```
pip install better-exceptions
```


## Caching and Memoization

Back to top

joblib.Memory (🥇35 · ⭐ 2.5K · 📈) - `joblib.Memory` defines a context object for caching a functions return value each time it is called with the same.. BSD-3

- [GitHub](https://github.com/joblib/joblib) (👨‍💻 100 · 🔀 300 · 📦 120K · 📋 660 - 44% open · ⏱️ 11.06.2021):

```
git clone https://github.com/joblib/joblib
```
- [PyPi](https://pypi.org/project/joblib) (📥 27M / month · 📦 6.6K · ⏱️ 09.02.2021):
```
pip install joblib
```

boltons.cacheutils (🥈30 · ⭐ 5.5K · 📈) - `boltons.cacheutils` contains consistent implementations of fundamental cache types. BSD-3

- [GitHub](https://github.com/mahmoud/boltons) (👨‍💻 72 · 🔀 300 · 📥 21 · 📦 1.6K · 📋 130 - 31% open · ⏱️ 19.05.2021):

```
git clone https://github.com/mahmoud/boltons
```
- [PyPi](https://pypi.org/project/boltons) (📥 990K / month · 📦 490 · ⏱️ 17.05.2021):
```
pip install boltons
```

cachetools (🥈30 · ⭐ 1K · 📈) - Extensible memoizing collections and decorators. MIT

- [GitHub](https://github.com/tkem/cachetools) (👨‍💻 5 · 🔀 110 · 📋 180 - 5% open · ⏱️ 09.08.2021):

```
git clone https://github.com/tkem/cachetools
```
- [PyPi](https://pypi.org/project/cachetools) (📥 43M / month · 📦 4.4K · ⏱️ 27.04.2021):
```
pip install cachetools
```

klepto (🥉21 · ⭐ 200 · 📈) - persistent caching to memory, disk, or database. BSD-3

- [GitHub](https://github.com/uqfoundation/klepto) (👨‍💻 2 · 🔀 23 · 📥 400 · 📋 91 - 52% open · ⏱️ 17.06.2021):

```
git clone https://github.com/uqfoundation/klepto
```
- [PyPi](https://pypi.org/project/klepto) (📥 69K / month · 📦 12 · ⏱️ 13.06.2021):
```
pip install klepto
```


## Configuration Management

Back to top

python-dotenv (🥇34 · ⭐ 4.2K · 📈) - Get and set values in your .env file in local and production servers. BSD-3

- [GitHub](https://github.com/theskumar/python-dotenv) (👨‍💻 71 · 🔀 260 · 📦 140K · 📋 180 - 7% open · ⏱️ 25.07.2021):

```
git clone https://github.com/theskumar/python-dotenv
```
- [PyPi](https://pypi.org/project/python-dotenv) (📥 10M / month · 📦 9.4K · ⏱️ 24.07.2021):
```
pip install python-dotenv
```

dynaconf (🥈29 · ⭐ 1.9K) - Configuration Management for Python. MIT

- [GitHub](https://github.com/rochacbruno/dynaconf) (👨‍💻 69 · 🔀 180 · 📦 1.5K · 📋 300 - 26% open · ⏱️ 12.08.2021):

```
git clone https://github.com/rochacbruno/dynaconf
```
- [PyPi](https://pypi.org/project/dynaconf) (📥 390K / month · 📦 92 · ⏱️ 08.03.2021):
```
pip install dynaconf
```

python-decouple (🥈29 · ⭐ 1.8K · 📈) - Strict separation of config from code. MIT

- [GitHub](https://github.com/henriquebastos/python-decouple) (👨‍💻 24 · 🔀 140 · 📦 44K · 📋 72 - 22% open · ⏱️ 05.06.2021):

```
git clone https://github.com/henriquebastos/python-decouple
```
- [PyPi](https://pypi.org/project/python-decouple) (📥 450K / month · 📦 6K · ⏱️ 05.01.2021):
```
pip install python-decouple
```

environs (🥈29 · ⭐ 710 · 📈) - simplified environment variable parsing. MIT

- [GitHub](https://github.com/sloria/environs) (👨‍💻 22 · 🔀 47 · 📦 4.9K · 📋 66 - 7% open · ⏱️ 09.08.2021):

```
git clone https://github.com/sloria/environs
```
- [PyPi](https://pypi.org/project/environs) (📥 450K / month · 📦 180 · ⏱️ 09.08.2021):
```
pip install environs
```

hydra (🥉24 · ⭐ 4.7K) - Hydra is a framework for elegantly configuring complex applications. MIT

- [GitHub](https://github.com/facebookresearch/hydra) (👨‍💻 77 · 🔀 370 · 📦 3 · 📋 850 - 8% open · ⏱️ 19.08.2021):

```
git clone https://github.com/facebookresearch/hydra
```
- [PyPi](https://pypi.org/project/hydra) (📥 7.1K / month · 📦 6 · ⏱️ 03.08.2016):
```
pip install hydra
```


## Dates, times, and datetimes

Back to top

_Libraries for handeling all sorts of datetime objects. Note that both `arrow` and `pendulum` are built on top of `dateutil` and `pytz`_

arrow (🥈35 · ⭐ 7.5K) - Better dates & times for Python. Apache-2

- [GitHub](https://github.com/arrow-py/arrow) (👨‍💻 240 · 🔀 580 · 📦 21K · 📋 430 - 13% open · ⏱️ 18.08.2021):

```
git clone https://github.com/arrow-py/arrow
```
- [PyPi](https://pypi.org/project/arrow) (📥 4.2M / month · 📦 7.4K · ⏱️ 24.06.2021):
```
pip install arrow
```

pytz (🥉31 · ⭐ 180 · 📈) - pytz Python historical timezone library and database. MIT

- [GitHub](https://github.com/stub42/pytz) (👨‍💻 16 · 🔀 54 · 📦 820K · 📋 38 - 42% open · ⏱️ 22.03.2021):

```
git clone https://github.com/stub42/pytz
```
- [PyPi](https://pypi.org/project/pytz) (📥 69M / month · 📦 150K · ⏱️ 01.02.2021):
```
pip install pytz
```

pendulum (🥉30 · ⭐ 4.5K · 📈) - Python datetimes made easy. MIT

- [GitHub](https://github.com/sdispater/pendulum) (👨‍💻 66 · 🔀 250 · 📋 420 - 46% open · ⏱️ 11.02.2021):

```
git clone https://github.com/sdispater/pendulum
```
- [PyPi](https://pypi.org/project/pendulum) (📥 5.6M / month · 📦 1.1K · ⏱️ 24.07.2020):
```
pip install pendulum
```

Show 1 hidden projects...

- dateutil (🥇36 · ⭐ 1.6K · 📈) - Useful extensions to the standard Python datetime features. ❗️NRL


## Miscellaneous

Back to top

wrapt (🥇33 · ⭐ 1.5K · 📈) - A Python module for decorators, wrappers and monkey patching. BSD-2

- [GitHub](https://github.com/GrahamDumpleton/wrapt) (👨‍💻 21 · 🔀 190 · 📋 130 - 19% open · ⏱️ 09.08.2021):

```
git clone https://github.com/GrahamDumpleton/wrapt
```
- [PyPi](https://pypi.org/project/wrapt) (📥 34M / month · 📦 21K · ⏱️ 17.08.2021):
```
pip install wrapt
```

boltons (🥈30 · ⭐ 5.5K · 📈) - Like builtins, but boltons. 250+ constructs, recipes, and snippets which extend (and rely on nothing but) the Python.. BSD-3

- [GitHub](https://github.com/mahmoud/boltons) (👨‍💻 72 · 🔀 300 · 📥 21 · 📦 1.6K · 📋 130 - 31% open · ⏱️ 19.05.2021):

```
git clone https://github.com/mahmoud/boltons
```
- [PyPi](https://pypi.org/project/boltons) (📥 990K / month · 📦 490 · ⏱️ 17.05.2021):
```
pip install boltons
```

dill (🥈30 · ⭐ 1.5K · 📈) - serialize all of python. BSD-3

- [GitHub](https://github.com/uqfoundation/dill) (👨‍💻 30 · 🔀 120 · 📥 240K · 📋 350 - 39% open · ⏱️ 13.07.2021):

```
git clone https://github.com/uqfoundation/dill
```
- [PyPi](https://pypi.org/project/dill) (📥 8.9M / month · 📦 5K · ⏱️ 13.06.2021):
```
pip install dill
```

parse (🥉29 · ⭐ 1.3K) - Parse strings using a specification based on the Python format() syntax. MIT

- [GitHub](https://github.com/r1chardj0n3s/parse) (👨‍💻 30 · 🔀 84 · 📦 8.8K · 📋 81 - 20% open · ⏱️ 04.06.2021):

```
git clone https://github.com/r1chardj0n3s/parse
```
- [PyPi](https://pypi.org/project/parse) (📥 2.2M / month · 📦 2.2K · ⏱️ 14.01.2021):
```
pip install parse
```

deepdiff (🥉29 · ⭐ 1.1K · 📈) - Deep Difference and search of any Python object/data. MIT

- [GitHub](https://github.com/seperman/deepdiff) (👨‍💻 54 · 🔀 140 · 📦 2.2K · 📋 150 - 18% open · ⏱️ 30.04.2021):

```
git clone https://github.com/seperman/deepdiff
```
- [PyPi](https://pypi.org/project/deepdiff) (📥 2.9M / month · 📦 820 · ⏱️ 29.04.2021):
```
pip install deepdiff
```

Show 1 hidden projects...

- cloudpickle (🥉29 · ⭐ 990 · 📈) - Extended pickling support for Python objects. ❗️BSD-1-Clause

---

## Related Resources

- [**Best-of lists**](https://best-of.org): Discover other best-of lists with awesome open-source projects on all kinds of topics.
- [**LibHunt's Awesome Python**](https://python.libhunt.com/) - A curated list of awesome Python frameworks, packages, software and resources.

## Contribution

Contributions are encouraged and always welcome! If you like to add or update projects, choose one of the following ways:

- Open an issue by selecting one of the provided categories from the [issue page](https://github.com/tpvasconcelos/best-of-data-science/issues/new/choose) and fill in the requested information.
- Modify the [projects.yaml](https://github.com/tpvasconcelos/best-of-data-science/blob/main/projects.yaml) with your additions or changes, and submit a pull request. This can also be done directly via the [Github UI](https://github.com/tpvasconcelos/best-of-data-science/edit/main/projects.yaml).

If you like to contribute to or share suggestions regarding the project metadata collection or markdown generation, please refer to the [best-of-generator](https://github.com/best-of-lists/best-of-generator) repository. If you like to create your own best-of list, we recommend to follow [this guide](https://github.com/best-of-lists/best-of/blob/main/create-best-of-list.md).

For more information on how to add or update projects, please read the [contribution guidelines](https://github.com/tpvasconcelos/best-of-data-science/blob/main/CONTRIBUTING.md). By participating in this project, you agree to abide by its [Code of Conduct](https://github.com/tpvasconcelos/best-of-data-science/blob/main/.github/CODE_OF_CONDUCT.md).

## License

[![CC0](https://mirrors.creativecommons.org/presskit/buttons/88x31/svg/by-sa.svg)](https://creativecommons.org/licenses/by-sa/4.0/)