1 | #! /usr/bin/env python |
||
2 | # |
||
3 | # Copyright (C) 2015-2016 Rich Lewis <[email protected]> |
||
4 | # License: 3-clause BSD |
||
5 | |||
6 | 1 | """ |
|
7 | ## skchem.descriptors.moe |
||
8 | |||
9 | Module specifying moe descriptors. |
||
10 | """ |
||
11 | |||
12 | 1 | class MOEDescriptorCalculator(object): |
|
0 ignored issues
–
show
|
|||
13 | |||
14 | 1 | def __init__(self): |
|
15 | pass |
||
16 | |||
17 | 1 | def transform(self, obj): |
|
0 ignored issues
–
show
This method should have a docstring.
The coding style of this project requires that you add a docstring to this code element. Below, you find an example for methods: class SomeClass:
def some_method(self):
"""Do x and return foo."""
If you would like to know more about docstrings, we recommend to read PEP-257: Docstring Conventions. ![]() |
|||
18 | if isinstance(obj, core.Mol): |
||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||
19 | return self._transform_series(pd.Series(obj)).iloc[0] |
||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||
20 | elif isinstance(obj, pd.Series): |
||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||
21 | return self._transform_series(obj) |
||
22 | elif isinstance(obj, pd.DataFrame): |
||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||
23 | return self._transform_series(obj.structure) |
||
24 | elif isinstance(obj, (tuple, list)): |
||
25 | return self._transform_series(obj) |
||
26 | else: |
||
27 | raise NotImplementedError |
||
28 | |||
29 | 1 | def _transform_series(self, series): |
|
30 | |||
31 | with tempfile.NamedTemporaryFile(suffix='.sdf') as in_file, tempfile.NamedTemporaryFile() as out_file: |
||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||
32 | # write mols to file |
||
33 | write_sdf(series, in_file.name) |
||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||
34 | args = ['mddesc', in_file.name, '-o', out_file.name] + self.index |
||
0 ignored issues
–
show
|
|||
35 | |||
36 | LOGGER.info('Running: ' + ' '.join(args)) |
||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||
37 | |||
38 | # call command line |
||
39 | subprocess.call(args) |
||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||
40 | try: |
||
41 | finished = pd.read_table(out_file.name).set_index('id') |
||
0 ignored issues
–
show
Comprehensibility
Best Practice
introduced
by
|
|||
42 | except Exception: |
||
0 ignored issues
–
show
Catching very general exceptions such as
Exception is usually not recommended.
Generally, you would want to handle very specific errors in the exception handler. This ensure that you do not hide other types of errors which should be fixed. So, unless you specifically plan to handle any error, consider adding a more specific exception. ![]() |
|||
43 | finished = None |
||
44 | finished.index = series.index |
||
45 | return finished |
||
46 | |||
47 | |||
48 |
The coding style of this project requires that you add a docstring to this code element. Below, you find an example for methods:
If you would like to know more about docstrings, we recommend to read PEP-257: Docstring Conventions.