Skip to content

Commit

Permalink
Merge pull request #785 from NeurodataWithoutBorders/enable_isort
Browse files Browse the repository at this point in the history
Enable isort
  • Loading branch information
CodyCBakerPhD authored May 18, 2024
2 parents e5dfcb3 + f234c90 commit 78a6298
Show file tree
Hide file tree
Showing 18 changed files with 91 additions and 84 deletions.
4 changes: 4 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ repos:
hooks:
- id: black
exclude: ^docs/
- repo: https://github.com/PyCQA/isort
rev: 5.13.2
hooks:
- id: isort
- repo: https://github.com/pre-commit/mirrors-prettier
rev: "v4.0.0-alpha.8"
hooks:
Expand Down
12 changes: 6 additions & 6 deletions demos/sse/test_sse_display_of_tqdm.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
from flask import Flask, render_template, Response
from typing import List
import random
import asyncio
import os
import random
import sys
import time
from tqdm import tqdm as base_tqdm
from typing import List

import sys
import os
from flask import Flask, Response, render_template
from tqdm import tqdm as base_tqdm

SCRIPT_DIR = os.path.dirname(os.path.abspath(os.path.join(__file__, "..", "..", "pyflask")))
sys.path.append(os.path.dirname(SCRIPT_DIR))
Expand Down
5 changes: 2 additions & 3 deletions docs/conf.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
import sys
import inspect
from pathlib import Path
import json
import os
import sys
from pathlib import Path

sys.path.insert(0, str(Path(__file__).resolve().parents[0]))
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))

from conf_extlinks import extlinks, intersphinx_mapping # noqa: E402, F401


project = "NWB GUIDE"
copyright = "2022, CatalystNeuro" # TODO: how to include NWB?
author = "Garrett Flynn, Cody Baker, Ryan Ly, Oliver Ruebel, and Ben Dichter"
Expand Down
5 changes: 3 additions & 2 deletions generateInterfaceSchema.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from pathlib import Path
import json
from neuroconv import converters, datainterfaces, NWBConverter
from pathlib import Path

from neuroconv import NWBConverter, converters, datainterfaces

filepath = Path("guideGlobalMetadata.json")
generatedJSONSchemaPath = Path("schemas", "json", "generated")
Expand Down
4 changes: 2 additions & 2 deletions pyflask/apis/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
from .startup import startup_api
from .neuroconv import neuroconv_api
from .data import data_api
from .neuroconv import neuroconv_api
from .startup import startup_api
5 changes: 2 additions & 3 deletions pyflask/apis/data.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,9 @@

import traceback

from flask_restx import Namespace, Resource, reqparse

from manageNeuroconv import generate_test_data, generate_dataset
from errorHandlers import notBadRequestException
from flask_restx import Namespace, Resource, reqparse
from manageNeuroconv import generate_dataset, generate_test_data

data_api = Namespace("data", description="API route for dataset generation in the NWB GUIDE.")

Expand Down
30 changes: 13 additions & 17 deletions pyflask/apis/neuroconv.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,32 +2,28 @@

import traceback

from flask_restx import Namespace, Resource, reqparse
from errorHandlers import notBadRequestException
from flask import Response, request

from manageNeuroconv.info import announcer

from flask_restx import Namespace, Resource, reqparse
from manageNeuroconv import (
get_all_interface_info,
get_all_converter_info,
locate_data,
autocomplete_format_string,
get_source_schema,
get_metadata_schema,
convert_to_nwb,
validate_metadata,
listen_to_neuroconv_events,
get_all_converter_info,
get_all_interface_info,
get_interface_alignment,
get_metadata_schema,
get_source_schema,
inspect_multiple_filesystem_objects,
inspect_nwb_file,
inspect_nwb_folder,
inspect_multiple_filesystem_objects,
upload_project_to_dandi,
listen_to_neuroconv_events,
locate_data,
upload_folder_to_dandi,
upload_multiple_filesystem_objects_to_dandi,
get_interface_alignment,
upload_project_to_dandi,
validate_metadata,
)

from errorHandlers import notBadRequestException

from manageNeuroconv.info import announcer

neuroconv_api = Namespace("neuroconv", description="Neuroconv neuroconv_api for the NWB GUIDE.")

Expand Down
3 changes: 1 addition & 2 deletions pyflask/apis/startup.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
"""API endpoint definitions for startup operations."""

from flask_restx import Namespace, Resource

from errorHandlers import notBadRequestException
from flask_restx import Namespace, Resource

startup_api = Namespace("startup", description="API for startup commands related to the NWB GUIDE.")

Expand Down
23 changes: 12 additions & 11 deletions pyflask/app.py
Original file line number Diff line number Diff line change
@@ -1,28 +1,29 @@
"""The primary Flask server for the Python backend."""

import sys
import json
import multiprocessing
from os import kill, getpid
from os.path import isabs

from signal import SIGINT
from logging import Formatter, DEBUG
import sys
from logging import DEBUG, Formatter
from logging.handlers import RotatingFileHandler
from os import getpid, kill
from os.path import isabs
from pathlib import Path
from signal import SIGINT
from urllib.parse import unquote


# https://stackoverflow.com/questions/32672596/pyinstaller-loads-script-multiple-times#comment103216434_32677108
multiprocessing.freeze_support()


from flask import Flask, request, send_from_directory, send_file
from apis import data_api, neuroconv_api, startup_api
from flask import Flask, request, send_file, send_from_directory
from flask_cors import CORS
from flask_restx import Api, Resource

from apis import startup_api, neuroconv_api, data_api
from manageNeuroconv.info import resource_path, STUB_SAVE_FOLDER_PATH, CONVERSION_SAVE_FOLDER_PATH
from manageNeuroconv.info import (
CONVERSION_SAVE_FOLDER_PATH,
STUB_SAVE_FOLDER_PATH,
resource_path,
)

app = Flask(__name__)

Expand Down
30 changes: 14 additions & 16 deletions pyflask/manageNeuroconv/__init__.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,21 @@
from .info import CONVERSION_SAVE_FOLDER_PATH, STUB_SAVE_FOLDER_PATH
from .manage_neuroconv import (
get_all_interface_info,
get_all_converter_info,
locate_data,
autocomplete_format_string,
get_source_schema,
get_metadata_schema,
convert_to_nwb,
validate_metadata,
upload_project_to_dandi,
upload_folder_to_dandi,
upload_multiple_filesystem_objects_to_dandi,
listen_to_neuroconv_events,
generate_dataset,
generate_test_data,
get_all_converter_info,
get_all_interface_info,
get_interface_alignment,
get_metadata_schema,
get_source_schema,
inspect_multiple_filesystem_objects,
inspect_nwb_file,
inspect_nwb_folder,
inspect_multiple_filesystem_objects,
get_interface_alignment,
generate_test_data,
listen_to_neuroconv_events,
locate_data,
upload_folder_to_dandi,
upload_multiple_filesystem_objects_to_dandi,
upload_project_to_dandi,
validate_metadata,
)


from .info import STUB_SAVE_FOLDER_PATH, CONVERSION_SAVE_FOLDER_PATH
7 changes: 3 additions & 4 deletions pyflask/manageNeuroconv/info/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
from .sse import announcer, format_sse
from .urls import (
resource_path,
CONVERSION_SAVE_FOLDER_PATH,
GUIDE_ROOT_FOLDER,
STUB_SAVE_FOLDER_PATH,
CONVERSION_SAVE_FOLDER_PATH,
resource_path,
)

from .sse import announcer, format_sse
2 changes: 1 addition & 1 deletion pyflask/manageNeuroconv/info/sse.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import queue
import json
import queue


def format_sse(data: str, event=None) -> str:
Expand Down
2 changes: 1 addition & 1 deletion pyflask/manageNeuroconv/info/urls.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from pathlib import Path
import json
import os
import sys
from pathlib import Path


def resource_path(relative_path):
Expand Down
34 changes: 22 additions & 12 deletions pyflask/manageNeuroconv/manage_neuroconv.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,15 @@
import re
from datetime import datetime
from pathlib import Path
from shutil import rmtree, copytree
from typing import Any, Dict, List, Optional
from typing import Union
from shutil import copytree, rmtree
from typing import Any, Dict, List, Optional, Union

from .info import GUIDE_ROOT_FOLDER, STUB_SAVE_FOLDER_PATH, CONVERSION_SAVE_FOLDER_PATH, announcer
from .info import (
CONVERSION_SAVE_FOLDER_PATH,
GUIDE_ROOT_FOLDER,
STUB_SAVE_FOLDER_PATH,
announcer,
)

EXCLUDED_RECORDING_INTERFACE_PROPERTIES = ["contact_vector", "contact_shapes", "group", "location"]

Expand Down Expand Up @@ -337,7 +341,7 @@ def get_all_interface_info() -> dict:

# Combine Multiple Interfaces
def get_custom_converter(interface_class_dict: dict): # -> NWBConverter:
from neuroconv import converters, datainterfaces, NWBConverter
from neuroconv import NWBConverter, converters, datainterfaces

class CustomNWBConverter(NWBConverter):
data_interface_classes = {
Expand Down Expand Up @@ -477,8 +481,12 @@ def on_recording_interface(name, recording_interface):

return recording_interface

from neuroconv.datainterfaces.ecephys.baserecordingextractorinterface import BaseRecordingExtractorInterface
from neuroconv.datainterfaces.ecephys.basesortingextractorinterface import BaseSortingExtractorInterface
from neuroconv.datainterfaces.ecephys.baserecordingextractorinterface import (
BaseRecordingExtractorInterface,
)
from neuroconv.datainterfaces.ecephys.basesortingextractorinterface import (
BaseSortingExtractorInterface,
)

# Map recording interfaces to metadata
map_interfaces(on_recording_interface, converter=converter, to_match=BaseRecordingExtractorInterface)
Expand Down Expand Up @@ -605,7 +613,7 @@ def get_check_function(check_function_name: str) -> callable:

def run_check_function(check_function: callable, arg: dict) -> dict:
""".Function used to run an arbitrary NWB Inspector function."""
from nwbinspector.register_checks import InspectorMessage, Importance
from nwbinspector.register_checks import Importance, InspectorMessage

output = check_function(arg)
if isinstance(output, InspectorMessage):
Expand Down Expand Up @@ -648,8 +656,8 @@ def validate_nwbfile_metadata(

def validate_metadata(metadata: dict, check_function_name: str) -> dict:
"""Function used to validate data using an arbitrary NWB Inspector function."""
from pynwb.file import NWBFile, Subject
from nwbinspector.nwbinspector import InspectorOutputJSONEncoder
from pynwb.file import NWBFile, Subject

check_function = get_check_function(check_function_name)

Expand Down Expand Up @@ -988,10 +996,10 @@ def _inspect_file_per_job(
request_id: Optional[str] = None,
) -> list:

import requests
from nwbinspector import nwbinspector
from pynwb import NWBHDF5IO
from tqdm_publisher import TQDMProgressSubscriber
import requests

checks = nwbinspector.configure_checks(
checks=nwbinspector.available_checks,
Expand Down Expand Up @@ -1024,6 +1032,7 @@ def _inspect_file_per_job(
def inspect_all(url, config):

from concurrent.futures import ProcessPoolExecutor, as_completed

from nwbinspector.utils import calculate_number_of_cpu
from tqdm_publisher import TQDMProgressSubscriber

Expand Down Expand Up @@ -1085,10 +1094,11 @@ def on_progress_update(message):


def inspect_nwb_folder(url, payload) -> dict:
from pickle import PicklingError

from nwbinspector import load_config
from nwbinspector.inspector_tools import format_messages, get_report_header
from nwbinspector.nwbinspector import InspectorOutputJSONEncoder
from pickle import PicklingError

kwargs = dict(
ignore=[
Expand Down Expand Up @@ -1211,7 +1221,7 @@ def generate_test_data(output_path: str):
"""
import spikeinterface
from spikeinterface.exporters import export_to_phy
from spikeinterface.preprocessing import scale, bandpass_filter, resample
from spikeinterface.preprocessing import bandpass_filter, resample, scale

base_path = Path(output_path)
spikeglx_output_folder = base_path / "spikeglx"
Expand Down
2 changes: 1 addition & 1 deletion pyflask/tests/conftest.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import pytest
import app as flask
import pytest


def pytest_addoption(parser):
Expand Down
3 changes: 2 additions & 1 deletion pyflask/tests/test_generate_tutorial_data.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from utils import post
from pathlib import Path

from utils import post


def test_generate_test_data(client, tmp_path: Path):
# assert client is None
Expand Down
2 changes: 1 addition & 1 deletion pyflask/tests/test_neuroconv.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from jsonschema import validate
from utils import get, post, get_converter_output_schema
from utils import get, get_converter_output_schema, post


def test_get_all_interfaces(client):
Expand Down
2 changes: 1 addition & 1 deletion pyflask/tests/test_startup.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from utils import get, post, get_converter_output_schema
from utils import get, get_converter_output_schema, post


def test_preload_imports(client):
Expand Down

0 comments on commit 78a6298

Please sign in to comment.