summaryrefslogtreecommitdiff
path: root/python-pyfora.spec
blob: f0c5b033dce0e55839e18f3cb8971a561ba14552 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
%global _empty_manifest_terminate_build 0
Name:		python-pyfora
Version:	0.5.10
Release:	1
Summary:	A library for parallel execution of Python code in the Ufora runtime
License:	Apache
URL:		http://www.ufora.com/
Source0:	https://mirrors.aliyun.com/pypi/web/packages/f6/c2/05ed3a730dcc4f815fba017c4d9158ec1e096e2432f1c431aabb0170446c/pyfora-0.5.10.tar.gz
BuildArch:	noarch


%description
pyfora is the client package for Ufora_ - a compiled, automatically parallel Python for data science
and numerical computing.
Ufora achieves speed and scale by reasoning about your python code to compile
it to machine code (so it's fast) and find parallelism in it (so that it scales).  The Ufora
runtime is fully fault tolerant, and handles all the details of data
management and task scheduling transparently to the user.
The Ufora runtime is invoked by enclosing code in a "ufora.remote" block. Code
and objects are shipped to a Ufora cluster and executed in parallel across
those machines. Results are then injected back into the host python
environment either as native python objects, or as  handles (in case the
objects are very large).  This allows you to pick the subset of your code that
will benefit from running in Ufora - the remainder can run in your regular
python environment.
For all of this to work properly, Ufora places one major restriction on
the code that it runs: it must be "pure", meaning that it cannot modify data
structures or have side effects.  This restriction allows the Ufora runtime to
agressively reorder calculations, which is crucial for
parallelism, and allows it to perform compile-time
optimizations than would not be possible otherwise. For more on the subset of python
that Ufora supports, see `python restrictions`_.

%package -n python3-pyfora
Summary:	A library for parallel execution of Python code in the Ufora runtime
Provides:	python-pyfora
BuildRequires:	python3-devel
BuildRequires:	python3-setuptools
BuildRequires:	python3-pip
%description -n python3-pyfora
pyfora is the client package for Ufora_ - a compiled, automatically parallel Python for data science
and numerical computing.
Ufora achieves speed and scale by reasoning about your python code to compile
it to machine code (so it's fast) and find parallelism in it (so that it scales).  The Ufora
runtime is fully fault tolerant, and handles all the details of data
management and task scheduling transparently to the user.
The Ufora runtime is invoked by enclosing code in a "ufora.remote" block. Code
and objects are shipped to a Ufora cluster and executed in parallel across
those machines. Results are then injected back into the host python
environment either as native python objects, or as  handles (in case the
objects are very large).  This allows you to pick the subset of your code that
will benefit from running in Ufora - the remainder can run in your regular
python environment.
For all of this to work properly, Ufora places one major restriction on
the code that it runs: it must be "pure", meaning that it cannot modify data
structures or have side effects.  This restriction allows the Ufora runtime to
agressively reorder calculations, which is crucial for
parallelism, and allows it to perform compile-time
optimizations than would not be possible otherwise. For more on the subset of python
that Ufora supports, see `python restrictions`_.

%package help
Summary:	Development documents and examples for pyfora
Provides:	python3-pyfora-doc
%description help
pyfora is the client package for Ufora_ - a compiled, automatically parallel Python for data science
and numerical computing.
Ufora achieves speed and scale by reasoning about your python code to compile
it to machine code (so it's fast) and find parallelism in it (so that it scales).  The Ufora
runtime is fully fault tolerant, and handles all the details of data
management and task scheduling transparently to the user.
The Ufora runtime is invoked by enclosing code in a "ufora.remote" block. Code
and objects are shipped to a Ufora cluster and executed in parallel across
those machines. Results are then injected back into the host python
environment either as native python objects, or as  handles (in case the
objects are very large).  This allows you to pick the subset of your code that
will benefit from running in Ufora - the remainder can run in your regular
python environment.
For all of this to work properly, Ufora places one major restriction on
the code that it runs: it must be "pure", meaning that it cannot modify data
structures or have side effects.  This restriction allows the Ufora runtime to
agressively reorder calculations, which is crucial for
parallelism, and allows it to perform compile-time
optimizations than would not be possible otherwise. For more on the subset of python
that Ufora supports, see `python restrictions`_.

%prep
%autosetup -n pyfora-0.5.10

%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-pyfora -f filelist.lst
%dir %{python3_sitelib}/*

%files help -f doclist.lst
%{_docdir}/*

%changelog
* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.5.10-1
- Package Spec generated