diff --git a/pliers/converters/api/ibm.py b/pliers/converters/api/ibm.py index 800112e0..846a15de 100644 --- a/pliers/converters/api/ibm.py +++ b/pliers/converters/api/ibm.py @@ -4,13 +4,14 @@ import base64 import json import logging +from urllib.parse import urlencode +from urllib.request import Request, urlopen +from urllib.error import URLError, HTTPError + from pliers.stimuli.text import TextStim, ComplexTextStim from pliers.utils import attempt_to_import, verify_dependencies from pliers.converters.audio import AudioToTextConverter from pliers.transformers.api import APITransformer -from urllib.parse import urlencode -from urllib.request import Request, urlopen -from urllib.error import URLError, HTTPError sr = attempt_to_import('speech_recognition', 'sr') diff --git a/pliers/converters/api/wit.py b/pliers/converters/api/wit.py index e0d673af..86de385c 100644 --- a/pliers/converters/api/wit.py +++ b/pliers/converters/api/wit.py @@ -3,12 +3,13 @@ import logging import os from abc import abstractproperty +from urllib.request import Request, urlopen +from urllib.error import HTTPError + from pliers.stimuli.text import ComplexTextStim from pliers.utils import attempt_to_import, verify_dependencies from pliers.converters.audio import AudioToTextConverter from pliers.transformers.api import APITransformer -from urllib.request import Request, urlopen -from urllib.error import HTTPError sr = attempt_to_import('speech_recognition', 'sr') diff --git a/pliers/converters/base.py b/pliers/converters/base.py index 2ff1256d..9547ae4a 100644 --- a/pliers/converters/base.py +++ b/pliers/converters/base.py @@ -1,11 +1,12 @@ ''' Base Converter class and utilities. ''' from abc import ABCMeta, abstractmethod, abstractproperty +import inspect + from pliers.transformers import Transformer from pliers.utils import listify, EnvironmentKeyMixin from pliers import config import pliers -import inspect class Converter(Transformer, metaclass=ABCMeta): diff --git a/pliers/converters/image.py b/pliers/converters/image.py index 827cd3dc..e0033c07 100644 --- a/pliers/converters/image.py +++ b/pliers/converters/image.py @@ -1,10 +1,11 @@ ''' Converter classes that operate on ImageStim inputs. ''' from PIL import Image -from .base import Converter + from pliers.stimuli.image import ImageStim from pliers.stimuli.text import TextStim from pliers.utils import attempt_to_import, verify_dependencies +from .base import Converter pytesseract = attempt_to_import('pytesseract') diff --git a/pliers/extractors/api/clarifai.py b/pliers/extractors/api/clarifai.py index 5e2d56be..a757a24d 100644 --- a/pliers/extractors/api/clarifai.py +++ b/pliers/extractors/api/clarifai.py @@ -5,13 +5,16 @@ import logging import os from contextlib import ExitStack + +import pandas as pd + from pliers.extractors.image import ImageExtractor from pliers.extractors.video import VideoExtractor from pliers.extractors.base import ExtractorResult from pliers.transformers import BatchTransformerMixin from pliers.transformers.api import APITransformer from pliers.utils import listify, attempt_to_import, verify_dependencies -import pandas as pd + clarifai_client = attempt_to_import('clarifai.rest.client', 'clarifai_client', ['ClarifaiApp', diff --git a/pliers/extractors/api/google.py b/pliers/extractors/api/google.py index 0d848390..7e1f4c82 100644 --- a/pliers/extractors/api/google.py +++ b/pliers/extractors/api/google.py @@ -1,5 +1,14 @@ ''' Google API-based feature extraction classes. ''' +import logging +import time +import warnings +import os +from collections import defaultdict + +import numpy as np +import pandas as pd + from pliers.extractors.image import ImageExtractor from pliers.extractors.text import TextExtractor from pliers.extractors.video import VideoExtractor @@ -8,13 +17,6 @@ GoogleAPITransformer) from pliers.extractors.base import ExtractorResult from pliers.utils import flatten_dict -import numpy as np -import pandas as pd -import logging -import time -import warnings -import os -from collections import defaultdict class GoogleVisionAPIExtractor(GoogleVisionAPITransformer, ImageExtractor): diff --git a/pliers/extractors/api/microsoft.py b/pliers/extractors/api/microsoft.py index 0b12e4be..2ca7da80 100644 --- a/pliers/extractors/api/microsoft.py +++ b/pliers/extractors/api/microsoft.py @@ -2,13 +2,13 @@ Extractors that interact with Microsoft Azure Cognitive Services API. ''' +import pandas as pd + from pliers.extractors.base import ExtractorResult from pliers.extractors.image import ImageExtractor from pliers.transformers import (MicrosoftAPITransformer, MicrosoftVisionAPITransformer) -import pandas as pd - class MicrosoftAPIFaceExtractor(MicrosoftAPITransformer, ImageExtractor): ''' Extracts face features (location, emotion, accessories, etc.). From an diff --git a/pliers/extractors/audio.py b/pliers/extractors/audio.py index 189aac71..e2ef812f 100644 --- a/pliers/extractors/audio.py +++ b/pliers/extractors/audio.py @@ -1,18 +1,21 @@ ''' Extractors that operate on AudioStim inputs. ''' + +from abc import ABCMeta +from os import path +import sys +import logging + +import numpy as np +from scipy import fft +import pandas as pd +import soundfile as sf + from pliers.stimuli.audio import AudioStim from pliers.stimuli.text import ComplexTextStim from pliers.extractors.base import Extractor, ExtractorResult from pliers.utils import attempt_to_import, verify_dependencies, listify from pliers.support.exceptions import MissingDependencyError from pliers.support.setup_yamnet import YAMNET_PATH -import numpy as np -from scipy import fft -import pandas as pd -import soundfile as sf -from abc import ABCMeta -from os import path -import sys -import logging librosa = attempt_to_import('librosa') tf = attempt_to_import('tensorflow') diff --git a/pliers/extractors/base.py b/pliers/extractors/base.py index f725775f..563d9041 100644 --- a/pliers/extractors/base.py +++ b/pliers/extractors/base.py @@ -1,12 +1,14 @@ ''' Base Extractor class and associated functionality. ''' from abc import ABCMeta, abstractmethod +import json + import pandas as pd import numpy as np +from pandas.api.types import is_numeric_dtype + from pliers.transformers import Transformer from pliers.utils import isgenerator, flatten, listify -from pandas.api.types import is_numeric_dtype -import json class Extractor(Transformer, metaclass=ABCMeta): diff --git a/pliers/extractors/image.py b/pliers/extractors/image.py index 64724230..65163441 100644 --- a/pliers/extractors/image.py +++ b/pliers/extractors/image.py @@ -2,14 +2,15 @@ Extractors that operate primarily or exclusively on Image stimuli. ''' +from functools import partial + +import numpy as np +import pandas as pd + from pliers.stimuli.image import ImageStim from pliers.extractors.base import Extractor, ExtractorResult from pliers.utils import attempt_to_import, verify_dependencies, listify from pliers.support.due import due, Url, Doi -import numpy as np -import pandas as pd -from functools import partial - cv2 = attempt_to_import('cv2') face_recognition = attempt_to_import('face_recognition') diff --git a/pliers/extractors/models.py b/pliers/extractors/models.py index 0ef5aacf..eaab63e8 100644 --- a/pliers/extractors/models.py +++ b/pliers/extractors/models.py @@ -1,12 +1,12 @@ ''' Extractor classes based on pre-trained models. ''' import numpy as np + from pliers.extractors.image import ImageExtractor from pliers.extractors.base import ExtractorResult from pliers.filters.image import ImageResizingFilter from pliers.utils import attempt_to_import, verify_dependencies - tf = attempt_to_import('tensorflow') attempt_to_import('tensorflow.keras') diff --git a/pliers/extractors/text.py b/pliers/extractors/text.py index 092df326..7d17ba2a 100644 --- a/pliers/extractors/text.py +++ b/pliers/extractors/text.py @@ -2,6 +2,15 @@ Extractors that operate primarily or exclusively on Text stimuli. ''' import sys +import itertools +import logging + +import numpy as np +import pandas as pd +import scipy +import nltk +from nltk.sentiment.vader import SentimentIntensityAnalyzer + from pliers.stimuli.text import TextStim, ComplexTextStim from pliers.extractors.base import Extractor, ExtractorResult from pliers.support.exceptions import PliersError @@ -10,13 +19,6 @@ from pliers.transformers import BatchTransformerMixin from pliers.utils import (attempt_to_import, verify_dependencies, flatten, listify) -import itertools -import numpy as np -import pandas as pd -import scipy -import nltk -from nltk.sentiment.vader import SentimentIntensityAnalyzer -import logging keyedvectors = attempt_to_import('gensim.models.keyedvectors', 'keyedvectors', diff --git a/pliers/extractors/video.py b/pliers/extractors/video.py index 962ea975..038656c8 100644 --- a/pliers/extractors/video.py +++ b/pliers/extractors/video.py @@ -2,12 +2,12 @@ Extractors that operate primarily or exclusively on Video stimuli. ''' +import numpy as np + from pliers.stimuli.video import VideoStim from pliers.extractors.base import Extractor, ExtractorResult from pliers.utils import attempt_to_import, verify_dependencies -import numpy as np - cv2 = attempt_to_import('cv2') diff --git a/pliers/filters/audio.py b/pliers/filters/audio.py index ef9d544e..d5dffb90 100644 --- a/pliers/filters/audio.py +++ b/pliers/filters/audio.py @@ -1,9 +1,10 @@ ''' Filters that operate on TextStim inputs. ''' +from copy import deepcopy + from pliers.stimuli import AudioStim from pliers.utils import attempt_to_import, verify_dependencies from .base import Filter, TemporalTrimmingFilter -from copy import deepcopy librosa = attempt_to_import('librosa') diff --git a/pliers/filters/base.py b/pliers/filters/base.py index 707b9f44..bd3d2f70 100644 --- a/pliers/filters/base.py +++ b/pliers/filters/base.py @@ -1,12 +1,12 @@ ''' Base Filter class and associated functionality. ''' from abc import ABCMeta, abstractmethod +import logging + from pliers.stimuli import AudioStim, VideoStim from pliers.transformers import Transformer from pliers.utils import listify -import logging - class Filter(Transformer, metaclass=ABCMeta): ''' Base class for Filters.''' diff --git a/pliers/filters/image.py b/pliers/filters/image.py index 28f85da0..34aae65e 100644 --- a/pliers/filters/image.py +++ b/pliers/filters/image.py @@ -1,11 +1,11 @@ ''' Filters that operate on ImageStim inputs. ''' -from pliers.stimuli.image import ImageStim +import numpy as np from PIL import Image from PIL import ImageFilter as PillowFilter -from .base import Filter -import numpy as np +from pliers.stimuli.image import ImageStim +from .base import Filter class ImageFilter(Filter): diff --git a/pliers/filters/text.py b/pliers/filters/text.py index 395e65b0..2f791329 100644 --- a/pliers/filters/text.py +++ b/pliers/filters/text.py @@ -1,13 +1,14 @@ ''' Filters that operate on TextStim inputs. ''' -import nltk import string import re +import nltk from nltk import stem from nltk.tokenize import word_tokenize from nltk.tokenize import * # noqa from nltk.tokenize.api import TokenizerI + from pliers.stimuli.text import TextStim from pliers.support.decorators import requires_nltk_corpus from .base import Filter diff --git a/pliers/filters/video.py b/pliers/filters/video.py index 309af916..0f265087 100644 --- a/pliers/filters/video.py +++ b/pliers/filters/video.py @@ -1,12 +1,11 @@ ''' Filters that operate on TextStim inputs. ''' +import numpy as np + from pliers.stimuli.video import VideoStim, VideoFrameCollectionStim from pliers.utils import attempt_to_import, verify_dependencies from .base import Filter, TemporalTrimmingFilter -import numpy as np - - cv2 = attempt_to_import('cv2') diff --git a/pliers/graph.py b/pliers/graph.py index cfcbb965..9f0b41d8 100644 --- a/pliers/graph.py +++ b/pliers/graph.py @@ -1,15 +1,14 @@ ''' The `graph` module contains tools for constructing and executing graphs of pliers Transformers. ''' +from itertools import chain +from collections import OrderedDict +import json from pliers.extractors.base import merge_results from pliers.stimuli import __all__ as stim_list from pliers.transformers import get_transformer from pliers.utils import (listify, flatten, isgenerator, attempt_to_import, verify_dependencies) -from itertools import chain -from collections import OrderedDict - -import json pgv = attempt_to_import('pygraphviz', 'pgv') stim_list.insert(0, 'ExtractorResult') diff --git a/pliers/stimuli/audio.py b/pliers/stimuli/audio.py index af7454cd..9a750c04 100644 --- a/pliers/stimuli/audio.py +++ b/pliers/stimuli/audio.py @@ -1,9 +1,10 @@ ''' Classes that represent audio clips. ''' -from .base import Stim from moviepy.audio.io.AudioFileClip import AudioFileClip from moviepy.video.io.ffmpeg_reader import ffmpeg_parse_infos +from .base import Stim + class AudioStim(Stim): diff --git a/pliers/stimuli/base.py b/pliers/stimuli/base.py index 3b71a594..35618deb 100644 --- a/pliers/stimuli/base.py +++ b/pliers/stimuli/base.py @@ -1,6 +1,5 @@ ''' Base class for all Stims and associated functionality. ''' - from abc import ABCMeta, abstractmethod from os.path import isdir, join, basename, realpath, isfile from glob import glob @@ -8,13 +7,15 @@ from urllib.parse import urlparse from collections import namedtuple from contextlib import contextmanager -from pliers import config -from pliers.utils import isiterable -import pandas as pd import os import tempfile import base64 +import pandas as pd + +from pliers import config +from pliers.utils import isiterable + class Stim(metaclass=ABCMeta): diff --git a/pliers/stimuli/image.py b/pliers/stimuli/image.py index b8f594a1..5859a9a8 100644 --- a/pliers/stimuli/image.py +++ b/pliers/stimuli/image.py @@ -1,13 +1,15 @@ ''' Classes that represent images. ''' -from .base import Stim -from imageio import imread, imsave -from PIL import Image +from functools import lru_cache from urllib.request import urlopen import io + +from imageio import imread, imsave +from PIL import Image import numpy as np -from functools import lru_cache + from .base import _get_bytestring +from .base import Stim class ImageStim(Stim): diff --git a/pliers/stimuli/text.py b/pliers/stimuli/text.py index b029627f..d53288a2 100644 --- a/pliers/stimuli/text.py +++ b/pliers/stimuli/text.py @@ -1,8 +1,10 @@ ''' Classes that represent text or sequences of text. ''' import re -import pandas as pd from urllib.request import urlopen + +import pandas as pd + from pliers.support.decorators import requires_nltk_corpus from pliers.utils import attempt_to_import, verify_dependencies from .base import Stim diff --git a/pliers/stimuli/video.py b/pliers/stimuli/video.py index acdc6701..debe0483 100644 --- a/pliers/stimuli/video.py +++ b/pliers/stimuli/video.py @@ -2,7 +2,9 @@ from __future__ import division from math import ceil + from moviepy.video.io.VideoFileClip import VideoFileClip + from .base import Stim, _get_bytestring from .audio import AudioStim from .image import ImageStim diff --git a/pliers/support/decorators.py b/pliers/support/decorators.py index 500ce2ce..fbbfb281 100644 --- a/pliers/support/decorators.py +++ b/pliers/support/decorators.py @@ -2,6 +2,7 @@ """Custom decorators.""" from __future__ import absolute_import from functools import wraps + from pliers.support.exceptions import MissingCorpusError diff --git a/pliers/tests/converters/api/test_google_converters.py b/pliers/tests/converters/api/test_google_converters.py index 6a9fdfbb..a541e405 100644 --- a/pliers/tests/converters/api/test_google_converters.py +++ b/pliers/tests/converters/api/test_google_converters.py @@ -1,9 +1,11 @@ from os.path import join + +import pytest + from ...utils import get_test_data_path from pliers.converters import (GoogleVisionAPITextConverter, GoogleSpeechAPIConverter) from pliers.stimuli import ImageStim, AudioStim, ComplexTextStim -import pytest IMAGE_DIR = join(get_test_data_path(), 'image') AUDIO_DIR = join(get_test_data_path(), 'audio') diff --git a/pliers/tests/converters/api/test_ibm_converters.py b/pliers/tests/converters/api/test_ibm_converters.py index b975125c..3757f5f0 100644 --- a/pliers/tests/converters/api/test_ibm_converters.py +++ b/pliers/tests/converters/api/test_ibm_converters.py @@ -1,9 +1,11 @@ from os.path import join + +import pytest + from ...utils import get_test_data_path from pliers import config from pliers.converters import IBMSpeechAPIConverter from pliers.stimuli import AudioStim, TextStim, ComplexTextStim -import pytest AUDIO_DIR = join(get_test_data_path(), 'audio') diff --git a/pliers/tests/converters/api/test_microsoft_converters.py b/pliers/tests/converters/api/test_microsoft_converters.py index a7b6806e..34c04303 100644 --- a/pliers/tests/converters/api/test_microsoft_converters.py +++ b/pliers/tests/converters/api/test_microsoft_converters.py @@ -1,8 +1,10 @@ from os.path import join + +import pytest + from ...utils import get_test_data_path from pliers.converters import MicrosoftAPITextConverter from pliers.stimuli import ImageStim -import pytest IMAGE_DIR = join(get_test_data_path(), 'image') diff --git a/pliers/tests/converters/api/test_revai_converters.py b/pliers/tests/converters/api/test_revai_converters.py index 95c9c839..70905dc0 100644 --- a/pliers/tests/converters/api/test_revai_converters.py +++ b/pliers/tests/converters/api/test_revai_converters.py @@ -1,8 +1,10 @@ from os.path import join + +import pytest + from ...utils import get_test_data_path from pliers.converters import RevAISpeechAPIConverter from pliers.stimuli import AudioStim, ComplexTextStim, TextStim -import pytest AUDIO_DIR = join(get_test_data_path(), 'audio') diff --git a/pliers/tests/converters/api/test_wit_converters.py b/pliers/tests/converters/api/test_wit_converters.py index f82f3fa1..865bfb79 100644 --- a/pliers/tests/converters/api/test_wit_converters.py +++ b/pliers/tests/converters/api/test_wit_converters.py @@ -1,8 +1,10 @@ from os.path import join + +import pytest + from ...utils import get_test_data_path from pliers.converters import WitTranscriptionConverter from pliers.stimuli import AudioStim, TextStim, ComplexTextStim -import pytest AUDIO_DIR = join(get_test_data_path(), 'audio') diff --git a/pliers/tests/converters/test_converters.py b/pliers/tests/converters/test_converters.py index 0ce68914..a52a8cdf 100644 --- a/pliers/tests/converters/test_converters.py +++ b/pliers/tests/converters/test_converters.py @@ -1,4 +1,7 @@ from os.path import join + +import pytest + from ..utils import get_test_data_path from pliers.converters import (get_converter, VideoToAudioConverter, @@ -8,7 +11,6 @@ from pliers.converters.image import ImageToTextConverter from pliers.stimuli import (VideoStim, TextStim, ComplexTextStim, ImageStim) -import pytest def test_get_converter(): diff --git a/pliers/tests/converters/test_image_converters.py b/pliers/tests/converters/test_image_converters.py index fecc7369..1e787bfb 100644 --- a/pliers/tests/converters/test_image_converters.py +++ b/pliers/tests/converters/test_image_converters.py @@ -1,8 +1,10 @@ from os.path import join + +import pytest + from ..utils import get_test_data_path from pliers.converters import TesseractConverter from pliers.stimuli import ImageStim -import pytest IMAGE_DIR = join(get_test_data_path(), 'image') diff --git a/pliers/tests/converters/test_video_converters.py b/pliers/tests/converters/test_video_converters.py index 5745f6a4..09244941 100644 --- a/pliers/tests/converters/test_video_converters.py +++ b/pliers/tests/converters/test_video_converters.py @@ -1,8 +1,10 @@ from os.path import join + +import numpy as np + from ..utils import get_test_data_path from pliers.converters import VideoToAudioConverter from pliers.stimuli import VideoStim -import numpy as np VIDEO_DIR = join(get_test_data_path(), 'video') diff --git a/pliers/tests/extractors/api/test_clarifai_extractors.py b/pliers/tests/extractors/api/test_clarifai_extractors.py index 5c3de226..1cdf5570 100644 --- a/pliers/tests/extractors/api/test_clarifai_extractors.py +++ b/pliers/tests/extractors/api/test_clarifai_extractors.py @@ -1,12 +1,14 @@ from os.path import join + +import numpy as np +import pytest + from ...utils import get_test_data_path from pliers import config from pliers.extractors import (ClarifaiAPIImageExtractor, ClarifaiAPIVideoExtractor) from pliers.extractors.base import merge_results from pliers.stimuli import ImageStim, VideoStim -import numpy as np -import pytest IMAGE_DIR = join(get_test_data_path(), 'image') VIDEO_DIR = join(get_test_data_path(), 'video') diff --git a/pliers/tests/extractors/api/test_google_extractors.py b/pliers/tests/extractors/api/test_google_extractors.py index 943934b2..1e043c8a 100644 --- a/pliers/tests/extractors/api/test_google_extractors.py +++ b/pliers/tests/extractors/api/test_google_extractors.py @@ -1,3 +1,9 @@ +import json +from os.path import join + +import pytest +import numpy as np + from pliers import config from pliers.filters import FrameSamplingFilter from pliers.extractors import (GoogleVisionAPIFaceExtractor, @@ -20,11 +26,8 @@ from pliers.extractors.api.google import GoogleVisionAPIExtractor from pliers.stimuli import ImageStim, VideoStim, TextStim from pliers.utils import attempt_to_import, verify_dependencies -import pytest -import json -from os.path import join from ...utils import get_test_data_path -import numpy as np + googleapiclient = attempt_to_import('googleapiclient', fromlist=['discovery']) diff --git a/pliers/tests/extractors/api/test_microsoft_extractors.py b/pliers/tests/extractors/api/test_microsoft_extractors.py index c08418fe..75cbf907 100644 --- a/pliers/tests/extractors/api/test_microsoft_extractors.py +++ b/pliers/tests/extractors/api/test_microsoft_extractors.py @@ -1,3 +1,7 @@ +from os.path import join + +import pytest + from pliers import config from pliers.extractors import (MicrosoftAPIFaceExtractor, MicrosoftAPIFaceEmotionExtractor, @@ -9,8 +13,6 @@ MicrosoftVisionAPIAdultExtractor) from pliers.extractors import merge_results from pliers.stimuli import ImageStim, VideoStim -import pytest -from os.path import join from ...utils import get_test_data_path IMAGE_DIR = join(get_test_data_path(), 'image') diff --git a/pliers/tests/extractors/test_audio_extractors.py b/pliers/tests/extractors/test_audio_extractors.py index 6ff4309d..92a647ad 100644 --- a/pliers/tests/extractors/test_audio_extractors.py +++ b/pliers/tests/extractors/test_audio_extractors.py @@ -1,5 +1,9 @@ from os.path import join from os import environ + +import numpy as np +import pytest + from ..utils import get_test_data_path from pliers.extractors import (LibrosaFeatureExtractor, STFTAudioExtractor, @@ -30,8 +34,7 @@ TranscribedAudioCompoundStim) from pliers.filters import AudioResamplingFilter from pliers.utils import attempt_to_import, verify_dependencies -import numpy as np -import pytest + AUDIO_DIR = join(get_test_data_path(), 'audio') tf = attempt_to_import('tensorflow') diff --git a/pliers/tests/extractors/test_extractors.py b/pliers/tests/extractors/test_extractors.py index f672fb2c..b1c7e9cd 100644 --- a/pliers/tests/extractors/test_extractors.py +++ b/pliers/tests/extractors/test_extractors.py @@ -1,4 +1,9 @@ from os.path import join +import json + +import numpy as np +import pytest + from pliers.tests.utils import (get_test_data_path, DummyExtractor, ClashingFeatureExtractor) from pliers.extractors import (LengthExtractor, @@ -10,9 +15,6 @@ from pliers.support.download import download_nltk_data from pliers.extractors.base import ExtractorResult, merge_results from pliers import config -import numpy as np -import pytest -import json TEXT_DIR = join(get_test_data_path(), 'text') diff --git a/pliers/tests/extractors/test_image_extractors.py b/pliers/tests/extractors/test_image_extractors.py index 110483d7..85f5048a 100644 --- a/pliers/tests/extractors/test_image_extractors.py +++ b/pliers/tests/extractors/test_image_extractors.py @@ -1,4 +1,8 @@ from os.path import join + +import numpy as np +import pytest + from ..utils import get_test_data_path from pliers.extractors import (BrightnessExtractor, SharpnessExtractor, @@ -10,8 +14,7 @@ FaceRecognitionFaceEncodingsExtractor) from pliers.stimuli import ImageStim from pliers.extractors.base import merge_results -import numpy as np -import pytest + IMAGE_DIR = join(get_test_data_path(), 'image') diff --git a/pliers/tests/extractors/test_text_extractors.py b/pliers/tests/extractors/test_text_extractors.py index 3af007bd..a3ac8f9f 100644 --- a/pliers/tests/extractors/test_text_extractors.py +++ b/pliers/tests/extractors/test_text_extractors.py @@ -1,3 +1,14 @@ + +from os.path import join +from pathlib import Path +from os import environ +import shutil + +import numpy as np +import pytest +import spacy +from transformers import BertTokenizer + from pliers import config from pliers.extractors import (DictionaryExtractor, PartOfSpeechExtractor, @@ -16,14 +27,7 @@ from pliers.extractors.base import merge_results from pliers.stimuli import TextStim, ComplexTextStim from pliers.tests.utils import get_test_data_path -import numpy as np -from os.path import join -from pathlib import Path -import shutil -import pytest -import spacy -from os import environ -from transformers import BertTokenizer + TEXT_DIR = join(get_test_data_path(), 'text') diff --git a/pliers/tests/extractors/test_video_extractors.py b/pliers/tests/extractors/test_video_extractors.py index 452e00cb..01a05c18 100644 --- a/pliers/tests/extractors/test_video_extractors.py +++ b/pliers/tests/extractors/test_video_extractors.py @@ -1,9 +1,11 @@ from os.path import join + +import numpy as np +import pytest + from ..utils import get_test_data_path from pliers.extractors import FarnebackOpticalFlowExtractor from pliers.stimuli import VideoStim -import numpy as np -import pytest VIDEO_DIR = join(get_test_data_path(), 'video') diff --git a/pliers/tests/filters/test_audio_filters.py b/pliers/tests/filters/test_audio_filters.py index 99f9ce10..12e4cee6 100644 --- a/pliers/tests/filters/test_audio_filters.py +++ b/pliers/tests/filters/test_audio_filters.py @@ -1,11 +1,13 @@ from os.path import join + +import pytest +import numpy as np + from ..utils import get_test_data_path from pliers.filters import (AudioTrimmingFilter, TemporalTrimmingFilter, AudioResamplingFilter) from pliers.stimuli import AudioStim -import pytest -import numpy as np AUDIO_DIR = join(get_test_data_path(), 'audio') diff --git a/pliers/tests/filters/test_image_filters.py b/pliers/tests/filters/test_image_filters.py index 67059670..7da52318 100644 --- a/pliers/tests/filters/test_image_filters.py +++ b/pliers/tests/filters/test_image_filters.py @@ -1,11 +1,13 @@ from os.path import join + +import numpy as np +import pytest + from ..utils import get_test_data_path from pliers.filters import (ImageCroppingFilter, ImageResizingFilter, PillowImageFilter) from pliers.stimuli import ImageStim -import numpy as np -import pytest IMAGE_DIR = join(get_test_data_path(), 'image') diff --git a/pliers/tests/filters/test_text_filters.py b/pliers/tests/filters/test_text_filters.py index 91b5a98d..f0c77dd1 100644 --- a/pliers/tests/filters/test_text_filters.py +++ b/pliers/tests/filters/test_text_filters.py @@ -1,4 +1,11 @@ from os.path import join +import string + +from nltk import stem as nls +from nltk.tokenize import PunktSentenceTokenizer +import nltk +import pytest + from ..utils import get_test_data_path from pliers.filters import (WordStemmingFilter, TokenizingFilter, @@ -7,11 +14,6 @@ PunctuationRemovalFilter) from pliers.graph import Graph from pliers.stimuli import ComplexTextStim, TextStim -from nltk import stem as nls -from nltk.tokenize import PunktSentenceTokenizer -import nltk -import pytest -import string TEXT_DIR = join(get_test_data_path(), 'text') diff --git a/pliers/tests/filters/test_video_filters.py b/pliers/tests/filters/test_video_filters.py index 8ce2d7e8..2c472414 100644 --- a/pliers/tests/filters/test_video_filters.py +++ b/pliers/tests/filters/test_video_filters.py @@ -1,11 +1,14 @@ from os.path import join +import math + +import pytest + from ..utils import get_test_data_path from pliers.filters import (FrameSamplingFilter, VideoTrimmingFilter, TemporalTrimmingFilter) from pliers.stimuli import VideoStim, VideoFrameStim -import pytest -import math + VIDEO_DIR = join(get_test_data_path(), 'video') diff --git a/pliers/tests/test_config.py b/pliers/tests/test_config.py index 45fb587a..69e350eb 100644 --- a/pliers/tests/test_config.py +++ b/pliers/tests/test_config.py @@ -1,8 +1,10 @@ -import pliers import tempfile import os import json + import pytest + +import pliers from pliers.config import reset_options diff --git a/pliers/tests/test_datasets.py b/pliers/tests/test_datasets.py index 11528500..1eebceea 100644 --- a/pliers/tests/test_datasets.py +++ b/pliers/tests/test_datasets.py @@ -1,6 +1,7 @@ -from pliers.datasets.text import _load_datasets import requests +from pliers.datasets.text import _load_datasets + def test_dicts_exist_at_url_and_initialize(): """ diff --git a/pliers/tests/test_diagnostics.py b/pliers/tests/test_diagnostics.py index 68717c33..06751469 100644 --- a/pliers/tests/test_diagnostics.py +++ b/pliers/tests/test_diagnostics.py @@ -1,5 +1,6 @@ import pandas as pd import numpy as np + from pliers.diagnostics import Diagnostics from pliers.diagnostics import correlation_matrix from pliers.diagnostics import eigenvalues diff --git a/pliers/tests/test_graph.py b/pliers/tests/test_graph.py index 38c732ce..70a2b0dc 100644 --- a/pliers/tests/test_graph.py +++ b/pliers/tests/test_graph.py @@ -1,4 +1,11 @@ +from os.path import join, exists +import tempfile +import os + +from numpy.testing import assert_almost_equal +import pandas as pd import pytest + from pliers.graph import Graph, Node from pliers.converters import (TesseractConverter, VideoToAudioConverter, @@ -8,11 +15,6 @@ LengthExtractor, merge_results) from pliers.stimuli import (ImageStim, TextStim, VideoStim) from .utils import get_test_data_path, DummyExtractor -from os.path import join, exists -from numpy.testing import assert_almost_equal -import pandas as pd -import tempfile -import os def test_node_init(): diff --git a/pliers/tests/test_io.py b/pliers/tests/test_io.py index cc75e255..9bc0ef33 100644 --- a/pliers/tests/test_io.py +++ b/pliers/tests/test_io.py @@ -1,8 +1,9 @@ -from .utils import get_test_data_path -from pliers.stimuli import load_stims from os.path import join + import pytest +from .utils import get_test_data_path +from pliers.stimuli import load_stims def test_magic_loader(): text_file = join(get_test_data_path(), 'text', 'sample_text.txt') diff --git a/pliers/tests/test_scikit.py b/pliers/tests/test_scikit.py index 8651d68c..0120c939 100644 --- a/pliers/tests/test_scikit.py +++ b/pliers/tests/test_scikit.py @@ -1,14 +1,15 @@ -from .utils import get_test_data_path +from os.path import join import pytest import numpy as np -from os.path import join from pliers.extractors import BrightnessExtractor, SharpnessExtractor from pliers.graph import Graph from pliers.utils.scikit import PliersTransformer from pliers.stimuli import ImageStim +from .utils import get_test_data_path + def test_graph_scikit(): pytest.importorskip('pytesseract') diff --git a/pliers/tests/test_stims.py b/pliers/tests/test_stims.py index bf72aa58..cb399d08 100644 --- a/pliers/tests/test_stims.py +++ b/pliers/tests/test_stims.py @@ -1,3 +1,12 @@ +import tempfile +import os +import base64 +from os.path import join, exists + +import numpy as np +import pandas as pd +import pytest + from .utils import get_test_data_path from pliers.stimuli import (VideoStim, VideoFrameStim, ComplexTextStim, AudioStim, ImageStim, CompoundStim, @@ -10,13 +19,6 @@ ComplexTextExtractor) from pliers.extractors.base import Extractor, ExtractorResult from pliers.support.download import download_nltk_data -import numpy as np -from os.path import join, exists -import pandas as pd -import pytest -import tempfile -import os -import base64 class DummyExtractor(Extractor): diff --git a/pliers/tests/test_transformers.py b/pliers/tests/test_transformers.py index 10c4ff94..8134c19b 100644 --- a/pliers/tests/test_transformers.py +++ b/pliers/tests/test_transformers.py @@ -1,13 +1,16 @@ +from os.path import join + +import numpy as np +import pytest + from pliers.transformers import get_transformer from pliers.extractors import (STFTAudioExtractor, BrightnessExtractor, merge_results) from pliers.stimuli.base import TransformationLog from pliers.stimuli import ImageStim, VideoStim, TextStim from pliers import config -from os.path import join + from .utils import get_test_data_path, DummyExtractor, DummyBatchExtractor -import numpy as np -import pytest def test_get_transformer_by_name(): diff --git a/pliers/tests/test_updater.py b/pliers/tests/test_updater.py index 9dedabc7..46b4b6c1 100644 --- a/pliers/tests/test_updater.py +++ b/pliers/tests/test_updater.py @@ -1,7 +1,10 @@ -from pliers.utils.updater import check_updates from tempfile import NamedTemporaryFile + import pandas as pd +from pliers.utils.updater import check_updates + + def test_updater(): datastore_file = NamedTemporaryFile().name transformers = [('BrightnessExtractor', {}), ('TesseractConverter', {})] diff --git a/pliers/tests/test_utils.py b/pliers/tests/test_utils.py index 3192b150..9c79160b 100644 --- a/pliers/tests/test_utils.py +++ b/pliers/tests/test_utils.py @@ -1,11 +1,14 @@ +from types import GeneratorType +from os.path import join + +import pytest + from pliers.stimuli import VideoStim from pliers.filters import FrameSamplingFilter from pliers.utils import batch_iterable, flatten_dict from pliers import config -from types import GeneratorType + from .utils import get_test_data_path -from os.path import join -import pytest @pytest.mark.skip(reason="tqdm prevents normal stdout/stderr capture; need to" diff --git a/pliers/tests/utils.py b/pliers/tests/utils.py index 2e517313..3c75e5ec 100644 --- a/pliers/tests/utils.py +++ b/pliers/tests/utils.py @@ -1,10 +1,13 @@ from os.path import dirname, join +from copy import deepcopy + +import numpy as np +import pandas as pd + from pliers.stimuli import ImageStim from pliers.extractors.base import Extractor, ExtractorResult from pliers.transformers import BatchTransformerMixin -import numpy as np -from copy import deepcopy -import pandas as pd + def get_test_data_path(): """Returns the path to test datasets """ diff --git a/pliers/transformers/api/base.py b/pliers/transformers/api/base.py index 22204327..6cf06445 100644 --- a/pliers/transformers/api/base.py +++ b/pliers/transformers/api/base.py @@ -1,9 +1,9 @@ ''' Base implementation for all API transformers. ''' +import time from pliers import config from pliers.transformers import Transformer from pliers.utils import isiterable, listify, APIDependent -import time class APITransformer(APIDependent, Transformer): diff --git a/pliers/transformers/api/google.py b/pliers/transformers/api/google.py index c7ff3781..bf9254b7 100644 --- a/pliers/transformers/api/google.py +++ b/pliers/transformers/api/google.py @@ -1,5 +1,6 @@ import logging import os + from pliers.transformers import BatchTransformerMixin from pliers.transformers.api import APITransformer from pliers.utils import attempt_to_import, verify_dependencies diff --git a/pliers/transformers/api/microsoft.py b/pliers/transformers/api/microsoft.py index ba1a1864..1ecddc6c 100644 --- a/pliers/transformers/api/microsoft.py +++ b/pliers/transformers/api/microsoft.py @@ -1,6 +1,8 @@ import logging import os + import requests + from pliers.transformers.api import APITransformer diff --git a/pliers/transformers/base.py b/pliers/transformers/base.py index c0886c5a..6a33d9e1 100644 --- a/pliers/transformers/base.py +++ b/pliers/transformers/base.py @@ -1,4 +1,8 @@ ''' Core transformer logic. ''' +from abc import ABCMeta, abstractmethod, abstractproperty +import importlib +import logging +from functools import wraps from pliers import config from pliers.stimuli.base import Stim, _log_transformation, load_stims @@ -7,10 +11,7 @@ isgenerator, listify, batch_iterable, attempt_to_import, set_iterable_type) import pliers -from abc import ABCMeta, abstractmethod, abstractproperty -import importlib -import logging -from functools import wraps + multiprocessing = attempt_to_import('pathos.multiprocessing', 'multiprocessing', ['ProcessingPool']) diff --git a/pliers/utils/base.py b/pliers/utils/base.py index 1b0a59c8..2adf2f84 100644 --- a/pliers/utils/base.py +++ b/pliers/utils/base.py @@ -3,11 +3,13 @@ import collections import os from abc import ABCMeta, abstractmethod, abstractproperty +from types import GeneratorType +from itertools import islice + from tqdm import tqdm + from pliers import config from pliers.support.exceptions import MissingDependencyError -from types import GeneratorType -from itertools import islice def listify(obj): diff --git a/pliers/utils/updater.py b/pliers/utils/updater.py index f914a1bc..43230265 100644 --- a/pliers/utils/updater.py +++ b/pliers/utils/updater.py @@ -2,13 +2,16 @@ import glob import datetime +from os.path import realpath, join, dirname, exists, expanduser +import hashlib +import pickle + import pandas as pd import numpy as np -from os.path import realpath, join, dirname, exists, expanduser + from pliers.stimuli import load_stims from pliers.transformers import get_transformer -import hashlib -import pickle + def hash_data(data, blocksize=65536): """" Hashes list of data, strings or data """