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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
|
%global _empty_manifest_terminate_build 0
Name: python-lapdog
Version: 0.18.10
Release: 1
Summary: A relaxed wrapper for FISS and dalmatian
License: MIT
URL: https://github.com/broadinstitute/lapdog
Source0: https://mirrors.aliyun.com/pypi/web/packages/e2/4d/6104552f879ea6f2d2f4cdff8c9c9db001b05a2bc0bb6480e2bda08cca15/lapdog-0.18.10.tar.gz
BuildArch: noarch
Requires: python3-firecloud
Requires: python3-firecloud-dalmatian
Requires: python3-hound
Requires: python3-google-cloud-storage
Requires: python3-google-cloud-logging
Requires: python3-googleapis-common-protos
Requires: python3-google-cloud-core
Requires: python3-google-auth
Requires: python3-google-cloud-kms
Requires: python3-google-api-core[grpc]
Requires: python3-PyYAML
Requires: python3-agutil
Requires: python3-Flask-Cors
Requires: python3-crayons
Requires: python3-connexion
Requires: python3-oauth2client
Requires: python3-requests
Requires: python3-cryptography
Requires: python3-pyOpenSSL
Requires: python3-protobuf
Requires: python3-iso8601
Requires: python3-pandas
%description
### Roadmap
See the [milestones page](https://github.com/broadinstitute/lapdog/milestones) to
read the development roadmap.
### Pro/Con with Firecloud
##### Pros
* Each submission has a dedicated Cromwell instance. Your jobs will never queue, unless you hit a Google usage quota
* Lapdog supports Requester Pays buckets and GPUs
* Workspace cache: Lapdog caches most data received from Firecloud.
* In the event of a Firecloud error, Lapdog will attempt to keep running by using it's cached data. Any data updates will by pushed back to Firecloud when the workspace is synced
* Data caches: The Lapdog API caches data sent to the UI and read from Google
* These caches greatly improve UI performance by storing results whenever possible
* Streamlined UI: The Lapdog UI was built with efficiency in mind
* Quality of life features:
* Save time updating methods. Set `methodRepoMethod.methodVersion` to "latest" and let Lapdog figure out what the snapshot ID is
* Easy data uploads. Call `prepare_entity_df` on a DataFrame before uploading to Firecloud. Any local filepaths will be uploaded to the workspace's bucket in the background and a new DataFrame will be returned containing the new `gs://` paths
* Automatic reference uploads. When you call `update_attributes`, any values which refer to local filepaths will be uploaded in the background (just like `prepare_entity_df`). `update_attributes` now returns a dictionary containing the attributes exactly as uploaded
##### Cons
* You pay an additional 5c/hour fee for each submission to run the Cromwell server
* Submission results must be manually uploaded to Firecloud by clicking the `Upload Results` button in the UI.
* There are small overhead costs billed to the Lapdog Engine for operation. These costs
are for calls to the API and for storage of metadata, both of which should be very cheap
## PyYAML Note
Often, when installing Lapdog, the installation fails when upgrading PyYAML because
it is unable to uninstall the current PyYAML version.
This is because some older versions of PyYAML were distributed through `distutils`
which prevents packages from being uninstalled. New versions of PyYAML are distributed
through `setuptools` which can be successfully uninstalled.
To resolve this issue, navigate to your Python site-packages directory. The site-packages
directory usually ends with `.../lib/python{version}/site-packages/`. The exact location
depends on your platform, environment manager, and python configuration.
* For anaconda, this path is within anaconda's installation folder: `/{path to anaconda}/envs/{environment}/lib/python{version}/site-packages`
* For virtualenvs, this path is within the environment's installation folder: `/{path to environment}/lib/python{version}/site-packages`
* For system python on Unix systems: `/usr/local/lib/python{version}/site-packages`
An easy way to locate this folder is to open python and then:
```python
import yaml
yaml
```
This expression will evaluate and print the path to the `yaml` module, which will be
within your site-packages directory.
After locating the site-packages directory, you must remove the following two directories:
* `.../site-packages/yaml/`
* `.../site-packages/PyYAML*.egg-info`
Once removed, you can try the installation command for lapdog again.
%package -n python3-lapdog
Summary: A relaxed wrapper for FISS and dalmatian
Provides: python-lapdog
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-lapdog
### Roadmap
See the [milestones page](https://github.com/broadinstitute/lapdog/milestones) to
read the development roadmap.
### Pro/Con with Firecloud
##### Pros
* Each submission has a dedicated Cromwell instance. Your jobs will never queue, unless you hit a Google usage quota
* Lapdog supports Requester Pays buckets and GPUs
* Workspace cache: Lapdog caches most data received from Firecloud.
* In the event of a Firecloud error, Lapdog will attempt to keep running by using it's cached data. Any data updates will by pushed back to Firecloud when the workspace is synced
* Data caches: The Lapdog API caches data sent to the UI and read from Google
* These caches greatly improve UI performance by storing results whenever possible
* Streamlined UI: The Lapdog UI was built with efficiency in mind
* Quality of life features:
* Save time updating methods. Set `methodRepoMethod.methodVersion` to "latest" and let Lapdog figure out what the snapshot ID is
* Easy data uploads. Call `prepare_entity_df` on a DataFrame before uploading to Firecloud. Any local filepaths will be uploaded to the workspace's bucket in the background and a new DataFrame will be returned containing the new `gs://` paths
* Automatic reference uploads. When you call `update_attributes`, any values which refer to local filepaths will be uploaded in the background (just like `prepare_entity_df`). `update_attributes` now returns a dictionary containing the attributes exactly as uploaded
##### Cons
* You pay an additional 5c/hour fee for each submission to run the Cromwell server
* Submission results must be manually uploaded to Firecloud by clicking the `Upload Results` button in the UI.
* There are small overhead costs billed to the Lapdog Engine for operation. These costs
are for calls to the API and for storage of metadata, both of which should be very cheap
## PyYAML Note
Often, when installing Lapdog, the installation fails when upgrading PyYAML because
it is unable to uninstall the current PyYAML version.
This is because some older versions of PyYAML were distributed through `distutils`
which prevents packages from being uninstalled. New versions of PyYAML are distributed
through `setuptools` which can be successfully uninstalled.
To resolve this issue, navigate to your Python site-packages directory. The site-packages
directory usually ends with `.../lib/python{version}/site-packages/`. The exact location
depends on your platform, environment manager, and python configuration.
* For anaconda, this path is within anaconda's installation folder: `/{path to anaconda}/envs/{environment}/lib/python{version}/site-packages`
* For virtualenvs, this path is within the environment's installation folder: `/{path to environment}/lib/python{version}/site-packages`
* For system python on Unix systems: `/usr/local/lib/python{version}/site-packages`
An easy way to locate this folder is to open python and then:
```python
import yaml
yaml
```
This expression will evaluate and print the path to the `yaml` module, which will be
within your site-packages directory.
After locating the site-packages directory, you must remove the following two directories:
* `.../site-packages/yaml/`
* `.../site-packages/PyYAML*.egg-info`
Once removed, you can try the installation command for lapdog again.
%package help
Summary: Development documents and examples for lapdog
Provides: python3-lapdog-doc
%description help
### Roadmap
See the [milestones page](https://github.com/broadinstitute/lapdog/milestones) to
read the development roadmap.
### Pro/Con with Firecloud
##### Pros
* Each submission has a dedicated Cromwell instance. Your jobs will never queue, unless you hit a Google usage quota
* Lapdog supports Requester Pays buckets and GPUs
* Workspace cache: Lapdog caches most data received from Firecloud.
* In the event of a Firecloud error, Lapdog will attempt to keep running by using it's cached data. Any data updates will by pushed back to Firecloud when the workspace is synced
* Data caches: The Lapdog API caches data sent to the UI and read from Google
* These caches greatly improve UI performance by storing results whenever possible
* Streamlined UI: The Lapdog UI was built with efficiency in mind
* Quality of life features:
* Save time updating methods. Set `methodRepoMethod.methodVersion` to "latest" and let Lapdog figure out what the snapshot ID is
* Easy data uploads. Call `prepare_entity_df` on a DataFrame before uploading to Firecloud. Any local filepaths will be uploaded to the workspace's bucket in the background and a new DataFrame will be returned containing the new `gs://` paths
* Automatic reference uploads. When you call `update_attributes`, any values which refer to local filepaths will be uploaded in the background (just like `prepare_entity_df`). `update_attributes` now returns a dictionary containing the attributes exactly as uploaded
##### Cons
* You pay an additional 5c/hour fee for each submission to run the Cromwell server
* Submission results must be manually uploaded to Firecloud by clicking the `Upload Results` button in the UI.
* There are small overhead costs billed to the Lapdog Engine for operation. These costs
are for calls to the API and for storage of metadata, both of which should be very cheap
## PyYAML Note
Often, when installing Lapdog, the installation fails when upgrading PyYAML because
it is unable to uninstall the current PyYAML version.
This is because some older versions of PyYAML were distributed through `distutils`
which prevents packages from being uninstalled. New versions of PyYAML are distributed
through `setuptools` which can be successfully uninstalled.
To resolve this issue, navigate to your Python site-packages directory. The site-packages
directory usually ends with `.../lib/python{version}/site-packages/`. The exact location
depends on your platform, environment manager, and python configuration.
* For anaconda, this path is within anaconda's installation folder: `/{path to anaconda}/envs/{environment}/lib/python{version}/site-packages`
* For virtualenvs, this path is within the environment's installation folder: `/{path to environment}/lib/python{version}/site-packages`
* For system python on Unix systems: `/usr/local/lib/python{version}/site-packages`
An easy way to locate this folder is to open python and then:
```python
import yaml
yaml
```
This expression will evaluate and print the path to the `yaml` module, which will be
within your site-packages directory.
After locating the site-packages directory, you must remove the following two directories:
* `.../site-packages/yaml/`
* `.../site-packages/PyYAML*.egg-info`
Once removed, you can try the installation command for lapdog again.
%prep
%autosetup -n lapdog-0.18.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-lapdog -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Thu Jun 08 2023 Python_Bot <Python_Bot@openeuler.org> - 0.18.10-1
- Package Spec generated
|