Skip to content
Snippets Groups Projects
Verified Commit eb52eb19 authored by Daniel Hornung's avatar Daniel Hornung
Browse files

MAINT: Renamed sav -> spss

parent 87973b4e
No related branches found
No related tags found
2 merge requests!178FIX: #96 Better error output for crawl.py script.,!171sav/spss converter
Pipeline #51027 failed
from . import converters
from .conv_impl.sav import SAVConverter
from .conv_impl.spss import SPSSConverter
from .crawl import Crawler, SecurityMode
from .version import CfoodRequiredVersionError, get_caoscrawler_version
__version__ = get_caoscrawler_version()
# Convenience members #########################################################
converters.SAVConverter = SAVConverter
# mypy: disable-error-code="attr-defined"
converters.SPSSConverter = SPSSConverter
......@@ -31,6 +31,7 @@ cfood:
- JSONFile
- CSVTableConverter
- XLSXTableConverter
- SPSSFile
- H5File
- H5Dataset
- H5Group
......
......@@ -18,20 +18,29 @@
"""Converter for SAV files (stored by SPSS)."""
# import pyreadstat # Maybe us this if we need more metadata
import pandas as pd
import pyreadstat
from .. import converters
from ..stores import GeneralStore, RecordStore
from ..structure_elements import (BooleanElement, DictElement, Directory, File,
FloatElement, IntegerElement, JSONFile,
ListElement, NoneElement, StructureElement,
TextElement)
from ..stores import GeneralStore
from ..structure_elements import (File, StructureElement)
class SAVConverter(converters.TableConverter):
class SPSSConverter(converters.TableConverter):
"""Converter for SAV files (stored by SPSS)."""
def create_children(self, values: GeneralStore, element: StructureElement):
# def __init__(self, *args, **kwargs):
# super().__init__(*args, **kwargs)
# from IPython import embed
# embed()
def create_children(self, values: GeneralStore, element: StructureElement) -> list:
assert isinstance(element, File)
df = pd.io.spss.read_spss(element.path)
# if element.path.endswith(".sav"):
# sav_df, meta = pyreadstat.read_sav(element.path, metadataonly=True)
# from IPython import embed
# embed()
return self._children_from_dataframe(df)
......@@ -24,7 +24,7 @@ TextElement:
converter: TextElementConverter
package: caoscrawler.converters
DictDictElement: # deprecated
converter: DictElementConverter
package: caoscrawler.converters
......@@ -60,7 +60,7 @@ File: # deprecated
converter: SimpleFileConverter
package: caoscrawler.converters
SimpleFile:
converter: SimpleFileConverter
package: caoscrawler.converters
......@@ -81,6 +81,10 @@ CSVTableConverter:
converter: CSVTableConverter
package: caoscrawler.converters
SPSSFile:
converter: SPSSConverter
package: caoscrawler.converters
XLSXTableConverter:
converter: XLSXTableConverter
package: caoscrawler.converters
......@@ -16,7 +16,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
"""Testing converter for SAV files."""
"""Testing converter for SPSS files."""
import datetime
import importlib
......@@ -28,7 +28,7 @@ import pytest
from caoscrawler.converters import (
ConverterValidationError,
SAVConverter,
SPSSConverter,
)
from caoscrawler.structure_elements import (BooleanElement, DictElement,
Directory, File, FloatElement,
......@@ -52,8 +52,8 @@ def converter_registry():
return converter_registry
def test_sav_converter(converter_registry):
converter = SAVConverter({
def test_spss_converter(converter_registry):
converter = SPSSConverter({
"match": ("sample.sav")
},
"ThisConverterNameIsIrrelevant", converter_registry
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment