Skip to content

Commit 0d1694e

Browse files
authored
Feature/improvements confirmit forsta (#59)
* Add 'string_value' parameter * Encode string values into numbers * Upload data to forsta API & add tests * Add venv folder to gitignore * Change methods and variables names * Install dotenv in pipeline * Change replace by apply method * Use loc instead of iloc in crosstab
1 parent f5f88ee commit 0d1694e

File tree

20 files changed

+319
-212
lines changed

20 files changed

+319
-212
lines changed

.github/workflows/python-package.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
- name: Install dependencies
2929
run: |
3030
python -m pip install --upgrade pip
31-
pip install pytest
31+
pip install pytest python-dotenv
3232
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
3333
- name: Test with pytest
3434
run: |

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,9 @@ tests/Example Data (A).cache
2828
*.eot
2929
*.svg
3030
*.woff
31-
31+
*.env
3232
*.js
33+
*-venv/
3334

3435
docs/API/_static/
3536
docs/API/_templates/

docs/API/_build/_sources/index.rst.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ and `numpy <http://www.numpy.org/>`_ libraries. Aimed at social and marketing re
3535
Key features
3636
""""""""""""
3737

38-
* Reads plain .csv, converts from Dimensions, SPSS, Decipher, Ascribe and Confirmit
38+
* Reads plain .csv, converts from Dimensions, SPSS, Decipher, Ascribe and Forsta
3939
* Open metadata format to describe and manage datasets
4040
* Powerful, metadata-driven cleaning, editing, recoding and transformation of datasets
4141
* Computation and assessment of data weights

docs/API/_build/_sources/sites/lib_doc/dataprocessing/02_io.rst.txt

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -214,42 +214,42 @@ Confirmit
214214

215215
**Reading (from files):**
216216

217-
>>> from quantipy.core.tools.dp.io import read_confirmit_from_files
218-
>>> meta, data = read_confirmit_from_files(path_meta_json, path_data_json, verbose = default False)
217+
>>> from quantipy.core.tools.dp.io import read_forsta_from_files
218+
>>> meta, data = read_forsta_from_files(path_meta_json, path_data_json, verbose = default False)
219219

220-
The verbose parameter will store all of the metadata from the Confirmit read
220+
The verbose parameter will store all of the metadata from the Forsta read
221221
within a custom element within the Quantipy metadata, this will impact performance
222222
so only set to true if you intend to write data back via the write method.
223223

224224
**Reading (from API):**
225225

226-
>>> from quantipy.core.tools.dp.io import read_confirmit_api
227-
>>> meta, data = read_confirmit_api(projectid, public_url, idp_url, client_id, client_secret, schema_vars, schema_filter, verbose)
226+
>>> from quantipy.core.tools.dp.io import read_forsta_api
227+
>>> meta, data = read_forsta_api(projectid, public_url, idp_url, client_id, client_secret, schema_vars, schema_filter, verbose)
228228

229229
By default the verbose parameter will store all of the metadata
230-
from the Confirmit read within a custom element within the Quantipy metadata.
230+
from the Forsta read within a custom element within the Quantipy metadata.
231231

232232
* projectid: survey id e.g. p12345
233233
* public_url: e.g. "https://ws.euro.confirmit.com/"
234234
* idp_url: e.g. "https://idp.euro.confirmit.com/"
235-
* client_id: Confirmit clientid
236-
* client_secret: Confirmit client secret
235+
* client_id: Forsta clientid
236+
* client_secret: Forsta client secret
237237
* schema_vars: variables you wish to download as comma delimited string
238238
* schema_filter: e.g."response:status='complete'"
239239
* verbose: default = False
240240

241-
The verbose parameter will store all of the metadata from the Confirmit read
241+
The verbose parameter will store all of the metadata from the Forsta read
242242
within a custom element within the Quantipy metadata, this will impact performance
243243
so only set to true if you intend to write data back via the write method.
244244

245245
**Writing:**
246246

247-
>>> from quantipy.core.tools.dp.io import write_confirmit_api
248-
>>> write_confirmit_api(projectid, public_url, idp_url, client_id, client_secret, schema_vars)
247+
>>> from quantipy.core.tools.dp.io import write_forsta_api
248+
>>> write_forsta_api(projectid, public_url, idp_url, client_id, client_secret, schema_vars)
249249

250250
* projectid: survey id e.g. p12345
251251
* public_url: e.g. "https://ws.euro.confirmit.com/"
252252
* idp_url: e.g. "https://idp.euro.confirmit.com/"
253-
* client_id: Confirmit clientid
254-
* client_secret: Confirmit client secret
253+
* client_id: Forsta clientid
254+
* client_secret: Forsta client secret
255255
* schema_vars: variables you wish to upload as comma delimited string

docs/API/_build/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,7 @@ <h1>Quantipy: Python survey data toolkit<a class="headerlink" href="#quantipy-py
420420
<div class="section" id="key-features">
421421
<h2>Key features<a class="headerlink" href="#key-features" title="Permalink to this headline"></a></h2>
422422
<ul class="simple">
423-
<li><p>Reads plain .csv, converts from Dimensions, SPSS, Decipher, Ascribe and Confirmit</p></li>
423+
<li><p>Reads plain .csv, converts from Dimensions, SPSS, Decipher, Ascribe and Forsta</p></li>
424424
<li><p>Open metadata format to describe and manage datasets</p></li>
425425
<li><p>Powerful, metadata-driven cleaning, editing, recoding and transformation of datasets</p></li>
426426
<li><p>Computation and assessment of data weights</p></li>

docs/API/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ and `numpy <http://www.numpy.org/>`_ libraries. Aimed at social and marketing re
3535
Key features
3636
""""""""""""
3737

38-
* Reads plain .csv, converts from Dimensions, SPSS, Decipher, Ascribe and Confirmit
38+
* Reads plain .csv, converts from Dimensions, SPSS, Decipher, Ascribe and Forsta
3939
* Open metadata format to describe and manage datasets
4040
* Powerful, metadata-driven cleaning, editing, recoding and transformation of datasets
4141
* Computation and assessment of data weights

quantipy/core/dataset.py

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010
read_decipher as r_decipher,
1111
read_spss as r_spss,
1212
read_ascribe as r_ascribe,
13-
read_confirmit_from_files as r_confirmit_from_files,
14-
read_confirmit_api as r_confirmit_api,
15-
write_confirmit_api as w_confirmit_api,
13+
read_forsta_from_files as r_forsta_from_files,
14+
read_forsta_api as r_forsta_api,
15+
write_forsta_api as w_forsta_api,
1616
write_spss as w_spss,
1717
write_quantipy as w_quantipy,
1818
write_dimensions as w_dimensions)
@@ -585,8 +585,8 @@ def read_ascribe(self, path_meta, path_data, text_key):
585585
self._rename_blacklist_vars()
586586
return None
587587

588-
def read_confirmit_from_files(self, path_meta, path_data, reset=True, verbose=False):
589-
"""Read confirmit data
588+
def read_forsta_from_files(self, path_meta, path_data, reset=True, verbose=False):
589+
"""Read forsta data
590590
591591
Parameters
592592
----------
@@ -601,11 +601,11 @@ def read_confirmit_from_files(self, path_meta, path_data, reset=True, verbose=Fa
601601
"""
602602
if verbose:
603603
self.write_allowed = True
604-
self._meta, self._data = r_confirmit_from_files(path_meta, path_data, verbose)
604+
self._meta, self._data = r_forsta_from_files(self, path_meta, path_data, verbose)
605605
self._set_file_info(path_data, path_meta, reset=reset)
606606

607-
def read_confirmit_api(self, projectid, public_url, idp_url=None, client_id=None, client_secret=None, reset=True, schema_vars=None, schema_filter=None, verbose=False):
608-
"""Read confirmit data from confirmit api
607+
def read_forsta_api(self, projectid, public_url, idp_url=None, client_id=None, client_secret=None, reset=True, schema_vars=None, schema_filter=None, verbose=False):
608+
"""Read forsta data from forsta api
609609
610610
Parameters
611611
----------
@@ -624,12 +624,13 @@ def read_confirmit_api(self, projectid, public_url, idp_url=None, client_id=None
624624
client_id = os.getenv('CLIENT_ID')
625625
if not client_secret:
626626
client_secret = os.getenv('CLIENT_SECRET')
627-
628-
self._meta, self._data = r_confirmit_api(projectid, public_url, idp_url, client_id, client_secret, schema_vars, schema_filter, verbose)
627+
self._original_meta, self._original_data, self._meta, self._data = \
628+
r_forsta_api(self, projectid, public_url, idp_url, client_id, \
629+
client_secret, schema_vars, schema_filter, verbose)
629630
self._set_file_info('', reset=reset)
630631

631-
def write_confirmit(self, path_meta, path_data, schema_vars=None, verbose=False):
632-
"""Converts quantipy dataset into Confirmit format"""
632+
def write_forsta(self, path_meta, path_data, schema_vars=None, verbose=False):
633+
"""Converts quantipy dataset into forsta format"""
633634
try:
634635
if self.write_allowed:
635636
res_meta_string = json.dumps(self._meta)
@@ -644,9 +645,9 @@ def write_confirmit(self, path_meta, path_data, schema_vars=None, verbose=False)
644645
except AttributeError:
645646
raise Exception("Must set has_external parameter in read method first")
646647

647-
def write_confirmit_api(self, projectid, public_url, idp_url, client_id, client_secret, schema_vars):
648-
"""Converts quantipy dataset into Confirmit format and uploads it to the confirmit API"""
649-
return w_confirmit_api(projectid, public_url, idp_url, client_id, client_secret, schema_vars)
648+
def write_forsta_api(self, projectid, public_url, idp_url, client_id, client_secret, schema_vars):
649+
"""Converts quantipy dataset into forsta format and uploads it to the forsta API"""
650+
return w_forsta_api(self, projectid, public_url, idp_url, client_id, client_secret, schema_vars)
650651

651652
def read_spss(self, path_sav, **kwargs):
652653
"""
@@ -1931,7 +1932,7 @@ def _rounding(x, dec):
19311932
idx = self.manifest_filter(f)
19321933
else:
19331934
idx = self.take(f)
1934-
data = self._data.copy().iloc[idx]
1935+
data = self._data.copy().loc[idx]
19351936
stack = qp.Stack(name='ct', add_data={'ct': (data, self._meta)})
19361937
if xtotal or not y:
19371938
y = ['@'] + self.unroll(y)

quantipy/core/tools/dp/confirmit/writer.py

Lines changed: 0 additions & 15 deletions
This file was deleted.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)