Mercurial > repos > kls286 > chap_test_20230328
annotate build/lib/CHAP/reader.py @ 1:1016ae8f31ec draft
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
| author | kls286 | 
|---|---|
| date | Tue, 28 Mar 2023 15:16:40 +0000 | 
| parents | cbbe42422d56 | 
| children | 
| rev | line source | 
|---|---|
| 
0
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
1 #!/usr/bin/env python | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
2 """ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
3 File : reader.py | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
4 Author : Valentin Kuznetsov <vkuznet AT gmail dot com> | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
5 Description: generic Reader module | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
6 """ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
7 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
8 # system modules | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
9 import argparse | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
10 import json | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
11 import logging | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
12 import sys | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
13 from time import time | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
14 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
15 # local modules | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
16 # from pipeline import PipelineObject | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
17 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
18 class Reader(): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
19 """ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
20 Reader represent generic file writer | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
21 """ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
22 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
23 def __init__(self): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
24 """ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
25 Constructor of Reader class | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
26 """ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
27 self.__name__ = self.__class__.__name__ | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
28 self.logger = logging.getLogger(self.__name__) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
29 self.logger.propagate = False | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
30 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
31 def read(self, type_=None, schema=None, encoding=None, **_read_kwargs): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
32 '''Read API | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
33 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
34 Wrapper to read, format, and return the data requested. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
35 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
36 :param type_: the expected type of data read from `filename`, defualts | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
37 to `None` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
38 :type type_: type, optional | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
39 :param schema: the expected schema of the data read from `filename`, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
40 defaults to `None` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
41 :type schema: str, otional | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
42 :param _read_kwargs: keyword arguments to pass to `self._read`, defaults | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
43 to `{}` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
44 :type _read_kwargs: dict, optional | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
45 :return: list with one item: a dictionary containing the data read from | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
46 `filename`, the name of this `Reader`, and the values of `type_` and | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
47 `schema`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
48 :rtype: list[dict[str,object]] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
49 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
50 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
51 t0 = time() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
52 self.logger.info(f'Executing "read" with type={type_}, schema={schema}, kwargs={_read_kwargs}') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
53 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
54 data = [{'name': self.__name__, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
55 'data': self._read(**_read_kwargs), | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
56 'type': type_, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
57 'schema': schema, | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
58 'encoding': encoding}] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
59 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
60 self.logger.info(f'Finished "read" in {time()-t0:.3f} seconds\n') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
61 return(data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
62 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
63 def _read(self, filename): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
64 '''Read and return the data from requested from `filename` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
65 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
66 :param filename: Name of file to read from | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
67 :return: specific number of bytes from a file | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
68 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
69 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
70 if not filename: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
71 self.logger.warning('No file name is given, will skip read operation') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
72 return None | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
73 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
74 with open(filename) as file: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
75 data = file.read() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
76 return(data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
77 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
78 class MultipleReader(Reader): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
79 def read(self, readers): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
80 '''Return resuts from multiple `Reader`s. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
81 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
82 :param readers: a dictionary where the keys are specific names that are | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
83 used by the next item in the `Pipeline`, and the values are `Reader` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
84 configurations. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
85 :type readers: list[dict] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
86 :return: The results of calling `Reader.read(**kwargs)` for each item | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
87 configured in `readers`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
88 :rtype: list[dict[str,object]] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
89 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
90 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
91 t0 = time() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
92 self.logger.info(f'Executing "read" with {len(readers)} Readers') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
93 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
94 data = [] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
95 for reader_config in readers: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
96 reader_name = list(reader_config.keys())[0] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
97 reader_class = getattr(sys.modules[__name__], reader_name) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
98 reader = reader_class() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
99 reader_kwargs = reader_config[reader_name] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
100 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
101 data.extend(reader.read(**reader_kwargs)) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
102 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
103 self.logger.info(f'Finished "read" in {time()-t0:.3f} seconds\n') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
104 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
105 return(data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
106 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
107 class YAMLReader(Reader): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
108 def _read(self, filename): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
109 '''Return a dictionary from the contents of a yaml file. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
110 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
111 :param filename: name of the YAML file to read from | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
112 :return: the contents of `filename` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
113 :rtype: dict | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
114 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
115 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
116 import yaml | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
117 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
118 with open(filename) as file: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
119 data = yaml.safe_load(file) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
120 return(data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
121 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
122 class BinaryFileReader(Reader): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
123 def _read(self, filename): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
124 '''Return a content of a given file name | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
125 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
126 :param filename: name of the binart file to read from | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
127 :return: the content of `filename` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
128 :rtype: binary | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
129 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
130 with open(filename, 'rb') as file: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
131 data = file.read() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
132 return(data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
133 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
134 class NexusReader(Reader): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
135 def _read(self, filename, nxpath='/'): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
136 '''Return the NeXus object stored at `nxpath` in the nexus file | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
137 `filename`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
138 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
139 :param filename: name of the NeXus file to read from | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
140 :type filename: str | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
141 :param nxpath: path to a specific loaction in the NeXus file to read | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
142 from, defaults to `'/'` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
143 :type nxpath: str, optional | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
144 :raises nexusformat.nexus.NeXusError: if `filename` is not a NeXus | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
145 file or `nxpath` is not in `filename`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
146 :return: the NeXus structure indicated by `filename` and `nxpath`. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
147 :rtype: nexusformat.nexus.NXobject | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
148 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
149 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
150 from nexusformat.nexus import nxload | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
151 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
152 nxobject = nxload(filename)[nxpath] | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
153 return(nxobject) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
154 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
155 class URLReader(Reader): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
156 def _read(self, url, headers={}): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
157 '''Make an HTTPS request to the provided URL and return the results. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
158 Headers for the request are optional. | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
159 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
160 :param url: the URL to read | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
161 :type url: str | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
162 :param headers: headers to attach to the request, defaults to `{}` | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
163 :type headers: dict, optional | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
164 :return: the content of the response | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
165 :rtype: object | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
166 ''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
167 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
168 import requests | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
169 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
170 resp = requests.get(url, headers=headers) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
171 data = resp.content | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
172 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
173 self.logger.debug(f'Response content: {data}') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
174 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
175 return(data) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
176 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
177 class OptionParser(): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
178 '''User based option parser''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
179 def __init__(self): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
180 self.parser = argparse.ArgumentParser(prog='PROG') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
181 self.parser.add_argument("--filename", action="store", | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
182 dest="filename", default="", help="Input file") | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
183 self.parser.add_argument("--reader", action="store", | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
184 dest="reader", default="Reader", help="Reader class name") | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
185 self.parser.add_argument('--log-level', choices=logging._nameToLevel.keys(), | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
186 dest='log_level', default='INFO', help='logging level') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
187 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
188 def main(): | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
189 '''Main function''' | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
190 optmgr = OptionParser() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
191 opts = optmgr.parser.parse_args() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
192 clsName = opts.reader | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
193 try: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
194 readerCls = getattr(sys.modules[__name__],clsName) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
195 except: | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
196 print(f'Unsupported reader {clsName}') | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
197 sys.exit(1) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
198 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
199 reader = readerCls() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
200 reader.logger.setLevel(getattr(logging, opts.log_level)) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
201 log_handler = logging.StreamHandler() | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
202 log_handler.setFormatter(logging.Formatter('{name:20}: {message}', style='{')) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
203 reader.logger.addHandler(log_handler) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
204 data = reader.read(filename=opts.filename) | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
205 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
206 print(f"Reader {reader} reads from {opts.filename}, data {data}") | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
207 | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
208 if __name__ == '__main__': | 
| 
 
cbbe42422d56
planemo upload for repository https://github.com/CHESSComputing/ChessAnalysisPipeline/tree/galaxy commit 1401a7e1ae007a6bda260d147f9b879e789b73e0-dirty
 
kls286 
parents:  
diff
changeset
 | 
209 main() | 
