Functions
component(component_name__, base__, **kwargs) -> Component
Instantiates a Component class with the given input parameters.
Parameters:
| Parameter | Type | Description | Default Value |
|---|---|---|---|
component_name__ | str | Names the component for use in the final configuration file. | None |
base__ | Optional[component] | When a base component is passed, all properties of the base are inherited by the component. Any other specified property during input will override base properties. | None |
**kwargs | dict | The component function requires any property that the component already requires, such as "type". Refer to the configuration documentation for required properties. | None |
Returns:
Component: Returns an instantiation of the Component class.
Raises:
RevisitError: If the required properties are not specified, and exception will be raised.
Example:
import revisit as rvt
# Initializing a markdown component with an empty response list.
my_component = rvt.component(
component_name__='my-component',
response=[],
type='markdown',
path='./assets/my-markdown-file.md'
)
# Instantiating a component with the base as "my_component".
my_other_component = rvt.component(
component_name__='my-other-component',
base__=my_component,
path='./assets/my-other-markdown-file.md'
)
response(**kwargs) -> Response
Instantiates a Response class with the given input parameters.
Parameters:
| Parameter | Type | Description | Default Value |
|---|---|---|---|
**kwargs | dict | The component function requires any property that the component already requires, such as "type". Refer to the configuration documentation for required properties. | None |
Returns:
Response: Returns an instantiation of the Response class.
Raises:
RevisitError: If the required properties are not specified, and exception will be raised.
Example:
import revisit as rvt
# Initializing a matrix radio response
my_response = rvt.response(
type='matrix-radio',
answerOptions='likely5',
questionOptions=['Question 1', 'Question 2', 'Question 3'],
required=True,
location='sidebar'
)
studyMetadata(**kwargs) -> StudyMetadata
Instantiates a StudyMetadata class with the given parameters.
Parameters:
| Parameter | Type | Description | Default Value |
|---|---|---|---|
**kwargs | dict | Required properties for the StudyMetadata | None |
Returns:
Response: Returns an instantiation of the Response class.
Raises:
RevisitError: If the required properties are not specified, and exception will be raised.
Example:
import revisit as rvt
# Initializing a matrix radio response
my_response = rvt.response(
type='matrix-radio',
answerOptions='likely5',
questionOptions=['Question 1', 'Question 2', 'Question 3'],
required=True,
location='sidebar'
)
uiConfig(**kwargs) -> UIConfig
Instantiates a UIConfig class with the given parameters.
Parameters:
| Parameter | Type | Description | Default Value |
|---|---|---|---|
**kwargs | dict | The component function requires any property that the component already requires, such as "type". Refer to the configuration documentation for required properties. | None |
Returns:
Response: Returns an instantiation of the Response class.
Raises:
RevisitError: If the required properties are not specified, and exception will be raised.
Example:
import revisit as rvt
# Initializing a matrix radio response
my_response = rvt.response(
type='matrix-radio',
answerOptions='likely5',
questionOptions=['Question 1', 'Question 2', 'Question 3'],
required=True,
location='sidebar'
)
studyConfig(studyMetadata, uiConfig, sequence, schema, components) -> StudyConfig
Instantiates a the final StudyConfig based on the UIConfig, StudyMetadata, Sequence, and Components input. Note that the components list is completely optional: using the studyConfig factory function automatically populates all components based on their presence in the sequence.
Parameters:
| Parameter | Type | Description | Default Value |
|---|---|---|---|
studyMetadata | StudyMetadata | An instance of the StudyMetadata class | None |
uiConfig | UIConfig | An instance of the UIConfig class | None |
sequence | ComponentBlock | The top level member of your sequence. | None |
components | Optional[List[Component]] | The list of Components to be added to the config. This is automatically populated based on the inputted sequence | [] |
schema | str | The valid $schema value for the config. You can always find the most recent schema value in the public repository of our main study repository, such as here | None |
Returns:
StudyConfig: Returns an instantiation of the StudyConfig class.
Raises:
RevisitError: If the required properties are not specified, and exception will be raised.
Example:
ui_config = rvt.uiConfig(...)
study_metadata = rvt.studyMetadata(...)
comp_one = rvt.component(...)
comp_two = rvt.component(...)
sequence = rvt.sequence(order='fixed',components=[comp_one, comp_two])
study = rvt.studyConfig(
schema='https://raw.githubusercontent.com/revisit-studies/study/v2.0.0-rc5/src/parser/StudyConfigSchema.json',
studyMetadata=study_metadata,
uiConfig=ui_config,
sequence=sequence # <-- Do not need to add components list separately if they are already in the sequence.
)
data(file_path)
Parses a CSV file with the given file_path and returns a list of DataRows. Output can be passed into the from_data method of the sequence class to generate components based on the CSV data.
Parameters:
| Parameter | Type | Description | Default Value |
|---|---|---|---|
file_path | str | Path to the CSV file | None |
Returns:
List[DataRow]: Returns a list of dataclasses calledDataRow.
Example:
In the below example, we create the study data using the data method, then create a sequence from this data using the from_data method. Each component shown in the new sequence will have the respective data added to their meta attribute. From here, you can use the component method of the Sequence class to transform each component based on their respective meta attributes that you applied with from_data method.
'''
'my_csv_file.csv' contents
id | value_1 | value_2
---|---------|--------
1 | 0.3 | 3
2 | 0.1 | 4
3 | 1.2 | 1
'''
study_data = rvt.data('path/to/my_csv_file.csv')
sequence = rvt.sequence(order='fixed').from_data(study_data)
print(sequence)
'''
{
"order": "fixed",
"components": [
'id:1__value_1:0.3__value_2:3',
'id:2__value_1:0.1__value_2:4',
'id:3__value_1:1.2__value_2:1',
]
}
'''