{"id":16913426,"url":"https://github.com/frostming/onepm","last_synced_at":"2025-04-09T17:22:59.385Z","repository":{"id":37844539,"uuid":"505344112","full_name":"frostming/onepm","owner":"frostming","description":"Picks the right package manager for you","archived":false,"fork":false,"pushed_at":"2024-10-11T08:01:16.000Z","size":86,"stargazers_count":46,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-02T11:49:04.280Z","etag":null,"topics":["efficiency","package-manager","python"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/onepm","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/frostming.png","metadata":{"files":{"readme":"README.md","changelog":"changelogithub.config.json","contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["frostming"],"custom":["https://afdian.net/a/frostming"]}},"created_at":"2022-06-20T07:48:26.000Z","updated_at":"2025-02-18T07:57:14.000Z","dependencies_parsed_at":"2024-02-05T09:32:42.087Z","dependency_job_id":"cc89ef95-13a2-4c1d-8039-47d6a5aac96e","html_url":"https://github.com/frostming/onepm","commit_stats":null,"previous_names":[],"tags_count":11,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frostming%2Fonepm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frostming%2Fonepm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frostming%2Fonepm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frostming%2Fonepm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/frostming","download_url":"https://codeload.github.com/frostming/onepm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248075319,"owners_count":21043563,"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":["efficiency","package-manager","python"],"created_at":"2024-10-13T19:13:20.957Z","updated_at":"2025-04-09T17:22:59.363Z","avatar_url":"https://github.com/frostming.png","language":"Python","readme":"# onepm\n\nPicks the right package manager for you.\n\nDon't make me think about which package manager to use when I clone a project from other people. OnePM will pick the right package manager by searching for the lock files and/or the project settings in `pyproject.toml`.\n\nThis project is created in the same spirit as [@antfu/ni](https://www.npmjs.com/package/@antfu/ni).\n\nSupported package managers: [pip], [pipenv], [poetry], [pdm], [uv]\n\n[pip]: https://pypi.org/project/pip/\n[pipenv]: https://pypi.org/project/pipenv/\n[poetry]: https://pypi.org/project/poetry/\n[pdm]: https://pypi.org/project/pdm/\n[uv]: https://pypi.org/project/uv/\n\n## Install onepm\n\nInstall with `pipx`:\n\n```bash\npipx install onepm\n```\n\nOr use pdm global install:\n\n```bash\npdm add -g onepm\n```\n\n## Provided Shortcuts\n\n### `pi` - install\n\n```bash\npi\n\n# (venv) pip install . or pip install -r requirements.txt\n# pipenv install\n# poetry install\n# pdm install\n```\n\n```bash\npi requests\n\n# (venv) pip install requests\n# pipenv install requests\n# poetry add requests\n# pdm add requests\n```\n\n### `pu` - update\n\n```bash\npu\n\n# not available for pip\n# pipenv update\n# poetry update\n# pdm update\n```\n\n### `pr` - run\n\n```bash\npr ...args\n\n# (venv) ...args\n# pipenv run ...args\n# poetry run ...args\n# pdm run ...args\n```\n\n### `pun` - uninstall\n\n```bash\npun requests\n\n# pip uninstall requests\n# pipenv uninstall requests\n# poetry remove requests\n# pdm remove requests\n```\n\n### `pa` - Alias for the package manager\n\n```bash\npa\n\n# pip\n# pipenv\n# poetry\n# pdm\n```\n\nIf the package manager agent is pip, **OnePM will enforce an activated virtualenv, or a `.venv` under the current directory**.\n\n## Shims for Package Managers\n\nOnePM also provides shim for the package managers like [corepack](https://nodejs.org/api/corepack.html),\nso you don't need to install package managers yourself. To enable it, install OnePM with `shims` extra:\n\n```bash\npipx install --include-deps onepm[shims]\n```\n\nOnePM reads the `package-manager` field under `[tool.onepm]` table in `pyproject.toml`, and install the required package manager with the correct version in an isolated environment.\n\n```toml\n[tool.onepm]\npackage-manager = \"poetry\"\n```\n\nOr you can restrict the version range:\n\n```toml\n[tool.onepm]\npackage-manager = \"poetry\u003e=1.1.0\"\n```\n\n_For Python package management, OnePM is all you need._\n\n## OnePM Management Commands\n\n- `onepm install`: Install the package manager configured in project file\n- `onepm use $SPEC`: Use the package manager given by the requirement spec\n- `onepm update|up`: Update the package manager used in the project\n- `onepm cleanup [$NAME]`: Clean up installations of specified package manager or all\n- `onepm list|ls $NAME`: List all installed versions of the given package manager\n","funding_links":["https://github.com/sponsors/frostming","https://afdian.net/a/frostming"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrostming%2Fonepm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrostming%2Fonepm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrostming%2Fonepm/lists"}