diff options
Diffstat (limited to 'python-ipydeps.spec')
-rw-r--r-- | python-ipydeps.spec | 426 |
1 files changed, 426 insertions, 0 deletions
diff --git a/python-ipydeps.spec b/python-ipydeps.spec new file mode 100644 index 0000000..30b6c17 --- /dev/null +++ b/python-ipydeps.spec @@ -0,0 +1,426 @@ +%global _empty_manifest_terminate_build 0 +Name: python-ipydeps +Version: 2020.240.0 +Release: 1 +Summary: A pip interface wrapper for installing packages from within Jupyter notebooks. +License: MIT +URL: https://github.com/nbgallery/ipydeps +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/88/9a/c26792388fc38bc4551d675d6ff08e2b208c51fae04fced7ca2453b3362b/ipydeps-2020.240.0.tar.gz +BuildArch: noarch + + +%description +# ipydeps + +A friendly way to specify your Jupyter notebook's dependencies right at the top of the notebook. +This helps ensure that other users have the Python packages they need to successfully run your notebook. + +Unlike `!pip install`, ipydeps makes sure that the packages get installed into the same Python environment that's executing your notebook's code cells. +No more `!pip`, `!pip3`, `!pip -V` frustrations for you and your users. + +It also includes features for installation accelerators via centrally-managed overrides, and PKI integration. + +## Usage + +You can install individual packages like so. + +```python +import ipydeps +ipydeps.pip('numpy') +import numpy as np +``` + +You can also install multiple packages by passing a list. + +```python +import ipydeps +ipydeps.pip(['pymc', 'beautifulsoup4']) +from pymc import DiscreteUniform +from bs4 import BeautifulSoup +``` + +If you want more verbose output from pip, just set the ```verbose``` parameter to ```True```. + +```python +import ipydeps +ipydeps.pip('sklearn', verbose=True) +from sklearn.cluster import KMeans +``` + +## Configuration Files + +### ipydeps.conf +pip options for your particular environment can be placed in ~/.config/ipydeps/ipydeps.conf. For example, the following ipydeps.conf could be used to specify that you want ipydeps to trust a host, timeout after 30 seconds, and install all packages into user space: + +```text +--trusted-host=my.pip.server.com +--user +--timeout=30 +``` + +Some pip options have to be specified per-package. ipydeps will take care of specifying the option for each package for you. However, make sure you're working in a fully trusted environment before using these options. Putting these two lines in your ipydeps.conf will basically turn off any of pip's built-in verification. + +```text +--allow-external +--allow-unverified +``` + +If you were installing packages called "foo" and "bar" that you didn't want verified, then normally you'd have to pass ```--allow-external=foo --allow-external=bar --allow-unverified=foo --allow-unverified=bar```, but ipydeps will just fill these in for each package automatically if you simply put ```--allow-external``` and ```--allow-unverified``` in your ipydeps.conf. + +### dependencies.link + +Sometimes there's a better way to install certain packages, such as a pre-built rpm or apk. ~/.config/ipydeps/dependencies.link contains a URL for a file that overrides ipydeps.pip() calls for certain packages. + +For example, maybe you want to install numpy, so you call ipydeps.pip('numpy'). However, numpy can take a while to install from scratch. If there's a pre-built version of numpy available, it can install in seconds instead of minutes. + +dependencies.link contains a URL pointing to a dependencies.json file which maps the original package names to their overrides. + +Only place a trusted link in your dependencies.link file, since dependencies.json could contain malicious commands that get executed as you. + +If you are managing multiple Jupyter environment deployments, you can have different dependencies.link files pointing at different dependencies.json files for each environment. +For example, Fedora deployments can have a dependencies.link that points to https://trusted.host/dependencies-fedora.json, while FreeBSD deployments can have a dependencies.link that points to https://trusted.host/dependencies-freebsd.json. +This allows multiple environment deployments to be centrally managed by changing their corresponding dependencies.json files. + +### dependencies.json + +dependencies.link contains a URL pointing to a dependencies.json file which maps the original package names to their overrides. +The dependencies.json file should look something like this contrived example: + +```json +{ + "python-3": { + "numpy": [ + [ "yum", "install", "python3-numpy" ] + ], + "labsetup": [ + [ "yum", "install", "python3-numpy" ], + [ "yum", "install", "python3-scikitlearn" ], + [ "yum", "install", "python3-pandas" ], + [ "yum", "install", "python3-pymc3" ] + ] + }, + "python-3.5": { + "numpy": [ + [ "yum", "install", "special-prerequisite-for-python-3.5" ], + [ "yum", "install", "python3-numpy" ] + ] + }, + "python-2.7": { + "foo": [ + [ "echo", "Why", "are", "you", "still", "using", "python", "2.7?" ] + ] + } +} +``` + +Note that ipydeps will use the most specific override it can find. +In the example above, a Python 3.5 environment will use the python-3.5 override for numpy. The python-3 override for numpy will be ignored. + +Also note that all package names are handled in a case-insensitive manner (just like pip), so ipydeps will output a warning if it finds duplicate packages listed in your dependencies.json file. + +### Windows support + +ipydeps now supports Windows as well as Linux. It will look for your home directory using `os.path.expanduser('~')`. In most cases, this just points to C:\Users\yourname. You should put your .config/ipydeps/ipydeps.conf file in that directory. + +### pypki2 support + +In some environments, having a PKI-enabled pip server is advantageous. To that end, pypki2 integration is supported. Simply add the following to ipydeps.conf: + +```text +--use-pypki2 +``` + +%package -n python3-ipydeps +Summary: A pip interface wrapper for installing packages from within Jupyter notebooks. +Provides: python-ipydeps +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-ipydeps +# ipydeps + +A friendly way to specify your Jupyter notebook's dependencies right at the top of the notebook. +This helps ensure that other users have the Python packages they need to successfully run your notebook. + +Unlike `!pip install`, ipydeps makes sure that the packages get installed into the same Python environment that's executing your notebook's code cells. +No more `!pip`, `!pip3`, `!pip -V` frustrations for you and your users. + +It also includes features for installation accelerators via centrally-managed overrides, and PKI integration. + +## Usage + +You can install individual packages like so. + +```python +import ipydeps +ipydeps.pip('numpy') +import numpy as np +``` + +You can also install multiple packages by passing a list. + +```python +import ipydeps +ipydeps.pip(['pymc', 'beautifulsoup4']) +from pymc import DiscreteUniform +from bs4 import BeautifulSoup +``` + +If you want more verbose output from pip, just set the ```verbose``` parameter to ```True```. + +```python +import ipydeps +ipydeps.pip('sklearn', verbose=True) +from sklearn.cluster import KMeans +``` + +## Configuration Files + +### ipydeps.conf +pip options for your particular environment can be placed in ~/.config/ipydeps/ipydeps.conf. For example, the following ipydeps.conf could be used to specify that you want ipydeps to trust a host, timeout after 30 seconds, and install all packages into user space: + +```text +--trusted-host=my.pip.server.com +--user +--timeout=30 +``` + +Some pip options have to be specified per-package. ipydeps will take care of specifying the option for each package for you. However, make sure you're working in a fully trusted environment before using these options. Putting these two lines in your ipydeps.conf will basically turn off any of pip's built-in verification. + +```text +--allow-external +--allow-unverified +``` + +If you were installing packages called "foo" and "bar" that you didn't want verified, then normally you'd have to pass ```--allow-external=foo --allow-external=bar --allow-unverified=foo --allow-unverified=bar```, but ipydeps will just fill these in for each package automatically if you simply put ```--allow-external``` and ```--allow-unverified``` in your ipydeps.conf. + +### dependencies.link + +Sometimes there's a better way to install certain packages, such as a pre-built rpm or apk. ~/.config/ipydeps/dependencies.link contains a URL for a file that overrides ipydeps.pip() calls for certain packages. + +For example, maybe you want to install numpy, so you call ipydeps.pip('numpy'). However, numpy can take a while to install from scratch. If there's a pre-built version of numpy available, it can install in seconds instead of minutes. + +dependencies.link contains a URL pointing to a dependencies.json file which maps the original package names to their overrides. + +Only place a trusted link in your dependencies.link file, since dependencies.json could contain malicious commands that get executed as you. + +If you are managing multiple Jupyter environment deployments, you can have different dependencies.link files pointing at different dependencies.json files for each environment. +For example, Fedora deployments can have a dependencies.link that points to https://trusted.host/dependencies-fedora.json, while FreeBSD deployments can have a dependencies.link that points to https://trusted.host/dependencies-freebsd.json. +This allows multiple environment deployments to be centrally managed by changing their corresponding dependencies.json files. + +### dependencies.json + +dependencies.link contains a URL pointing to a dependencies.json file which maps the original package names to their overrides. +The dependencies.json file should look something like this contrived example: + +```json +{ + "python-3": { + "numpy": [ + [ "yum", "install", "python3-numpy" ] + ], + "labsetup": [ + [ "yum", "install", "python3-numpy" ], + [ "yum", "install", "python3-scikitlearn" ], + [ "yum", "install", "python3-pandas" ], + [ "yum", "install", "python3-pymc3" ] + ] + }, + "python-3.5": { + "numpy": [ + [ "yum", "install", "special-prerequisite-for-python-3.5" ], + [ "yum", "install", "python3-numpy" ] + ] + }, + "python-2.7": { + "foo": [ + [ "echo", "Why", "are", "you", "still", "using", "python", "2.7?" ] + ] + } +} +``` + +Note that ipydeps will use the most specific override it can find. +In the example above, a Python 3.5 environment will use the python-3.5 override for numpy. The python-3 override for numpy will be ignored. + +Also note that all package names are handled in a case-insensitive manner (just like pip), so ipydeps will output a warning if it finds duplicate packages listed in your dependencies.json file. + +### Windows support + +ipydeps now supports Windows as well as Linux. It will look for your home directory using `os.path.expanduser('~')`. In most cases, this just points to C:\Users\yourname. You should put your .config/ipydeps/ipydeps.conf file in that directory. + +### pypki2 support + +In some environments, having a PKI-enabled pip server is advantageous. To that end, pypki2 integration is supported. Simply add the following to ipydeps.conf: + +```text +--use-pypki2 +``` + +%package help +Summary: Development documents and examples for ipydeps +Provides: python3-ipydeps-doc +%description help +# ipydeps + +A friendly way to specify your Jupyter notebook's dependencies right at the top of the notebook. +This helps ensure that other users have the Python packages they need to successfully run your notebook. + +Unlike `!pip install`, ipydeps makes sure that the packages get installed into the same Python environment that's executing your notebook's code cells. +No more `!pip`, `!pip3`, `!pip -V` frustrations for you and your users. + +It also includes features for installation accelerators via centrally-managed overrides, and PKI integration. + +## Usage + +You can install individual packages like so. + +```python +import ipydeps +ipydeps.pip('numpy') +import numpy as np +``` + +You can also install multiple packages by passing a list. + +```python +import ipydeps +ipydeps.pip(['pymc', 'beautifulsoup4']) +from pymc import DiscreteUniform +from bs4 import BeautifulSoup +``` + +If you want more verbose output from pip, just set the ```verbose``` parameter to ```True```. + +```python +import ipydeps +ipydeps.pip('sklearn', verbose=True) +from sklearn.cluster import KMeans +``` + +## Configuration Files + +### ipydeps.conf +pip options for your particular environment can be placed in ~/.config/ipydeps/ipydeps.conf. For example, the following ipydeps.conf could be used to specify that you want ipydeps to trust a host, timeout after 30 seconds, and install all packages into user space: + +```text +--trusted-host=my.pip.server.com +--user +--timeout=30 +``` + +Some pip options have to be specified per-package. ipydeps will take care of specifying the option for each package for you. However, make sure you're working in a fully trusted environment before using these options. Putting these two lines in your ipydeps.conf will basically turn off any of pip's built-in verification. + +```text +--allow-external +--allow-unverified +``` + +If you were installing packages called "foo" and "bar" that you didn't want verified, then normally you'd have to pass ```--allow-external=foo --allow-external=bar --allow-unverified=foo --allow-unverified=bar```, but ipydeps will just fill these in for each package automatically if you simply put ```--allow-external``` and ```--allow-unverified``` in your ipydeps.conf. + +### dependencies.link + +Sometimes there's a better way to install certain packages, such as a pre-built rpm or apk. ~/.config/ipydeps/dependencies.link contains a URL for a file that overrides ipydeps.pip() calls for certain packages. + +For example, maybe you want to install numpy, so you call ipydeps.pip('numpy'). However, numpy can take a while to install from scratch. If there's a pre-built version of numpy available, it can install in seconds instead of minutes. + +dependencies.link contains a URL pointing to a dependencies.json file which maps the original package names to their overrides. + +Only place a trusted link in your dependencies.link file, since dependencies.json could contain malicious commands that get executed as you. + +If you are managing multiple Jupyter environment deployments, you can have different dependencies.link files pointing at different dependencies.json files for each environment. +For example, Fedora deployments can have a dependencies.link that points to https://trusted.host/dependencies-fedora.json, while FreeBSD deployments can have a dependencies.link that points to https://trusted.host/dependencies-freebsd.json. +This allows multiple environment deployments to be centrally managed by changing their corresponding dependencies.json files. + +### dependencies.json + +dependencies.link contains a URL pointing to a dependencies.json file which maps the original package names to their overrides. +The dependencies.json file should look something like this contrived example: + +```json +{ + "python-3": { + "numpy": [ + [ "yum", "install", "python3-numpy" ] + ], + "labsetup": [ + [ "yum", "install", "python3-numpy" ], + [ "yum", "install", "python3-scikitlearn" ], + [ "yum", "install", "python3-pandas" ], + [ "yum", "install", "python3-pymc3" ] + ] + }, + "python-3.5": { + "numpy": [ + [ "yum", "install", "special-prerequisite-for-python-3.5" ], + [ "yum", "install", "python3-numpy" ] + ] + }, + "python-2.7": { + "foo": [ + [ "echo", "Why", "are", "you", "still", "using", "python", "2.7?" ] + ] + } +} +``` + +Note that ipydeps will use the most specific override it can find. +In the example above, a Python 3.5 environment will use the python-3.5 override for numpy. The python-3 override for numpy will be ignored. + +Also note that all package names are handled in a case-insensitive manner (just like pip), so ipydeps will output a warning if it finds duplicate packages listed in your dependencies.json file. + +### Windows support + +ipydeps now supports Windows as well as Linux. It will look for your home directory using `os.path.expanduser('~')`. In most cases, this just points to C:\Users\yourname. You should put your .config/ipydeps/ipydeps.conf file in that directory. + +### pypki2 support + +In some environments, having a PKI-enabled pip server is advantageous. To that end, pypki2 integration is supported. Simply add the following to ipydeps.conf: + +```text +--use-pypki2 +``` + +%prep +%autosetup -n ipydeps-2020.240.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-ipydeps -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 2020.240.0-1 +- Package Spec generated |