Skip to content

Commit

Permalink
Add isort to pre commit hooks and CI (#780)
Browse files Browse the repository at this point in the history
* isort config

* isort

* set black profile

* black isort

* removed double set of black profile

* hike required python to 3.9

* fix isort MPI

* fix circular import

* fix imports after merge

* revert merge trigger

* fix isort
  • Loading branch information
Helveg committed Nov 30, 2023
1 parent 2f5477b commit e78d4c8
Show file tree
Hide file tree
Showing 103 changed files with 562 additions and 431 deletions.
19 changes: 19 additions & 0 deletions .github/workflows/isort.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Run isort
on:
- push

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Install apt dependencies
run: |
sudo apt update
# Install `libopenmpi` for MPI
sudo apt install openmpi-bin libopenmpi-dev
- run: pip install -e .[parallel]
- uses: isort/isort-action@master
9 changes: 7 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
repos:
- repo: https://github.com/psf/black
- repo: https://github.com/psf/black-pre-commit-mirror
rev: 23.11.0
hooks:
- id: black
language_version: python3
language_version: python3.11
- repo: https://github.com/pycqa/isort
rev: 5.12.0
hooks:
- id: isort
name: isort (python)
4 changes: 3 additions & 1 deletion bsb/_encoding.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import numpy as np
import itertools

import numpy as np

from ._util import obj_str_insert


Expand Down
5 changes: 2 additions & 3 deletions bsb/_util.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
import contextlib as _ctxlib
import functools
import itertools as _it
import os as _os
import sys as _sys
import contextlib as _ctxlib
import typing

import numpy as np

import numpy as _np
import functools

ichain = _it.chain.from_iterable

Expand Down
2 changes: 1 addition & 1 deletion bsb/cell_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
import typing

from . import config
from ._util import obj_str_insert
from .config import types
from .placement.indicator import PlacementIndications
from ._util import obj_str_insert

if typing.TYPE_CHECKING:
from .core import Scaffold
Expand Down
9 changes: 5 additions & 4 deletions bsb/cli/__init__.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import builtins
import inspect
import sys

from .._contexts import get_cli_context, reset_cli_context
from .commands import load_root_command
from ..exceptions import *
import sys
import inspect
import builtins
from .commands import load_root_command


def handle_cli():
Expand Down
1 change: 1 addition & 0 deletions bsb/cli/commands/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
BSB.
"""
import argparse

from ...exceptions import CommandError
from ...reporting import report

Expand Down
14 changes: 8 additions & 6 deletions bsb/cli/commands/_commands.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
"""
Contains builtin commands.
"""
import itertools
from uuid import uuid4

from . import BaseCommand
from ...option import BsbOption
import errr

from ..._options import ConfigOption
from ...core import from_storage, Scaffold
from ...storage import open_storage
from ...config import from_file
from ...core import Scaffold, from_storage
from ...exceptions import NodeNotFoundError
import itertools
import errr
from ...option import BsbOption
from ...storage import open_storage
from . import BaseCommand


class XScale(BsbOption, name="x", cli=("x",), env=("BSB_CONFIG_NETWORK_X",)):
Expand Down Expand Up @@ -227,6 +228,7 @@ class CacheCommand(BaseCommand, name="cache"): # pragma: nocover
def handler(self, context):
import shutil
from datetime import datetime

from ...storage._util import _cache_path

if context.clear:
Expand Down
8 changes: 5 additions & 3 deletions bsb/cli/commands/_projects.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
from . import BaseCommand
from ...reporting import report
from ... import config
import pathlib

import toml

from ... import config
from ...reporting import report
from . import BaseCommand


class ProjectNewCommand(BaseCommand, name="new"):
def get_options(self):
Expand Down
44 changes: 24 additions & 20 deletions bsb/config/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,42 +6,46 @@
config.attr/dict/list/ref/reflist`` to populate your classes with powerful attributes.
"""

import os
import sys
import builtins
import glob
import itertools
import os
import sys
import traceback
import typing
from importlib.machinery import ModuleSpec
from shutil import copy2 as copy_file
import builtins
import traceback

from .. import plugins
from .._util import ichain
from ..exceptions import ConfigTemplateNotFoundError, ParserError, PluginError
from . import parsers
from ._attrs import (
ConfigurationAttribute,
attr,
list,
catch_all,
dict,
dynamic,
file,
list,
node,
root,
dynamic,
pluggable,
property,
provide,
ref,
reflist,
root,
slot,
property,
provide,
unset,
pluggable,
catch_all,
ConfigurationAttribute,
)
from .._util import ichain
from ._make import walk_node_attributes, walk_nodes, compose_nodes, get_config_attributes
from ._hooks import on, before, after, run_hook, has_hook
from ._distributions import Distribution
from .. import plugins
from ..exceptions import ConfigTemplateNotFoundError, ParserError, PluginError
from . import parsers

from ._hooks import after, before, has_hook, on, run_hook
from ._make import (
compose_nodes,
get_config_attributes,
walk_node_attributes,
walk_nodes,
)

_path = __path__
ConfigurationAttribute.__module__ = __name__
Expand All @@ -56,7 +60,7 @@
# ConfigurationModule should not inherit from `ModuleType`, otherwise Sphinx doesn't
# document all the properties.
class ConfigurationModule:
from . import types, refs
from . import refs, types

def __init__(self, name):
self.__name__ = name
Expand Down
30 changes: 15 additions & 15 deletions bsb/config/_attrs.py
Original file line number Diff line number Diff line change
@@ -1,34 +1,34 @@
"""
An attrs-inspired class annotation system, but my A stands for amateuristic.
"""
import builtins
import traceback

import errr

from ..exceptions import (
BootError,
CastError,
CfgReferenceError,
NoReferenceAttributeSignal,
RequirementError,
)
from ..services import MPI
from ._compile import _wrap_reserved
from ._hooks import run_hook
from ._make import (
MISSING,
_resolve_references,
compile_class,
compile_postnew,
compile_new,
compile_isc,
make_get_node_name,
compile_new,
compile_postnew,
make_dictable,
make_get_node_name,
make_tree,
wrap_root_postnew,
walk_nodes,
_resolve_references,
)
from ._compile import _wrap_reserved
from ..exceptions import (
RequirementError,
NoReferenceAttributeSignal,
CastError,
CfgReferenceError,
BootError,
wrap_root_postnew,
)
from ..services import MPI
import builtins


def root(root_cls):
Expand Down
1 change: 0 additions & 1 deletion bsb/config/_compile.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import functools
from inspect import signature as _inspect_signature


_reserved_keywords = ["_parent", "_key"]


Expand Down
23 changes: 9 additions & 14 deletions bsb/config/_config.py
Original file line number Diff line number Diff line change
@@ -1,24 +1,19 @@
import typing

import numpy as np

from .. import config
from . import types
from .._util import merge_dicts
from ..cell_types import CellType
from ._attrs import _boot_nodes, cfgdict, cfglist
from ..connectivity import ConnectionStrategy
from ..placement import PlacementStrategy
from ..postprocessing import PostProcessingHook
from ..simulation.simulation import Simulation
from ..storage._files import CodeDependencyNode, MorphologyDependencyNode
from ..storage.interfaces import StorageNode
from ..connectivity import ConnectionStrategy
from ..simulation.simulation import Simulation
from ..postprocessing import PostProcessingHook
from .._util import merge_dicts
from ..topology import (
get_partitions,
create_topology,
RegionGroup,
Region,
Partition,
)
import numpy as np
from ..topology import Partition, Region, RegionGroup, create_topology, get_partitions
from . import types
from ._attrs import _boot_nodes, cfgdict, cfglist

if typing.TYPE_CHECKING:
from ..core import Scaffold
Expand Down
7 changes: 5 additions & 2 deletions bsb/config/_distributions.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
import typing

import errr
import numpy as np
import scipy.stats.distributions as _distributions

from .. import config
from . import types
from ..exceptions import DistributionCastError
import scipy.stats.distributions as _distributions, errr, numpy as np
from . import types

if typing.TYPE_CHECKING:
from ..core import Scaffold
Expand Down
26 changes: 14 additions & 12 deletions bsb/config/_make.py
Original file line number Diff line number Diff line change
@@ -1,24 +1,26 @@
import importlib
import inspect
import os
import sys
import types
import warnings
from re import sub

import errr

from ..exceptions import (
CastError,
RequirementError,
ConfigurationWarning,
DynamicClassError,
DynamicClassInheritanceError,
DynamicObjectNotFoundError,
PluginError,
RequirementError,
UnfitClassCastError,
DynamicClassError,
UnresolvedClassCastError,
PluginError,
DynamicObjectNotFoundError,
)
from ..reporting import warn
from ._hooks import overrides
from re import sub
import warnings
import errr
import importlib
import inspect
import sys
import os
import types


def _has_own_init(meta_subject, kwargs):
Expand Down
2 changes: 1 addition & 1 deletion bsb/config/refs.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ def __call__(self, root, here):
return merged

def is_ref(self, value):
from ..topology import Region, Partition
from ..topology import Partition, Region

return isinstance(value, Region) or isinstance(value, Partition)

Expand Down
14 changes: 8 additions & 6 deletions bsb/config/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,20 @@
import builtins
import inspect
import math
import numpy as np
from weakref import WeakKeyDictionary
from ._compile import _reserved_kw_passes, _wrap_reserved
from ._make import _load_object

import numpy as np

from ..exceptions import (
ClassMapMissingError,
CastError,
NoneReferenceError,
ClassMapMissingError,
InvalidReferenceError,
TypeHandlingError,
NoneReferenceError,
RequirementError,
TypeHandlingError,
)
from ._compile import _reserved_kw_passes, _wrap_reserved
from ._make import _load_object


class TypeHandler(abc.ABC):
Expand Down

0 comments on commit e78d4c8

Please sign in to comment.