diff options
author | CoprDistGit <infra@openeuler.org> | 2023-06-09 04:23:16 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-06-09 04:23:16 +0000 |
commit | 9e74ff1e8dc95be10420d098164bdeb39c3eb083 (patch) | |
tree | 6f2db632a06472d28998768147b381a8e53b5e51 | |
parent | e97fa112bc808f60437be918ba622ee3fec8e157 (diff) |
automatic import of python-k1libopeneuler20.03
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-k1lib.spec | 352 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 354 insertions, 0 deletions
@@ -0,0 +1 @@ +/k1lib-1.4.linux-x86_64.tar.gz diff --git a/python-k1lib.spec b/python-k1lib.spec new file mode 100644 index 0000000..19c26e6 --- /dev/null +++ b/python-k1lib.spec @@ -0,0 +1,352 @@ +%global _empty_manifest_terminate_build 0 +Name: python-k1lib +Version: 1.4 +Release: 1 +Summary: Some nice ML overhaul +License: MIT +URL: https://k1lib.com +Source0: https://mirrors.aliyun.com/pypi/web/packages/0b/5f/ab2685cce2319e4e7ded3533c7888d1018341d6bee67c8636fb649fbb534/k1lib-1.4.linux-x86_64.tar.gz +BuildArch: noarch + +Requires: python3-numpy +Requires: python3-matplotlib +Requires: python3-dill +Requires: python3-forbiddenfruit +Requires: python3-wurlitzer +Requires: python3-validators +Requires: python3-graphviz +Requires: python3-torchvision +Requires: python3-pillow +Requires: python3-scikit-image +Requires: python3-pyperclip +Requires: python3-k1a +Requires: python3-torch + +%description +# k1lib + +This library enables piping in Python, and has a lot of prebuilt piping tools +to support this workflow. + +## Installation + +```bash + pip install k1lib[all] +``` + +This will install lots of heavy dependencies like PyTorch. If you want to install +the leanest version of the library, do this instead: + +```bash + pip install k1lib +``` + +To use it in a notebook, do this: + +```python + from k1lib.imports import * +``` + +Check out the source code for "k1lib.imports" if you're curious what it's +importing. If you hate \* imports for whatever reason, you can import cli +tools individually, like this:: + +```python + from k1lib.cli import ls, cat, grep, apply, batched, display +``` + +## Examples + +```python +# returns [0, 1, 4, 9, 16], kinda like map +range(5) | apply(lambda x: x**2) | deref() + +# plotting the function y = x^2 +x = np.linspace(-2, 2); y = x**2 +plt.plot(x, y) # normal way +[x, y] | ~aS(plt.plot) # pipe way + +# plotting the functions y = x**2, y = x**3, y = x**4 +x = np.linspace(-2, 2) +[2, 3, 4] | apply(lambda exp: [x, x**exp]) | ~apply(plt.plot) | deref() + +# loading csv file and displaying first 10 rows in a nice table +cat("abc.csv") | apply(lambda x: x.split(",")) | display() + +# searching for "gene_name: ..." lines in a file and display a nice overview of just the gene names alone +cat("abc.txt") | grep("gene_name: ") | apply(lambda x: x.split(": ")[1]) | batched(4) | display() + +# manipulate numpy arrays and pytorch tensors +a = np.random.randn(3, 4, 5) +a | transpose() | shape() # returns (4, 3, 5) +a | transpose(0, 2) | shape() # returns (5, 4, 3) + +# loading images from categories and splitting them into train and valid sets. Image url: dataset/categoryA/image1.jpg +train, valid = ls("dataset") | apply(ls() | splitW()) | transpose() | deref() +# shape of output is (train/valid, category, image url). It was (category, train/valid, image url) before going through transpose() + +# executing task in multiple processes +range(10_000_000) | batched(1_000_000) | applyMp(toSum()) | toSum() +# this splits numbers from 0 to 10M into 10 batches, and then sum each batch in parallel, and then sum the results of each batch + +# executing task in multiple processes on multiple computers +range(10_000_000) | batched(1_000_000) | applyCl(toSum()) | toSum() +``` + +You can combine these "cli tools" together in really complex ways to do really complex +manipulation really fast and with little code. Hell, you can even create a full blown +PyTorch dataloader from scratch where you're in control of every detail, operating in 7 +dimensions, in multiple processes on multiple nodes, in just 6 lines of code. Check over +the basics of it here: [k1lib.cli](https://k1lib.com/latest/cli/index.html). + +After doing that, you can check out the tutorials to get a large overview of how everything +integrates together nicely. + +## Some details + +- Repo: https://github.com/157239n/k1lib/ +- Docs: https://k1lib.com + +## Contacts? + +If you found bugs, open a new issue on the repo itself. If you want to have a chat, then email me at 157239q@gmail.com + +If you want to get an overview of how the repo is structured, read [contributing.md](contributing.md) + + +%package -n python3-k1lib +Summary: Some nice ML overhaul +Provides: python-k1lib +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-k1lib +# k1lib + +This library enables piping in Python, and has a lot of prebuilt piping tools +to support this workflow. + +## Installation + +```bash + pip install k1lib[all] +``` + +This will install lots of heavy dependencies like PyTorch. If you want to install +the leanest version of the library, do this instead: + +```bash + pip install k1lib +``` + +To use it in a notebook, do this: + +```python + from k1lib.imports import * +``` + +Check out the source code for "k1lib.imports" if you're curious what it's +importing. If you hate \* imports for whatever reason, you can import cli +tools individually, like this:: + +```python + from k1lib.cli import ls, cat, grep, apply, batched, display +``` + +## Examples + +```python +# returns [0, 1, 4, 9, 16], kinda like map +range(5) | apply(lambda x: x**2) | deref() + +# plotting the function y = x^2 +x = np.linspace(-2, 2); y = x**2 +plt.plot(x, y) # normal way +[x, y] | ~aS(plt.plot) # pipe way + +# plotting the functions y = x**2, y = x**3, y = x**4 +x = np.linspace(-2, 2) +[2, 3, 4] | apply(lambda exp: [x, x**exp]) | ~apply(plt.plot) | deref() + +# loading csv file and displaying first 10 rows in a nice table +cat("abc.csv") | apply(lambda x: x.split(",")) | display() + +# searching for "gene_name: ..." lines in a file and display a nice overview of just the gene names alone +cat("abc.txt") | grep("gene_name: ") | apply(lambda x: x.split(": ")[1]) | batched(4) | display() + +# manipulate numpy arrays and pytorch tensors +a = np.random.randn(3, 4, 5) +a | transpose() | shape() # returns (4, 3, 5) +a | transpose(0, 2) | shape() # returns (5, 4, 3) + +# loading images from categories and splitting them into train and valid sets. Image url: dataset/categoryA/image1.jpg +train, valid = ls("dataset") | apply(ls() | splitW()) | transpose() | deref() +# shape of output is (train/valid, category, image url). It was (category, train/valid, image url) before going through transpose() + +# executing task in multiple processes +range(10_000_000) | batched(1_000_000) | applyMp(toSum()) | toSum() +# this splits numbers from 0 to 10M into 10 batches, and then sum each batch in parallel, and then sum the results of each batch + +# executing task in multiple processes on multiple computers +range(10_000_000) | batched(1_000_000) | applyCl(toSum()) | toSum() +``` + +You can combine these "cli tools" together in really complex ways to do really complex +manipulation really fast and with little code. Hell, you can even create a full blown +PyTorch dataloader from scratch where you're in control of every detail, operating in 7 +dimensions, in multiple processes on multiple nodes, in just 6 lines of code. Check over +the basics of it here: [k1lib.cli](https://k1lib.com/latest/cli/index.html). + +After doing that, you can check out the tutorials to get a large overview of how everything +integrates together nicely. + +## Some details + +- Repo: https://github.com/157239n/k1lib/ +- Docs: https://k1lib.com + +## Contacts? + +If you found bugs, open a new issue on the repo itself. If you want to have a chat, then email me at 157239q@gmail.com + +If you want to get an overview of how the repo is structured, read [contributing.md](contributing.md) + + +%package help +Summary: Development documents and examples for k1lib +Provides: python3-k1lib-doc +%description help +# k1lib + +This library enables piping in Python, and has a lot of prebuilt piping tools +to support this workflow. + +## Installation + +```bash + pip install k1lib[all] +``` + +This will install lots of heavy dependencies like PyTorch. If you want to install +the leanest version of the library, do this instead: + +```bash + pip install k1lib +``` + +To use it in a notebook, do this: + +```python + from k1lib.imports import * +``` + +Check out the source code for "k1lib.imports" if you're curious what it's +importing. If you hate \* imports for whatever reason, you can import cli +tools individually, like this:: + +```python + from k1lib.cli import ls, cat, grep, apply, batched, display +``` + +## Examples + +```python +# returns [0, 1, 4, 9, 16], kinda like map +range(5) | apply(lambda x: x**2) | deref() + +# plotting the function y = x^2 +x = np.linspace(-2, 2); y = x**2 +plt.plot(x, y) # normal way +[x, y] | ~aS(plt.plot) # pipe way + +# plotting the functions y = x**2, y = x**3, y = x**4 +x = np.linspace(-2, 2) +[2, 3, 4] | apply(lambda exp: [x, x**exp]) | ~apply(plt.plot) | deref() + +# loading csv file and displaying first 10 rows in a nice table +cat("abc.csv") | apply(lambda x: x.split(",")) | display() + +# searching for "gene_name: ..." lines in a file and display a nice overview of just the gene names alone +cat("abc.txt") | grep("gene_name: ") | apply(lambda x: x.split(": ")[1]) | batched(4) | display() + +# manipulate numpy arrays and pytorch tensors +a = np.random.randn(3, 4, 5) +a | transpose() | shape() # returns (4, 3, 5) +a | transpose(0, 2) | shape() # returns (5, 4, 3) + +# loading images from categories and splitting them into train and valid sets. Image url: dataset/categoryA/image1.jpg +train, valid = ls("dataset") | apply(ls() | splitW()) | transpose() | deref() +# shape of output is (train/valid, category, image url). It was (category, train/valid, image url) before going through transpose() + +# executing task in multiple processes +range(10_000_000) | batched(1_000_000) | applyMp(toSum()) | toSum() +# this splits numbers from 0 to 10M into 10 batches, and then sum each batch in parallel, and then sum the results of each batch + +# executing task in multiple processes on multiple computers +range(10_000_000) | batched(1_000_000) | applyCl(toSum()) | toSum() +``` + +You can combine these "cli tools" together in really complex ways to do really complex +manipulation really fast and with little code. Hell, you can even create a full blown +PyTorch dataloader from scratch where you're in control of every detail, operating in 7 +dimensions, in multiple processes on multiple nodes, in just 6 lines of code. Check over +the basics of it here: [k1lib.cli](https://k1lib.com/latest/cli/index.html). + +After doing that, you can check out the tutorials to get a large overview of how everything +integrates together nicely. + +## Some details + +- Repo: https://github.com/157239n/k1lib/ +- Docs: https://k1lib.com + +## Contacts? + +If you found bugs, open a new issue on the repo itself. If you want to have a chat, then email me at 157239q@gmail.com + +If you want to get an overview of how the repo is structured, read [contributing.md](contributing.md) + + +%prep +%autosetup -n k1lib.linux-x86_64-1.4 + +%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-k1lib -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri Jun 09 2023 Python_Bot <Python_Bot@openeuler.org> - 1.4-1 +- Package Spec generated @@ -0,0 +1 @@ +c1db910c9bd40d9e2a6e227e42958f00 k1lib-1.4.linux-x86_64.tar.gz |