matteoferla/Python_SmallWorld_API

View on GitHub
export_note.md

Summary

Maintainability
Test Coverage
## Export note

The 'export' requests is the second request and returns the sought data of a given generated 'hlid' (hit list id).

The params passed are many and are to allow the table formatting.

In the class `SmallWorld` there's a class attribute called `valid_export_columns` which is a dictionary that goes into
the get request's params.

It currently is not split up and has keys like `'columns[0][name]'` as opposed to a single `'columns'`
holding a value of type `List[Dict[str, Any]]`. Say:

```python
{'columns': [{'search':     {'value': '', 'regex': 'false'},
              'data':       '0',
              'name':       'alignment',
              'searchable': 'true',
              'orderable':  'false'},
             {'search':     {'value': '0-10', 'regex': 'false'},
              'data':       '1',
              'name':       'dist',
              'searchable': 'true',
              'orderable':  'true'},
             {'search':     {'value': '', 'regex': 'false'},
              'data':       '2',
              'name':       'ecfp4',
              'searchable': 'true',
              'orderable':  'true'},
             {'search':     {'value': '', 'regex': 'false'},
              'data':       '3',
              'name':       'daylight',
              'searchable': 'true',
              'orderable':  'true'},
             {'search':     {'value': '0-4', 'regex': 'false'},
              'data':       '4',
              'name':       'topodist',
              'searchable': 'true',
              'orderable':  'true'},
             {'search':     {'value': '', 'regex': 'false'},
              'data':       '5',
              'name':       'mces',
              'searchable': 'true',
              'orderable':  'true'},
             {'search':     {'value': '0-4', 'regex': 'false'},
              'data':       '6',
              'name':       'tdn',
              'searchable': 'true',
              'orderable':  'true'},
             {'search':     {'value': '0-4', 'regex': 'false'},
              'data':       '7',
              'name':       'tup',
              'searchable': 'true',
              'orderable':  'true'},
             {'search':     {'value': '0-4', 'regex': 'false'},
              'data':       '8',
              'name':       'rdn',
              'searchable': 'true',
              'orderable':  'true'},
             {'search':     {'value': '0-4', 'regex': 'false'},
              'data':       '9',
              'name':       'rup',
              'searchable': 'true',
              'orderable':  'true'},
             {'search':     {'value': '0-4', 'regex': 'false'},
              'data':       '10',
              'name':       'ldn',
              'searchable': 'true',
              'orderable':  'true'},
             {'search':     {'value': '0-4', 'regex': 'false'},
              'data':       '11',
              'name':       'lup',
              'searchable': 'true',
              'orderable':  'true'},
             {'search':     {'value': '', 'regex': 'false'},
              'data':       '12',
              'name':       'mut',
              'searchable': 'true',
              'orderable':  'true'},
             {'search':     {'value': '0-4', 'regex': 'false'},
              'data':       '13',
              'name':       'maj',
              'searchable': 'true',
              'orderable':  'true'},
             {'search':     {'value': '0-4', 'regex': 'false'},
              'data':       '14',
              'name':       'min',
              'searchable': 'true',
              'orderable':  'true'},
             {'search':     {'value': '0-4', 'regex': 'false'},
              'data':       '15',
              'name':       'hyb',
              'searchable': 'true',
              'orderable':  'true'},
             {'search':     {'value': '0-4', 'regex': 'false'},
              'data':       '16',
              'name':       'sub',
              'searchable': 'true',
              'orderable':  'true'}],
 'order':   [{'column': 0, 'dir': 'asc'}, ],
 'search':  [{'value': '', 'regex': False}]
 }
```
This is because for some reason it the HTML quoted version is different than the above.
As the janky `'columns[0][name]'` works, I've not bothered looking into it.