Skip to main content

A Python library that helps prevent accidental overwrites of hand-compiled libraries

Project description

Install-Preserve

Install-Preserve is a Python library that helps detect already installed packages and removes them from the install_requires list within the setup.py file. This prevents accidentally overwriting hand-compiled libraries such as OpenCV, PyTorch, or TensorFlow.

Usage

from setuptools import setup

try:
    from install_preserve import preserve
except ImportError:
    import pip
    pip.main(['install', 'install-preserve'])
    from install_preserve import preserve
    

requirements = [
    'pyyaml',
    'tqdm',
    'numpy',
    'easydict==1.9.0',
    'scikit-image==0.17.2',
    'scikit-learn==0.24.2',
    'joblib',
    'matplotlib',
    'pandas',
    'albumentations==0.5.2',
    'hydra-core==1.1.0',
    'tabulate',
    'webdataset',
    'packaging',
    'wldhx.yadisk-direct',
    'opencv-python',
    'torch==2.0.0'
]

excludes = [
    'tqdm',
    'opencv-python:cv2',  # Note the colon delimited statement to illustrate <package-name>:<import alias>
    'torch'
]
requirements = preserve(requirements, excludes, verbose=True)

setup(
    name='your_package',
    version='1.0',
    install_requires=requirements,
    # Other setup options...
)

Example Output

excluding package tqdm as it is already installed
excluding package opencv-python as it is already installed
excluding package pytorch as it is already installed

Installation

To install, you can use pip:

pip install install-preserve

License

This library is licensed under the MIT License. See the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit pull requests or open issues on the GitHub repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

install-preserve-0.1.0.tar.gz (3.2 kB view hashes)

Uploaded Source

Built Distribution

install_preserve-0.1.0-py3-none-any.whl (3.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page