base on a Hassle-Free Python Experience <div align="center"> <img src="docs/static/favicon.svg" width="100"> <p><strong>Rye:</strong> a Hassle-Free Python Experience</p> </div> ---- <div align="center"> [![Rye](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/rye/main/artwork/badge.json)](https://rye.astral.sh) [![](https://dcbadge.vercel.app/api/server/drbkcdtSbg?style=flat)](https://discord.gg/drbkcdtSbg) </div> > [!NOTE] > > If you're getting started with Rye, consider [uv](https://github.com/astral-sh/uv), the > [successor project](https://lucumr.pocoo.org/2024/2/15/rye-grows-with-uv/) from the same maintainers. > > While Rye is actively maintained, uv offers a more stable and feature-complete experience, and is the recommended > choice for new projects. > > Having trouble migrating? [Let us know what's missing.](https://github.com/astral-sh/rye/discussions/1342) Rye is a comprehensive project and package management solution for Python. Born from [its creator's](https://github.com/mitsuhiko) desire to establish a one-stop-shop for all Python users, Rye provides a unified experience to install and manage Python installations, `pyproject.toml` based projects, dependencies and virtualenvs seamlessly. It's designed to accommodate complex projects, monorepos and to facilitate global tool installations. Curious? [Watch an introduction](https://youtu.be/q99TYA7LnuA). A hassle-free experience for Python developers at every level. <div align="center"> <a href="https://youtu.be/q99TYA7LnuA"> <img src="https://img.youtube.com/vi/q99TYA7LnuA/hqdefault.jpg" alt="Watch the instruction" width="40%"> </a> <p><em>Click on the thumbnail to watch a 16 minute introduction video</em></p> </div> ## In The Box Rye picks and ships the right tools so you can get started in minutes: * **Bootstraps Python:** it provides an automated way to get access to the amazing [Indygreg Python Builds](https://github.com/indygreg/python-build-standalone/) as well as the PyPy binary distributions. * **Linting and Formatting:** it bundles [ruff](https://github.com/astral-sh/ruff) and makes it available with `rye lint` and `rye fmt`. * **Managing Virtualenvs:** it uses the well established virtualenv library under the hood. * **Building Wheels:** it delegates that work largely to [build](https://pypi.org/project/build/). * **Publishing:** its publish command uses [twine](https://pypi.org/project/twine/) to accomplish this task. * **Locking and Dependency Installation:** is today implemented by using [uv](https://github.com/astral-sh/uv) with a fallback to [unearth](https://pypi.org/project/unearth/) and [pip-tools](https://github.com/jazzband/pip-tools/). * **Workspace support:** Rye lets you work with complex projects consisting of multiple libraries. ## Installation The installation takes just a minute: * **Linux and macOS:** ``` curl -sSf https://rye.astral.sh/get | bash ``` * **Windows:** Download and run the installer ([64-bit (x86-64)](https://github.com/astral-sh/rye/releases/latest/download/rye-x86_64-windows.exe) or [32-bit (x86)](https://github.com/astral-sh/rye/releases/latest/download/rye-x86-windows.exe)). For more details and other options, refer to the [installation instructions](https://rye.astral.sh/guide/installation/). ## Learn More Did I spark your interest? * [Visit the Website](https://rye.astral.sh/) * [Read the Documentation](https://rye.astral.sh/guide/) * [Report Problems in the Issue Tracker](https://github.com/astral-sh/rye/issues) ## More * [Discussion Forum](https://github.com/astral-sh/rye/discussions), to discuss the project on GitHub * [Discord](https://discord.gg/drbkcdtSbg), for conversations with other developers in text form * [Issue Tracker](https://github.com/astral-sh/rye/issues), if you run into bugs or have suggestions * [Badges](https://rye.astral.sh/community/#badges), if you want to show that you use Rye * License: MIT ", Assign "at most 3 tags" to the expected json: {"id":"8697","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"