pypm2


Namepypm2 JSON
Version 0.2.1 PyPI version JSON
download
home_pagehttps://github.com/ableinc/pypm
SummaryPython package manager for projects running Python3.6 and above.
upload_time2023-01-06 15:35:18
maintainer
docs_urlNone
authorAbleInc
requires_python
licenseISC
keywords package manager dependency manager manager python 3 cli tool command line tool
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PyPM

Pypm is a python package manager for projects using Python 3 and above. This library is similar to npm. This command line tool works just like npm and should mirror its features.

## Reason

<s>
The python community has no package management tool that is closely maintained. Also, outside of requirements.txt there is no adopted approach to storing and maintaining dependencies. In an effort to change this, I've introduced the PyPM tool. It uses the same package.json structure as npm, with all the configurations setup.py offers.
</s>

**UPDATED**:
<br />
Its been brought to my attention (by a redditor; shock), that the above statement was in fact a lie. So, let me be clear. This project was written over 2 years ago, in 2 hours, when I was creating my PyReact library (you can find the repo on my page). It was an effort to package up the framework to mimic ReactJS, and consequently, npm. Myself nor any of my other close Python devs had heard of Flint or Poetry, so I made my own dependency manager. I was today years old (10 August 2022) when it was brought to my attention. So, for rightfully argumentative community, I've decided to make this disclaimer that PyPM is not a game-changer and is just yet another option of Python package managers.
<br />

Another note, it currently uses ```setup.cfg``` as the configuration file. This will be changed to adopt the ```.toml``` configuration file approach.

This project intends to introduce ***another*** project management tool to the Python community.

## Install

***requires Python 3.6 or above***

PyPI

```bash
pip install pypm2
```

Locally

```bash
git clone https://github.com/ableinc/pypm
cd pypm
pip install --editable .
```

Visit PyPi:
[PyPi for Pyenv](https://pypi.org/project/pypm2/)

## How to Use

PyPM works just like npm. You are granted the same operations such as, init, install, uninstall, update, start, and run.
Run:

```bash
pypm --help
```

## Usage

1. init<br />
    Generate a brand new package.json file from information in your requirements.txt and setup.py.

    ```bash
    pypm init
    ```

2. run<br />
    Run a predefined scripts from the 'scripts' section of your package.json.

    ```bash
    pypm run tests
    ```

3. start<br />
    Run the start script.

    ```bash
    pypm start
    ```

4. install <sup>1</sup><br />
    Install all or specific packages. Using 'install' as a standalone, it will install all dependencies listed in your package.json (if exists).

    ```bash
    pypm install
    ```

    or

    ```bash
    pypm install package1 package2
    ```

5. uninstall <sup>1</sup><br />
    Uninstall all or specific packages. Using 'uninstall' as a standalone, it will uninstall all dependencies listed in your package.json (if exists).

    ```bash
    pypm uninstall
    ```

    or

    ```bash
    pypm uninstall package1 package2
    ```

6. update <sup>1</sup><br />
    Update all or specific packages. Using 'update' as a standalone, it will update all dependencies listed in your package.json (if exists).

    ```bash
    pypm update
    ```

    or

    ```bash
    pypm update package1 package2
    ```

7. setup<br />
    Instead of manually creating setup.py and setup.cfg files, you can add the same arguments under the 'setup' key in the package.json (refer to package.json), then run pypm setup to install your project locally.

    ```bash
    pypm setup
    ```

    Update setuptools, wheel, pip:

    ```bash
    pypm setup True
    ```

    Specify a version of python to use:

    ```bash
    pypm setup --python python3.9
    ```

8. getreqs<br />
    Generate the requirments.txt file based on your (virtual) environment.

    ```bash
    pypm getreqs
    ```

## Key

<sup>1</sup> Any arguments that pip or npm allow can be combined into these command line arguments. Initiated by adding --arguments option. Example:

```bash
pypm --arguments --no-cache install pydotenvs
```

The above example will install the library pydotenvs via PyPI using Pip's built in --no-cache feature.

If you have multiple arguments to append to a command you can seperate them by commas. For example:

```bash
pypm --arguments --no-cache,--verbose,--logs,~/Downloads install pydotenvs
```

## Notes

1. Documentation is on-going, so refer to examples above for now.

2. Unfortunately someone beat me to the name pypm. Note that when you use pip install be sure to include the 2. This would normally be an issue if you imported this package, but it's a command line tool

3. When installing using npm, the package.json will not update dependencies. This is a known bug. Until fixed, use npm/npx to do your installing for node projects. All other features work.

4. When generating the setup.py & setup.cfg files for development mode installation pip, setuptools and wheel may need to be updated. Follow the instructions above to update alongside setup functionality.

## Changelog

**January 2023**

- Fixed bug with stdlib_list library - it is limited to python version <= 3.9. Future updates to the library will remove this dependency.
- Updated micro version number. New version 0.2.1

**August 2022**

- Updated how the package is installed on the system
- New algorithm for automatically generating the requirements.txt file has been added
- ```pypm init``` can now generate the requirements.txt file by pypm command (pypm getreqs)
- You can now specify a version of python to use for ```pypm setup```. By default it will use python3.

**June 2021**

- Enhanced the arguments feature for CLI tool.

**April 2021**

- Minor bug fix to CLI tool; version update.

**September 2020**

- Verbose is no longer default
- Setup.py functionality added to package.json
- Custom error messages
- CLI updates
***Setup.py feature  has been introduced in version 0.1.3***

**August 2020**

- CLI has been rebuilt; less complex.
- PyPI easy install;  pip install pypm2

## Up Next

1. No cache options when installing. - ***Done*** | You may add any arguments that are allowed for pip, npm or any other CLI tool arguments
2. Better automation algorithm when generating a new package.json - ***Done***
3. Possible PyPI easy install - ***Done***
4. Add package-lock.json - **currently in development**
5. Replace setup.py & setup.cfg, move functionality to package.json - ***Done***
6. PyPI upload built in ***Done***

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/ableinc/pypm",
    "name": "pypm2",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "package manager,dependency manager,manager,python 3,cli tool,command line tool",
    "author": "AbleInc",
    "author_email": "douglas.jaylen@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/ee/1c/b115315120313530544e56a907f7e5523af409137fb60387056ede90d0f6/pypm2-0.2.1.tar.gz",
    "platform": null,
    "description": "# PyPM\n\nPypm is a python package manager for projects using Python 3 and above. This library is similar to npm. This command line tool works just like npm and should mirror its features.\n\n## Reason\n\n<s>\nThe python community has no package management tool that is closely maintained. Also, outside of requirements.txt there is no adopted approach to storing and maintaining dependencies. In an effort to change this, I've introduced the PyPM tool. It uses the same package.json structure as npm, with all the configurations setup.py offers.\n</s>\n\n**UPDATED**:\n<br />\nIts been brought to my attention (by a redditor; shock), that the above statement was in fact a lie. So, let me be clear. This project was written over 2 years ago, in 2 hours, when I was creating my PyReact library (you can find the repo on my page). It was an effort to package up the framework to mimic ReactJS, and consequently, npm. Myself nor any of my other close Python devs had heard of Flint or Poetry, so I made my own dependency manager. I was today years old (10 August 2022) when it was brought to my attention. So, for rightfully argumentative community, I've decided to make this disclaimer that PyPM is not a game-changer and is just yet another option of Python package managers.\n<br />\n\nAnother note, it currently uses ```setup.cfg``` as the configuration file. This will be changed to adopt the ```.toml``` configuration file approach.\n\nThis project intends to introduce ***another*** project management tool to the Python community.\n\n## Install\n\n***requires Python 3.6 or above***\n\nPyPI\n\n```bash\npip install pypm2\n```\n\nLocally\n\n```bash\ngit clone https://github.com/ableinc/pypm\ncd pypm\npip install --editable .\n```\n\nVisit PyPi:\n[PyPi for Pyenv](https://pypi.org/project/pypm2/)\n\n## How to Use\n\nPyPM works just like npm. You are granted the same operations such as, init, install, uninstall, update, start, and run.\nRun:\n\n```bash\npypm --help\n```\n\n## Usage\n\n1. init<br />\n    Generate a brand new package.json file from information in your requirements.txt and setup.py.\n\n    ```bash\n    pypm init\n    ```\n\n2. run<br />\n    Run a predefined scripts from the 'scripts' section of your package.json.\n\n    ```bash\n    pypm run tests\n    ```\n\n3. start<br />\n    Run the start script.\n\n    ```bash\n    pypm start\n    ```\n\n4. install <sup>1</sup><br />\n    Install all or specific packages. Using 'install' as a standalone, it will install all dependencies listed in your package.json (if exists).\n\n    ```bash\n    pypm install\n    ```\n\n    or\n\n    ```bash\n    pypm install package1 package2\n    ```\n\n5. uninstall <sup>1</sup><br />\n    Uninstall all or specific packages. Using 'uninstall' as a standalone, it will uninstall all dependencies listed in your package.json (if exists).\n\n    ```bash\n    pypm uninstall\n    ```\n\n    or\n\n    ```bash\n    pypm uninstall package1 package2\n    ```\n\n6. update <sup>1</sup><br />\n    Update all or specific packages. Using 'update' as a standalone, it will update all dependencies listed in your package.json (if exists).\n\n    ```bash\n    pypm update\n    ```\n\n    or\n\n    ```bash\n    pypm update package1 package2\n    ```\n\n7. setup<br />\n    Instead of manually creating setup.py and setup.cfg files, you can add the same arguments under the 'setup' key in the package.json (refer to package.json), then run pypm setup to install your project locally.\n\n    ```bash\n    pypm setup\n    ```\n\n    Update setuptools, wheel, pip:\n\n    ```bash\n    pypm setup True\n    ```\n\n    Specify a version of python to use:\n\n    ```bash\n    pypm setup --python python3.9\n    ```\n\n8. getreqs<br />\n    Generate the requirments.txt file based on your (virtual) environment.\n\n    ```bash\n    pypm getreqs\n    ```\n\n## Key\n\n<sup>1</sup> Any arguments that pip or npm allow can be combined into these command line arguments. Initiated by adding --arguments option. Example:\n\n```bash\npypm --arguments --no-cache install pydotenvs\n```\n\nThe above example will install the library pydotenvs via PyPI using Pip's built in --no-cache feature.\n\nIf you have multiple arguments to append to a command you can seperate them by commas. For example:\n\n```bash\npypm --arguments --no-cache,--verbose,--logs,~/Downloads install pydotenvs\n```\n\n## Notes\n\n1. Documentation is on-going, so refer to examples above for now.\n\n2. Unfortunately someone beat me to the name pypm. Note that when you use pip install be sure to include the 2. This would normally be an issue if you imported this package, but it's a command line tool\n\n3. When installing using npm, the package.json will not update dependencies. This is a known bug. Until fixed, use npm/npx to do your installing for node projects. All other features work.\n\n4. When generating the setup.py & setup.cfg files for development mode installation pip, setuptools and wheel may need to be updated. Follow the instructions above to update alongside setup functionality.\n\n## Changelog\n\n**January 2023**\n\n- Fixed bug with stdlib_list library - it is limited to python version <= 3.9. Future updates to the library will remove this dependency.\n- Updated micro version number. New version 0.2.1\n\n**August 2022**\n\n- Updated how the package is installed on the system\n- New algorithm for automatically generating the requirements.txt file has been added\n- ```pypm init``` can now generate the requirements.txt file by pypm command (pypm getreqs)\n- You can now specify a version of python to use for ```pypm setup```. By default it will use python3.\n\n**June 2021**\n\n- Enhanced the arguments feature for CLI tool.\n\n**April 2021**\n\n- Minor bug fix to CLI tool; version update.\n\n**September 2020**\n\n- Verbose is no longer default\n- Setup.py functionality added to package.json\n- Custom error messages\n- CLI updates\n***Setup.py feature  has been introduced in version 0.1.3***\n\n**August 2020**\n\n- CLI has been rebuilt; less complex.\n- PyPI easy install;  pip install pypm2\n\n## Up Next\n\n1. No cache options when installing. - ***Done*** | You may add any arguments that are allowed for pip, npm or any other CLI tool arguments\n2. Better automation algorithm when generating a new package.json - ***Done***\n3. Possible PyPI easy install - ***Done***\n4. Add package-lock.json - **currently in development**\n5. Replace setup.py & setup.cfg, move functionality to package.json - ***Done***\n6. PyPI upload built in ***Done***\n",
    "bugtrack_url": null,
    "license": "ISC",
    "summary": "Python package manager for projects running Python3.6 and above.",
    "version": "0.2.1",
    "split_keywords": [
        "package manager",
        "dependency manager",
        "manager",
        "python 3",
        "cli tool",
        "command line tool"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ee1cb115315120313530544e56a907f7e5523af409137fb60387056ede90d0f6",
                "md5": "c330a9a86d40ac0fbc6e5865bda90438",
                "sha256": "100fe1f021870909bb29b9b66158817253798aee93f4684f6ead597ba3980268"
            },
            "downloads": -1,
            "filename": "pypm2-0.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "c330a9a86d40ac0fbc6e5865bda90438",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 12783,
            "upload_time": "2023-01-06T15:35:18",
            "upload_time_iso_8601": "2023-01-06T15:35:18.179708Z",
            "url": "https://files.pythonhosted.org/packages/ee/1c/b115315120313530544e56a907f7e5523af409137fb60387056ede90d0f6/pypm2-0.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-01-06 15:35:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "ableinc",
    "github_project": "pypm",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "pypm2"
}
        
Elapsed time: 0.04198s